Idealism is what precedes experience; cynicism is what follows...

Saturday, June 14, 2008

Thunderbolt : A logger extension for ActionScript 2 and 3

ThunderBolt is a logger extension for ActionScript 2 and 3 as well as Flex 2 and 3 applications based on the Firebug add-on for Firefox.





It looks very promising, and knowing Jens Krause's ordinary high level of ingenuity and as well as quality, I am willing to give it a shot.

Features:

* Detailed information (class, file, line number, time, frame)
* Log levels (info, warning, error, fatal)
* Interactive tree view for complex object structures
* Profiling (time spend during code execution)
* Collapsible grouped output
* Filter log by classes and packages
* Interactive console (inspect and modify object on runtime)
* Log levels: INFO, WARN, ERROR, DEBUG (FATAL, ALL)
* Tree view for complex object structures such as class identifier and its properties
* Custom LogTarget based on Flex Logging API including filters
* memory snapshot
* stop logging flag
* SWC components for logging using Flex 2/3 or Flash CS3

Friday, June 13, 2008

SVN : Frequency of Update&Commit cycles

Its very disputed indeed, however I have experienced that some practices in using SVN results in less conflicts than others.
The practices which yield the best results depend highly on the method in the organization and the general practices of the team.
Every opinion I share in this post is therefore based on the notion that it works in the company I work for and the current team I am working in as well as the codebase we are working on.

During a development cycle I will probably end up updating every hour or so. This is not a conscious activity, but more of a habit as it has proven to allow me to experience long periods of no conflicts or merges.
I should perhaps point out that I work as an architect on a system with about 10 developers and a codebase of apr. 3500 classes divided into vast amounts of modules and libraries. Our SVN is configured with positive assertiveness so we let the SVN assume that conflicts will not appear and that if they do, merges will be possible. This works well for us.

The single most important rule of SVN engagement on my slate is the "Update Prior Commit" dictating that I always run an update before I execute a commit. SVN will warn you anyways, but it gives me a second to think about what I am committing which I have think gives me some percentages in regards to preventing SVN errors.

I would say that anyone in our organization should commit at least every day and should update at least a couple of times per day. This is due to the very lively nature of our current codebase which kinda means that we don't have any very stable areas in the codebase except for our core classes.

If the task at hand is too big to be committed every day, it should be branched and hence committed every day. This practice has a couple of times proven to work as an invaluable backup when disks have malfunctioned or users have caused Error-40's (In case you don't know I what I am referring to with "Error-40", ask a computer-saavy Dane - (s)he will tell you :-) )

(to be continued)

Wednesday, June 11, 2008

HCI : Morphable Interfaces - The Initial Inspiration

The initial idea of addressing many of the presentation issues concerning RIA user interfaces by the term "Morphable Interfaces" came in relation to the by now quite old video on YouTube illustrating some of Nokia's visions for the future nano-technology based concept for cell-phones.

In case you have been living under a rock in regards to web-hypes the last year, I bring you the link for the video... Its still a cool video, even though I have already seen it a couple of times by now...

Nokia's Morphable Concept
http://www.youtube.com/watch?v=IX-gTobCJHs

PureMVC & Cairngorm : Introducing Tech Per

Tech Per had visited my blog yesterday, just to find a spurious blog entry of unknown origin on which he diligently commented and asked if "I was serious", however using different wording.
Nevertheless, I promptly deleted the post and went to Mr. Per Tech's website to find a way to offer an explanation as he was absolutely right, I was not serious and I still have no idea how the entry had arrived on my blog (I stand to blame an empty bottle of cognac, but I still don't have concrete evidence - only circumstantial).

Nevertheless, and all other things being equal...
Per Tech has an interesting blog and I suggest all to pay it a visit.
One post on his blog, to which I have dedicated this entry, is about PureMVC and Cairngorm. The post is just some arbitrary thoughts from Per Tech on the topic, and its quite liberating to read some simple thoughts... and not read something which the author had probably envisioned as being the final breakdown of differences offering complete closure to all disputes and provide objective and unbiased precedence for years to come... These are just ideas, and as such needs no more introduction...

Check it out...
http://www.techper.net/2008/06/09/patterns-of-gui-architecture-in-cairngorm-and-puremvc/

Sunday, June 08, 2008

State Machines : The C in PureMVC

I have some difficulty figurering out how to combine the notion of a statemachine workflow with the PureMVC notion of commands as the primary work-units. Using states seems to defy the need for commands and if not in direct conflict only because one could imagine using the statechange events to trigger commands. However, the ladder seems to create additional complexity in return of no other benefit than being able to use a statemachine workflow as the primary driver in a strict PureMVC system without removing logic from the commands.

Cliff Hall started a working group with this focus, but it appears that they too have had some difficulty cornering the right way to combine this.

Check it out...
http://forums.puremvc.org/index.php?board=25.0

State Machines : Windows Workflow Foundation

Windows Workflow Foundation has buildin support for building state-machine workflows to be used from any dotNet based host.

I will explore this in the upcoming weeks in relation to my effort to contribute to the further development of State Machine support in the PureMVC framework.

Check it out...
http://msdn.microsoft.com/en-us/netframework/aa663328.aspx

State Machines : Basic Thoughts

There is one important decision to make when creating a new workflow. Will the workflow be a sequential workflow, or a state machine workflow? Windows Workflow provides these two types out of the box. To answer the question, we have to decide whois in control.

A sequential workflow is a predictable workflow. The execution path might branch, or loop, or wait for an outside event to occur, but in the end, the sequential workflow will use the activities, conditions, and rules we've provided to march inevitably forward. The workflow is in control of the process.

A state-machine workflow is an event driven workflow. That is, the state machine workflow relies on external events to drive the workflow to completion. We define the legal states of the workflow, and the legal transitions between those states. The workflow is always in one of the states, and has to wait for an event to arrive before transitioning to a new state. Generally, the important decisions happen outside of the workflow. The state machine defines a structure to follow, but control belongs to the outside world.

We use a sequential workflow when we can encode most of the decision-making inside the workflow itself. We use a state machine workflow when the decision-making happens outside the workflow.

State Machines : A Powerfull Programming Tool

State machines have always fascinated me. There is a clockwork precision to their inner workings that appeals to me on an aesthetic level. They are also an invaluable programming tool. In building libraries and applications, I have returned to them again and again.

A state machine is a model of how something behaves in response to events. It models behavior by making its responses appropriate to the state that it is currently in. How a state machine responds to an event is called a transition. A transition describes what happens when a state machine receives an event based on its current state. Usually, but not always, the way a state machine responds to an event is to take some sort of action and change its state. A state machine will sometimes test a condition to make sure it is true before performing a transition. This is called a guard.

* A state machine is a model of behavior composed of states, events, guards, actions, and transitions.
* A state is a unique condition in which a state machine can exist during its lifetime.
* An event is something that happens to a state machine.
* A transition describes how a state machine behaves in response to an event based on its current state.
* A guard is a condition that must be true before a state machine will perform a transition.
* An action is what a state machine performs during a transition.

This description of state machines introduces several abstract concepts quickly, and is not meant to be formal or complete. It is just a starting point. I will explore what state machines are in a series of posts.

Next post will be about the implementation of State Machines in Adobe Flex with a running code example.

Tuesday, June 03, 2008

Adobe OnAIR Tour Stockholm (2)

Jens Brynildsen have been so nice to share his photos from the Adobe OnAIR Tour's stop in the swedish capital, Stockholm.

Check it out...
http://www.flashmagazine.com/News/detail/onair_stockholm_2008_pictures/

Adobe OnAIR Tour Stockholm (1)

A day inside the "Munchen-bryggeriet" masshall when the weather was so good and Stocktown was at its finest, caused everyone to assume that the sessions would be as abandoned as the beach in Jaws succeeding the second attack of the killer-shark... however, it was not !
It was packed with designers, flash programmers and flex developers (and perhaps even an existing AIR developer) and off course reps. from Adobe.

The food was great, the "swag" was OK and enough so that everyone seemed to feel appreciated.
Lots of cool people with lots of great knowledge and ideas...

Stay posted for more on this topic...

PureMVC : Pipes : Demo

Mr. Cliff Hall has been dug down for about a week to produce a long anticipated demo for the Pipes part of the framework.
Pipes are so cool, I can not imagine larger systems not using them...

Check it out...
http://trac.puremvc.org/Demo_AS3_MultiCore_Flex_PipeWorks

Wednesday, May 28, 2008

Adobe Air : OnAIR Tour Stockholm (0)

The Adobe AIR team visits Stockholm in Sweden next month. Unfortunately the registrees have already reached capacity.

Several of the other stops on the tour is still open for signup, so dont hesitate to consider going to either Berlin or London if your in the area.

Check it out...
http://onair.adobe.com/schedule/cities/stockholm.php

Friday, May 23, 2008

PureMVC : Pipes and intermodular communications

The PureMVC team (Read 'Cliff Hall') has been working this week on a new utility called Pipes. Its being unit tested right now and they expect to put up a demo soon.
Pipes will henceforth be the main way that modules communicate without having references to each other or sharing a Facade... very cool stuff.

Check it out...
http://trac.puremvc.org/Utility_AS3_MultiCore_Pipes

Docs...
http://puremvc.org/pages/docs/AS3/multicore/pipes_asdoc

Pretty printed source
http://puremvc.org/pages/docs/AS3/multicore/pipes_source

Tuesday, May 20, 2008

PureMVC & Cairngorm (1)

We have recently been blessed with a couple of very skilled PureMVC oriented developers. Seeing that we have traditionally been a distinctive Cairngorm company, this was naturally an issue we needed to address... however, upon considering the options we came to the conclusion that there were no apparent reasons why our specific implementation of the Cairngorm framework could not coexist happily side-by-side with PureMVC. A number of apparent conflicts based on the various singleton's would have to be solved, but seeing that we have abandoned the singleton FrontController's and ModelLocator's in both frameworks all we had to do was to hook the PureMVC Facade and our custom Cairngorm EventBroadcaster together so our events being dispatched in one place will be delegated to the other place.
What we eventually end up with is a Hybrid which is based on Cairngorm but 100% faciliates PureMVC-based code and it seems to work without any major issues.

This is the first of what will become a number of posts I will be making about our experiences in taking a 1300+ Class large system based on Cairngorm and adding PureMVC to it.

Sunday, May 11, 2008

Control Creation : In Markup or Code ?

While it is possible to create all your controls and objects in code, best practices dictate that it is usually better to do so in markup. The most compelling reason is that markup is highly “toolable” – that is, it lends itself to round-trip modification in tools such as Adobe Flex Builder and MS Visual Studio / Expression and thus is easier to scale, modify and maintain.

EventHandlers / EventListeners : Where, inline or code ?

I admit it, I have a strong preference for declaring all event handlers/listeners in code. I believe it is better encapsulation, making for more scalable and more maintainable code. But this is a personal opinion.

Silverlight 2 : Attached Properties

Attached Properties are an effective and quite neat way obtaining flexibility without sacrificing any means on encapsulation. Attached Properties are the ability for a nested control in a layout control to use the layout control's property from within a control, this is referred to as an Attached Property. For example, the Button object might use the Attached Property Canvas.Left to position itself with respect to the left border of a surrounding canvas.

Jesse Liberty's rules for examples...

Reading about Silverlight 2, I stumpled upon Jesse Liverty's rules for examples, they are simple and almost universal...

Judge for yourself...

1. Keep it simple enough that the example totally focuses on what you are trying to illustrate (but no simpler)

2. Try to use something like business objects rather than cute animals or game objects

3. Don’t show off how clever you are, break the code down into small digestible parts.

4. Use interim variables; they’re easier to catch in a debugger

5. Strip away all exception and error handling and bullet proofing unless you are teaching exception handling, error handling or bullet proofing.

6. Use great variable names so you need fewer comments, but don’t convince yourself that means you don’t need any.

7. Show the output

8. Make no apologies (except when you’re wrong)

Thanks, Jesse... for letting us laymen get access to some of the experience you have gained from writing those 10+ technical books about programming :)

Saturday, May 10, 2008

PaperVision3D : Now in Stockholm

For all us fans in Scandinavia of the Papervision3D API, there are great news in the immediate future.
It appears that PV3D major contributor Ralph Hauwert is having a course in Stocktown on June 12th thi year.

Check it out:
http://www.richmediainstitute.com/papervision_stockholm

Innovation Peak, when ?

According to Watts Humphrey in his work called "Managing for Innovation" the innovative peak for engineers and scientists occurs two times in a life time.
The first peak happens in the early twenties, which is not much of a surprise as its common knowledge, however there exist a common belief that once innovative skills decrease over the years which W. Humphrey seems to disprove.
It appears that the decrease over the years are less significant than most think. And as an encouraging thought for the seniors out there, it appears that a second and much later peak occurs in the mid- to late-50s. He claims directly that this double-peak occurs among all the groups of engineers and scientists and that the dip in between is not very significant.
He continues to argue that the late 30s and early 40s is a highly stressfull period, but once creative people pass this hurdle, they will continue their creative work for many years... he sums it by pointing to an all american icon, Edison, seeing that many of Edison's 1.100 inventions were produced later in his 84-year life.

Good news for us that intend to stay in the creative and innovative part of the software industry for many years.

Tuesday, May 06, 2008

HCI : Morphable Interfaces introduces new challenges

Lately I have been working on a number of applications where the requirements to the UI has been quite extensive. The paradigm of UI in RIA's are now getting more and more well-understood among the GFX departments, XD departments, IA departments, etc. and this has triggered something resembling a revolution in advanced UI's.
Among one of the new paradigms is the morphable interface where no elements are static in their representation, but on the contrary have many different and often incoherent states.
I have chosen the wording "morphable interface" as all elements now have many representations all depending on the overall state of the application combined with the fact that movement now has taken a new position as it now is used to communicate the change of state: hence the Adobe coined slogan, "movement matters".

Having many different incoherent application-states with an equivalent set of elements combined with an effect being played while transitioning between two states defines a morphable interface.

Friday, April 25, 2008

The Copenhagen RIA / Flex Meetup

Earlier this year a MeetUp group was created for Copenhagen centered around the development of RIA's and Adobe Flex.

Along with DFUG (www.flashforum.dk) this will become one of the places where you can expect to see events posted.

Check it out:
http://flash.meetup.com/149/

Thursday, April 24, 2008

Power Designer 15 : Now in Beta

I'm a great fan of system modelling, and therefore I am a great fan of a good system modeling tool.
Among the best imho. is PowerDesigner from Sybase and now its out in its most recent and 15th edition which is out there available in the first public Beta.

Check it out:
http://www.sybase.com/detail?id=1056477

Friday, April 11, 2008

Adobe Flex : When to fetch Data

A frequent question among Flex developers is the question about when to fetch data.
During what phase in the component lifecycle should the model layer be called and asked for data, and if not present already, should the model layer access the data layer and fetch the data.
Let me start by pointing out that most developers do it wrong.
Most developers use the non-ambiguous creationComplete event or even worse, the applicationComplete. However certain the component is to all children being available and all settings being set, it inflicts a major overhead for the component as it after data has been fetched is typically forced to invalidate itself and hence do all initialization one more time... this time just with data.

The answer to the question about when to fetch data is in short the initialize event. You can use the preInitialize but outside the scope of this post, there can be certain issues when doing it at this time.

So, in conclusion... fetch the data at the initialize event and NOT at the creationComplete.

Thursday, February 28, 2008

Adobe Flex Builder 3 released !

Through 4 long beta's we have been waiting for the moment when the Adobe Flex Builder 3.0 got relased... that moment is here now.

Im gonna install it in a test machine to ensure that it doesn't break our projects. There are no reason to believe that anything should be broken on the account of going from the milestone 4 Beta to the release... but no reason to take chances as I more than one time have experienced that making assumptions about something like this can have disastrous consequences.

Anyways... here it is:
http://www.adobe.com/products/flex/features/flex_builder/

Wednesday, February 27, 2008

FITC Amsterdam 2008 : Immediate post-festival thoughts

Now the FITC Amsterdam 2008 is formally over, remaining is only the Colin Moock, ActionScript 3.0 - from the ground up tour.
Licking my wounds on top of a session filled 3 days (including the pre-festival workshop day) I am confident that I will go next year again. Yes, FITC has announced that they will do it again for sure next year. Good news to us in Europe who struggle to make the non-north-american influence on Adobe's products stronger in an coordinated effort in concretely making the future better in regards to localization of the Flash platform.

Anyways, in short I have met a lot of interesting people here doing great things on the Flash Platform and I have been motivated to make my contribution more significant, seeing that it appears to me that some of the things we are doing at Hello are pretty upfront.

There are many possibilities of making a difference right now since the developer community is just getting started... and I have decided that I want to be an active part of this.

Monday, January 21, 2008

PV3D : Course in London, 2nd day

The second day was the most interesting of the two days as we here got to dive a bit deeper into the API's and even got to do some "freestyle" coding under the watchful eye from the competent Mr. Ralph Hauwert.

The sources and presentation files for the entire course can be downloaded from UnitZeroOne's website:
http://www.unitzeroone.com/papervision/workshops/workshoplondon.zip

An additional source is a spherical panorama of the course-hall which can be downloaded here:
http://www.unitzeroone.com/papervision/workshops/spherePano.zip

DFUG : Manager for Adobe User Group Copenhagen



Its a great honor for me to have been elected the regional manager for the Adobe User Group in Copenhagen in collaboration with Mikkel Havmand.
We hope to be able to make a difference on the Copenhagen RIA scene and I sincerely hope to be able to arrange for some cool events, both virtual and real-life, in the upcoming year.
I will from now on be posting about topics relating to this as well as RIA and Adobe Flex in general.

Check out the official statement (sorry, its only in Danish):
http://flashforum.dk/publikationer/nyheder/dfug-far-nyt-manager-team-i-kobenhavn

FITC : ActionScript 3.0 PostFestival Session

If you are attending this years FITC in Amsterdam, don't miss out on the opportunity for at day with Colin Mook. The day after the "Flash In The Can" festival, there is a "ActionScript - From The Ground Up" session.



You can sign up here, and its free.
The SignUp form is taylered for US citizens only, but with a little cheekiness you can get around it.

Sign up here:
http://www.adobeas3tour.com/

Sunday, January 20, 2008

Apple : Apple MacBook AIR

It looks amazing and I am now 99,9% sure that my next Laptop will be a Apple MacBook AIR... preferrably with the 64GB solidstate drive, but seeing the pricetag for this confguration might result in me not being so lucky.



Its the thinnest laptop I have seen since the Sony Vaio 505 which was only marketed in Japan and to my knowledge never made it to other markets (and if it did, at least never to Europe).



Check it out:
http://www.apple.com/macbookair/

Thursday, January 17, 2008

Adobe Flex : Ted Patrick and his SEO experiment

The latest shout-out from Ted regarding his experiment with doing SEO on the Flex directory caught my interest. If it was Ted's apparent excitement I thought to be sensing when reading the first couple of lines (I should probably mention that SEO s something that normally leaves me cold) or it was the actual content that initially turned my focus to this last post about his experiments, I should not be able to say.

Anyways, read the post and judge by yourself :-)
Exciting stuff...
http://www.onflex.org/ted/2008/01/seo-and-flex-directory-build-003.php

Wednesday, January 16, 2008

FITC Amsterdam 2008 : Discount code

For the first time ever, Flash In The Can (FITC) will visit Europe.
This takes place as previously announced between the 24th and the 27th (incl. pre-festival workshops and a post-festival ditto featuring none other than the legendary Colin Moock).

If you still haven't gotten your ticket I would def. urge you to, its gonna be a lot of fun and it might even have some educational aspects too (just kidding, I know I will bring home a lot of goodies for the dev-shed).

Anyways, in case you haven't gotten your ticket yet I can offer you this discount entitling you to 25% off the sticker-price.

I know it works as I myself have used it... :-)

FITC Discountcode: "labs25" (without apostrophe's)

Tuesday, January 15, 2008

Adobe Flex : Modular applications vulnerable to missing resources

When developing modular applications in Adobe Flex, its critical to ensure that all resources are available for the module and the application that loads it.
You will most likely not get any errormessage indicating the problem, the module will just never complete its creation flow and leave your application hanging somewhere in mid-air between the initialized and the creationComplete event.

The error handling in the ModuleManager and the ModuleLoader are to be honest, not particularly well written at this point (as of Flex 3 Beta 3, Milestone 4) and I expect that the entire mx.modules package is scheduled for an overhaul during the current and last development iteration prior to the emergence of the release candidates (if any) and the first release.

Anyways, back to the issue about missing resources causing the Module creation flow to halt... even the emittance of a style sheet reference used by the module will cause the creation to halt and fail in Flash's silent, but deadly manner (I never liked that paradigm and I am sad to find it all over the place, even here in one of the mission-critical parts of the framework).

I would very much prefer not to have to modify the source code for frameworks and/or 3rd-party products used by production systems, but if the mx.Modules don't receive a lot of "love" from the Flex team prior to release, I will have to in order to get the required stability and robustness.

I would like to mention at this point however, that we have decided to use Flex 3 for production level systems at a very early point, and in general this has been a hugely positive experience (please read previous posts about our Beta experiences) and I have not regretted this decision at any point.

Here you can read more about how to create modular applications with Adobe Flex if you have any interest in this...

Monday, January 14, 2008

Adobe Flex : Coghead 2.0 has been released today, now based on Flex

The new Coghead 2.0 was built using Adobe Flex. Like a lot of RIAs, Coghead is moving to Amazon Web Services to power the back end while adopting Flex on the front end.

Coghead is an interesting company because their application actually lets you create your own web application without programming. You drag and drop components on to the screen and then customize their behavior. As TechCrunch notes, the upgrade to 2.0 made the interface snappier and cleaner. Paul McNamara, the CEO, attributed this to the adoption of Flex.

Amazon Web Services and Flex make a really, really powerful combination and more companies are realizing that. More companies are also realizing that in some cases, when you have big, robust applications, Ajax doesn't always cut it. Not everyone is going to be building something as complex as Coghead, but as we see more of these immersive types of Software as a Service applications, you're going to see more Flex usage. Oh, and there's the AIR bit. These companies want to be able to expand easily to the desktop and AIR lets them take all the stuff they've already done and create a new experience for users.

Coghead claims Coghead is now 3X faster than before. And, in fact, some operations are now much more than 3X faster. The primary reason for this performance breakthrough have been achieved by re-implementing the UI using Adobe’s Flex software.

Check it out:
http://www.blogger.com/img/gl.link.gif

Wednesday, January 09, 2008

Adobe Event : January 25th in Copenhagen

The Adobe experts are throwing a presentation of their Web technologies and AIR.

Folks like...

- longtime Macromedia/Adobe web-tech evangelist Greg Rewis
- omnipresent CSS and accessibility expert Stephanie Sullivan
- video-rockstar Jason Levine
- top-of-the-lnie AIR guru Mike Downey

...will come and present this for the general masses.

I don't expect this to be advanced in any way as its targetted towards the general public, but nevertheless it might be interesting for the more strategically inclined techies to attend as it will summarize the vision of the technologies down to one commutable serenade. A serenade I expect will be usable as part of a "sales pitch" both internally to management, other peer-departments as well as externally to customers considering a RIA solution.
I therefore also assume it could be beneficial for more non-technical personnel working with techies to attend, as I assume it will provide a not-too-technical overview of the technologies.

Check it out and signup here:
http://events.adobe.co.uk/events/cgi/event.cgi?country=dk&eventid=6279
NB. Its free and signup has just opened as of the time of posting this.

This day or seminar follows a day for VIP's only, where I suppose the plans for the future will unveiled... tell me, is there anybody out there who is not excited about the sharp turn Adobe has taken since the acquisition of Macromedia in regards to parter-relations :-)

Thursday, January 03, 2008

FITC Amsterdam 25th - 27th February

Don't forget to get your ticket while the early bird discount still is available (Last chance is the 9th of February). Its the 7th year of this exciting event and I am gonna try to do my best to be able to find the time and finance to attend.



Check it out:
http://www.fitc.ca/event_detail.cfm?festival_id=29

Adobe Flex : Visual Flex Unit

One of the major trailblazers on the Flex front is the company Allurent which features none other than Joe Berkovitz himself as VP of Engineering.
For you out there not yet familiar with Joe's (I hope he won't mind too much that I mention him by firstname) achievements, you should check his blog out right away and stay listening as its one of the major sources for good stuff out in respect to the Flex development environment out there as well as in respect to the entire Flash platform as well.

Anyways, Allurent have chosen to share another of their works, namely the Visual Flex Unit which "is an Allurent open source project to establish a framework for the testing of components' visual appearance. The goal is to enhance FlexUnit with additional features to support visual assertions. In a nutshell, a visual assertion asserts that a component's appearance is identical to a stored baseline image file. Tests can be run using a GUI interface or through an Ant build process."

It looks very promising and as a huge fan of automated test I will definitely try to give it a shot.

Check it out:
http://code.google.com/p/visualflexunit/

Sunday, December 23, 2007

Mac vs. PC : Cool Mac Utils

Making the switch to Mac has required me to learn how to navigate in a completely different universe than the one found for the PC platform.

As one of the major differencies, it appears that the os-confusion relating to the Mac platform is much less diasporate than the one for Mac which in comparison seems more organized and less in conflict about how to do things... pretty obvious considering the homogenous nature of the Mac ecosystem.

One of the thoughts that keep appearing during mt crusade to climb up of the Windows hole I fell into 10 years ago, is that the Mac people are much more goal-oriented in comparison to the process oriented PC people. The basis for this thought appears to be the difference in the amount of time one has to allocate on tasks relating to merely support ones primary task: productivity in ones field. http://www.blogger.com/img/gl.link.gifSo far it appears that the distance one has to cover in terms of the number of tasks and their respective duration is larger on PC than on Mac everntually making Mac a productive environment as I sooner get to the point of productivity on this platform than on Mac - however I am still not blind for the fact that I might still just be under strong inlfuence by the "hype" one has when switching from a classically skinned Win XP which had one had been forced to downgrade into as a result of a failed attempt to upgrade to Win Vista.

Anyways... I will use the opportunity of this blog entry to share to links to cool utils for the Mac OSX.

An overview of status bar plugins:
http://menu.jeweledplatypus.org/

The Growl application which allows application developers to post events to a global (in respect to either the local machine of the LAN on which it resides):


http://growl.info/

Bloggerwave : Payment completed

As a follow up to my previous post about how to make money blooging I can now inform everybody that I recieved my 50,00 via Paypal for my previous post.



So it appears that the system is working... :-)

Thursday, December 20, 2007

Adobe Flex : Ribbit Developer API available



The Ribbit Developer Platform gives developers the ability to make and receive calls, record, send and receive voice messages, as well as add and organize contacts.

They have just released the first public beta of the API and sofar it looks great.

Check it out:
http://developer.ribbit.com/

Tuesday, December 18, 2007

Five Tips for Staying Productive When You Work Where You Live

Get dressed. You're going to work -- at home. For many people whose office is located somewhere between the kitchen and the living room, succumbing to the ease of working from home can throw a curve ball in the career path.

Here are five ideas to help you avoid some of the common pitfalls of working from home and strike a healthy balance:

1. Separate your work space from the rest of your home and spend time in it only when you are working. Make it off limits to family members -- kids and spouses do not belong there. Create physical barriers, such as a door or a flight of stairs to isolate yourself from your home routine and focus your attention.

2. Sit at your desk at the same time every day and keep normal business hours. Parcel out your work by task and the time you expect it to take to complete. This will help you instill urgency in your work and increase your productivity. "One of the major challenges is prioritizing your tasks because nobody is there to tell you what to do," says Holly Reslink, a member of the Professional Association of Resume Writers and Career Coaches, "so it helps to create a daily goal sheet."

3. Dress in a way that will help you feel professional. You do not have to wear stockings and high heels, but it helps to get out of your pj's and put on a crisp shirt.

4. Disregard house chores until the end of the business day. You wouldn't wash the dishes, walk the dog or cook lunch for the kids if you were in a real office, so resist the temptation to do it at your home office. If you find that hard to achieve, give yourself short deadlines for specific tasks and do household work only in between.

5. If your work does not require constant access to email, turn off your email program and check messages only at scheduled times. Being stuck in a home office all day can be frustrating, so instead of seeking distraction through communication, tackle boredom by allowing yourself short breaks outside. Take advantage of your situation by enjoying a few moments on your balcony.

Working at home is not for everyone, because it takes the right type of personality and motivation to be able to stay on track. "But for people who have a more flexible style of working," says Reslink, "it can offer an opportunity to work within their own comfort zone and not conform to what an office manager expects them to do."

http://www.careerjournal.com/myc/killers/20071207-loeb.html?cjpos=home_what

Monday, December 17, 2007

Adobe Flex : Beta 3 changes

We have successfully taken a rather large project (around 1000 classes) and put it to be compiled with the latest SDK from Adobe.

The inception of the project was done with Flex Builder 2 based on Flex 2 and it has continually been updated to be compiled with the latest SDK's following the releases from Adobe. Sofar we have had to make only minor adjustments, and this positive track record continues with the latest release.

Only one thing had to be changed to the codebase when upgrading to the Milestone 4 release of the Flex Builder, and it was relating to quite an obscure override in a createChildren method of a MultiLineButton class extending Button.

In the former the textfield variable of a Button was a UITextField and in the latest version this has been changed to be an instance of the IUITextField interface not implicitely convertable to a DisplayObject which addChild of the Sprite class accepts as parameter, hence a casting is necessary when overriding...

I cannnot remember upgrades between Beta releases ever being so easy and without problems.. and I have been coding for 11 years now...
Its been a great pleasure working with Adobe on the latest evolment of the Flex platform, never in my career have I experienced this kind of hassle-free development with Beta products and its quite rare to see Beta products with such a high quality.

Friday, December 14, 2007

Adobe Flex Builder : Beta 3 released !

The final beta of Flex 3 has been released on Labs. This new release focuses on overall quality and performance, providing a final look at Flex Builder 3 and Adobe AIR prior to launch. There is also a new release of the Adobe AIR runtime.

This 4th milestone marks the final release before beginning the release candidatures.

Read more here:
http://labs.adobe.com/technologies/flex/

and you can read the release notes here:
http://labs.adobe.com/wiki/index.php/Flex_3:Release_Notes#Known_Issues

Wednesday, December 12, 2007

PV3D : Course in London, 1st day

Sitting in my hotel room (one of the box'y, container'ish and non-superfluousness-yet-no-hassle one's with 'business-person-only-in-town-for-a-short-business-meeting' written all over it) sipping some mediocre, yet drinkable wine with screw-cap from New Zealand bought in the local "non-7/11-yet-still-open-24hours-drugsstore" the day begins to settle in this old brain stuck to the top of my neck.



Let me start by stating that Ralph Hauwert is one of the "real" ones. He is a nerd that has turned pro !
Ralph Hauwert is quite a lucky man, because his product (PaperVision 3D) sells itself - so even if he had not been the talented speaker he is and had he not been the jovial guy residing on top of what appears to be pure high-level competence, he would have made anyone in the place today go home with a shitload of inspiration and a lot of "so-ein-ding-muss-ich-auch-hapen" feeling regarding the many demos shown during the day in their respective pockets (S.E.D.M.I.A.H.: please check the image of a real BABELFISH translation later in this post).

The day today has been spend by mostly establishing a common vocabulary and getting everything setup for the "big" day tomorrow. The audience, being split apr. 50/50 between coders and visual-designers (ref.: informal hands-up poll conducted by Ralph Hauwert himself during the inception of today's session) and what I suppose was an equivalent split in regards to Flash and Flex, was necessary to be groomed in order to establish a common starting point from where to start the open part of the course (2nd day). However, just by walking through all the basic stuff relating to PaperVision on the course of establishing a common foothold I have already learned a lot already that I can use in my business, however eventually the complete lack of proper documentation of the PaperVision SDK and API also became obvious and kinda scared me a little but, however...

After having asked Ralph Hauwert (during the post-session informal QA that always happen when the speaker acts a roadie and packs down his/her gear) about an explanation for the lack of documentational focus from the PV3D team, the answer proved to be quite a bit more clever than the question.
It appears that PV3D have more than 400 1st-line developers using the API who are not only using the API, but also putting great effort into reporting bugs and issues to the PV3D team. The reports harvested from this impressive group of early-adopters are of a reportedly high quality and naturally: its a very relevant fear from the PV3D team that if a "normal" Java-doc like documentation and versioning paradigm was implemented, it would spawn of a plethora of "not-so-diligent" masses of developers with no particular interest in bringing PV3d to the next level that would start bombarding the bug-reporting-system with mere incident-reports and not actual bug-reports. The PV3D team would, if the API was published publically, hence probably end up being tied down into a never ending trench of bug-reports made by people from all corners of the web-development industry with no particular interest in the PV3D platform and that would effectively be the end of PaperVision (This particular course of events have been seen before, remember? ). I personally believe its a quite clever move by the PV3D team to steer clear of painting themselves into a corner by the act of exposing themselves to the vast community of (lets face it, this group to which I belong in this context are an obnoxious and ignorant group of non-forgiving and intolerant "revengees") early-adopters and first-movers on a hyped-up-technology which in many people's eyes may contain unlimited possibility of both profit and fame , which we all know is a very efficient recipe for problems when attempting to release a new API which is challenging in its nature.

About the concrete contents of the session, I will post from my notes when day number 2 has passed and I again will be sitting alone in a hotel-room with nothing better to do than to post to my blog.

Anyways, sofar... its SO great and VERY VERY inspiring in regards to get cracking on the code... to ALL of you out there who didn't make it this time: be sure to attend the next time... I for one will probably be to find among the geeks in the back-rows :-)

Check out my translation from the classic public web-app over all classic public web-apps: BABELFISH...

Discount (35%) on books from Microsoft Press

By using the discount code below you get 35% discount when purchasing Microsoft Books from Ravenholm Computing...

TECHNET941


To be honest, I am not totally convinced that I am in compliance with the idea behind offering all users this discount code, but I do not recall at any point to have agreed to a NDA (Non Disclosure Agreement) for offers put forward by both solicited as well as unsolicited 3rd party partners of Microsoft.

If anyone have any objections to me posting this discount code, please dont hesitate to leave a comment and let me know. If your your objection has any substance I will promptly remove the posting.

The receipt I got after updating my TechNet profile at Microsoft....

Friday, December 07, 2007

Adobe Flex Builder : Feature Wish - Remember Code Folding Settings

Wouldn't it be cool if whenever reopening a document using code folding (Expand and Collapse functions) every entry was not expanded as default. It would be so very nice if the IDE could remember the code folding state of the particular document and restore this state when reopened.

Its just an idea ! :-)

Thursday, December 06, 2007

WinToMac : Its begun !

The day before yesterday my latest attempt to climb up of the Microsoft hole I feel into 11 years ago arrived with the mail...

It consisted of a...
- Mac Mini (Fully loaded configuration)
- a sizzling 23" Mac display
- a set of the Wireless Mighty Mouse and the Wireless Keyboard (2008 edt.)
- an Elgato TV Link (Hybrid variant)

Initial setup was a bliss (even the Bluetooth Mouse and KB didn't incur any difficulty - spoken as a true windows user, I guess - because I guess the MAC people wouldn't even consider having difficulty with such a non-productive action) and after updating from the pre-installed OSX edition to the new Leopard edition via the included update CD I was installing the TV link without any hazzle whatsoever.

After apr. 20 minutes (the OS update took 15 of them) I was up and running including having my wireless network connection configured and gained access to all my shared windows drives on the network.

So far so good... I will keep you posted as I go down the path from Windows to Mac.

Thursday, November 29, 2007

DFUG : Interview w. PV3D' s Ralph Hauwert and Mike Chambers

Mike Chambers have posted an interview following the DFUG / Adobe AIR User meeting in Aarhus.
I'm attending Ralph's course on PV3D next month in London, and this interview just even makes me more happy to have signed up already.

Check out Ralph's blogpost on it (linking to the video of the interview):
http://www.unitzeroone.com/blog/video_interview_on_papervision.html

Bloggerwave



Nu kan man tjene penge på at blogge.
Umiddelbart får jeg feks. 50 DKK for dette indlæg.

Check det ud:
Bloggerwave

Thursday, November 22, 2007

Adobe AIR : AIR/MTV challenge

Adobe and MTV are hosting a contest to find the coolest apps built using Adobe AIR and the MTV Assets.

I definitely wanna join, but I still need to:
- find a cool project to do.
- find some other people interested to join with.
- convince my company that its valuable to join such a competition enough so they will allow me to stop overworking myself on projects with customers 16 hours a day...

Check it out:
adobe.mtv.com

Sunday, November 18, 2007

CouchTycoon : Social Investment Network

CouchTycoon is the "Friends n Family Venture Network". Participants can directly invest in start-ups starting at approximately $ 4 and they can trade their shares theyve bought once. So startups get financed and quoted in real values and at their very first steps they do. To invest and trade shares of startups you must convert your dollars to "CouchChips" first, as they call their own currency. To submit a project is as easy as writing an e-mail or blogging. Describe your project like you would do in an e-mail to one of your friends. Your post will appear on the "Going to Beef Island" site as well as in the "Going to Beef Island Feed" which you see below. This way community members can easily be updated when new suggestions are published.

Check it out:
http://www.couchtycoon.net/

MAC vs. PC : My New Toys

Last Friday my Logitech keyboard broke down again, but this time never to return from the promised land for keyboards.
Having scavenged the various internet-stores, I decided to purchase a set of the new Apple wireless keyboard and its co-worker: The Mighty Mouse Wireless.
The design (and quality) of these guys are extraordinary good and absolutely second to none !





They are Bluetooth enabled so I figured I might have a bit of a hassle when attempting to connect the stuff to a Windows XP Pro, especially because the package and manual mentions nothing of being Windows compatible and actually even states MAC OS and an Apple PC as technical requirements.
Nevertheless, connecting the Keyboard was completely straightforward and soon the I could use the awesome Apple keyboard to focus on installing the Mouse, this would however prove to be more of a challenge.
Initially the mouse was easily recognized by Windows, but off course it would not accept to be paired without a passkey which I suppose is not necessary on a MAC since it does not mention a passkey in the installation procedure description in the manual.
However, after at short browsing on the web, I soon learned that the passkey is "0000 " (the obvious choice next to the omnipresent "1234" - I suppose) and after having given the Windows Bluetooth device installation routine this: it required a reboot in order to operate correctly. Which i eventually did as it didn't function immediately after installation and hence making my HomePC (the centerpiece of the apartment) even more attractive than it already was (My customized Shuttle PC from many years ago when shuttles became high fashion).
There is absolutely NO PROBLEM using these cool Apple accessories with a Windows PC and the mouse even supports left and rightclick with its seemingly single button, but it actually recognizes which side of it I have clicked on.... nice job from Apple :)

I must admit that this experience have made me more inclined to explore the possible switch to a MAC which is now made feasible by the drastic improvement made in the virtualization software making it possible to use the Windows Applications on which my work is so dependent.

Friday, November 16, 2007

Archive : Decreased memorial skills as an early warning of negative stress

If a co-worker suddenly appears to have a decrease in memorial skills its often at sign that something is occupying their mind, however sometimes for no apparent reason they may start to display this as well and it can be an early warning that a negative stress situation is emerging.

Standing alone this is far from a clear indication that negative stress is building up, but it can be an early warning... and together with other signs it can be a pretty clear indication.

Archive : The early signs of negative stress

In case you didn't know, negative stress can be handled effectively if caught early.
Many organizations have a stress policy which includes information about stress and how to recognize it if happens to one of your co-workers or yourself.
However, if you happen to work in a place with no such thing, but still run the risk of negative stress you might want to know what the early signs of negative stress look and feels like.

The organization I work for don't have a declared stress policy, nevertheless are the lower strategic- and tactical-management pretty good at adjusting the work load in recognition of e.g. a tough haul up towards a deadline, so we are pretty well off in comparison to many other places.

However, in lack of a declared stress policy I will try to address the issue in a number of posts and attempt to give some quick and dirty (and easily implementable) advice for how to handle an emerging stress situation for either yourself or the team you work in.

Initially its important to recognize the fact that your co-workers most often will notice the changes towards a negative stress situation before yourself, so I will start with the symptoms for how you can recognize it in others and then move into the ones only you yourself (and perhaps your close relations) can know about.

PS. Please comment on this topic and please let me know if there are certain topics your would like to see covered.

Archive : 10 tips for networkers

Are you the type of guy that sees networking as a sort of competition and do you count the number of business-cards at the end of the a busy networking-day, then this article is for you...

Read it and weep:
http://www.businessweek.com/print/managing/content/oct2007/ca2007109_711568.htm

Archive : What the Wall Street Journal thinks about Cubicles

If you thinking about rethinking the office-layout, there is a interesting shoutout from the Wall Street Journal about major Silicon Companies trading the cubicle for more open and flexible office-layouts.

Check it out:
http://online.wsj.com/article_email/SB119240097861658633-lMyQjAxMDE3OTEyNTQxMDUwWj.html

Archive : IT pros get more for soft skills

A report by Foote Partners shows that employers are paying higher premiums for noncertified tech skills such as enterprise applications, e-commerce, and process management than for verified skills.

Check it out:
http://www.informationweek.com/story/showArticle.jhtml?articleID=202404815

Archive : Know the full names of your co-workers

Know the full names of your co-workers, even if you work distributed and you may never have seen the person it helps in the communication if you know their name.
Salespeople have known this for ages and they do this consistently because it works in creating increased attention and trust between the two participants in a dialog.

Archive: Challenging Telework Myths

Here is a very useful piece of arguments for why teleworking can be made a success...

Check it out:
http://webworkerdaily.com/2007/10/01/challenging-telework-myths/#more-1179

Adobe Flex : Dynamically loading classes at runtime

Loading classes dynamically is a powerful and very useful technique.
Using the SWFLoader in the controls package makes doing this straightforward ...

var libraryLoader:SWFLoader = new SWFLoader();
libraryLoader.source = "Library.swf";

if( libraryLoader.loaderContext.applicationDomain.hasDefinition( "Foo" ) )
{
var FooClass:Class = libraryLoader.loaderContext.applicationDomain.getDefinition( "Foo" ) as Class;
var fooInstance:* = new FooClass();
}


An interesting aspect with this technique is the theoretical ability to have several classes with an equal fully qualified name in the same application instance as long as they are loaded from different applicationdomains. I cant foresee what eventually will happen in the case of a casting collision, but I intend to find out as soon as I have 15 minutes to spend.

Thursday, November 15, 2007

Graphics : Seam carving tool freely available

If you have not been caught in an underwater cave for the last 2 months, you have for sure been excited about the prospects of seam carving pioneered by the bit-wizards: Mr. Shai Avidan and Mr. Ariel Shamir.

However, now the technique is made freely available thanks to the guys at RSIZR... Check it out:

PV3D : New showreel 2007

There has just been released a new showreel for Papervision 3D...
Words cannot describe it, so I'm just gonna leave a link for you folks to follow and see for youself...

http://papervision3d.blip.tv/

Adobe Flex : Shortcutting to LiveDocs

Mike Potter from the Flex Developer Marketing Team implemented a redirect on Flex.org that gives easy access to Flex Package Documentation.
Just type flex.org/[fullpackagename|fullclassname] into your browser and it will redirect you to the official Adobe LiveDocs page for that package.

For example, http://flex.org/mx.controls will take you to the mx.controls package documentation and http://flex.org/mx.controls.Alert will take you to the Alert class in the Controls package.

Thanks to Mike Potter for doing this simple addition to the Flex.org website...
If you want to know more about how or why, you can read his blog-entry about it.

Check it out:
http://weblogs.macromedia.com/flexteam/archives/2007/11/access_to_packa.cfm

WebORB : Passing headers from the Client to the Server

Passing custom headers from the client to the server is made very easy using RemoteObjects and WebORB for .NET.

1. Initially during the construction of the RemoteObject in the client-code, we add an eventlistener for the Invoke event on the RemoteObject:


this.service.addEventListener( InvokeEvent.INVOKE, ServiceDelegateCallManager.handleInvoke );


2. In the handler we add the header:

public static function handleInvoke( event:InvokeEvent ) : void
{
var message:AbstractMessage = event.message as AbstractMessage;
message.headers.MBUserID = User.current.userId;
}


3. On the server its really easy to retrieve the custom headers side by side with the default Flex DataServices headers. In the respective method called on the server we are now able to retrieve the added header with a mere 3 lines of code:


using Weborb; // to import ORBConstants
using Weborb.Util; // to import ThreadContext

Hashtable props = ThreadContext.getProperties();
Hashtable headers = (Hashtable)props[ ORBConstants.REQUEST_HEASDERS ];
String mbUserID = (String)headers[ "MBUserID" ]


Note:
Thanks to Mark Pillar from MidnightCoders for providing the insight in WebORB to do this.
If you are interested in reading more about Flex and .NET security, please check out Mark's article on Adobe.com - its and excellent primer on this topic (http://www.adobe.com/devnet/flex/articles/net_security.html)

Flash Platform : Now the add campaigns start rolling

Having seen the amount of momentum currently wthin the community, Adobe is now responding with a massive Flash Platform campaign.
This is the first (of what I presume will be many) ad-apps for the Flash Platform.

Its supercool...
Oh... remember to turn on sound and the HD !

Check it out:
http://www.adobe.com/flashon/

Flash Player : Mac Player FileUpload Complete event not thrown

I have been raving a long time about the missing Complete event in Mac players, it appears that it is caused by a zero-length response is returned to the client.

Its been there a very long time as I remember having troubles with it during the Flex 1.5 days developing for the Macromedia Central runtime.

A quick and dirty hack on the server is to write something (can be anything) back into the response stream. Clients will ignore the payload and only look for the HTTP status header but the Complete event will be thrown on all players... :-)

is it not an option to modify the servercode, you can make up for the missing event by listening for the progress event and in the handler comparing the amount of processed bytes with the total amount of bytes.

Adobe Flex : Access Framework Sources during debugging

It’s very useful to have Flex framework source available in your workspace, so you can easily search it, and so that Flex framework source files can be opened with Ctrl-Shift-F. (They can be opened with Ctrl-Shift-T even if the files aren’t in the workspace.)

Here’s how:
1. In your workspace, create a new project: right click in the navigator, pick New > Project…
2. In the wizard dialog that appears, under General, pick the plain “Project” choice and press the “Next” button.
3. Enter a name for the project. I use “Flex Source”. Leave “default location” checked, and press the “Finish” button.
4. After the project is created, right-click on the top level of the project and pick New > Folder.
5. Don’t fill in the Folder name, but instead click the “Advanced” button, check the “Link to folder in file system” checkbox, and enter the path to the “mx” folder underneath the framework source. On my system it’s in C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\source\mx. This should auto-fill the folder name field, and it’s fine to accept the default. Press the “Finish” button.

Wednesday, November 14, 2007

Adobe Flex : Moxie T-shirts

You can now order your own un-official Moxie T-shirt so you can wear your "puppy with pride".

It's a whopping 28$ per unit excl. shipping and handling so I very much doubt that I will see too many of them walking around the streets of Copenhagen.



Check it out:
http://at-the-beachgallery.com/moxie_dog_page.html

Tuesday, November 13, 2007

DFUG : AIR User Group Meeting in Aarhus

Last Thursday I had the great opportunity to attend a couple of hours of free-stepping by the two AIR evangelists, Mike Chambers and Lee Brimelow (both from Adobe).

Making Aarhus one of their 6 European stops on the AIR User Group tour of Europe it was a great opportunity for me as a true Copenhaniac to revisit the wonderful capital of Jutland (The danish mainland)(Copenhagen is our nation's true capital featuring our Parliament as well as the notoriously expensive amusement park Tivoli and the (for most tourists surprisingly small) Little Mermaid).

Anyways...

The setting was LynFabrikken, a media collective featuring just about everything the nearly human developers heart may desire. I had brought my GF for the trip so we started getting some sushi at a nearby SushiBar and bringing it to the venue. Everybody else was drinking beer and eating pizza so we kinda didn't fit into any of the arch-types present, but neither did the fact that she was a female so I suppose we were the odd couple of the crowd (I counted 3 female specimens out of the apr. 120 attendees).

Mike Chambers started presenting General Adobe... I shall not elaborate on this, you will know already for sure.

Lee Brimelow continued after the break where most people used the opportunity to refresh themselves from the DFUG-sponsored bar and to catch up among their network. Nice ambiance altogether.
Going through the general description of AIR, Lee entertained everybody with his informal and self-deprecating style for which he is known.
Seeing that he actually used to evangelize for WPF instead of Adobe's Flash Platform I couldn't keep my question bottled up about where he saw the eventual standoff between Flash and WPF taking place and on what grounds.
He refused such a thing would happen due to the completely different characteristics of the two platforms.
He used the opportunity to make sure that everyone was aware of the fact that Silverlight and Microsoft is great for creating applications, but they sucked at creating experiences. So if you want to create a boring CRUD oriented data-management application in a controlled environment its fine to use WPF, but if you want to create an experience or even just to wrap tedious work processes for users in a compelling UI, the the Flash Platform would be your obvious choice... Not mentioning that its SO unlikely that Silverlight will ever get the same penetration as the Flash player but leaving this unsaid and yet there was none among the audience that wasn't aware of this fact. Unfortunately he managed (once again) to avoid answering and explaining concretely his drastic change from evangelizing one thing to evangelizing the opposition... some day I hope to get him to explain in details this transition of epic proportions.

Shortly after the conclusion the American guys left to catch the train to Cologne (The location for the meeting next day) and I ended up having a very interesting talk with Andreas Hollström from Adobe Nordic about the interdepartmental processes on Flex development projects, a dialog that took its offset in the Thermo review and soon moved into general process optimization... interesting stuff :-)

The GF and I soon had to split to catch our train back to Copenhagen, so we had to leave the free bar unravished, but I promised to come back soon and take care of that.
I had to limit myself to one beer during my chat with Andreas as I had to launch an early public Beta of our newly developed project for Elsparefonden: "Min Bolig | Det intelligente hjem".

The deployment went fine as did the train ride. My GF not coming from Denmark and not being technically inclined, actually enjoyed the trip and I am considering to bring her to more of this sort of thing as it always lights up the room with a beautiful girl, and it almost NEVER seems to bother geeks and other nice folks to be in the presence of a good looking female (but then again, who would dislike that).

Adobe Flex : Zoom|Pan Interface Guide

I have been trying to mess around with the FIG for Zoom|Pan from Adobe, but unfortunately it has been very closely tied with the ImageViewer custom component and trying to making it to work generally for Containers or UIComponents has proven to be more of an effort than I have can afford on the current project. I have therefore been forced to abandon using the FIG and just write it in the good-old-fashioned style.

Why they have tied it so closely to Bitmap viewing beats me, so I think I will have to go with PV3D next time I need this (I still need to be more clever about PV3D before such an effort can be handled in a sustainable fashion).

PV3D : Course in London

Im so excited that there is scheduled a course for PV3D developers in Europe. Having been jealous about the two courses (San Fransisco and New York) on the NorthAmerican continent for a while, I'm pretty excited about the scheduled course in London in medio December featurering Ralph Hauwert (One of the original guys doing the PV3D engine).

Being a bit more pricey than its two NorthAmerican counterparts, I hear many people complaining... but hey, face it... the course is still priced at the equivalence of what you can make in a single day after the course on your newly acquired set of skills.

Check it out:
http://blog.papervision3d.org/2007/11/13/papervision3d-training-in-london/

PV3D : Majority Desk

Developed by Eddie Herrmann and Dan McWeeney for demo jam at SAP TechEd, Majority Desk is a 3D desktop controlled by two Nintendo wiimotes.

It’s a very interesting project running on Adobe AIR with Papervision3D on the rendering and the excellent WiiFlash on the controls.

PV3D : PaperVision 3D - my initial thoughts

If you have not yet checked it out, its about time that you do it. Some people have called it the biggest revolution since the Flash Player, and to be honest I am inclined to agree.

There are generally two major ways of using 3D in modern websites. You can use it as true 3D to create advanced navigation or presentation of objects and concepts... and you can use it create engaging UI based on existing UI principles.

The first option have been around for a while thanks to a plethora of 3rd party plugins, the second one is the UI revolution that is happening right now.
Websites are in increasing numbers adding 3D effects to existing UI structures in order to create engaging experiences. PaperVision is not providing anything completely new (people such as Ely Greenfield has produced the FlashBook a long time ago), but is merely the next natural step in a long sequence of non-revolutionary yet evolutionary developments.

PV3D is merely a VERY well-designed ActionScript API making it feasible for any Flash/Flex developer to create 3D enabled UI's. The ease with which a developer can get started developing this is actually the true revolution as all the nice UI's web-developers have been dreaming of developing since the emergence of desktop processed 3D is now made possible (and on an existing platform - namely the Flash Player 9 and its AS 3.0 runtime).

Thursday, November 01, 2007

Adobe Flex : Flex Interface Guide

Adobe has released a website that delivers a guide for how to developer user interfaces in Adobe Flex applications.

Initially it contains samples and components for the following aspects of interface development:
- Callouts
- Paged Lists
- Pam/Zoom

These sort of aspects have previously been addressed by others as user interface patterns, however Adobe calls it guides but it essentially is the same and its a very welcome initiative to standardize the development of experience-oriented applications.

Check it out:
http://www.adobe.com/devnet/flex/?navID=fig

Event : Flex Camp Boston on the 7th of December 2007

If you have the opportunity, Bentley University looks like a nice place to be for a Flex Developer on the 7th of December... :-)

Check it out:
http://www.flexcampboston.com/

Wednesday, October 31, 2007

Event : IEEE Workshop on Advanced Signal Processing

IEEE Denmark and Nokia Denmark are inviting everyone interested to the one-day workshop "IEEE Workshop on Advanced Signal Processing for Wireless Communication Systems". The purpose of the workshop is to facilitate professional and scientific networking among researchers in Northern and Central Europe within the field of signal and information processing in wireless communications.

The workshop will take place on
Friday, November 16, 2007 from 9:00 to 18:00
at
Nokia Denmark
A. C. Meyers Vænge 15
DK-2450 Copenhagen V
Denmark

The workshop is the third of this kind. The program includes three 50-min tutorials in the morning, and 8 shorter presentations in the afternoon, followed by drinks and snacks. Workshop attendance is free of charge, but registration is required.

For more information: http://www.ieee.dk/events/nokia.pdf

Registration (free of charge) required:
Rikke D. Klemmesen (rdk at es.aau.dk)

RIA : Is this Web 3.0 ?

Taking a step back from the ever occurring deadlines and technical challenges that lurch around every corner, it becomes evident that RIA may have a more significant nature than it may seem at first sight.

Not everyone agrees on exactly what Web 2.0 entails. As with all great buzzwords and concepts, people are already predicting what Web 3.0 will be. Will rich internet applications dominate it?

RIAs are still in their infancy, but when done right they're incredibly powerful tools. When Google launched Google Maps a few years ago, it opened people's eyes to the fact that web browsers can do much more than merely display pictures and text.

Currently, there are four mainstream mechanisms being used to develop RIAs.

AJAX/JavaScript
AJAX is a web development technique for using JavaScript with XML to create a rich internet application by dynamically and asynchronously exchanging data in the background without having to refresh the page. Google Maps and Gmail demonstrated what could be done with simple existing technologies like JavaScript and XMLHttpRequest. Google, Microsoft and Yahoo! all now promote their own AJAX toolkits to assist in building AJAX-rich media functionality.

Flash/Flex
The first horse in the RIA race was Flash. Adobe/Macromedia with its Flash/Flex infrastructure is still the leader in online video. Combining the programming capabilities of Flex makes an incredibly powerful toolset for creating internet applications. Flash has strong penetration and when used effectively can enhance your website.

Silverlight/.NET
Microsoft is barreling ahead with Silverlight, a browser plug-in to deliver interactive web applications that should be taken seriously. The company launched Silverlight earlier this year and is promoting it heavily to its large partner development network. Silverlight is delivered to a browser via XAML, which is a text-based markup language. This makes it easier for search engines to scan Silverlight vs. Flash.

OpenLaszlo
Finally, even though you don't see it much, there's an open-source platform for RIAs called OpenLaszlo. Initially developed as a proprietary system by Laszlo Systems, it was made open source in 2004. Not wanting to be left out of the RIA race, IBM--consistent with its embracing of Linux and other open source--has helped propel OpenLaszlo. The company worked with Laszlo Systems to use the open source Eclipse development platform with OpenLaszlo. Applications for OpenLaszlo can be run in Flash or in DHTML.

One current issue with Flash is that while search engines can index it, they don't index it as well as with text because Flash is a binary compiled file. That's why most websites aren't entirely created in Flash. Accessibility and keyboard navigation can be issues with these rich applications as well. If you don't have a mouse or can't use one, then you'll have problems with these technologies. Also, while the plug-ins have sizable browser penetration, they're problematic for some users.

What It Means for You
What does all of this mean for business owners in the Web 2.0 era? For the tech entrepreneur it means new opportunities. Many traditional client server applications are being pressured to move their applications to the web. Entrepreneurs can potentially displace client server apps with new innovative web applications. For other entrepreneurs, you have to evaluate your business and what specific benefits you can get from adding rich features to your website.

Ever Evolving
There will be other emerging technologies in the RIA area. The combination of these rich features will help trends like social networking continue to evolve. We'll likely see many websites with more drag-and-drop-type features in the next few years. The online/offline office also will continue to develop as predominant internet companies compete with Microsoft Office for the next generation office applications. Web applications will continue to become more robust and feature rich than ever before.




Note:
Copyright © 2007 Entrepreneur.com, Inc.
...and thanks to Frank Bell for his input.

Tuesday, October 30, 2007

DARPA : Grand Challenge 2007 finals coming up

For those interested in large-scale-field-robotics and perhaps more specifically automated cars / unmanned cars, the DARPA Grand Urban Challenge is a major event. On the upcoming November 3rd the final is taking place at the former George Air Force Base in southern California. The event will in its entirety be available as live broadcast via the website.

Check it out:
http://www.darpa.mil/grandchallenge/

Saturday, October 27, 2007

Facebook : Think (perhaps even twice) before creating an application

O'Reilly research has analyzed the usage patterns of Facebook applications and have come to a pretty unambiguous conclusion:

- chances are very significant that your application will be born, live and die in complete uselesssness for the bulk of the Facebook users !

The analysis revealed the following factualities:
- There are more than 5000 Facebook applications.
- There are millions and millions of active users.
- 87% of the usage only goes into only 84 applications.
- Only 45 applications have more than 100.000 active users.

Check it out:
http://radar.oreilly.com/archives/2007/10/facebook_long_tail_report.html

Friday, October 26, 2007

Adobe Flex : 30 days free online training

Total Training is offering 30 days free Adobe Flex training.
Just follow the link below and you will be redirected to a page with an activation code. This activation code will be yours to redeem before the 30th of December (So there is plenty of time).

Sign up here:
http://www.totaltraining.com/guest/adobe

Thursday, October 25, 2007

360|Flex 2008 Europe : Now its confirmed

Barely having licked the wounds from the Barcelona MAX conference its time to plan for the next big event on the European Flex scene.
Flex|360 is coming to Europe next year in April and if you are a Flex developer: be sure to attend as I am sure that its gonna be rewarding as heck as the Flex development community gains more and more momentum... and it might coincide with the release of the Flex Builder 3 as well as Thermo will be publicly available!

Read more here:
http://www.360flex.com/360Flex_Europe/2007/10/were-official.html

And about the 360|Flex in general here:
http://www.360conferences.com/360flex/

Adobe Flex : Improving startup performance

Watch what you do at startup !

Don’t call setStyle() if you can avoid it, it’s one of the most expensive calls in the framework since it can trigger reloading styles in every component on the display list. If you have to call setStyle(), do it in the INITIALIZE event handler instead of the CREATION_COMPLETE handler. Use deferred instantiation when possible (leave creationPolicy=”auto”). Avoid unneccessary nesting of containers.

Adobe Flex : Improving startup performance

Watch what you do at startup !

Don’t call setStyle() if you can avoid it, it’s one of the most expensive calls in the framework since it can trigger reloading styles in every component on the display list. If you have to call setStyle(), do it in the INITIALIZE event handler instead of the CREATION_COMPLETE handler. Use deferred instantiation when possible (leave creationPolicy=”auto”). Avoid unneccessary nesting of containers.

Tuesday, October 23, 2007

MS Visual Studio : Features in Visual Studio 2008 and .Net "Orcas"

Microsoft has published the featurelist for Visual Studio 2008 and .NET "Orcas".
They ask us (the development community) which features to prioritize high... exciting stuff :-)

Check it out:
http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx

Saturday, October 20, 2007

Adobe "Thermo"

Both before and after Adobe MAX Europe 2007 we have discussed which role Thermo is going to play in the integration between the graphics department and the development department.
To clarify a couple of things Narciso Jaramillo has posted some of his thoughts on his blog which are worth reading if interested in the emergence of Thermo.

Check it out:
http://www.rictus.com/muchado/2007/10/07/thoughts-on-thermo/

Note:
Narciso is part of the Adobe Flex Team.

Friday, October 19, 2007

Adobe Flex Builder : TODO/FIXME plugin

Among the many many cool things I have taken with me from the Adobe MAX Europe 2007, is the knowledge of Dirk Eismann who has been a Macromedia Fellow since 1996.

The first of what I expect is going to be many posts relating to this very sharp and super cool guy is a TODO/FIXME plugin he has implemented for the Eclipse-based Adobe Flex Builder.

Check it out:
http://www.richinternet.de/blog/index.cfm?entry=911D4B57-0F0D-5A73-AF6F4D4D04099757

Many thanx to Dirk for sharing this very cool plugin with us, the community...

Thursday, October 18, 2007

Adobe MAX 2007 : My Attended Sessions

At this years MAX in Europe (The first of its kind on this continent) I attended the following sessions:

- Flex Best Practices
- Open Source Flex
- Adobe's approach to Application Design
- Inspire Session : The blind sketch maker
- Flash Player Internals
- Customizing the Flex Framework
- Design Lead Innovation : Creation Disruptive Experiences
- Inspire Session : 50 reasons why ActionScript 3.0 rocks
- Advanced LiveCycle Data Services for Flex Developers
- Practical Patterns in Flex
- Best Practices for Developing with ActionScript 3.0
- Functional & Performance Testing Flex Applications (Borland's Approach)
- BootCamp for Flex



The sometimes very difficult decisions to make as to which sessions to attend, I made based on the person presenting as well as the topic. That explains why some of the sessions I attended can be found to be in conflict with concurrent sessions with a topic closer to my field of expertise. I think in overall perspective that this priority paid off well when we during the "post-factsessions-beerdrinking-sessions" compared our experiences, it seems that I generally have steered clear of sessions involving people with poor presentation skills and the sessions with people the less knowledgeable than myself. I did however make a couple of misses, as I found some of the sessions which hit my field of expertise 100% to be too important based on the topic alone to ignore, contained nothing new to me.

I will make post's in the near future about every single one of them once I get my notes reviewed.

Thursday, October 11, 2007

Adobe Max 2007 : Intro Networking Application

I just received the final details email for the Adobe Max 2007 in Barcelona.
There is a cool intro-networking application that provides you with a network map of all attendees where all attendees are placed on the map corresponding to their compatibility.



The pin in the middle is off course me, so I take it that I am not so very compatible since everybody seems to be located in an incrementing pattern away from me...

This is very cool work, guys... keep it up and we will keep coming back for more :-)

Tuesday, October 09, 2007

Adobe Flex 3.0 : Charting Documentation

I have been asked many times now about this so I have decided to post about it in my blog. The Adobe Flex Documentation team has as a matter of fact already released the missed out documentation for Flex charting shipped with Flex 3.

Download it from Adobes website:
http://blogs.adobe.com/flexdoc/charting_chapters.zip

The Daily Motivator : Quit with dignity and style

"If Leaving the Company, Do So in Good Standing. At some point, every worker is faced with the dilemma of whether to leave their current employer for a better job. If you do decide to jump ship, you are then faced with the question of how to do it right."

I have found this article from the Washington Post by Lily Garcia about how to quit your job with style and how not to burn the bridges behind you just because you have found it necessary for whatever reason to move on.

Check it out:
http://www.washingtonpost.com/wp-dyn/content/article/2007/09/06/AR2007090601469.html

The Daily Motivator : I love My Work

"Work is not a necessary evil. It is, instead, an intrinsic source of pleasure and value" does it sound like something you might think from time to time, then read this article about Arthur C. Brooks in where he explains the true values inherent in ones work.

Check it out:
http://american.com/archive/2007/september-october-magazine-contents/i-love-my-work

Adobe Flex : Class Library Posters at Adobe Max 2007

Im looking forward to going to this years Adobe Max Europe in Barcelona. Not only is the weather much better there than in Copenhagen, Denmark but I cant wait to be surrounded by other developers engaged in the RIA and to get a grasp of how big and engaged the scene actually is... However, among the many things I expect to gain at the venue I also expect to get my own set of Flex Class Diagram posters in French cinema poster size.

Check it out:
http://www.onflex.org/ted/2006/10/cube-wallpaper-as3-and-flex-api.php

Joel on software

Its old news by now, but it doesn't change the fact that its a thoughtprovoking piece of text that definitely is worth spending 5 minutes absorbing...

Joel on software, strategy letter VI:
http://www.joelonsoftware.com/items/2007/09/18.html

Monday, October 08, 2007

Adobe Flex 3.0: ILOG Elixir

Adobe announced that it plans to resell ILOG Elixir, a new advanced data visualization component set for Flex 3 including org charts, gantt display, geo maps for dashboards, treemap charts for analyzing large data sets, 3D charts, and 2D chart extensions with radar charts.

ILOG elixir is a new component library for the Adobe 3.0 platform. Its currently in Beta, however its release is planned to coincide with the final release of Flex 3.0 currently scheduled for early 2008.

Built specifically for the Adobe Flex 3.0 platform. ILOG Elixir provides advanced capabilities for:
- 2D chart extensions with radar charts (also named spider charts)
- Full 3D charts including bar/column, area, line and pie
- Treemap charts, for analyzing large data sets
- Planning and scheduling displays, such as Gantt charts
- Organizational charts
- Maps for creating interactive dashboards

ILOG Elixir:
http://www.ilog.com/

Friday, October 05, 2007

Adobe "Thermo"

Adobe's upcoming new design tool, codenamed "Thermo" enables designers and developers to create working application prototypes, design application transitions/motion, and transform static UI mockups into declarative MXML source.

Adobe Thermo:
http://labs.adobe.com/wiki/index.php/Thermo

Thursday, October 04, 2007

Adobe Flex : DataProvider to a Charting Series

I have found that when setting the series for a charting component in Adobe Flex 2.0 it is important to remember that it does not respond correctly to anything except an instance of Array, this means that you can not use any members from the Collection package directly, you can off course still use the ArrayCollection.toArray() when setting the dataProvider property.
However, another spurious thing to consider when working with the dataprovider of a Series item, you can not use the methods of the dataProvider if you want the Chart to respond to the build-in-databinding mechanisms, e.g. even though you know that the dataProvider property points to an Array, you can not use the Array.push() to add a new member of data dataProvider - you are forced to set the entire Series.dataProvider property every time you want to force a build-in-databinding-triggered-update on the Chart component.

These small quirks are not included in the documentation.

Adobe Flex Builder 3.0 B2 now here

In the new and inspired effort from Adobe to be more extrovert about their development efforts, especially towards the RIA development community to which I suppose I belong, Adbobe has now released the latest Beta version of the Flex Builder both as standalone application as well as the Eclipse plugin.

According to Adobe the changes in this release are primarily changes based on feedback from the development community... its nice to see that the effort put into the early-release program by the development community is being rewarded.

I have been using the B1 edition since it was released and I have had only minor instances of mishaps and no critical losses nor unintended alterations of data, so I don't hesitate to use the B2 as my primary development environment. If I encounter any issues I will post them here as well as in the Adobe-JIRA.

Link to the latest edition of the Adobe Flex Builder:
http://labs.adobe.com/technologies/flex/flexbuilder3/

My Network