Monday, October 25, 2010

Your Daily Dose of Incredible: Great Paintings in 3D

"A new dimension in TV because the old stuff is rubbish". 'Nuff said.

Will we ever get tired of being amazed by advances in technology? Not any time soon. But really, who foresaw that 3D display technology would bring so much new life to the old masters?

Prepare to be blown away by a bulletstorm of awesomeness.

Hat tip to the ever-incredible Masayuki Kido.

Tuesday, October 19, 2010

Coming To AdobeMAX 2010 in LaLaLand

I will be attending Adobe MAX for the first time, this year. Needless to say, I'm very excited and grateful to my employer for sending me on their dime. I've registered for the most interesting sessions I can though my sense is that I'll be missing more than I'll be taking in. Hopefully they'll be recording all of the sessions so that I can catch up on what I missed later. One thing I won't miss will be the MAX Awards, since Leonard Nemoy (heard of him?) is presenting. The geeks will be swooning in ecstasy, no doubt.

To maximize the amount of information I can jam into my sleep-deprived brain, I intend to squeeze in as many 360Flex and FITC "Un-Conference" sessions as possible. Hopefully the rooms will be close enough together to skip quickly from one session to another so I can miss as little as possible.

Since I'll most likely be on my own most of the time, feel free to drop me a line so we can meet up. I'm getting there near noon on Sunday and will have most of the afternoon free. I'm flying back out on Thursday morning.

Hope to see you there!

Thursday, August 26, 2010

Got Tilde?

Since I've just re-designed my personal blog, I figured that I'd kick it off with a word on the Tilde Console.

I launched the Tilde Console open source Flex project back on June 18th and though I've done my best to spread the word and it's been mentioned on The Flex Show, I have yet to hear from a developer who is using it. I wouldn't say that it's disheartening, since Tilde is immensely useful to me personally, but I do think that people are missing out on an invaluable Flex development tool.

If you program in Flex, you should definitely check it out. Tilde is built primarily from highly-optimized PushButton Games engine code and is packed with powerful debugging tools including (but not limited to):

Developer Console
  • A versatile "tilde-activated" console similar to that found in many 3D games engines (e.g. Unreal, Source, etc.)
  • Provides tab-based command auto-completion, command history and built-in help
  • Powerful ability to register custom call-back commands at run-time. These are treated identically to the built-in commands.
  • Utility functions for serializing object information to the console
  • Integrated "Hi-ReS! Stats" from Mr.doob

Client-Side Trace Logging

  • Statements are logged to both the console and the Flash Player debugging trace.
  • Multiple logging-levels are supported and entries are color-coded by severity in the console. (e.g. DEBUG, INFO, WARN, ERROR)
  • Logging verbosity can be set using a simple console command.
  • Deferred logging: even if log statements are sent before a Logger instance is created, they will be stored until one does exist, allowing log entries to be submitted from the moment the application starts.
  • Explicitly turning off logging causes all logging calls to be disregarded so they don't impede application performance. (All pending deferred log calls are also discarded.)

Click on the image below to launch the demo in a new window. Once you've tried it out, please let me know what you think and check out the source code at the Google code project. I'd love to hear from people who are using it, so don't be shy!

Oh, and let me know what you think of the new blog design. All graphics were done using free tools: Inkscape and PSPad.

I'm Baaaack!

Welcome back to RIA Grande. I've spent a little time re-designing the blog and I hope you like the new look. I'll be back soon to post more meaningful messages, but for now I'd like to invite your opinion on the new design. I have a lot of things to say, so it won't be long before I'm up and writing again.

Thanks for stopping by.

Thursday, January 7, 2010

Cross-Compiling Java/C#/Ruby to iPhone

[Cross-posted at]

Cross-Compiling C/C++ to Actionscript using Alchemy

As you may well know, Adobe Labs has developed an exciting tool called Alchemy that leverages the LLVM open source project to cross-compile C/C++ code to a common run-time byte code. This byte-code is then cross-compiled to Actionscript code which is then compiled to Actionscript byte code (ABC). The earliest and most striking example of what can be accomplished with Alchemy was the port of Doom to Flash that Dave released on Newgrounds within a week of Alchemy's launch. He has now released the Doom Triple Pack which includes the bad boys Doom, Heretic and Hexen.

The good people of Automata Studios helped Adobe develop one of the first projects for demonstrating how Alchemy works. Here is their write-up on the subject.

Cross-Compiling to Objective-C (and more!) Using XML-VM

Another development that has come down the pipe is some research done by Arno Puder and his colleagues at San Fancisco State University. Their work involves using open-source tools to transform code from one language (e.g. Java, C#) to an intermediate XML format which can then be transformed to another language (in this example, Objective-C). The project is called XMLVM.

Prof. Puder presented how all of this works at the Google offices and the video of this presentation is available on YouTube. It is a very cool idea and demonstrates once again (as all software does, really) the potential aggregate power of using many small, simple constructs. Byte code statements are converted to an XML format which can then be transformed to Objective-C. While the final code might not be as optimal as the original, it will do the same thing. My guess is that the toughest part would probably be handling language elements that don't exist in both the source and target languages (i.e. garbage collection, loose typing/auto-boxing, annotations). Perhaps you'd have to do away with overly "native" parts of a language language when writing the "from" code. The good professor covers part of this challenge in his presentation.

While the target language discussed is Objective-C, as you can see from the diagram above, the XMLVM project allows you to cross-compile to and from a number of different languages.Enjoy the video. (Hat tip to DiamondTears for bringing this to my attention.)

Compiling Flash Apps to Native iPhone Apps in Flash CS5 (in Windows!)

At AdobeMAX 2009, new functionality for the Flash Professional CS5 was demoed showing that this upcoming version will allow Flash (and Flex) applications to be compiled directly to an iPhone application (i.e. an IPA). In fact, some apps developed using this functionality are already available in the AppStore. Info, video and more can be found here.

From what I've been told, this functionality is implemented using cross-compilation and therefore necessarily leads to somewhat bloated/un-optimal apps. Frankly, I think that should be expected. With time this can surely be improved, but for now, I think we'll take what we can get.

I'm sure I'm not the only person who has thought to themselves: Will I finally be able to develop for iPhone/iPod Touch without having to shell out for a Mac!?!

Adobe plans to launch a public Beta of Flash CS5 later this year. Once I get to try it out, I'll let you know what I think.

Final Thoughts

One thing's for sure: watching these videos and reading the documentation gives me flashbacks of the more interesting classes from studying Computer Science in university. The beauty of working in this field is that even the coolest, most complex technology is not only within your grasp to use and understand, but also to implement.

As a developer, I have discussed with my brother what platform is most attractive: iPhone or Android? I own an iPod Touch already, but am unable to develop native apps since I don't have a couple grand to put down on a Mac (much higher priorities: student loan, big screen HDTV, next gen console). Android will support Java and (from what I've been told) Flash, but I don't want or need a cell phone. The jury's still out but it will be fun either way.

As always, I invite you to post any comments you might have on this subject.