August 29th, 2008

Help us IGNITE Denver!

Ignite Denver! BEE-ATCH!

On Sept. 10th come drink, chill, be merry and network to your heart’s content.  If anything, we’re gonna be a Fado’s so come drink some Black and Tans with me.  Also, if you’re interested in geeky, hacky, non-standard shit come watch me talk about Hackintosh for 5!  Here’s the mini-presso description:

http://ignitedenver.blogspot.com/2008/08/5-minute-intro-to-world-of-hackintosh.html

So…register now!  Here’s the link –> http://ignitedenver.eventbrite.com/

August 21st, 2008

360Flex SJC: Using the Flex Builder 3 Profiler – Slides and Code Samples

Back in Denver after a wonderful trip to San Jose for 360|Flex.  Tom and John know how to get the house rockin’, and I’m glad I had the opportunity to participate.  Although I didn’t get to see as many sessions as I had wanted, the sessions I did see I really enjoyed.  I wish I had time to bust out some reviews and notes, but I’m tired so for now, here’s the links to the rockin sessions I saw:

For those of you that were at my session, I thank you for attending and I hope that you either learned something, enjoyed something, or both.  As I mentioned, I’ve uploaded my slides and samples, and you can get to them via this link:

http://labs.realeyes.com/labs/downloads/360Flex2008-SanJose/360Flex_SJC_2008_UsingTheProfiler.zip

Also, if you missed my session, or 360 Flex itself, my session will be hosted on the Adobe Media Player channel for 360 Flex.  Here’s the link to Ted’s announcement with a comment on the post on how to add the 360Flex channel to your player:

http://www.onflex.org/ted/2008/08/360flex-15-sessions-posted.php

As I mentioned during my session, the samples I posted are nothing to write home about.  However, in addition to attendee request, here’s some notes on why I uploaded these samples with the slides:

- 360Flex_MemoryLeak.zip: It’s a very simple example with a memory leak caused by the Application.application.addEventListener( Event.ENTER_FRAME, _onEnterFrame ); call in the MyTitleWindow.mxml

- 360Flex_Profiling_FlashCS3.zip: This was the example I used to show you that you can profile Flash CS3 applications.  To recap, you:

1. Go to the Flex Builder 3 Profiling Perspective, then Profile Menu –> Profile External Application.

2. in the Profile External Application dialog choose the “Launch the application manually outside Flex Builder” radio button, set a good timeout and click the Launch button.

3. Then open the HelloProfiler.fla in Flash CS3 and launch it by going to the “Debug” menu and selecting “Debug Movie”, once it launches go back to Flex Builder and the rest will be like a standard Profiling session.

- 360Flex_Profiling_PerformanceComparison.zip AND 360Flex_Profiling_PerformanceComparison_OptimizedForProfiling.zip: These samples are the same algorithm test, just with different test code wrappers.  It is the algorithm I was profiling when I posted about the TextField warning.  The reason I included these and showed them to you during the session is that they are a good way to understand the benefits of setting your Profiler preferences and custom filters upfront before an extended profiling session.  They also illustrate the benefits of putting your test algorithms in a package other than the root package.

Anyway, that’s that, thanks again for coming, feel free to hit me up with any questions, and I’m gonna get some sleep now. ;-)

August 20th, 2008

Request to reopen a Flex Bug

We need to get this one reopened! :)
https://bugs.adobe.com/jira/browse/FB-4973

August 13th, 2008

RMAUG: Great Frameworks Debate Adobe Connect recording is now online

Without further ado, the link to the Connect recording from last night’s Rocky Mountain Adobe User’s Group meeting:

http://www.rmaug.com/rmaug/community/forum/messageview.cfm?catid=5&threadid=77&enterthread=y

August 12th, 2008

RMAUG: My 30 minute Swiz example and slides

I presented Swiz tonight at the RMAUG meeting.  All in all, it was a great presentation that covered Cairngorm, PureMVC, Mate, Swiz, and 3D Frameworks.  If you missed it, an Adobe Connect recording should be posted within the next couple of days, so if you’re interested keep an eye out here:

http://rmaug.com/rmaug/community/forum/categories.cfm?catid=5&entercat=y

In the meantime, here are some links to both my slides and sample application:

http://www.iheartair.com/samples/rmaug/2008_08/RMAUG_Aug08_JunHeider_SwizFramework.pdf

http://www.iheartair.com/samples/rmaug/2008_08/RMAUG_Aug08_SWIZ.zip

Couple of notes on the sample application.  First off, the ZIP is a Flex Builder 3 Project Archive.  Once you’ve imported it you’ll notice that the sample is something I threw together in less that 30 minutes, so it’s not overly complex.  Also, the commenting is sparse/non-existent.

However, the example builds upon the existing example code found at the Swiz project page, highlighting some of the main framework features concisely without introducing a bunch of noise.  It also takes it a step further showing you how to use Swiz with HTTPService.

On a closing note, here’s my two cents on the main pros and cons:

PROS:

- It’s a good example of what can be done with custom metadata

- Quick to pick up

- I REALLY like CommandChain.  However, during the framework debate I was shown that its functionality is something that’s available with both Mate and UM Cairngorm Extensions.

- Less code than some of the alternatives (Cairngorm, PureMVC)

CONS:

- The thing that concerned me about Swiz was the dependence on custom metadata.  Personally, I like type checking at compile time and that’s something that’s not available with string data.

- I heard some concerns during the framework debate that the reliance on metadata might be a detriment to performance, however, that’s something that would need to be proven.

- Relatively new and lacking broad developer adoption.

Personally, I think I want to keep in the loop on this framework to see how it evolves.  I think at least it may be one to keep in mind for projects that don’t require the sheer code volume overhead of some of the other contenders out there…

Anyway, If you’re interested in pursuing Swiz further, and like more information, hit up the Google Code page:

http://code.google.com/p/swizframework/

August 12th, 2008

TONIGHT: Great Frameworks Debate at RMAUG

Slap my hand…I’m always late on announcing my local user group meetings.  Anyway if you’re in Denver this evening or would like to attend *virtually* via Adobe Connect, come check out the Great Frameworks Debate at Rocky Mountain Adobe Users Group. (RMAUG)

During the night we’ll be talking about:

* Cairngorm
* Pure MVC
* Mate
* Swiz (What I’ll discuss)
* Tweener (for animation/effects)

Here are the details and RSVP link for both attending in person and via Adobe Connect:

http://rmaug.com/

See you tonight!

August 11th, 2008

I HEART SUBVERSIVE!

Real quick post…

While dabbling in the Mac OS X, I found my trusty Subclipse not to work too well.  As a matter of fact for some reason I couldn’t really get it working at all…even after two installs from the update site.  Under normal circumstances, I would have scoured the net to look for solutions, and probably posted to the subclipse bug tracker (if there is one).  However client deadlines and such prevented my usual course of action.

The solution was to take a colleague’s advice and try Subversive, another free SVN plugin for Eclipse:

http://www.polarion.org/index.php?page=overview&project=subversive

Needless to say, not only did I enjoy it in the Mac OS X, but now that I’m back in WIndows XP, I’m still enjoying it.  It’s been rock solid, I can check out and create multiple projects at once, and I can even create and associate projects with eclipse working sets right in the subversive wizard!

So…if you feel like a change, check out Subversive. :)

August 8th, 2008

TextField Performance + Flex Builder 3 Profiler + 360Flex

360 Flex


I’m sure that many of you might not read to the end of this article, so I’m plugging the premiere Flex conference and my session here at the beginning. Earlier in the week Tom and John had posted that they only had 50 tickets left so I was gonna help remind everyone to grab a ticket…well, I checked the site today and it looks like they’re sold out…so, I guess for those who snoozed…you know the rest.

Also, if you’re interested in the content below and want to see more about how to use the Flex Builder 3 Profiler, I’ve got a lot of cool stuffs planned, so come check out my session at 360 Flex!

TextField performance and the Flex Builder 3 Profiler


While working on the internals of a display class, I ran into the following issue when attempting a compile.

I decided to use my handy dandy Flex Builder 3 Profiler to put this warning to the test. During the test I created a function call to test the addition assignment ( += ) operator, I then created one to use TextField.appendText(). In the test application I gave myself the ability to re-execute the test as many times as I wanted to without restarting the app.

Test Round 1

I set the tester to run each algorithm 10 times. I then ran this test set three times to get an average. Being that the Flex Builder Profiler samples and the fact that the reporting unit is milliseconds, you can see from the image below that 10 runs of these algorithms does not take long enough to really tell a difference. As a matter of fact, looking at the highlighted row in the third results shows that the Flash Player executes the code so fast that the cumulative time for 10 executions of main.main:_additionAssignmentTest was 0ms!

Test Round 2

Being that 10 executions didn’t take long enough, I bumped it up to 100. Here are the results. Notice that in the third execution, contrary to the warning I got in Flex Builder according to the sampling data the addition assigment test ran faster than the appendText()

Test Round 3

Now we’re bumping it up to 1000 executions apiece. Once again, in the second set of results below, the sampling data contradicted the Flex Builder warning.

Test Round 4

I decided to bump it up to 10000. As you can see in the first set of results below, once again the sampling data contradicted the Flex Builder warning.


Test Round 5

During the previous rounds, I tested by just sending the character “a” to the two append algorithms. This time I set the tests to run for 1000 executions and sent the append algorithms the loop iterator i.toString() – resulting in anything from 0 to 999. As you can see appendText() won this round with flying colors!

Conclusion

After viewing the results of these tests you can come to realize a couple things:

1. When you’re testing, don’t just run one test. As you can see, the sampling data can fluctuate. Performance results can not only vary based on the state of the operating enviroment, but also by the data you’re testing with. In other words, if you want to be sure on performance gain, either test with the closest matching use case to your application or if you’re just assessing general performance run many tests using different scenarios.

2. Although the addition assigment ( += ) was faster than the TextField.appendText() during a couple runs, for the most part, the warning in Flex Builder was right on the money. Especially in the case of running many executions with more characters being appended to the TextField text on each iteration.

3. The Flex Builder 3 Profiler ROCKS!

Oh, and one final thing. I’ve uploaded my Flex Builder 3 Project Archive for this performance test I ran…you can access it here:

http://www.iheartair.com/wp-content/uploads/2008/08/360Flex_Profiling_PerformanceComparison.zip

See you at 360!

Upcoming Talks





A Book I Helped Write



Community


Ignite Denver Committee

Categories

Credits