Saturday, June 30, 2007

Must. Buy. iPhone. Must. Buy. iPhone....

OK, I give in. Its Apple at their best, insanely great, detailed craftsmanship and "it just works" usability. However I didn't want to get in line at a store, so I logged in to the Apple online store and made sure my one-click ordering was setup right and enabled, and at 6pm when the store re-opened I got my order in as fast as the site would refresh. It was a little slow, but as far as I could tell, the store was up and running and handled the peak load, so some extra congratulations to the team that runs the store. Delivery was stated to be 2-4 weeks, I should be near the front of the queue, so we will see what happens.

What about the open phones? Well, OpenMoko is running late, but is just about to ship developer phones for real, however the version that will have WiFi is their second revision that is months away, and their software is still being developed. However Gumstix are also very close to getting their new "Goliath" phone kit out, and that is a much more flexible design, where I can add WiFi etc. without replacing anything else, and I can wrap my own case design around the 4.3" LCD. The software is rudimentary, but we intend to port the OpenMoko packages to the Gumstix based "myPhone", and tinker with it to do whatever we want. In the meantime, I will soon have a phone that "just works" better than anything else....

Monday, June 25, 2007

Updates: AdSense, FON and Millicomputing

The Ads are making a bit more sense now...

There is a global commercial WiFi service that has good coverage in places like Hotels and Airports called Boingo. They aggregate services that are not branded under their own name, but if you have a Boingo account you can use the service. Last month they announced a deal to include FON in their network, more than doubling the number of access points to a few hundred thousand. This month they announced an annual flat rate plan for $39 per month. Very cool! Global WiFi access at a low flat rate.

I'm posting a series of updates at Millicomputing.com that describe a detailed design for an Enterprise server Millicluster. Its a radical improvement in terms of performance per watt and performance per dollar for some kinds of applications.

What the iPhone doesn't do, why not, and why I still want one...

There is a very nice posting on the iPhone at RoughlyDrafted, taking a thoughtful look at all the coverage, and pointing out double standards in many of the negative commentators who are putting down the iPhone for not being "enterprise ready".

Back in January, I wrote a summary of thoughts on the iPhone from the perspective of typical product development practices. That post got a lot of traffic, it seemed to be very popular in Germany, where there is a great tradition of quality product design (I can't think of a German designed product that isn't well engineered).

Overall, with the additional advance information that has been released so far I don't think I was too far off the mark. I did expect that support for Adobe Flash and Java would be included, but they both appear to be missing. This is going to be the biggest pain, as there are a lot of web sites that use Flash or Java applets. Given time I expect these issues will be addressed.

I talked about Minimum Marketable Features (MMF) which are described in a book called Software by Numbers, written by my good friend Mark Denne. Its a philosophy of development that optimizes product features by releases over time. Many of the iPhone's shortcomings are explained by an initial focus on the needs of people who have never used a "smartphone" before, (rather than a focus on the business market) and a close integration with other Apple products that support an "insanely great" combination of product features.

For integration with non-Apple products, there is a two pronged strategy. One is to provide basic file viewers for Microsoft Word and Excel documents that are common email attachments. The other approach is to leverage Google's web based application suite within the Safari browser, which now includes Word, Excel and Powerpoint, Gmail etc, and also integrate with the Google maps application on the iPhone itself.

For the question of whether the iPhone can be used in corporate environments, there are two issues - virtual private network (VPN) access to get at internal web sites, and email integration with Microsoft Exchange. There have been some hints that the standard MacOSX VPN functionality is included, and Apple states that syncing is supported with Outlook/Entourage contacts and calendars. For actual Exchange email access, the Exchange server would have to support IMAP or POP (most aren't setup this way) or the Outlook Web Access client could be used in the Safari browser on the iPhone.

Safari is key. It is not only the way to manipulate documents and corporate email, its also the designated "API" for new iPhone applications to be developed. Apple stated that Safari will have access to many of the internal functions of the iPhone, so that the primary programming language for developers becomes Javascript. For all the people with existing mobile applications this is a pain, as they want to have J2ME to get them ported quickly. However, the iPhone is a huge leap forward in user interfaces, and to provide the consistent look and feel that magnifies the ease of use, Apple are enforcing Safari as the only framework for extending the iPhone. This makes perfect sense as a product strategy. It has upset many developers, but the laser-like focus on ease of use greatly increases the iPhone's perceived value and total addressable market. More users will be willing to pay more, increasing Apple's sales. Later on, perhaps Apple will focus more on the "traditional" smartphone market, but for now they are simply going to redefine what that market is.

How many people have both iPods and cellphones in their pockets? This fall, how many students will turn up at college with an iPhone in their pocket?

My work machines are a MacBook Pro and a Blackberry. I'm building the homebrew myPhone design (more on that later), but I think I'm getting tempted by the user interface, I want an iPhone....

Saturday, June 23, 2007

FON: World WiFi Domination?

Now if there ever was a company working on world domination, it would be FON. They aim to build a global network of Wifi hotspots by selling subsidized routers that have custom firmware. The routers have a private secure WPA based network for you to use, and a public network that has a signup page, for anyone else to use. There is also a control that limits how much bandwidth the public can use. They have a few hundred thousand users, and are now the largest WiFi network by far, but the location of their base stations is much more random and less useful than T-Mobile HotSpots.

The incentive in the short term is that you can get a high quality router at a very low price. FON has been giving routers away to seed markets and to surround Starbucks stores. The incentive in the longer term is that if you have a FON router at home, you can use any FON router you find on your travels for free.

I've had a FON router for some time. I met CEO Martin Varsavsky when he gave a talk at eBay last year, and got one of the initial Linksys units with custom firmware. When their own hardware solution came out it had a much nicer feature set, so I upgraded to La Fonera as they call it. I've been using it as my primary home router for about six months now, and its an excellent design. Its been much more reliable than the other low cost routers I've owned (Netgear and Linksys) and works as well as the much more expensive Apple Airport Express that I've had for a long time.

FON just released a booster antenna "La Fontenna", it is designed to give 6.5dB of extra signal strength and project further out than the standard antenna. The idea is that you mount it on the window facing the street, and it covers a larger area. I just got one, and while it seems to work fine, it doesn't appear to be giving me as much signal strength or range as I expected. I wandered around outside with my MacBook using iStumbler's WiFi monitoring widget to track signal strength, and it showed a bit more gain than my Airport. I think I need to experiment a bit more with positioning La Fontenna.

So next time you need a router, don't just buy a normal one, join Fon and support world domination!

Ads that don't make sense

For some reason the ad bar on this site has a fixation about the b-word. I just removed the word bl*g from the template in two places, and I'm avoiding saying it in this posting. I really think Google should be able to find something more interesting to show ads about, so lets see if this makes any difference....

Friday, June 22, 2007

Jobs at Netflix: Capacity/Performance and Storage Admin

Netflix is a great company to work for, there are lots of clever friendly and happy people here.
I just hired an engineer for my own group, but we have a lot more openings:

We are looking for a performance and scalability oriented Java/Oracle developer
Senior Performance and Scalability Engineer
http://jobs.netflix.com/DetailFlix.asp?flix1651

My good friend Ed Wustenhof just joined Netflix to manage the System Administrator group, he's got two open positions, a storage oriented one:

Sr Unix Administrator - Storage Focus
http://jobs.netflix.com/DetailFlix.asp?flix1699

and a Capacity Planning and Performance Tuning one that I've copied the full info for below.

Senior Unix Administrator - Capacity Planning & Performance Tuning

http://jobs.netflix.com/DetailFlix.asp?flix1698

RESPONSIBILITIES

Design, Plan, Deploy and Support all aspects of Netflix's server and storage environment with a focus on Performance Tuning & Capacity Planning.

The SA team at Netflix is a crucial component to the success of the day to day operations of the company. We are a highly motivated and capable team that is seeking a new member that can take a key role in the provisioning and support of our unix/linux servers while ensuring performance stays within thresholds.

Being the second line of support and subject matter expert, you will take individual responsibility for resolving system, storage and application issues reported via the Netflix Operations Center. You will be expected to resolve tactical issues while providing structural solutions. Your area of expertise is performance tuning and capacity planning.

Part of the position will require travel to and from the data center (15-20min or ~10 miles), sometimes multiple times/week. On-call responsibilities, night and weekend projects are also to be expected.

The candidate will often be the technical lead on short term projects. They will be the Subject Matter Expert with its associated responsibility. Some level of project planning and coordination of resources is to be expected. This includes vendor and contractor coordination.

We are looking for someone with the following technical experience:
•Deep experience of Unix with at least one of the following operating systems: AIX, Linux or Solaris.
•Expert in capacity planning and performance tuning.
•Strong experience in web based environments and supporting such architectures such as Java, Tomcat, Apache and other web applications.
•Knowledge of IBM enterprise/midrange systems and storage virtualization is a plus.
•Strong coordination and analytic skills.
•Project planning experience and the ability to manage multiple projects simultaneously.
•10+ years IT experience with at least 8 years as System Administrator.
•BS or MS degree in Computer science or equivalent experience.

Exposure to the following highly desirable:
•Experience with Symantec/Veritas product like VxVM and Netbackup
•Strong expertise with SAN-based storage/application required.
•Large Scale (5Tbyte +) Storage solutions deployment experience.
•Unix shell and Perl programming.

Tuesday, June 12, 2007

Using Occam to Simulate p2p Web Services

About a year ago I gave a paper at an IEEE E-Commerce conference that described how I used the latest pi-calculus enhanced version of the old Inmos Transputer language Occam to build a very efficient massively threaded simulator for large scale p2p web services that ran on my laptop.

I blogged this at the time, but The paper itself is subject to the rules IEEE sets out for peer-reviewed conference papers and you need to be a member or pay a fee to get it from http://doi.ieeecomputersociety.org/10.1109/CEC-EEE.2006.81

However, I wanted to share this more widely and have just posted a pdf of the presentation slides for my IEEE paper. Here are the first few slides, and a description of the Tools section:

Simulation of Skype Peer-to-peer Web Services Choreography Using Occam-Pi

Abstract
Complex web services are very difficult to test and verify before deployment on a large scale.
A semantically equivalent in-memory simulation can be built using Occam-pi that runs up to 100,000 nodes about a million times faster than real life.
Rapid protocol development and detailed behavioral analysis using simulation supports the development of robust services that can scale.
The implementation of a simulator that models centralized web services and application to application messaging over the Skype Peer to Peer network is described.

Overview

  • The Landscape
  • The Problem
  • The Tools
  • The Solution
  • Implementation
  • Running the Simulation
  • Conclusion
  • References

The Tools – Pi Calculus

  • WS-BPEL, SSDL and WS-CDL are based on Pi-Calculus
  • Pi-Calculus is based on Communicating Sequential Processes (CSP)
  • Pi-Calculus provides a formal model of parallel message based computing
  • Occam-Pi
  • The Occam language is based on CSP, and has been extended to add the Pi-Calculus extensions to form the Occam-Pi language.
  • The primary implementation of this language is known as KROC, the Kent Re-targetable Occam Compiler
  • KROC is freely available from the University of Kent at Canterbury, UK
  • Runs on Intel architecture Linux, MacOS X, and Microsoft Windows/Cygwin platforms. Older versions exist for SPARC, PPC etc.

The Tools – Occam Language Constructs

  • The constructs that are used in Web Services choreography map directly to Occam language constructs
  • The Occam language has direct support for sequential, parallel and alternate processing blocks, complex protocols, and channel based communications
  • Occam-Pi adds more dynamic constructs to the language
  • Mobile channels - pass a channel end over another channel
  • Mobile processes - suspend a process, pass it over a channel and resume it in a new context
  • Dynamic process forking with barrier synchronization
  • Rigorous Occam-Pi Compile-time Checks
  • Processes or expressions are not allowed to have any “side effects”
  • Syntax and usage of all protocols, data and constructs is checked
  • Occam is designed to allow very comprehensive static analysis

The Tools – Occam Runtime Characteristics

  • There is no need to use XML message encoding or namespaces
  • since the compiler can check that a protocol is being communicated correctly
  • At runtime, the Occam-Pi language is fast small compiled code
  • with its own threading model, in a single process
  • The Occam-Pi runtime detects and reports deadlock
  • including the line number in the code at which each process was stalled
  • Occam-Pi is very efficient
  • All communication takes place in a single address space at memory bus speeds
  • Basic process creation takes 20 nanoseconds on an 800MHz PC
  • Basic channel communications takes 70 nanoseconds
  • Compared to typical web services transactions over the internet these transactions are about a million times faster
  • The language is also very compact, and one hundred thousand to one million threads can be created within a 2 GByte address space.
Works Cited
  • [Cygwin] “GNU + Cygnus + Windows”, http://www.cygwin.com/
  • [GraphML] “Graph Modeling Language “, http://graphml.graphdrawing.org/
  • [Hoare78] C. A. R. Hoare. “Communicating Sequential Processes.” Communications of the ACM 1978.
  • [Hoare85] C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.
  • [KROC]. “Kent Retargetable Occam Compiler” http://www.cs.kent.ac.uk/projects/ofa/kroc/
  • [Occam2] Inmos Ltd, Occam 2 Reference Manual. Prentice Hall, 1988.
  • [Milner99] Robin Milner, “Communicating and Mobile Systems: the Pi-Calculus”, Cambridge University Press, 1999.
  • [Skype]. “Skype Developers API” https://developer.skype.com
  • [SSDL] Webber et al. “Asynchronous Messaging between Web Services using SSDL.” IEEE Internet Computing Vol10, No1 2006.
  • [WS-BPEL]. “OASIS Web Services Business Process Execution Language” http://www.oasis-open.org
  • [WS-CDL] “Web Services Choreography Description Language”, http://www.w3.org
  • [yEd] “Graph visualization and editing tool”, http://www.yworks.com/

Friday, June 08, 2007

Aftermath is finally released...

After many years of listening to this song evolve from an initial concept to its final released form, its now time to share it with the world and find out what everyone else thinks of it. Its a moving reaction to the events and aftermath of 911, sounds like nothing else, and has an odd but catchy hook.

Its available on Fractal's site at fractal.bebo.com and via the iJigg widget below.