Tuesday, June 30, 2009

V8 - the extremes

When it comes to the V8 Benchmarks, Chrome is still king, even on a Mac. Despite the fact that this is running under Parallels, Chrome 2 is almost twice as fast on the iMac as it is on the Dell at work.

Here is the real surprise. While every other browser ran faster on the iMac than the Dell, IE8 actually slowed down. But the slow down is almost entirely due to the final test, Splay. Google describes this test:
Data manipulation benchmark that deals with splay trees and exercises the automatic memory management subsystem (378 lines).
So it seems that the VM on the Mac can have performance issues with memory management.
If there is a problem with memory management, perhaps I should shut down all of the other applications and see if the numbers improve. Yup. Look at Splay: it went from 0.397 to 143.


So, running Parallels usually works fine, but in this case, it seems important to help the memory management along by closing down other applications. Still, it is IE8 which is far behind the other browsers in terms of JavaScript performance. Hey Microsoft, any chance you can keep up with the pack?

More V8 - on an iMac

After running the V8 benchmark suite at work, I am repeating at home. Home means a iMac with a 2.93 GHz Intel Core 3 Duo with 4 GB. I'm running Leopard (10.5.7). This time, I was more interested in looking at the improvements in Firefox 3.5 relative to Firefox 3.

But first, here are the results for Safari 2, this time running on OS/X.
For some reason, Blogger reverses the order of the images, so here we have the results for Firefox 3.5. There are two runs, one under OS/X and the other on XP. The XP version is running under Parallels. It sure looks like the VM running XP is very efficient: the Firefox numbers are within a few percent. They are also twice as fast the Dell Optiplex at work, even if the memory and clock speeds are quite similar.

Finally, we see the results of the old Firefox 3. The upgrade almost doubled the speed. So kudos to the Firefox team for the improvement in JavaScript performance. But we still have to recognize that the Webkit-based browsers are really dominating the JavaScript performance numbers.


V8 Benchmarks





Google's V8 Benchmark Suite is easy to run. Here are the results for several new browsers on my workstation, which is a Dell Optiplex GX620 with 2.79 GHz Pentium D and 3.49 GB of RAM. Wow. I didn't expect to see Webkit being this much faster. If my brand new Firefox 3.5 is given a relative score of 1, Safari 4 on Windows has a score of 7.5, Google Chrome has a relative score of 8.6. Internet Explore 8 has a score of 0.21. Webkit browsers have an order of magnitude better performance than Microsoft's flagship browser: IE8.

So, is Microsoft that bad a writing a JavaScript interpreter or are they trying to move us away from web standards like JavaScript and toward Silverlight?

Friday, June 19, 2009

Jef Jarvis and what to do next

Jeff Jarvis has more gray hair than me, but he really seems to understand the Internet. He may be best know as the author of What Would Google Do? You can read it online. Fora.tv has some lectures of his:
After listening to him, I am getting jazzed to try some Web 2.0 projects. He advocates being small, but being part of something big. So, what are some big things that we can expect to see? Here is something that comes to mind:

We all like images, and its probably the case that we have pictures all over the place that we like to access. I have pictures on Picasa, a friend has images on MobileMe, my wife has images on SmugMug and Flickr. My kids have images on FaceBook. This is probably pretty common. I don't want more ways to store images, I want a way to reference and search these images.

For images, I would like to have a linker site that lets me reference feeds, on line albums or even individual images on the Internet. Many of these sources provide titles, descriptions and other image metadata. Many images also have EXIF or IPTC metadata. What would be great would be a simple web interface to allow me to build a tool to subscript to several different sources and then subscribe to unified feed. Give the feed a URL and share with friends and family.

Even better, allow images to be linked to urls that identify people - hcard descriptions, home pages, FaceBook pages and so on. Then, you tag images (or better yet, some section of each image) with links to a person. The tags should have some 'types' like 'photographer/owner', 'model/subject' that show the relationship between the person and the image. Some key words links to images would also be great. They I could build feeds for all images linked to family in the last 6 months. Each of these dynamic albums could be given a URL on PubSubHubBub and expose the results has Media RSS. Then, anyone with a Media RSS viewer could see the feed in a browser. Open Iris and Slideshow Pro have inovative Media RSS viewers.

Wednesday, June 17, 2009

Software Tutorials on Google Wave: Eclipsy

Google Wave absolutely floors me, but it isn't available yet. I think that Wave is going to revolutionize teaching software. Consider software tutorials. First, we need something like an Eclipsy, a hypothetical Wave agent/Eclipse plug-in that allows Eclipse to be integrated into a Wave. As one developer goes through the steps in a tutorial, a second developer (or even the same developer with a microphone), could be giving a verbal description of the actions.

Once the expert has successfully performed the tutorial, a student else could play it back and see each step in the processes. I see major advantages of using Wave. Perhaps you could play back the development in your Eclipse while listening to the process, with Eclipsy in a playback-mode. At the end of this, you would know that the process worked with your configuration. Assuming that it did work, you could then go through the steps yourself while listening to the audio & perhaps watching the steps in Eclipse running on some virtual machine that you would watch as your copy the steps at home. (Two monitors would be nice for this.) The ability to pause during the playback is a big advantage of a Wave solution.

With many Web 2.0 tools like Grails, you are iteratively developing you application. For example, you might start by defining all of your domain objects and use scaffolding to build the controllers. You would then define the relationships between all of the objects. Next, you might add more attributes. To complete the domain objects, you could go in and add the constraints. This sort of iterative approach seems perfect for the as-yet-hypothetical Eclipsy.

Typically, you would also follow an iterative approach to evolving the views and the controllers. Much of the skill in this approach is having a feel to know what to do in each iteration. Eclipsy would be a good way to developing this.

In a complementary role, Eclipsy seems like it could be used for version control. At the very least, Eclipsy would be tracking the state of each source code file and your project configuration. This means that it could also function as a version control system that you could replay to get to any state in your development.

Tuesday, June 16, 2009

IE8: on Acid3




Just for fun, I tested Internet Explorer 8 on the Acid3 test. For completeness, the test was run on the morning of June 16, 2009. Today, Opera 10 was released. Opera 10, along with the recently released Safari 4, have attained a score of 100% on the Acid3 test. I also tested Chrome, release 2.0.172.31, and it also scored 100%. Is browser conformance breaking out? Helas, no. Just to prove what I say, I'm including bitmaps of 'About Internet Explorer at the time of the test. As you can read, I am using version 8.0.6001.18702. This is running on XP, as you can probably guess from the title bar.
During the test, I was asked if I wanted to let an ActiveX component run, I believe that it was for XML processing, but I foolishly clicked OK before recording the component name. The test looked like it completed at 12%. I was surprised to see what appears to be an HTML text area suddenly pop up.

After several seconds, the score started to creep up, finally reaching 20%. This is consistent with the scores reported at Anomalous Anomaly, which has much more complete Acid3 test results. Finally, I tested Firefox 3.0.10, which produced a score of 71%. As expected, this is also consistent with Steve Noonan's results at Anomalous Anomaly.

I also checked Acid2, all the browsers scored 100%. Perhaps there is still hope that bothIE and Firefox will be made more standard compliant so that there Acid3 scores can match their Acid2 scores.
[followup on July 20, 2009] Firefox 3.5 is making rapid progress. With Firefox 3.5.1, I have an Acid3 score of 93. My IE scores have remained the same.

Saturday, June 13, 2009

Richer web interfaces

Web interfaces are improving all around. With tools like GWT and OpenLaszlo, it is possible to build rich web applications with GUIs that at least match stand-alone applications. Some of the applications that I am finding innovative include:
  • Pentaho BI Server. Their new Mantle UI is build with GWT and is a huge jump beyond the old interface. It just behaves like a stand-alone application. Some of the components, especially jPivot, could use an update, but the Server platform is in a great place to organize all of these new features. With the modular design of BI Server 3.0, Pentaho users will be seeing a great deal of new reporting and analytic tools they can plug in.
  • G.ho.st, the globally hosted operating system, is a virtual computer that you can access from anywhere. You have a full GUI, built in OpenLaszlo, apparently by their team of only 30-40 staff. Ghost seeks to provide a free, web-based virtual computer for anyone in the world. The UI is fast and simply doesn't feel like a browser. Have a look.
  • LZPIX is another OpenLaszlo application for viewing photos on Flickr. The link is to the Flash version, there is also a DHTML version and you can see the source code as well. On a side note, open the application and search for 'toureiffel' , the photo Paris s'éveille is magnificent!
  • Maple is another interesting tool to view photos, but it is designed for multimedia slide shows. This can run as either a Java application or a a Java Applet. It uses Java 6, and my shiny new Mac only has Java 5, so the only way for me to view this is running a VM with either Windows or Linux so I can install Java 6, which was released in December 2006. Come on Apple, is it not possible to get the bugs out in 2 1/2 years!? Oh well, one more reason to hope for Snow Leopard. I just hope that they have a Java 6 upgrade for Leopard, since I can't run Snow Leopard on the older G4/G5 Macs. I was going to ask why Java applets didn't catch on like Flash applets, but I guess when you have trouble accessing a consistent Java platform across OS/X and Windows, the answer is clear. This is unfortunate, as Maple is a great slide show viewer. Java really does work, it is just a shame that it has been held captive by an Apple or Microsoft.
  • Ben Fry's zipdecode. Try this and tell me why this shouldn't be part of any application that needs a zip code. It should be easy to gather the data needed to make this international. If I am filling out a web form, why do I have to type in 52302 and then choose Marion, Iowa? There are some zipcodes that server multiple communities, but in that case, I would just need one extra click to pick the city. The only thing I would add to this applet would be a semi-transparent zip code on top of the map.
What we need to do is develop simple, rest-based tools that we can easily drop into web applications. If your application is residing on the web, you should be able to simply reference well designed tools. The current practice of installing web apps on your application's server seems to undercut the promise of the web.

For a coherent theory of how software should be designed for people, I recommend Bret Victor's Magic Ink. He has thought deeply about this, while I am just providing examples.


In some ways, it is possible to outdo stand-alone applications.

Friday, June 5, 2009

Google I/O viewed from IOwa.

With some software presentations, you are overwhelmed by the show but afterwards the gee-wiz wears off as you start to piece together what is going on. But the more I think about Google Wave, the more the ideas are growing on me. At this time, hardly anyone has heard about Google Wave, but that is going to change. Within a few years, Google Wave could be recognized one of the few paradigm changing applications, much like hypertext going mainstream was to the growing of the web in the 1990's.

In the developer preview, there were no lack of eye-popping features:
  • Drag and drop photos from iPhoto into the browser. Really cool use of Gears and GWT. Watching the photo upload automatically and appear on the other browsers in seconds was a direct reminder to me that we are only beginning to understand how the web can connect us.
  • Watching real-time translation between French and English shows how we are going to be able to interact more freely in wider communities.
  • The multiple, concurrent editing of a single document shows how much power there is concurrent versioning systems.
  • The use of associative memory, which resides not only on the server, but is shared with each participant is part of the secret sauce that makes is seem that everyone on the wave is 'together'.
This just seems like it is the next phase in the evolution of the world wide web. Before this, the web was a bunch of places to go. With Wave, it will become a bunch of events to join, review and create.