Archive for September, 2008

Friday, September 26th, 2008

Fun is serious business

I have been having an on-going conversation with friend and advisor Pip Coburn about the importance of fun in our lives.  It’s hard to argue its value though it seems to get short shrift in so many instances, especially when it comes to product design.  Hank Williams wrote a good post about it today that reminded me of this.  It also reminded me of an organization that seems to have the right intentions – The National Institute for Play.  Check it out.  Looks like serious fun!

Thursday, September 18th, 2008

Working with Processing on BUG

Processing on BUGAfter Kevin Schultz’s recent work on jvm benchmarking for BUG, I thought it was time to put cacao + classpath to work. I have been exploring the possibility of using Processing with BUG for some time, but the limited API available in phoneME Advanced Personal put that effort just beyond reach. Building cacao and classpath for my BUG is cake with the new platform, and deploying Processing isn’t very difficult either. It’s not stable yet, but it’s a pretty cool proof of concept.

Updated 9/19: Note that cacao + classpath is not part of the R1.3 build.  See our wiki page on tweaking your build to customize your own BUG platform, including some pointers on getting openembedded addons onto your BUG.  Notes on how to build Processing for your BUG forthcoming.   If this seems like something you’re interested in doing, feel free to contact me at john@buglabs.net or drop into our IRC channel: irc://irc.freenode.net/buglabs

Thursday, September 18th, 2008

Functional Milestone: xeyes

After hours of blood, sweat, and tears* xeyes has made it into our latest operating system image, as seen here.  With xeyes, our final application requirements have been met. 

* It actually took about 5 minutes to copy the existing recipe from org.openembedded.dev into the Poky build.

Monday, September 15th, 2008

Ignite Cupcake Competition

Meet your fellow geeks out tonight at Ignite! Ignite is an O’Reilly sponsored community event that takes place in many cities around the world. It consists of a series of speakers who are alloted 20 slides at 15 seconds per slide, with topics ranging (as O’Reilly puts it) from Soldering, to Guerilla Knitting and Bomb Shelters. Ignite can be started anywhere by anyone, like an open source event!
The NYC Ignites have also included competitions, organized by Bre Pettis. Tonight September 15, at 7:30pm. Anyone can decorate a cupcake and the most creative cupcakes wins, it’s first come first serve and there are only about 200 cupcakes, so get there on time! You are also free to bring your own decorations. Yours truly, one of the newest additions to Bug, will be there judging the contest. Perhaps my prior “cake hacks” got me the job? After the competition, speed talks will pursue, at 5 minutes per speaker, on many interesting topics from Web3.0 to carbon footprints.  Ignite will take place at New World Stages (340 West 50th Street). Hope to see you there!

Wednesday, September 10th, 2008

Java VMs Compared II

Update: There is now a part III to this series.

We received great feedback from our previous comparison of Java virtual machines. We acted on all of the comments we received from the Cacao community by tweaking our build configuration. Additionally our upcoming 1.3 release includes a newer Linux kernel (2.6.24). This alleviates the problems we had with phoneME’s and JIT. Here are the same benchmarks we used previously, reflecting the new build configurations.

PhoneME really came into its own now that JIT can be enabled without causing the system to crash. It will be great to pass on serious speed improvements to our users. those who upgrade their software should be able to notice the difference in speed (along with many other great improvements).

Unfortunately, we had little success improving Cacao’s performance. We significantly delayed posting this so that we could try tweaking the configuration as much as possible, but there was no pay off. On most hardware Cacao will benchmark faster than JamVM, and should come close to phoneME. For some unknown reason the combination of OpenEmbedded’s Cacao and our specific hardware does not perform as expected. You should test Cacao on your own hardware for a more accurate portrayal of its performance.

However, phoneME is not perfect. There is a major difference between using Cacao with the GNU Classpath libraries and using phoneME with its library. GNU Classpath is aiming at a J2SE sized set of libraries, while phoneME is J2ME-like so this is to be expected. But phoneME is significantly more short of J2ME than Classpath is of J2SE.

The biggest of detriment of phoneME is the graphics toolkit. With PhoneME we are limited to the AWT toolkit, the original Java GUI library. It has many limitations – from its simple aesthetic appearance to feature shortcomings like the deficient graphics library. PhoneME doesn’t have JSR 209 – Swing for J2ME, since it has not been open sourced. It is also missing several other libraries you need for Mobile Processing. With Cacao we can definately use the Swing library, and most likely can use all of Processing.

Compare the two screen shots below. First up is the TipCalc application using AWT. The second is the same application converted to use Swing. The difference is quite striking.

For now we will continue to use phoneME, but there are some other options for a better interface. Perhaps the most interesting is the new Lightweight UI Toolkit (LWUIT). It feels much like Swing but is significantly easier to port to our system. Another option is the Clutter toolkit, currently used by the Poky applications in our distribution. It currently has no Java bindings but does them for Python, C/C++, and Ruby (among others). A Java binding would certainly be possible. With back end support provided by OpenGL, it would allow us to do more graphical applications than are currently possible.

While new GUI libraries are not going to be coming in the near future, you will be seeing our 1.3 release of the file system very soon. This will bring significant speed boosts to your BUG, so stay tuned for an announcement on a final production tested version.

If you want to jump in and play with the development version now, code is always available and the associated documentation has been posted. And don’t forget to join the Bug-Dev mailing list to get involved with our development discussions on topics like these.

For those who are not BUG users and are just interested in the benchmarks of VMs, I hope these help guide you in your decisions. However we must caution that the VMs perform quite differently depending on your processor. Several people responded to the previous post by running these same benchmarks on different hardware and came up with a completely different result. Our benchmarks are quite repeatable on our hardware so we are confident in these results for our case, but your case might be entirely different. The benchmarks are available here and here, and the time benchmarking takes compared to the value of the results makes it definately worth doing.

Tuesday, September 9th, 2008

NYC Century 2008

A group of us here at Bug Labs banded together for the second year in a row and helped marshal the NYC Century Tour this past Sunday.  Getting up early (5:45AM) certainly isn’t one of my strengths, but once I was actually on the road and headed towards the starting point I remembered what a rewarding experience it was last year and the excitement started to set in.Starting four

Sadly we didn’t get to wear the fashionable orange vests this time due to an orange vest shortage, but we did have ‘I’m Here To Help’ stickers as well as the opportunity to assist people when they were lost and offer general support.  After a few wrong turns coming out of Brooklyn Bridge Park, we did manage to get our small group back on course and on the way towards the 15 mile finish.  Ken’s first aid kit made an appearance for an injury, while John and I witnessed a cyclist that fell off her bike in front of a highly aggravated and honking taxi driver.  Aside from these incidents our watch was an uneventful one and there were no serious injuries.

Brooklyn BridgeThis years trek was no less enjoyable than last year – the Bug group marshaled the 15 mile route, then took a vote and in a surprise burst of energy continued on to complete the 35 mile ride.  Not what one would call the most grueling day of biking, but it was sufficient to wear me out for the afternoon.  Our route ended in Astoria Queens where we headed over to the nearby Bohemian Hall and Beer Garden to regain our lost strength.

Best part of all, having that many cyclists on the road at one time raised awareness of the need to provide safe alternate modes of transport to everyone living in this great city.  According to Transportation Alternatives 110,000 New Yorkers commute by bicycle daily.  There is clearly a need for safe road conditions for both pedestrians and cyclists, and being able to assist this cause even in a small way felt pretty good.   Do you regularly use transport other than a car?  And do you have any cool ideas for ways BUG could change your commute?