Briefly: RIA Camp at Adobe SF
I’m planning on attending RIA Camp next week at Adobe. So, if anyone wants to talk San Francisco Flash Platform User Group with me, then you should come on down. These small camps are always fun ![]()
I’m planning on attending RIA Camp next week at Adobe. So, if anyone wants to talk San Francisco Flash Platform User Group with me, then you should come on down. These small camps are always fun ![]()
I think that this past week and a half has been the most stressful part of my year so far. Why? Well it all started with my landlord calling us to inform that he’s selling our place and that, at the very least, we have a month until we have to move. The first thing that comes to mind is panic! The second thing that comes to mind is more panic because the holidays are coming up and this is the worst time of year to be finding somewhere.
This past two years we’ve been living in Emeryville (around where the road caught on fire and where Ikea and Pixar is located). Emeryville isn’t the best area, but it was very close to where I used to work, thus it seemed like a good idea to move there. Now I work in SOMA (South of Market, San Francisco), it’s a little far away, so we were planning on moving anyway, just in our own time.
After attending around five open houses, I came to realize that the situation was worse than I’d thought. Not only did most of the places suck, but many of them had lots of people bidding on them. Sometimes, contracts would be signed within the first five minutes of an open house. This whole experience was absolutely depressing. And to top it off, I don’t even have a credit history in the states yet (fyi: I’m British) as I don’t own a credit card yet and pay for everything with ATM (yes, I’m stupid, but I thought it was a good thing not to have any debt). So being picked out of large group of people was hard. The only thing I really had going for me was working for Sony.
Insolently, one of my co-workers was also moving. He was moving out of the Marina to buy a place in North Beach. So I asked if he could refer us to his landlord as good people to take over his old place. This all seemed like it would pay off, until we were informed that the rent on the place had gone up from 1700 to 2100 bucks!!! Crazy huh!?!
Just when it seemed that we were going nowhere, the building manager from the building in the Marina called. He informed us that there was another unit that had become available and as we had been previously refereed, our application would be bumped to the top of the pile if we were to apply. The only road block now was the units owner appreciating my status and lack of credit history.
So finally today, I get a call informing me that we have been approved and that we can move in soon. WOOOOOOO!!!!
![]()
Filters in Flash are great, but I do have one big problem when working with them. As I’ve stated many times in my blog, I’m quite the ActionScript purist and I hardly touch the Flash IDE or FLA files. Thus visualizing a filter purely in code can be quite a pain. So sometimes, I’ll open up the Flash IDE and work on creating the filter settings with the help of the nice GUI controls. The problem is then converting all of my filter settings back into reusable ActionScript code.
To make this process a little easier, I took two minutes out to create an ActionScript class that accepts a display object as an argument, and then traces the ActionScript code needed in order to recreate the filter to the output console.
Check it out …
See the example below
So “OS X 10.5 Leopard” is out tomorrow and yes, I shall likely be stopping by the SF Apple store on the way home to pick it up. Between my wife and I, we have around 5 Mac’s in our day to day life. Myself, I usually use my laptop at home and at work I’m using a 24″ iMac running Tiger.
But here’s the thing, I’ve been running the WWDC version of Leopard on my MacBook laptop for the past few months now. And you know what, most of the time I don’t even notice I’m switching between it and Tiger.
I think that right now, the only thing Leopard has over Tiger is it’s polished look. Leopard has had a lot of upgrades backstage, so they are not so apparent in everyday use. But, I guess that once applications start taking advantage of these new features, then maybe the worth of Leopard shall start to shine through. Hmm.
But like I said, I am still going out tomorrow to buy it so I must be a sucker for QuickView and the super fast spotlight. ![]()
The Flash world never sits still. Its drum beats relentlessly and recently the tempo has been significantly upped. Developers are slowly waking up to new tech terms such as Flex Builder, Flex Framework, AIR and “Thermo”. And trust me, a good number of “developers” find it hard to keep up. I can’t even express how sick I am of people referring to AS3 as Flex.
It used to be that the only thing Flash developers used to have to worry about was the version of the Flash player and its related Flash IDE. Now they have to deal with a whole platform family. Below is a brief list of the Flash IDE version timeline:
Apart form the whole MX period and the Adobe CS merge, the IDE version timeline appears to be quite simple and straight forward. But wait, I forgot to add Flex Builder right? or did I? Does it even live in this list at all? And what happens when “Thermo” is released?
The most prominent part of the Flash IDE has always been its timeline and rightly so, it’s an animation tool so I hear. But hold on, how many other animation tools do you use to create non-animations with? The problem is that Flash is now this ultimate multimedia platform, it ticks all six boxes extremely well - image, text, video, audio, animation and interaction. So, we need new IDE’s to deal with all of this richness and of course Flex Builder is the start of this and “Thermo” is following. But why is it all based so heavily around the Flex Framework?! I don’t get it (*confused look*). I mean, why is it even called Flex Builder? I use Flex Builder daily, but never touch the Flex Framework or code in MXML. (side rant: why can I only use MXML with Flex Framework anyway!).
I propose that the Flash Platform be repackaged into clearly named products:
From this new starting block, the IDEs could then be sold individually or in bundles aimed towards specific markets (I waiting for Microsoft recruiting to give me a call any second now…)
Of course, the whole renaming idea could possibly only cause more problems. I know I hate it when stores always move their goods around for no reason and it’s the same with product names. But I think that the current naming scheme for the Flash Platform is really messy and it only seems to add confusion. Someone who has used Flash IDE all their lives is less likely to look at Flex Builder as it seems to be called something other than Flash. The player and the IDE in the past have always shared the Flash mark and it should continue stay this way for the platform to be approachable and accessible.
Disclaimer: If there is already a San Francisco Flash Platform user group in existence, please let me know and ignore this post.
From my observations, I’ve heard of many Flash user groups from all around the world. The first few that spring to mind are based in Boston, LA, London and Belgium. They all seem to attract a good following and these people seem to want to share what they know and love with other like minded individuals.
So, what’s the motivation behind this post. Well, for the past few years, I’ve been a bit of a Flash lone wolf, as I’ve always ended up working as the only ActionScripter in my workplaces. Even now at Sony, I’m working in an office full of C engineers and one IA person. I have no one to talk ActionScript with!
At lunch times, I’ll sometimes take the short walk down Townsend St to get a burger from the Holy Grill, passing the SF Adobe building on the way. And I feel that I can’t be alone in my ActionScript world with the Flash mother-ship right next to me. haha.
For these reasons, I feel compelled to start a San Francisco based Flash Platform user group (see Disclaimer). To start recruiting people, I’ve setup a group hosted on Facebook (yes, I know it’s not the best solution and it’s only temporary) so, if your based in the Bay Area, with a love for anything Flash / Flex / AIR / ActionScript / MXML related, I would encourage you to join in!
When and if the group gets a big enough following, I’ll make another posting, both on here and on Facebook, outlining plans for a first meet to discuss how the group shall be organized.
I feel that any kind of group should be as democratic as possible, so please, if you have any suggestions or feedback on what I can do to make this group a success, please don’t hesitate in leaving me a comment or email.
Let’s make it happen! ![]()
…. and call it “RIIA” (Rich Interactive Internet Application )
The whole RIA argument is just plain stupid!
Ever since the release of Flash 8, I’ve rarely published a Flash project with a HIGH stage quality. If you know why, then you can skim this post and leave me a high-five in the comments, if not then read on …
So what’s stage quality I hear some of you asking? Well, you may of seen it feature within the default context menu of the Flash Player. And this small setting defines how certain elements are anti-aliased/smoothed within your Flash application.
Here are the four available quality settings:
So, HIGH and BEST sounds really awesome right? Think again! Let’s take a brief look at (vector) graphics:
Vector graphics (also called geometric modeling or object-oriented graphics) is the use of geometrical primitives such as points, lines, curves, and polygons, which are all based upon mathematical equations to represent images in computer graphics. It is used in contrast to the term raster graphics (also know as a Bitmap), which is the representation of images as a collection of pixels, and used as the sole graphic type for actual photographic images.
When Flash renders a vector graphic, the bitmap result of the vector data is calculated on the fly. This can be awfully taxing on the users machine depending on how complex the vector graphic drawing is. A large part of this calculation goes on smoothening-out all of the lines and edges so that you end up with something that doesn’t look jaggy, and this is where the quality setting comes into play. You can think of the quality setting as accuracy level of anti-aliasing. So, the higher the accuracy, the more work has to be done when rendering.
So what changed in Flash 8?. Well, Bitmaps staged a military coup and took the crown away from vector graphics of course (err). First off, we got the cacheAsBitmap flag, this took a lot of stress of rendering complex vectors away such as UI components. Then we got the awesome BitmapData class (its like a freaking Swiss army knife!), and finally we got Advanced embedded text rendering. The new text rendering is the most important reason for not using HIGH anymore as it does not suffer from jaggies in lower modes.
Back in 2005, I created my first Flash 8 website while working at Sparkart for Mike Shinoda’s side project, Fort Minor (http://fortminor.com/site.php). I really wanted to dip my toes into as many Flash 8 features as possible. So, in the site you’ll see blend modes, blurs, vp6, BitmapData (used for image flattening) and advanced text. But the best thing about all of this is that the site stage quality is set to LOW! Now, this site wont win any awards for usability and the code is rushed (~2.5 week project) but you’ll see how I was able to push the speed of the animation by setting the quality to LOW without really loosing anything visually. An important thing to note from this is that the site has no vector graphics, its all bitmap based.
This brings me briefly onto Papervision 3D developers who actually inspired me to write this post. Today, I came across the papervision based game “Downtown Maze Master” from Nissan. I noticed that the game was running in HIGH mode through the games context menu as my MacBooks core was running at 77% and my laptops fan soon fired up. Thanks again to the context menu, I took the setting down to LOW and immediately watched my core usage go down to 54% without any anything visually bad happening in the game. I’d usually expect papervision3d developers to be close on the bleeding edge of Flash, so I wonder why the quality setting was forgotten. And this site is only once of many papervision3d sites guilty of this sin. End of rant, spread the word :).
Bitmaps rock your sock in Flash, but what about if you need to resize bitmap elements? Well in my world today, I work mainly on creating application UIs vs website experiences, and my best friend is 9 slice bitmap scaling. To read more about 9 slice resizing, check here. But what about if you still need to utilize vector graphics and run with a LOW setting? Well, you may still need to use the HIGH setting if your vector is quite dynamic and/or shape tweened. But if your only planing to pan your vector around the stage, then you might be able to use LOW successfully if you “flatten” the vector to a Bitmap in HIGH mode, then switch back to LOW.
// ActionScript 3
stage.quality = StageQuality.HIGH;
var shape:Shape = new Shape();
shape.graphics.lineStyle(2,0xcc00cc);
shape.graphics.drawCircle(100,100,100);
var bitmapCanvas:BitmapData = new BitmapData(200,200,true,0xffffff);
bitmapCanvas.draw(shape)
stage.quality = StageQuality.LOW;
var circleImg:Bitmap = new Bitmap(bitmapCanvas);
addChild(circleImg)
The result will be a wonderfully anti-aliased circle shown in LOW mode. This method also works well for cutting down the number of elements on stage in general, just think of it as an uneditable cacheAsBitmap.
The lesson I want you to take from this post is to always play with your default quality mode before pushing your site live. You just might get a pleasant surprise :).
A few weeks ago I came across a blog post by Ryan Stewart titled “Thinking About the Purpose of AIR” and it got me thinking. In his post he talks about AIR being the removal of browser limitations, but I think its much more than that. My theory is that that AIR has the potential to replace the need for classic email. Blasphemy, you say?
My argument for this stems from the rise of social networks. I’ve been using Facebook for a good few months now, and I’m observing that email is no longer the primary medium for progressive communications. No longer do I email someone directly anymore, I’ll either post on their wall or send them a private message.
Of course you could argue that this is in-fact what email is, and that bulletin board systems have been doing the exact same thing since the dawn of time. But to me, sites like Facebook make the whole experience far more friendlier, spam free (let’s forget about MySpace for now) and far more intuitive. Agreed?
There is of course one big caveat in all of this. And that is that, social networks still need to send you a classic email in-order to inform you that there is a new event waiting for you to check out. Doh!
But wait, what if Facebook were an AIR application? As soon as someone pocked, messaged, threw a sheep at you, you’d know about it the moment it happened through some kind of “Toast”/”Growl” animation on your desktop. That poor old event email is now redundant and may never be read. “Aha!” I hear you cry or “Dur!” if your mind instantly springs to instant messages.
But, it doesn’t have to stop with social networking communication. What about mailing lists? They could now be turned into web services and allow developers create experiences around their APIs. And to unsubscribe? Simply uninstall the program! (That’s really important!) Also, how about apps such as Netflix Queue Management or Amazon package tracking? Just take a look threw you inbox and you can immediately see that large portion of those emails would work better if they we’re managed data within a purposed desktop application.
I think in most cases, people’s inboxes are a mass of unsorted data. Sure you can setup smart folders and rules, but at the end of day, it’s all useless data that most of the time is read once and throw away. Also look at your spam box, my spam box in my GMail account is currently holding 2131 emails! Email is definitely far from elegant is it? In my eyes it’s a generic dinosaur destined to meet its asteroid. More blasphemy! (side note: Ive been watching 300 on Blu-Ray too much.)
So to conclude. The email killer is a set of purposed desktop (AIR based) applications, that are usually connection to a user account, that store persistent data “pushed” out from a service.
I want to start an open source AS3 project(s) here on The Back Button. Woo! One problem though, I don’t know what it is I want to create!
This is where I need you, the community, to pitch in ideas. So, what are you missing in your day to day ActionScript life’s? What do you find yourself doing over and over again? What do you hate most about ActionScript 3?
I just love creating reusable, flexible, purist code and would love to solve as many problems as I can.
So, please leave comments here or email me directly at bustin:at:gmail:com
Let’s do it!
p.s. I’d rather stay AS3 only right now, so please, no Flex Framework/MXML request.