Touring the Sun “Project Blackbox”

I just left one of the AMD facilities in Austin, TX, where Sun Microsystems had a Project Blackbox on display. There was a short presentation where Sun representatives gave a quick overview of the design — including some impressive numbers for the amount of equipment and power you can run in the Blackbox. The key is the cooling system. The Blackbox uses an air circulation system that separates each rack with a water-cooled heat displacer. The servers are then racked sideways so that air can move clockwise inside the Blackbox. HEPA filters clean incoming air, and a dehumidifier extracts moisture.

The container itself is “water tight”, but it was recommended that the Blackbox be covered if placed outside. (Contrary to the photoshopped pictures of the Blackbox sitting on open building rooftops.)

I snapped a few pictures with my phone during the tour. These first two show the Project Blackbox sitting on a trailer:

09022007155

09022007143

Inside the container doors. This first door leads to an air circulation chamber:

09022007146

Within the air circulation chamber, another door leads to the racks:

09022007147

A rack being slid out from within the Project Blackbox:

09022007150

At the back of Project Blackbox, this photo shows the dehumidifier, and the rack for networking gear:

09022007153

Power, water, and network ports on the Sun Project Blackbox:

09022007157

The power ports on the Sun Project Blackbox:

09022007156

The representatives claimed that an empty Blackbox (ie., no servers) would likely cost between $300,000 – $400,000.

Google Spreadsheet Storage

I was pleasantly surprised that Google offered an API to Google Calendar, but I’m much more eager to hear whether an API will be available for Google Spreadsheet. The potential there seems huge! The “Hello World’s” could be “Web servers that upload traffic summaries nightly”, or “Screen scrapers that build price-comparison spreadsheets.” This is Grade-A mashup material!

Once you have an API you can also take this thing MUCH further by writing a database driver library or ORM that can map queries to rows and build spreadsheets per-table for your database. Obviously you’re not going to be replacing a large, loaded database with this, but think about swapping out “Google Spreadsheet Storage” for small tasks that you might otherwise use sqlite for. Especially if there’s a driver that integrates right into your web framework. For example, let’s say your new “In Private Beta” web app has a “Sign up to be notified about our launch” form on the front page. Where do you want those email address to go? You probably want it in a spreadsheet anyway, so why not have the web app just post it into a private Google Spreadsheet automagically? Having the web-based spreadsheet UI also means you can review, edit, and export the data in a slick, phpmyadmin-like way!

Apache and mod_python for S60

Nokia Research Center (NRC) has published a port of Apache for S60 which includes mod_python built for Python for S60. Once installed, you can run Apache on your phone and serve Python-based web applications that utilize the full (non-GUI) API of Python for S60!

Running a server on the phone opens up a whole new class of mobile applications. The obvious “Hello World” for this environment would be a web-cam (which is included as an example), as well as a URL to query the device’s location and possibly share calendar and contacts data (all of which have Python API’s.) Add a Bluetooth GPS, and a Google Maps mashup plotting phone positions is only a few lines of code away!

The release notes focus on the (optional) gateway to bridge the wired internet to mobile servers, which is very cool, but even without the gateway this software has potential as a unique tool for mobile web developers thanks to it’s ability to serve content to local browsers. Once you’ve installed Apache, all you need to do is select “Options”, “Start Non-Cellular” from within the application (called Racoon.) This will launch Apache, and you can connect to it on 127.0.0.1 from a local web browser, as shown in the following screenshots:

starting apache

connecting to local apache server

viewing local server

Combining the on-device server with a few Python for S60 scripts, you now have the potential for a rapid round-trip when optimizing a mobile web page design. The Python for S60 project includes a script for directory synchronization over Bluetooth. The idea was to make it extremely easy to edit Python scripts on a PC and synch with a phone for testing. This idea could easily be extended though, so that you’re synchronizing Apache’s DocumentRoot instead. With a synch daemon like this, the round-trip from editing XHTML on your desktop to previewing on-device could be as simple as hitting “Save” in your text editor, and “Reload” in your phone’s browser. No need to upload pages to a server or have a data-plan for the phone. That’s killer!

My Nokia 770 is here!

It took awhile, but I finally got a Nokia 770 Internet Tablet! (Though I guess it would be called an “ultramobile” now ;-) The device arrived a couple weeks ago (those who bumped into me at SXSWi might have seen it), and I’ve been slowly trying to incorporate it into my workflow. Fortunately that’s an exciting thing to do given how fun the device is to use.

First thing first though, my 770 was “previously used”, so I did need to update the firmware. Thankfully, this was super easy: “Flash Latest Nokia Image with Mac OS X“.

With the new firmware running, the next step was to install xterm, followed by Python for Maemo. Both of these worked perfectly, and I still get a kick out of seeing a Python prompt on this thing! Of course, working on the command-line isn’t much fun using the on-screen keyboard, and since I wanted to use the 770 to take notes at meetings, I decided to buy a Nokia SU-8W Bluetooth Keyboard. The 770 needs a driver to use the keyboard, but this is also easy enough to install: maemo-bt-plugin. With a physical keyboard, I can now use vim, but the SU-8W will take a little getting used to. The key-layout is tight, and the use of the function key (‘fn’) messes with my touch-typing. Additionally, being hinged in the middle, the keyboard also doesn’t lay in your lap well. Without a table top, you end up having to balance the keyboard on one thigh while seated.

Where the 770 really shines though is in web browsing. Browsing the web on the 770 is good — really, really good. The wifi reception is fantastic, and even modern sites like Google Mail work flawlessly. Furthermore, since I leave the device in stand-by (just closing the cover), it’s one of the quickest browsers to get to when away from the desktop. I can be online with the 770 in about the time it takes for my PowerBook to wake up.

When you’re ready for more things to do with the 770, the Maemo application catalog features dozens of applications which are super easy to install over-the-air. (Maemo-Sudoku helped me through a particularly long lay-over last week.)

One thing I didn’t know about the 770 before getting one is how well it integrates with Nokia phones. When first booting the new firmware, the device asked to pair with my phone (a Nokia N90.) The N90 is now visible when browsing files and can be used to get online over GPRS. I used this feature when posting my pictures from BarCampAustin to flickr. I took the pictures with the N90, copied them over Bluetooth to the 770 using the 770’s File Manager, and posted to flickr using the 770’s browser and wifi connection! In a crunch, I’ve also exploited this feature to move files to my 770 (which doesn’t support OBEX push out-of-the-box.)

Next on the toy-list, I badly want a Bluetooth GPS unit to tie the 770 to… especially after seeing this: “Bluetooth GPS and GPSDrive on the Nokia 770!” I’m leaning toward a Nokia LD-3W (because it uses a Nokia battery, and I have plenty of those); However, that unit doesn’t seem to be shipping yet. (The older LD-1W is available, but it’s a little pricey IMO.)