Roads Less Taken

A blend of programming, boats and life.

ESUG Day 4

| Comments

This day started with some stress, Nicolas and I whipped up the last details of our co-presentation on Jtalk (Nicolas decided to skip Iliad) - and my Eris demo suddenly got b0rken. But I managed to fix it and our presentation was very well received - it was great fun!

Nicolas managed to do quite a few “on the fly” demonstrations of various Jtalk snippets etc, and running the slides in Jtalk was of course a killer thing. I explained how jtalkc is being run on top of Node.js and quickly proceeded into showing the TrivialServer demo in Node.is - when Apache benchmark showed 1800 requests/second there was a spontaneous applause. :)

Now we can relax and talk to all people about Jtalk - and now in fact the web panel starts with Nicolas on the panel. Unfortunately the panel discussion didn’t play out that well, it needs some entertainment and also at least one or two that disagree :)

Later tonight and tomorrow we will probably keep on hacking Jtalk like mad. So much fun stuff to play with! We intend to “finish” the first stab at so called “speculative inviting” that we started earlier this week, and try to do some profiling on it to verify the gains. Using the Compiler is actually a good candidate for a reasonable benchmark.

The evening ended with the usual pubs and hacking and chatting about cool things people are doing.

ESUG Day 3

| Comments

Suddenly it is Wednesday and we are already on day three at ESUG - a superb software developer conference focused on Smalltalk. Time flies. Yesterday I mainly hacked together with Nicolas Petton on Jtalk, really fun, unfortunately I missed a few interesting presentations, like Fuel and Bifrost etc.

This day starts with Stéphane presenting “Humane assessment”. Mmm, got distracted by my Touchpad, but Stéphane is showing some cool visualizations right now, clearly useful for large systems and organisations that need understand their own “huge legacy software”. Hehe, the browsers shows visual queues on “bad designs” like marking methods as “BrainMethod” or marking a class as “God Class” - that is indeed very slick!

All in all it looks like a very useful tool - I should probably try it out on some codebase. In fact, this tool is a really good “added value” tool that can be offered to customers when helping them. I have at least one client that really could make some good use of a tool like this.

Next up before coffee is Arden Thomas from Cincom (hehe, that was funny, the Touchpad wanted to correct “Cincom” to “Condom”…) presenting what is new in their products / ObjectStudio and VisualWorks. These are really mature and amazing Smalltalk tools, but of course they also costs money, money, money. But VisualWorks is accessible in a non commercial full version, which is quite nice if it fits your needs. Cincom is also quite active in a bunch of open source Smalltalk projects like for example GLORP (think “Hibernate” for all you non-Smalltalkers) and Seaside (the most outstanding web framework in the world).

After running around flaunting the Touchpad :) - I came slightly late to Igor Stasenko’s presentation on NativeBoost. I have worked with Igor and he has this refreshing “fearlessness” so diving into assembler is not a problem for him. So NativeBoost is an extension to the Squeak VM (and the new Cog VM) that enables dynamic machine code generation - and execution - directly from Smalltalk using just Smalltalk. So it includes a DSL for writing assembler (a port of AsmJit) and mechanisms to access memory etc etc. The machine code needs to be relocation agnostic since it is actually stored directly in a Smalltalk object (the method) and will be moving around due to the garbage collector moving things around. Another interesting issue is that if the machine code calls into the VM in order to create a Smalltalk object, it will need to be aware of the fact that this can trigger GCs and move things around - but this is just the same for building VM plugins. Of course, Igor’s stuff is very impressive and you can make very fast code using it.

The day then ended with the social event and announcing the winners of the awards and a nice dinner followed up with some beer and endless “Why doesn’t everyone use Smalltalk?” discussions - as is customary.

Over and out, Goran “typing this in on my Touchpad using the bluetooth keyboard”

Touchpad Finally in My Hands, First Day

| Comments

Sooo…. I actually managed to order a HP Touchpad 32Gb here in Edinburgh to be picked up at Comet within 48 hours. I ordered when it was still a whopping 429£, but when I went to pick it up I got it at the UK discount price of 115, and I will get the VAT back too.

The first hours were frustrating because I was in the ESUG conference and we only had a WiFi with a so called “captive portal” with a login form - and the first time you power up a Touchpad it wants to hook up to a Palm Profile, and does not want to do that using a WiFi with a captive portal.

The Montague pub to the rescue later that evening, an open wifi. I am currently writing this post using the Bluetooth keyboard (so nice) while the TP is snugly positioned on the Touchstone inductive charger. Both these are great accessories. I have also managed to do Skype with my wife, really easy and worked well, hook up the calendar to Google with perfect sync, and in fact it synched over all my contacts etc from my Palm Profile for my Palm Pre 2 - just works!

I have done the OTA 3.0.2 update (in the pub while eating) and I have installed a bunch of apps, like the one I am typing in know - for WordPress. I have also activated the included 50Gb free cloud space included from box.net - brilliant.

Email app is running fine, Facebook app is very good, tons of other little nifty things - I am a happy camper! Is it just as “smooth as silk” as the iPad? No, but it excels in other areas like true multitasking, a real Linux beneath (bonus for me as a developer), synergy, full flash, 50Gb cloudspace for life included, really good virtual keyboard (multiple sizes even) etc etc. Sure, slightly thicker and slightly heavier - but…. BUT…. It cost me around 85£ with 32Gb RAM. That argument is a killer.

Day after tomorrow I will be demonstrating apps written in Jtalk running on it - yiha!

ESUG 2011 in Edinburgh

| Comments

Each year I try to attend at least one developer conference. Earlier OOPSLA was a given but it lost its appeal quite a few years back and now it is not even called OOPSLA anymore. As a die hard Smalltalker I instead attended the ESUG conference in Brest 2009 and it was easily the most rewarding conference I ever have attended! Missed last year in Barcelona but this year I am going to Edinburgh for a week of Smalltalking.

I am not presenting anything but I hope I will get my HP Touchpad from Amazon before it starts so that I can demonstrate a WebOS app running on it written in Jtalk.

If you are going too, see you there!

WebOS 3.0 Is Coming - With Enyo!

| Comments

A few weeks ago I joined the Early Access program that HP/Palm has been offering for a while and I have been toying with the new WebOS 3.0 (SDK with emulator) that appeared in public on the 1st of july when the HP Touchpads hit the stores in the US. Since a week I also have a Palm Pre 2 phone running WebOS 2.1, hopefully to be upgraded later to 3.0.

What can I say, I am totally hooked! The SDK for WebOS 3.0 looks really nice and the Palm Pre 2 is the best phone I have ever used, if I disregard the poor battery life.

No, I have never owned an iPhone but my previous phone was the Samsung Galaxy, and that is a really good phone! :) Now, of course, getting the Pre 3 would be even better.

Screenshots

[nggallery id=2]

WebOS

Having used the phone for a week or two some things stand out:

  • The gesture and cards system for multitasking is a real joy to use. Hard to describe, should be experienced.

  • Notifications are really nicely done, non intrusive and slick.

  • The “just type” mechanism is awesome, typing in a name or a website or whatever - and WebOS will suggest and list “everything”. And even better, WebOS discovers new “search engines” when I surf and offer to include them in quick list for searching! Simple and so smart.

  • Synergy - the system merging all contact information together is amazingly good, much better than on my Android phone. It merges and syncs info from my LinkedIn, Facebook and Google accounts (and many other sources) brilliantly.

  • Messaging is uniform, I can SMS or Gtalk or whatever in the same threaded view for a given contact. Yay!

And there is lots more of these little things, adding up to a very smooth user experience.

Application frameworks

One of the primary new things in WebOS 3.0 (vs 2.x) is Enyo - the new application framework in Javascript that is replacing Mojo, the older framework. Enyo looks like a really well designed object oriented UI toolkit. It focuses on using code and not HTML to produce the user interface and the API looks nice, well documented with examples and quite complete!

Applications for WebOS 3.0 come basically in three flavors - Enyo/Javascript, OpenGL/SDL/C/C++, or hybrid.

  • An Enyo app is “just” Javascript running in V8 + Webkit and will be the framework that the majority of the applications will use. Given the push in Javascript land these days I would say it is a very interesting platform.

  • More demanding graphical apps, especially games, can be written in the C/C++ tool chain and use the OpenGL ES and SDL APIs. This seems to be a very friendly platform for game development.

  • Hybrid apps are Enyo apps (or Mojo) that can embed native components written in the C/C++ tool chain and allow them to render parts of the screen and also communicate with them. This is clearly an interesting option for many demanding apps.

An open eco system

Although WebOS is not open source it seems in many ways more “open” than the competition:

  • It is trivial to get “root” on the devices. Just type in ”upupdowndownleftrightleftrightbastart” and click the icon that appears!

  • HP/Palm seems to realize that the homebrew community is very important and this community is exceptionally strong.

  • Using the Preware homebrew app catalog and installing themes, patches, applications and more is just as easy and smooth as the regular app catalog (no, you can’t browse it on the web, only on a device)!

  • The OS is a real Linux at the base! In fact, the ipk package format for apps is the deb format.

  • The base technologies used are major open source projects like Webkit, V8, SDL, GStreamer etc etc.

  • HP is offering a multitude of distribution channels including a “web distribution” channel where you can market your own app outside of the regular app catalog - but people can still just click on a URL and buy/install the application! That is very nice.

…and there are many more aspects to this “openness”, but I think HP realize that they need to play this part of the game quite a bit better than the competition in order to be able to catch up.

High hopes

I think HP has a diamond here in WebOS and if they play their cards right they should be able to find their piece of the market share. And that share just needs to be “descent” in order to be fruitful. But in order for that to happen I am hoping that:

  • The products (Touchpad, Pre 3, Veer) really hit the stores all over the world ASAP.

  • The 3G/4G versions of the Touchpad will show up soon. Just wifi is not enough.

  • The next generation of products keep up with the competition in hardware specs.

  • The major apps people want and need start appearing.

The first three are primarily up to HP. The fourth is hopefully not a problem since the eco system is so appealing to developers. And I think HP is trying to make sure some crucial apps are not missing - for example, I think HP made sure the Facebook app is there - and it is indeed a really good app!

Next up? Well of course, using Smalltalk to build Enyo applications… :)