Peter Moelgaard's Blog

EverythingFlex now on Adobe Wave

Posted in Adobe, AdobeWave by Peter Andreas Molgaard on July 23, 2009

Rich Tretola’s “EverythingFlex” is now publishing to Adobe Wave…

EverythingFlex WebSite

It’s one of the possible usages for the Adobe Wave, by signing up to this you will likely be getting notifications on your desktop the moment he publishes a post, and hence a fair chance to be the “first poster” in the commentary section… if that should be something you strive to do.

Check it out…
http://blog.everythingflex.com/2009/07/22/everythingflex-now-on-adobe-wave/

Current Waves… Adobe & Google

Posted in Adobe, Arbitrary Thoughts, Google by Peter Andreas Molgaard on July 23, 2009

The tides are over us in terms of waves rolling and breaking all over the online ecosystems.
Two of these are the Adobe and the Google Wave.

AdobeWave_LogoGoogle Wave Logo

Essentially their business model is somewhat similar, however their initial exhibition displays somewhat differences in focus and application (not in the technical sense of the word “application”, but in the sense in which way it can and is expected to be used).

Whereas the focus for the Google Team is to display the collaborative element of creating and “riding” waves, Adobe seems to focus more in the initial phases on offering organizations to create “buzzes” to which subscribers can stay tuned. The technologies and implementation underneath the applications are quite similar in terms of fundamental features, however the Google implementation does offer more flexibility, features and eventually better prospects for playing a major role in the near future communication landscape.

In essence “Adobe Wave is an all-purpose aggregator designed to let you keep up to date on a variety of different media streams. The application is a simple AIR app that connects to a variety of different services and displays a small alert when new content is available.” (http://www.insideria.com/2009/07/adobe-launches-wave.html).

On the other hand, “Google Wave…is a new model for communication and collaboration on the web.”
The description continues with defining that “a wave is equal parts conversation and document. People can communicate and work together with richly formatted text, photos, videos, maps, and more.
A wave is shared. Any participant can reply anywhere in the message, edit the content and add participants at any point in the process. Then playback lets anyone rewind the wave to see who said what and when.
A wave is live. With live transmission as you type, participants on a wave can have faster conversations, see edits and interact with extensions in real-time.” (http://wave.google.com/help/wave/about.html)

So, to clarify… the current application of the two “waves” have very few things in common and the common word “wave should in this case not be considered to be anything but a an abstract term and not something indicative for either application or implementation.

Google Wave… likely now not waporware, and now with an AS API

Posted in ActionScript 3.0, Google, OpenSource by Peter Andreas Molgaard on July 22, 2009

Google Wave will now suddenly not become waporware… I never thought it would, however lots or credible people have spoken about the chance that Google Wave would either never see the day of light or if then, only for a short time.

Google Wave Logo

If you want to get started with utilizing the Google Wave API’s and like I am currently, mostly building systems based on ActionScript and Flex, you don’t need to start implementing your own delegate API Google’s API, a couple of guys from the Google Developer Community has created a simple ActionScript implementation already.

Check it out…
http://code.google.com/p/wave-as-client/

A couple of notes…
* it uses ExternalInterface to call the actual JavaScript implementation (so no new communication logic)
* its released on the Apache License
* its very recent and active (last commit at the time of this post was 28 hrs ago)

A fun way to open a native window in AIR with MATE

Posted in ActionScript 3.0, Adobe AIR, Code, Code Design, Mate Flex Framework by Peter Andreas Molgaard on July 18, 2009

Sometimes when coding it happens that you stumble on something which just strikes you as funny (sometimes for apparently no reason whatsoever).
One such experience happened today when I was coding an AIR client with MATE and I had to open a new NativeWindow.
It should be noted that I for this implementation am experimenting with ridding myself of using Managers (no other motivation than curiosity about will come out in terms of code design and architecture).

Well, the thing that amused me was to use a PropertySetter. This is due to the fact that you have to set the “visible” property in order to actually show the window. However, you also have to pass an object of the type “NativeWindowInitOptions” to the constructor.

The code eventually can be written like this…

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:local="*">

	<s:Button label="Click Me" />

	<fx:Declarations>
		<local:GlobalEventMap2 />
	</fx:Declarations>

</s:WindowedApplication>
<?xml version="1.0" encoding="utf-8"?>
<mate:EventMap xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:mate="http://mate.asfusion.com/">

	<fx:Declarations>

		<mate:EventHandlers type="{ MouseEvent.CLICK }">
			<mate:PropertySetter
				generator="{ NativeWindow }"
				constructorArguments="{ [ new NativeWindowInitOptions() ] }"
				cache="none"
				targetKey="visible"
				source="{ true }" />
		</mate:EventHandlers>

	</fx:Declarations>

</mate:EventMap>

MATE CacheSetter.. a quick and dirty introduction

Posted in ActionScript 3.0, Adobe Flex, Code, Code Design, Mate Flex Framework, Undocumentation by Peter Andreas Molgaard on July 16, 2009

One of the newer classes in the MATE Flex Framework yet to be documented is the CacheSetter.
It’s nothing overly fancy, but it does exactly what it promises… it allows you to set the Cache from an ActionTag.

Let’s examine the code below… it’s a standard MATE EventMap with a couple of eventhandlers which offers to exit an AIR application when the User clicks anywhere on it… the applications for such a feature might be quite limited, but that’s what I could think of at 4:40 AM in Bangkok after almost 2 hours of being teleconferencing with the Flex Team sitting in California and it proves the point with the CacheSetter close to a minimal implementation.

NativeSystemEventMap.mxml

<?xml version="1.0" encoding="utf-8"?>
<mate:EventMap xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo"
	xmlns:mate="http://mate.asfusion.com/">

	<fx:Script>
		<![CDATA[
			import mx.events.FlexEvent;
			import flash.desktop.NativeApplication;
		]]>
	</fx:Script>

	<fx:Declarations>

		<mate:EventHandlers type="{ FlexEvent.CREATION_COMPLETE }">
			<mate:CacheSetter cacheKey="{ NativeApplication }" instance="{ NativeApplication.nativeApplication }" />
		</mate:EventHandlers>

		<mate:EventHandlers type="{ MouseEvent.MOUSE_DOWN }">
			<mate:MethodInvoker generator="{ NativeApplication }" method="exit" />
		</mate:EventHandlers>

	</fx:Declarations>

</mate:EventMap>

For the sake of completion, I will also bring the code to the AIR application itself…

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo"
	xmlns:client="org.hello.micromanager.timetracker.client.*" xmlns:local="*">

	<fx:Declarations>
		<local:NativeSystemEventMap />
	</fx:Declarations>

</s:WindowedApplication>

One of the more interesting and intricate details (and eventually why this exercise is interesting), is to see that it uses the Class reference as the cacheKey and that you eventually would be able to use any class or hashable object and chain as the cacheKey. If the cacheKey is NOT set explicitly it will default to use the class type of the Generator attribute, but if you are working with MATE the Cache class is one of the classes it makes the most sense to take an extra look at…

CacheSetter (Source)
http://code.google.com/p/mate-framework/source/browse/trunk/src/com/asfusion/mate/actions/CacheSetter.as

Cache (Source)
http://code.google.com/p/mate-framework/source/browse/trunk/src/com/asfusion/mate/core/Cache.as

Cache (Documentation
http://mate.asfusion.com/api_docs/com/asfusion/mate/core/Cache.html

Hello Flash Builder Console

Posted in Arbitrary Thoughts, HelloGroup, Inspiration by Peter Andreas Molgaard on July 15, 2009

Flash Player Trace statements constitute the perfect platform for output’s which are ASCII based equivalences to the controversial tradition of developers adding Easter Eggs to the Systems they are building.
The content of the ASCII based output can be of a more or less elaborate character, on one of the projects we are doing for the Danish Electricity Saving Trust: “MyHome – Your Intelligent Home”… it looks like below…

HelloConsole

Thanks to Paw Suddergaard for sharing his screen for a second…

Hello… now with a Darth Wader…

Posted in Arbitrary Thoughts, Events, HelloGroup by Peter Andreas Molgaard on July 15, 2009

After the summer party which took place at the giant Roskilde Music Festival and before the office closed next week, there is been an euphoric atmosphere at the Copenhagen office of Hello.
Today we received a visit by none other than Darth Wader from the movie Star Wars.

Darth Vader

FlexMonkey 1.0 Released… a stunt by Gorilla Logic

Posted in Flex, Test, Tools by Peter Andreas Molgaard on July 14, 2009

Now, after more than a year laying around in the mold and in the making, FlexMonkey has finally rounded the difficult 1.0 corner…

FlexMonkey 1.0

FlexMonkey is an Adobe AIR application used for testing Flex- and AIR-based applications. Providing the functionality to record, playback and verify Flex UI interactions, FlexMonkey also generates ActionScript-based testing scripts that you can easily include within a continuous integration environment.

FlexMonkey is created by the ingenious guys at Gorilla Logic: a US company based in Colorado.

Guerilla Logic

Check out their website…
http://www.gorillalogic.com/

Introducing SmartSVN.. a better SVN client for MAC OS X

Posted in MAC vs. PC, SVN, Tools by Peter Andreas Molgaard on July 14, 2009

Having used Versions for some time and having come to MAC OS X platform only recently from Windows, I have really been missing the awesome shell integration of TortoiseSVN known from Windows. SubClipse made most of my updates seem easy, but I still found myself missing the shell integration on a daily basis…

Nevertheless, having come to terms with this limitation much to my happiness I found the SmartSVN client after having watched a screen cast by Mr. Nate Bech (Senior Adobe Developer at T-Mobile USA).
SmartSVN is by far the best GUI based SVN client I have come across for the MAC OS X platform so naturally I want to post a note about it in a hope to guide others in a similar situation.

SmartSVN_Logo

Check it out…
http://www.syntevo.com/smartsvn/

GUGGAFF… as good as it gets

Posted in Arbitrary Thoughts, Inspiration, InteractionDesign, IxD, Outsourcing, RichInternetApplication by Peter Andreas Molgaard on July 12, 2009

GUGGAFF is spurious title which is just the abbreviation of Gugga Flex Framework… and its not without merits that these guys are proud of their contribution to the open source scene.
Gugga is a company that has specialized in quality and upfrontity, I know the last word is not recognized by Merriam-Webster as a valid Oxford English word, however, in my effort to describe the Gugga company it is totally valid and correct.

This is not a shameless act of cheap promotion (I’m not associated with Gugga – I’m a very proud Software Architect at Hello Group in Copenhagen)… despite some parts of the message could be misinterpreted as such… however… anyways…

The talented guys at Gugga has shared their base class library with the rest of the world under the umbrella of the GuggaFF, and I certainly recommend that you check it out… for none other purpose than to find out how the people behind such RIA blockbusters as Bombay Sapphire and Bacardi architected the systems.

Instead of wasting more of your precious time… I will just finish with a logo and a link recommending that you check out the GuggaFF and learn how some of the coolest Internet Experiences were created…

2009-07-12_2116

I’m so excited about the combined skillset of the guys at Gugga, and once you have looked into their shared works, I’m 99,999% certain you will agree…
Anyways.. check em out… they are the people who can make the difference in creating a success and not a flop…
http://www.gugga.com/