The Blog
Mar 31, 2008
cf.objective() 2008 Sunday Sessions
The crew over at cf.objective() 2008 has
posted the Sunday sessions. Apparently, a lot of people have signed up for my session, so I was nominated for a repeat Sunday timeslot. I just booked my flight today, so I was able to account for the extra time at the conference.
I had a very interesting chat with
Chris Scott this evening about his upcoming Swiz framework. There's a story in here somewhere.
Chris and I both worked on AOP/IoC frameworks for ColdFusion some years back. I got a bit of a headstart on Chris, but got frustrated with the inability to compile CF code without writing it to the file system first (I decided to wait until CF 7 when CFCs were first-class Java objects so I could use CGLIB to compile them on the fly like Spring does to Java classes). Chris didn't have a problem with this workaround, and went on to fame and glory as a creator of
ColdSpring. (To be clear, I never would have finished my IoC framework for CF anyway since I never actually finish any of my hobby work. :) )
Now it seems like we have crossed the same intellectual paths again, since Chris's Swiz framework for Flex implements an IoC container akin to
the work I have been doing recently on IoC utility classes for Flex. Based upon tonight's chat, it seems that Chris has come up with very mature solution with autowiring using metadata. I'm hoping to get some code from him tomorrow.
In my experience, when multiple people arrive at similar solutions with no contact between each other ahead of time, that means a good solution has been found. We both went with MXML as the configuration file format, since Flex parses it naturally with no work required. It's nice to see some consistency in approach there. Chris also wanted to include some classes to handle the Command pattern and chaining commands, but I pointed him at Joe Berkovitz's excellent resource for MVCS (also a cornerstone of my presentation).
Since IoC is a really clean pattern for Flex, and a cornerstone of my presentation at cf.objective(), and Chris has what appears to be a nice clean solution, I may actually port my code sample for the preso over to Swiz. Also, not being one to reinvent the wheel, I'm really interested in contributing to Swiz if the opportunity comes my way. Apparently, Swiz doesn't have AOP yet, and I have a basic interceptor working already, as well as a Prototype implementation for the IoC container (which Swiz might have - we didn't cover it in our chat). As Chris pointed out on our chat, there are not many use cases for AOP in Flex, although I got a basic authentication example working to wrap a Controller's method from unauthorized access, and it worked beautifully. I imagine AOP will be no less useful in Swiz/Flex than it is in Spring/Java, so maybe I'll contribute this piece if Chris doesn't get to it first.
If you're going to be at cf.objective(), make sure you keep an eye out for Chris and take a look at what he has cooking. Finally, we're both going to be on the
CFWeekly podcast tomorrow night debating Flex frameworks, so keep an ear out for that in the upcoming couple of days.
Mar 26, 2008
HotRuby: Ruby on JavaScript and Flash
My God, It Finally Happened
The world has finally accepted the fact that
IE is a total piece of s***.
I wish these guys all the success in the world. You might sneer at this attempt, but Zeldman and his consortium pulled a similar maneuver some years back to strongarm the big browser developers in to properly supporting CSS, and it was something of a success.
But, I digress: there was some recent noise about M$ working on IE 8. I honestly don't know why they bother. As much as every web developer on Earth remembers that scary period where IE was pretty much the only game in town (and had to be coded for regardless of how bad the CSS support was), M$ failed to totally monopolize the web thanks to the efforts of the Mozilla Foundation and their excellent Firefox browser.
This being the case, why they are pouring money in to another IE release simply confounds me. Why not just install Firefox by default in Windows and call it quits? What the hell is the revenue stream for IE anyway? Does it follow what you are doing online and feed the info back to the Mother$hip? Is there that much ad revenue generated through MSN by the default home page in IE being set to it? Do they really want to help all the virus developers install their warez that badly? I just don't get it.
And while I'm at it, I'll take the same shot at Apple. I love Safari, but WTF - let's just all accept Firefox/Camino and the
Gecko engine as the default renderer for the Internet and get it over with. At least that way all the HTML and JavaScript will run flawlessly in one environment. Think about the positive impact to the global economy when millions of web developers worldwide can stop wasting time trying to get every browser to agree on which pixels should be rendered where.
That, or
just use Flex and let Adobe eat everybody's lunch with Flash (yeah, that's
really going to happen :) ).
Mar 22, 2008
This Thing Is Truly Terrifying
I've always found the fields of biomimicry and robotics to be fascinating, but now that I'm seeing
the fruits of their scientific application, I'm not so sure I want them to continue.
There's just something incredibly scary about this robotic dog-thing hauling ass through the woods making that awful buzzing noise. Watch the video all the way through, and you'll see it picking its way thoughtfully through rubble like a cautious puppy. It's just plain uncanny.
I'm sure it's not that bad. They're just getting really good at robotics these days, and I've watched the Matrix too many times for my own good.
Mar 13, 2008
How To Give a Presentation
Great blog post on how to give a presentation. I'll be trying some of this out to improve my technique for
cf.o().
Mar 11, 2008
Money-Eating Unicorns
Mar 9, 2008
Office 2008 for Mac Rocks
Since March 6th 2008, I have used Office 2008 for Mac exclusively at work and at home for all the stuff I normally use Office 2004 for. Here are my findings.
- It's fast.
- It's stable.
- The UI is much better than previous versions of Office for Mac. I used both Office 2004 for Mac and whatever versions were available for OS 9, so I have some experience here.
So the hater reviews I came across time and time again can be silenced as far as I'm concerned. I honestly can't tell you what all the negative fuss was about.
UPDATE: I discovered today that bullets in Word are just as random and retarded as they were previous versions of Office for Mac (and Windows, for that matter). Not sure if M$ was trying to be consistent, or if bullets are just destined to be retarded forever.
Am I A Snob?
According to a recent study,
Mac users are snobs (
urban dictionary definition here for the sake of this blog post).
Apparently, according to the study, most Mac users tend to also:
- Buy teeth-whitening products
- Buy organic food
- Pay for music online
- Be perfectionists
So how do I fit based upon the article?
- I own Sensodyne Whitening toothpaste. I bought it primarily because I have sensitive teeth, but I opted for the whitening kind so I'd say this is an affirmative.
- Most of the food I buy is not organic. Then again, I always buy free range eggs (chickens may be stupid, but they deserve to run around if we're going to steal and eat their unborn young).
- I pay for music online almost exclusively. My time is worth more than to dick around with Kazaa or Limewire.
- I have been accused repetitively of being a perfectionist, although if most of my coworkers saw the state of my house they would probably retract their accusations. So, at the very least, I'm apparently a perfectionist at work.
Urban Dictionary has the shortest snob definition as follows:
"Anyone who thinks they are better than someone else based upon superficial factors."Now, I obviously like the Mac better because my last three computers have been Apple products, but I don't think I fall in to the "snob" category. I don't think that
I am better than other people because I use a Mac - if I did, I would agree. But then again, this is me evaluating myself.
So if you know me and you follow my blog, what do you think? Am I a snobby, Mac-owning bastard? Sound off in the comments.
Mar 5, 2008
Office 2004 and Office 2008 for Mac Can Coexist After All
I just got finished installing Office 2008 for Mac on my MacBook Pro.
A few reviews I had read stated that Office 2004 and Office 2008 could not coexist. This is apparently nonsense. If you actually read the message in the installer, it says that the Office 2004 for Mac Test Drive (that used to come with all Macs) causes issues and should be removed. It gave me the option of uninstalling my full copy of Office 2004 for Mac, but did not require me to do so, and said nothing about this not working.
I decided to leave both versions on the machine, and they seem to leave each other alone. My default application for opening Office documents has converted to use the new Office 2008 instead of the old Office 2004.
I kicked the tires on the new Word and Excel. Word opened a little slow at first as it built the font menu cache, but after closing and reopening it again it was super snappy (I'm on an old MacBook Pro 2.16 Ghz Core Duo with 2 GB of RAM for comparison purposes). I opened existing Word and Excel documents from Windows and Office 2004 for Mac fine, and saw that in the options you can set the apps up to default to an older compatibility mode if you so desire (since the programs now use the new XML-based Office formats).
The apps seem much snappier than the old emulated versions in Office 2004 running in Rosetta (no surprises there, although I have read a lot of reviews saying the new version is slow). The UIs look radically improved, and Excel now goes up to over a million rows which is both scary and cool at the same time.
Some reviews also bitched about the fact that Office 2008 had an installer instead of being just a drag-and-drop .app file, which they declared "un-Mac-like". This is both piffle and flummery in my opinion. Much like many OS X installers for Apple apps (such as the Developer Tools suite), the installer lets you configure options for what you want to install, and is as Mac-like as anything I have seen from Apple themselves. I shaved off some features (like the proofing tools for Danish and Japanese) amongst others and saved 150 MB off the installation. The installer was also very intuitive, ran quickly, and did some checking for me to make sure I didn't shoot myself in the foot. Hardly un-Mac-like.
Obviously, I've had the app installed for a grand total of fifteen minutes, so let's see how I like it after I have used it a bit. So far, so good, and at the very least the Microsoft Mac BU seems to have worked very hard on presentation and first impressions. Nice work, guys.
Taking the Plunge with Office 2008 for Mac
I finally got my nearly-free-after-rebate copy of Office 2008 for Mac from their Black Friday special in 2007. Basically, you bought a new copy of Office 2004 for Mac on Black Friday for $149, got a $100 mail-in rebate, and a free upgrade to Office 2008 Special Media Edition when it shipped in February 2008. So, to put it bluntly, that's a $299 upgrade for $49 and five months of waiting. Not too shabby.
However, I've seen totally inconsistent reviews for the product. I've read that people think it's great, people hate it, people hate that the VBA support is gone (which I never, ever use), it's unstable, it's slow, it's great... you get the picture. Well, I played with it a little at the Apple Store in Salt Lake City while I was on vacation, and I liked it well enough to give it a shot. Worst case, I'll downgrade again until Microsoft patches it to be perfect (unfortunately, and somewhat unsurprisingly, Office 2004 and Office 2008 cannot coexist on the Mac).
I'll let you know how it goes.
UPDATE: You can install Office 2008 for Mac and leave Office 2004 for Mac on there at the same time after all.
Flex/AIR on the iPhone Is ***Not*** A Bad Idea
I generally find Apple to be a pretty insightful company, but in this case I have to disagree. Steve Jobs has apparently
stated that Flash is not suited for the iPhone.
Now, let me clarify that there are two different kinds of Flash in my opinion.
1) Punch the monkey ads, skip intros, and all that nonsense - an area of Flash I consider the replacement for the hideousness that was Java Applets.
2) Flex, AIR, and all the fantastic things that Adobe is doing with the Flash platform today for rich Internet application development.
I agree with Apple's stance on #1. Frankly, if every Flash ad and useless intro disappeared tomorrow, I wouldn't miss them. Clearly I'm not a marketing guy.
On the other hand, being able to use Flex/AIR etc. on the iPhone strikes me as an amazing opportunity for application developers, especially if Adobe does a few things.
1) First, they need to improve the performance of Flash on OS X. It frankly sucks. My CPU utilization skyrockets on my Mac as soon as anything is running in Flash. I commonly run out of battery life way ahead of normal schedule when developing Flex apps on the road because of this. Performance is considerably better on Windows.
2) Second, if you combine
the native extensions to AIR that Ted describes in his recent blog post with a hook in to the iPhone SDK (which we expect to be covered in detail at Apple's event tomorrow), you could have powerful integrations between AIR apps built for iPhone and Apple's revenue/product channels delivered via the iPhone platform. In this situation, I can see the open source Flex community building a wrapper API for the iPhone SDK as an immediate occurrence. If Adobe delivered a wrapper on a silver platter, that would be even better.
3) Taking the iPhone SDK wrapper concept a step further, if Flex Builder ultimately included the ability to build an app in AIR that could multi-purpose the UI seamlessly/automatically for the iPhone (potentially by providing an "iPhone view" workspace and mechanisms for determining if an app is being opened on a regular computer or an iPhone), developers could do really interesting things with applications. Imagine having one AIR app that could be loaded on your iPhone and your desktop PC, and having different modes to access the same back-end services over the web in mobile and desktop modes through one code base. As the iPhone eventually goes to 3G, this could be a developer wonderland.
I'll project for a second here. I expect that the iPhone SDK will offer something along the lines of Dashboard widgets, and more advanced offerings in the form of Objective-C calls to whatever version/subset of Cocoa the iPhone offers via OS X. Let's be honest: there are far fewer Objective-C developers out there than there are Flex/AIR/web developers. Putting Flash on the iPhone opens up the world to far more opportunities for wicked iPhone apps than anything else I can think of that Apple might have up their sleeve. Since more apps for iPhone means more iPhones sold, this can only be good news for my favorite fruit company.
I really hope that Jobs was speaking about the examples of uses for Flash in my #1 example earlier (i.e. crappy ads and such), and can only assume that he hasn't been exposed to Flex and AIR. Jobs is usually a super smart and visionary guy. If he can't see the potential for Flex and AIR on the iPhone (or perhaps sees a threat to Apple's hold on the iPhone platform by its implications) then I personally would be very disappointed.
On a side note, if you go to apple.com at the moment and type "sdk" in to the search field, the only item that pops up is Adobe AIR. Strange coincidence...
UPDATE: Here's a perfect example of what I'm talking about. Instead of Nike equipment to iPod, iPod to iTunes, iTunes to web app on nike.com, web app to Flex for viewing results - why not Nike equipment to iPhone to web app via AIR, and then web app to Flex for viewing results? Just another example of what could potentially be done with an integrated AIR/iPhone SDK.
ANOTHER UPDATE: Dan pointed out to me at work today that the project on Ted's blog post that I linked to is actually just a tool for porting C/C++ code in to AS3, and doesn't actually do anything to let Flex reach outside the sandbox and execute native code. So, this was a bit of me not reading the article fully plus a decent-sized helping of wishful thinking. Nonetheless, I'd still like to see the possibility for native execution in AIR in the future, so maybe Adobe will answer my prayers.