October 24th, 2007

Flex Builder 99%? Let’s make it 100%!

RE: Minor annoyances in Flex Builder 3 beta 2, see below and please vote!

First off, I just want to say that I really love developing my Flex and AIR in Flex Builder 3 beta 2. It’s amazing, and the work that’s been put into it is much appreciated! If you haven’t downloaded it yet:

http://labs.adobe.com/technologies/flex/flexbuilder3/

Second, I want to say if you’re not actively using the bug tracker, then you better start! If you don’t use it, I don’t want to hear your complaints about how this or that is buggy or lacking in Flex Builder 3 when it’s released. :) If you don’t know how to get to the bug tracker:

http://bugs.adobe.com/flex

Third, I’ve had about 6 or so minor annoyances with Flex Builder that have cropped up over the last couple months. I finally got around to getting them all into the bug tracker yesterday. Four were new bugs I logged, one was a closed one which I brought back to life with a sub-task, and one had already been logged by an Adobe engineer.

Anyway, take a look if you’re interested – they’re ordered from most annoying to least annoying – and if you run across these issues when you develop, please vote for them so that they get dealt with:

Thanks in advance!

October 23rd, 2007

Off Topic: Get your Skindred while it’s hot!

I’ve been following this band since they re-released Babylon a couple years back and seen them live a couple times…they’re one of the most rockin bands out there, and their guitarist Mikey used to be a web developer! :)

Here’s their page with some sample clips:

http://www.myspace.com/skindred

Also, if you feel like purchasing, their record label is giving out free t-shirts with CD purchase:

http://www.bgimerch.com/store/product145.html

DISCLAIMER: I, in no way benefit monetarily from either of these links. I’m just a really die-hard fan!

October 23rd, 2007

Flex nugget of the day: Are you a smart developer?

I’m going about my business today in Flex Builder 3 beta 2…I open index.template.html in the html-templates directory of my Flex Project…Low and behold the following comment:

<!-- Smart developers always View Source.

This application was built using Adobe Flex, an open source framework for building rich Internet applications that get delivered via theFlash Player or to desktops via Adobe AIR.

Learn more about Flex at http://flex.org // -->

If you don’t believe me, check out the screen cap (click for full scale):

Wow…I’m a smart developer…and the funny part about it is I’m only one by accident. ;-)

If you’re curious about how this nugget came to be, feel free to ask Matt Chotin…looks like this nugget got it’s start in the Flex bug tracker. –> https://bugs.adobe.com/jira/browse/SDK-12476

Powered by ScribeFire.

October 17th, 2007

Quick notes on CoCoMo aka Common Collaboration Model

If you were at MAX this year, you would have seen this really awesome product in the sneaks called CoCoMo. Basically, take Flex as the front-end, and Connect as the back-end and there you have it.

The nice thing about CoCoMo is when using its SDK, and some Flex 2 coding kung fu you can build some pretty impressive collaboration apps – meeting room, web cams, shared whiteboard, etc. – in very little amounts of code. Examples I’ve seen are in the realm of 3 – 30 lines of code!

I just got out of a web seminar detailing some of the tech behind it, and although they said not to post any screen shots, and the amount of notes I took were not as many as I would have like to have taken, mainly because I was drooling on my LCD, here they are:

  • Built on Flex 2 components
  • Will be a hosted service, uses Connect technologies, but you don’t have to have Connect to use it
  • Uses RTMP but services will eventually be interoperable with XMPP (Not definite though)
  • You HAVE TO build permissions and security into all collaboration
  • For developers there will be a high-level components section (easy) of the SDK and a low-level components section (advanced)
  • Regarding CoCoMo/Connect/Custom Pods, the current plan is not to make this available to hosted, only for a Professional version of Connect
  • Not doing remoteobjects or shared objects
  • CoCoMo will be a model simalar to Flex with some stuff being free and other stuff being for pay
  • CoCoMo private beta most likely end of the year

Anyway, if you want to keep up with CoCoMo, subscribe to the blog. It can be found at:

http://blogs.adobe.com/collabmethods/

October 12th, 2007

Geeky Fun with code signed AIR apps

As of Flex 3 Beta 2, we have the luxury of having to specify a code signing certificate when we export our release AIR applications. There’s a couple ways to go about it:

  • You can use the Flex Builder 3 Export Release Version wizard or ADT to generate a self-signed cert for you. The upside is it’s 100% FREE, Yay! The downside is you will still show up as an unknown publisher as shown in following image:

  • The second option is to buy a code-signing certificate from either Thawte or Verisign. The downside to this is it’s $$ and on a yearly basis. The upside, even though you’re not Random House, at least you will look to be a known publisher:

“So, where is the geeky fun?” you might be asking yourself. As I was doing the research on code-signing certs earlier this week, I asked myself: Since I’m a cheapskate and will be using the self-signed cert, if I show up as an unknown publisher, what’s the point?

Code-signing certs cause a security hash to be generated based on the contents of the code that’s being signed. Someone correct me if I’m wrong, but that hash is stored in META-INF\signatures.xml within your AIR file. The benefit to this is if someone decides to inject something into your AIR file, AIR will complain when the end user tries to install the malicious AIR file…if you don’t believe me…drum-roll please…bring in the geeky fun…

  1. Write an AIR application in Flex Builder 3 then use the Export Release Version wizard to create a self-signed cert, and your AIR file.
  2. Change the extension on your .air file to .zip
  3. Copy any old file you’d like into your AIR file maquerading as a .zip file.
  4. Change the extension back to .air
  5. Try to install the AIR app and you will see something like the following:

There you have it…geez…was I bored. :)

The good news is, if you’re cheap like me, you can feel good that if someone stinks up your AIR file with a concoction of their own, the runtime will be too full to take in the new stuff keeping your end users safe and sound. Good job Adobe!

Here’s a couple other tips regarding code-signing and AIR:

That’s all for now…

Powered by ScribeFire.

October 10th, 2007

Flex Profiler Memory Usage Graph – To Bug or Not to Document that is the Question…

So I’m chasing down some potential memory leaks, and I decide to use the Memory Usage graph in the new Flex Builder 3 Beta 2 Profiler. Being that I’m accustomed to using System.totalMemory, I decided I’d watch both values. Turns out there’s a difference between the two, and when one increases, they both don’t necessarily increase as you would expect.

Now some of you may say that System.totalMemory is a cumulative number that reflects the consumption of all apps running in the Adobe Integrated Runtime OR all apps running in the Flash Player, but when you’re just running one AIR app and nothing else, you would assume that System.totalMemory should reflect the number shown in the Memory Usage graph.

So here is an image – click on it for full size – of a little test app I built. The only thing it does is display System.totalMemory (Bytes) in a label control. If you do the math, and feel free to use a Bit Calculator if you’d like, you’ll instantly see that these numbers don’t match up.

Difference between System.totalMemory and Memory Usage graph

So to Bug or Not to Document?

  • Is this a bug in the display of the memory usage graph of the Flex Profiler?
    • I’ve created the bug in the bugbase, now it’s up to y’all to vote!
  • Is there something about the display of the Memory Usage Graph that’s not documented? As an example, maybe the Adobe Integrated Runtime or Flash Player overhead is not shown in the Memory Usage Graph but is when you output System.totalMemory it is. If that is the case, and it’s not documented, then hopefully we can get the exact answer to why the numbers don’t match.
    • To find out if lack of documentation is the case, I’ve posted to the Labs Flex Builder 3 forum

So…for now I think I have my bases covered, and remember for those of you that want to point out that System.totalMemory is cumulative, I’ve already taken that into account and these results were produced when only one lowly AIR app was running in the ADL.

Anyway, time will tell what the true nature of this issue is…maybe it’s just me. In the meantime, I’ll be waiting to find out!

October 7th, 2007

MAX 2007 – Optimizing ActionScript 3.0 – Slides and Demos

So…got around to posting my slides and demos for the presentation I did at MAX 2007, you can get to them from RealEyes Media Labs or use this direct link. By the way, the demos were designed to work with REDbug Console right out of the box, so you’ll need to go grab that –> REDbug Console

Just so you know, the slides and demos I have at the links mentioned in this post are a newer revision than the ones I had uploaded to the MAX presentation library. They were revised between my sessions 1 and 2 after some outstanding input from the crowd.

Although I didn’t have time to test and add everything I heard from the crowd to my presentation, it’s amazing the things you can find out about when you’re in the room with a bunch of smart developers.

For instance, here are some things I picked up during my sessions:

  • A developer at MAX stated that an optimal approach to handling child components during a transition would be to set the visible and includeInLayout properties for the component to false during the effect and set it back to true afterwards. The reason to do it this way is that it prevents a bunch of invalidation processing from running when you add/remove on the display list at the beginning and end of the transition.
  • Another developer mentioned that he used the Logging Framework and custom TraceTargets for his debugging code, this made it very easy to comment out the debugging code before going to production and he also got the added benefit of being able to filter messages based on class packages.
  • Yet another developer mentioned using linked lists when we were talking about arrays. He said that since object access in AS3 is faster than array access you can use a linked list like an array when performance is key. He also said there was an open source AS3 game developers library out there that implemented them…I’m thinking it’s “AS3 Data Structures For Game Developers“.

The other thing that I thought was fun is that we had some time to play around with the test code based on the curious questions that came from the crowd. For instance:

  • We found out that accessing a literal string vs. a variable, vs. a const, vs. a static const, all take roughly the same amount of time.
  • When typing array iterators, uints and ints are good, and Number is bad.
  • Although a conditional statement surrounding a block of code that will fail is much faster than using try/catch, if the code doesn’t fail, the try/catch statement is comparable to the conditional statement
  • Although accessing public properties from a strongly typed object is faster than accessing dynamic properties from a generic object, once you throw getter/setters into the mix the strongly typed property access becomes slower due to having to go through a function

Anyway, thanks everyone who came to my session, and especially those that added input, I appreciate it, I learned some things and hopefully you all did too!

On a closing note, the MAX conference was a blast and Chicago is definitely a swell town! I’ve got some notes on the conference in general and was gonna blog a little about my experience, but right now a little short on time…I also still owe Tom and John a review on 360Flex and have been a total slacker. ;-)

So hopefully later this week I’ll pull out my OneNote files to breakdown my experience at 360Flex Seattle just in time for promoting 360Flex Italy! Then when I’ve affirmed that I’m not a total slacker…I’ll post my experience at MAX 2007. In the meantime enjoy the slides and demos, and go play some Halo 3!

Upcoming Talks





A Book I Helped Write



Community


Ignite Denver Committee

Categories

Credits