Java, Apple Doesn't Love You Anymore - She Probably Never Did

I have said before that, but for Adobe, I would abandon MS Windows. And, even for my own direct needs, I would probably already have plunged off the cliff towards Linux nirvana. The anchor that keeps me firmly tethered in the grasp of Redmond is the need to support designers. If the Creative Suite would play nicely on Ubuntu, I would pretty much force about a half dozen or so artists to take the plunge. But, back to reality. The only option away from Microsoft is Apple.

Apple has always been a non-starter for me. Perhaps unduly biased by a father who insisted on building his own computers - literally transistor by transistor in 70's and 80's - the early Apple offerings were considered "toys". That probably wasn't fair, but what might have been a hard-to-justify historical bias has instead become healthy fear of a company that would control its customers instead of serve them (this is done by offering a diminishing pool of seductive choices until one has so much invested into a brand that self-deception is easier than objective decision making - thinking may hurt more, but it's a good pain). Anyway, I don't have a good opinion of Steve Jobs the businessman or Apple the company (Steve Jobs may be a great guy in other arenas). Short story long, jumping to Apple is not likely happen of my own volition.

That said, it'll probably be a moot point soon. As Apple threatens to kill java as a viable application platform on the Mac, one suspects that this will ultimately mean the end of Mac versions of Flash Builder, Flash Catalyst and ColdFusion Builder. The problem is not that Apple will stop supporting Java, but that too much of the Apple platform is hidden from developers:


Tampa Bay Area: Flex 4, Flash Builder 4 and ColdFusion Builder Meetup and Happy Hour (04MAY2010)

This Spring is really shaping up to be really good for developers in Tampa. And of the upcoming events, this is the freebie one that you'll want to definitely attend. With promises of T-Shirts, software (Adobe Flash Builder 4/ColdFusion Builder) and potentially other stuff (I'm thinking stickers and maybe posters) - oh and adult bevarages - the Central Florida Web Developers User Group is hosting a meetup on Flex 4, Flash Builder 4 and ColdFusion Builder.

Click for details and to RSVP.

Keyboard vs Mouse

Maybe it is because I am enamoured with the world's ugliest, but potentially coolest mouse, or maybe it's that my own mouse is developing quirks that cause me to believe that it is not long for this world, but I've been looking at acquiring a new primary HID. Along those travels, I came across a very old discussion comparing the Keyboards vs Mice. Apparently, Apple spent $50,000,000 in the late '80s, and that's when $50 million was worth something, to study the Apple Human Interface. The result was the discovery of two facts:

  • Test subjects consistently report that keyboarding is faster than mousing.
  • The stopwatch consistently proves mousing is faster than keyboarding.

Like many things tech, and especially since Apple is involved, opinions run strongly in many directions. My own concerns are my own requirements for interfacing with the hunk of plastic, silicon and dopants at my desk and what sort of experience do I offer users in the applications that I create, web or otherwise.

I gotta imagine that there are thresholds and conditions that would impact the truth of those two "facts". One person mentioned in the article says that "there are NO command key equivalents in my product, Smart Labels, except for Undo, Cut, Copy and Paste". The reasoning is that, even though the user may perceive there to be a value in using additional shortcuts, he won't allow it. That seems extreme. What happens when the desired action is hidden behind several layers of menuing or if the action is contextual and you are already using the mouse to highlight the text (modifying case through shortcuts would be very preferable to highlighting and hunting). My own inclination is to add keyboard shortcuts when time or interface will allow me. That doesn't always work and I have lost some recent battles at work to implement minimalistic interfaces that use only keyboard shortcuts.

In that case, it was a dialog box, created by a mouse event that just contained a single text input with listeners for ENTER and ESCAPE. My reasoning was that the act of calling the dialog would provide the context for the input, hence no label, and that ENTER and ESCAPE are natural behaviors. As I said, I lost and now the little interface that could have been was obliged to support a Label, a submit Button, a Cancel button (as the corner "X") and an instruction line. My opinion is that, styling aside, the interface is uglier and code is heavier. (Apparently, I might be a little bitter about this)

Anyway, where are the lines between performance and usability? I've been perusing user experience resources and the focus has been on eliminating the need for a user to think. And, for casual use software, that makes a lot of sense. However, for productivity software where a user will spend much of the day, I gotta imagine that the kind and thoughtful UI developer is going to allow for improvements in performance that occur through user training - though that means a lot more than just adding keyboard shortcuts.

Simple Actionscript Color Separator Class

I saw a blog post discussing how to grab the separate composite colors from a unit in ActionScript. This has probably been addressed and solved many times, but there does not seem to be a built-in object to take care of this bit of functionality. You'd think that mx.utils.ColorUtil would be a natural place to find such things, but not so much.

So while the author chose to go with string manipulation, I figure it would be a good opportunity to do a little binary work and create a simple little class to keep everything tidy.

The general scheme is to perform a Right Shift and then an And. The color information is either 24 or 32 bit with the extra 8 bits in the latter describing the opacity of the pixel. Shifting makes the desired color channel the least significant amount and the logical and with 0xFF will remove any other remaining information. So, to get the channels, it would work out like the following:


Actionscript Apps for Android

Since I have recently hopped onto the Android bandwagon, I've been perusing the market. After installing the working Tricorder everything does some weak by comparison, but I did press on.

Surprisingly, I found two ActionScript related apps for Android lately:

  • ActionScript Reference for Android
  • Flubble

ActionScript Reference for Android

This ought to be rather self-explanatory. Jonathan Dunlap has whipped together a little android app that offers the AS3 helpdocs. Nothing earth shattering, but a nice way to spelunk the docs. I'm thinking that it'll be my go-to app when I have to kill some time.


I haven't quite figured out what to make of Flubble yet. Ostensibly, it is a stubbing app for ActionScript classes. I haven't used this for an actual project yet, but I have run some tests and received my class files both as AS3 and XML. The XML is an interesting option that threatens to have some potential, though I haven't worked out quite how I would use it. It looks to be a nifty little app and I hope that I can fit it into the workflow in some way.

Of course, there are a lot of generic supporting apps to be found (text editors, ftp clients, ftp server (odd), flash card makers and the like), but for some reason I was surprised to find an app like Flubble. It does get the wheels turning about what sort of apps could be created for the platform.

Flash & Flex Developer Magazine Is Free With Community Resources

For those that may not be aware, Flash & Flex Developer Magazine has moved to a free, online distribution model. This is a plus because they used to be quite expensive. I'm not the biggest fan of their site layout, it used to be torturous to navigate it, but they seem to be improving it.

And, as a bonus, they have a flash and flex community section that allows you to add your own blog, along with whatever description you care to give yourself (here is the ShortFusion blog profile). They also have areas to promote usergroups and events.


Question about Flash Cross-Compile to iPhone

I mentioned in my last post that an iPhone developer attended a Flex presentation that I gave. He was hoping to get some info on how he might use Flash as a means of producing apps instead of Objective C. Not sure what development environments exist for iPhone development presently, but the idea of using Flash is obviously titillating to some.


Online Actionscript IDE

I often muse that one of the primary reasons I can't break the MS Windows habit is that Adobe doesn't treat Linux as a first class target platform. I've blogged about this before, but it is still annoying.

And Mac isn't an option for several reasons:


Preventing The Browser From Returning A Cached SWF

A quick little snippet using Coldfusion to avoid swf caching at the browser. Swf caching can be a real pain in the but during the development and it can also be annoying in production. When you make updates, you actually want to view them. Anyway, enough chit chat:

swfobject.embedSWF('myFlashApplication.swf?nocache=#CreateUUID()#', 'myDiv', '600', '480', '9.0.0', 'expressInstall.swf',{},{});

So the above snippet, using swfobject because it does the trick so nicely, shows that we are throwing a url parameter at the swf to be injects. Essentially, this does nothing at all. However, the Coldfusion CreateUUID() function will give us an easy-to-generate unique number every time and the unique param. The browser sees a unique url and will grab the swf anew each time.

Actionscript: TextFormat vs StyleSheet

For handling formatting of TextFields in Actionscript, your two easy options are TextFormat and StyleSheets. And they are mostly equivalent in the level of formatting control that they offer:

TextFormat StyleSheet Note
blockIndent - value to indent entire block instead of only first line
- display Supported values are inline, block, none
bold fontWeight TF: true|false; SS: normal:bold
bullet - TF: part of bulleted list
color color TF: AS notation (0xFFFFFF); SS: HTML (#FFFFFF)
font fontFamily TF: 1 font; SS: uses comma separated list of fonts
indent textIndent  
italic fontStyle TF: true|false; SS: normal|italic
kerning kerning  
leading leading  
leftMargin marginLeft  
letterSpacing letterSpacing  
rightMargin marginRight  
size fontSize  
tabStops - Size of tab
target - target of link if url != null
underline textDecoration TF: true|false; SS: none|underline
url - Setting to non-null value makes text a clickable link

(Created from Adobe docs on StyleSheets and TextFormat)

The use of the two types of flash text formatting options are very similar as well:


More Entries

BlogCFC was created by Raymond Camden. This blog is running version Contact Blog Owner