Latest Publications

BlackBerry versus iPhone – Benchmarking the Browser

Lately I’ve been thinking about getting a netbook. They seem trendy, and I like gadgets. But I’ve started questioning what I would get from one that I don’t get from my current devices. I’ve concluded that what I want isn’t a netbook, it is a phone that is actually good.

I’m the happy owner of a BlackBerry Bold. I upgraded from a Curve the day the Bold came out. I’m pleased with the device. It has a great keyboard. The built in push-mail client works well, and the calendar is also very good. Third party apps complete the picture, including google maps and gmail. In fact, the gmail client for blackberry is arguably better than the built in blackberry mail client. The device is small. It has a great screen, and a great keyboard.

But one reason I’m a happy BlackBerry owner is that on the weekends, or when I’m traveling, I have ready access to an iPhone. My wife has had once since they first came out. I can confidently say that the iPhone is a piece of electronics that actually changed my life. With an iPhone, one no longer has to plan trips at home. You can plan them en-route. It becomes possible to choose good restaurants, good activities, and hotels, all on the fly. The iPhone is a device that enables our just-in-time, always-connected lifestyle.

The BlackBerry, on the other hand, is an email appliance. It’s a great email appliance, but it won’t change your life like an iPhone does. The reason, once I got to thinking about it, is that the BlackBerry web browser is crap.

Now, technically it is a fully featured web browser. You can zoom and pan, or reflow text into columns. It implements javascript, css, and all kinds of modern web stuff. But that doesn’t make it a good browser. It is still a chore to use. Some of the challenges are usability. The “back” versus “cancel” behavior always confuses me, for example. And it doesn’t have tabs. But most of the problem’s come down to performance. It is just too slow.

We got a new iPhone 3GS today. The first thing you notice is that it is even more responsive than the original iPhone. Some of that is new hardware, and some is new software. The snappy new iPhone makes the BlackBerry look even worse. So I decided to try to measure the relative performance.

I’d like there to be a mobile-browser benchmark that measured every aspect of the user experience. Unfortunately, there is not. What does exist is the SunSpider benchmark for JavaScript engines. This benchmark measures the speed of various Javascript operations, and draws conclusions about the implementation. It was developed by the WebKit development team at Apple, so there is a good chance the iPhone is already tuned for it. But it’s a place to start.

phones4.pngThe results are pretty telling. In case you hadn’t guessed, lower numbers are better. The BlackBerry JavaScript implementation runs at least three times slower on every test. And on many it is seventy times slower. There are three subtests which it is unable to complete, so I left them out of the measurements. Overall, the BlackBerry is 57 times slower than the new iPhone.

phones3.pngSince it is difficult to see what is going on between the new iPhone and the old, I’ve pulled out those numbers to graph on their own. The obvious thing to notice is that the new iPhone is considerably better than the old iPhone. The old iPhone was running upgraded software, so all the differences are in the hardware, or in the way the software can take advantage of the new hardware.

But I think the most striking difference is to compere the two graphs. I’ve included Firefox here as a baseline. This is Firefox running on my MacBook Pro, a state of the art machine with a state of the art browser. Notice how much better Firefox is than the old iPhone? Well, the old iPhone is more than that much better than the BlackBerry.

The BlackBerry hardware is pretty respectable. The only conclusion to draw here is that the implementors at RIM aren’t working very hard on the browser, or have somehow handicapped themselves to the point where they cannot deliver a competitive browser. And without a competitive browser, it won’t be long before the BlackBerry isn’t considered a competitive device.

For more information on JavaScript Benchmarks in general, see John Resig’s JavaScript Performance Rundown. If anyone would like to run SunSpider on a G1 or other Android phone, I’d be happy to post the results.

Should Your Honor Student be in Shop Class?

Matthew Crawford’s essay in New York Times Magazine last weekend, “The Case for Working With Your Hands” really resonated with me. The primary focus is the intellectual challenges and rewards of repairing motorcycles, as compared with “knowledge work” jobs that our society seems to value. But one point at the end captured my attention:

The visceral experience of failure seems to have been edited out of the career trajectories of gifted students. It stands to reason, then, that those who end up making big decisions that affect all of us don’t seem to have much sense of their own fallibility, and of how badly things can go wrong even with the best of intentions (like when I dropped that feeler gauge down into the Ninja). In the boardrooms of Wall Street and the corridors of Pennsylvania Avenue, I don’t think you’ll see a yellow sign that says “Think Safety!” as you do on job sites and in many repair shops, no doubt because those who sit on the swivel chairs tend to live remote from the consequences of the decisions they make. Why not encourage gifted students to learn a trade, if only in the summers, so that their fingers will be crushed once or twice before they go on to run the country?

As a student, I was often frustrated with school. The frustration stemmed from the contrived problems we were asked to solve, and the often contrived methods. This was particularly challenging in science classes, where hands on experiments were used to validate conclusions which were easily derived from information in the textbook. In mathematics, similarly, we covered only topics mathematiciansa had finished with long ago, even though we mechanistically approached them as if they were new. In both cases, it might have been nice to try to solve a problem with an actual unknown answer. Similar problems came up in classes like history, where most of the research was on well-worn topics.

Most “gifted” education is simply more challenging or more advanced versions of mainstream education. Some students do benefit from early introduction to good literature or high-school math, but I think the reason this strategy is popular is because it is easy on teachers. They are able to stay in their comfort zone, covering material only slightly more advanced than the material they usually cover.

Doing real science, or real mathematics, or even real history, may be beyond the abilities of many teachers. However, there is no requirement that gifted education be based on the core academic pursuits on which students are already focused. The core academic subject are very abstract areas, and professional competency not only requires years of study, it is very difficult to measure. There is probably more benefit to doing something real, with success and failure and where abilities can be applied and challenge, than to doing things which fit into the existing topics of education.

Working with your hands has easy, short term measures of success and failure. It’s is possible to achieve performance that is comparable to a professional much more easily in carpentry than in algebraic topology. This isn’t to say you will be a professional woodworker in short order. But your amateur woodworking, with its flaws and limitations, lends itself to measurement and learning from mistakes.

Studying a trade will give gifted students a sense of concrete accomplishment. They are rarely presented with challenges where they can see for themselves how well they have done, and how they could do better. Instead they compete in abstract ways against contrived problems and abstract metrics applied by far away individuals and organizations.

Who hasn’t met a gifted student who could have used more early experience with failure?

How long will PCs and Servers use the same CPU?

A couple of weeks ago I attended a meeting at MIT on Cloud Computing. One of the questions from the audience was how cloud computing impacts high performance computing. The response was that in a cloud of inexpensive commodity servers, scientific applications must learn to spread applications across large numbers of parallel compute nodes. This is the most economical way to take advantage of state of the art computing in 2009.

But for how long will this stay the case? The commodity servers at Google are based around Intel (or AMD) x86 chips. These chips represent the most bang for the buck today because they are highly engineered and produced in massive quantities. The production runs at Intel make sense because their chips aren’t just for Google, they power everything from personal computers through small servers up to grid nodes. In fact, the top end CPUs aren’t used in those grid nodes, which favor cheaper processors, but rather in high end servers that will either operate near peak capacity, or which are being purchased to be used for many years.

So Intel makes the same CPUs for everyone. Personal computers drive huge volume. High end servers take the bleeding edge processors before they are available in large volume. Everyone covers the R&D cost of new chip designs and new processes. And cloud computing vendors buy at whatever the current optimal part of the curve is for computing power per dollar.

But is this really sustainable? Personal computers don’t need or want the full power available from a modern processor design. Netbooks and cell phones are the new consumer computing device. Consumers demand long battery life, small size, and low cost, rather than computing power. Intel is responding with new lines of chips, such as Atom, designed for this application domain.

Cloud providers, on the other hand, will continue to want the most computing power they can get per dollar (including power and cooling costs). Thanks to virtualization, they can split a large machine into many smaller machines at low cost. Probably no cost, because a layer of abstraction will be required for management of the cloud nodes anyway.

If Intel is building netbook processors, what will be the most efficient way for cloud providers to get computrons? It probably won’t be large numbers of Atom processors. More likely we will see chips and microarchitectures purpose-built for cloud deployments. Probably machines with large numbers of processors and memory, which run hypervisors natively and are designed for virtualization and partitioning. Machines designed to access networked storage, with lots of communications capacity. Likely machines built up out of hot-swappable, fail-safe components, and encourage long term maintainability and upgradability.

Will Intel be the best company to provide this computer? It seems unlikely. Their position of dominance in the server business is a historical accident, caused by the current period of alignment between the needs of consumers and the needs of large computing organizations.

The cloud computing server I’m describing sounds a lot more like a mainframe than it does like a consumer machine. And while mainframe might be a dated term, we will be seeing a lot of that old being new again in the cloud.

If cloud servers start to look like mainframes, then we should consider what’s going on in the mainframe space. The answer? IBM, who is still building and innovating on mainframes with the z10. And while IBM’s chip designers can’t compete with Intel on volume, they know a thing or two about building high performance computers, both for consumers (Xbox 360) and for people with big computing needs (Blue Gene).

Or might it be Oracle, who has been enjoying the hardware business with their Exabyte machines for the last six months, and who just bought a top quality hardware manufacturer with experience designing novel architectures. If Oracle doesn’t sell it off for cash, I would look to see what the SPARC team is doing next. It might be a rack-sized grid node designed for elastic computing tasks.

So, how long will it be before we see hardware purpose-built for the needs of cloud hosting?

The Downsides of Limited Intellectual Property in Psychiatric Care

As a software entrepreneur, intellectual property is a fact of life for me, like death and taxes. Between patents and DMCA protection, free software and licensing, it often feels like software is handicapped by the amount of intellectual property protection available and the ways it is applied. Innovation spreads naturally in software, and patents hinder it more often than they help. Traditional copyright is sufficient for enforcing basic software licensing, and even that may be too restrictive if the goal is to maximize innovation.

But not everything is software. A few weeks ago John Weisz of the Judge Baker Children’s Center at Harvard gave a talk at our church about his group and the work that they do. It’s a great organization, with the mission to improve psychiatric care for children. They do this in many ways, such as running the Child At-Risk Hotline for Massachusetts, operating a school for children with psychiatric challenges, teaching Harvard students, running summer programs for kids with problems, and funding various studies of children’s psychiatric care.

The studies lead to an interesting if depressing problem. Because the Judge Baker center does some of the best research in the topic, they often know exactly what treatments work for children and which do not. But there is no good way for them to spread this information out into the world.

Unlike software developers (at least the software developers I know), most psychiatrists aren’t able or inclined to reach research papers and form their own conclusions about the state of the art in their profession. Rather, they are overworked, underpaid, and have no money for professional continuing education.

Normally in medicine this problem is solved by drug companies. They have an incentive to teach doctors about their new drug or device. They will get paid by patients in the end, if they can convince the doctor that their treatment is worth prescribing. So they produce not only research, but also continuing education programs, often hosted as part of lavish vacations. They give away pens with their name on it, send reps in regularly to talk about new systems or treatments. They even do television commercials, educating consumers directly. And the whole process is kept relatively honest by FDA oversight.

Psychicatric care, at least the kind that doesn’t involve drugs, is missing both sides of this equation. There is no FDA analog, forcing rigor in research about treatments and setting acceptable practice. And there are no drug companies, developing new techniques and spending the money to inform practitioners.

The reason for this, at it’s heart, is the lack of intellectual property protection for psychiatric treatment techniques. There is no way for a developer of new techniques to capture the value that other people, providers and patients, get from their new techniques. And as a result there is no incentive to push those techniques out into the world, to market them and train providers in them, to measure their effectiveness and get articles written in parenting magazines.

In software, it often seems like we have too much intellectual property protection. It’s interesting to hear about a discipline with too little.

Hello Wordpress!

I switched to Wordpress. Let’s see if anyone notices.

CTO at StreamBase

Welcome Mass High Tech readers and others. As many new visitors to my blog know, I’ve recently taken on the position of CTO at StreamBase, the company which came out of my graduate research at MIT and where I have until recently been Chief Architect. Old visitors to my blog surprised by this post can read the official StreamBase Press release, or the Mass High Tech article linked above.

StreamBase is a top vendor for Complex Event Processing (CEP) software in Capital Markets, Defense, and other sectors. Customers use our software to implement business applications which can identify, transform, archive, and respond to events, with sub-millisecond latency, at hundreds of thousands of events per second. Doing all that requires a combination of programming language design, compiler technology, database technology, networking, performance, and developer tools. I’m lucky, because this matches my own interests precisely. In my new role, I’ll continue to be hands on with all these areas of technology, and expand my work with StreamBase customers and industry organizations.

Nothing to See Here is my low traffic personal blog, on which I comment about a fair number of things, but basically never talk about complex event processing. It keeps life simpler. If you would like to see me blogging in an official capacity about CEP, keep an eye on the StreamBase Event Processing Blog.

Ban Non-Competes in Massachusetts

I have never liked non-compete agreements. As an individual, I find them annoying. As an employer, they have caused me headaches. And politically, I think they impinge too much on individual rights. Furthermore, they are one of the ways in which Massachusetts is inferior to California for startups. That last one really bothers me.

The good news is at least one legislator is doing something about it. Will Brownsberger has announced that he will be sponsoring legislation to abolish non-compete agreements in Massachusetts. Xconomy reported about it in a story earlier this month, “Legislator Drafting Bill to Outlaw Non-Compete Agreements in Massachusetts“.

This is a simple legislative change which will cost the government little and have a big impact on Massachusetts competitiveness. However, I expect larger employers to resist any change in the law, so there may well be a fight. I want to encourage as much grassroots support of this as I can, so after the break you can find my email for inspiration and details on how to write your own representative.

Leer más »

Thinking about Tufte: Resolution Isn’t the Key

A few weeks ago I had the chance to attend Edward Tufte’s lecture in Boston thanks to StreamBase. This was one of his standard lectures on information presentation, for which he has become famous. As usual, it came complete with a set of his books. This was convenient since sometime in my last 4 moves and 3 jobs I lost my set.

I’ve been a fan of Tufte since I first encountered his work as a freshman at MIT. His books contain wonderful examples of good informational graphics, graphics that display quantitative and relationship oriented data, drawn from many modern and historical sources. They are entertaining to read, and provide lots of inspiration for user interface and graphic design.

PowerPoint

However, I’ve always found his proscriptions a bit heavy handed though. His strong advice against the use of PowerPoint always seemed to miss the fact that it can be useful. PowerPoint may suck for transferring detailed information. It may even be a bad tool that leads to ugly presentations. But overhead visuals do have merit. They can provide structure that makes it easier for inattentive audiences to follow. There were a few times during the talk, when speaking on topics not found in this books, that he went on too long without any visual aid and PowerPoint could have improved the talk.

Visual Acuity?

Several times during the talk, Tufte came back to a claim that the human eye is like a 10 megapixel camera, and that producing bad graphics is like not taking full advantage for that camera. He writes about this on his site in “Retina communicates to brain at 10 million bits per second“. This statistic comes from a University of Pennsylvania School of Medicine estimate. They measured how much data can be transmitted back to the brain by the nerve cells of the retina on a guinea pig, and extrapolated based on the larger size of the human retina. The result is an estimate of eye-brain bandwidth, in terms of raw image data.

That number, while impressive, is misleading. The brain doesn’t use every pixel in the eye independently. If you look at a television screen of static, you might be able to see every pixel, but you can’t count the white ones at a glance. The visual system compresses information, abstracting the pixels into higher level concepts that the brain is trained to understand. That’s why you can read English and use complex computer interfaces, and yet find a page full of Chinese or an airliner cockpit overwhelming.

This compression prevents your visual system from overwhelming your brain with information. Your brain is not prepared to digest every pixel on a static-filled screen. Instead, it can abstract away that piece of your visual field as a known concept, static-filled screen. Similarly, when looking at a page of text, you don’t examine every printed pixel, or even every curve of every letter. Your brain sees entire words, looking at collections of letters and using previous experience with the language and content to predict and infer words. This is why a particularly unique turn of phrase or complex sentence can throw off the pace of your reading, forcing you to go back and reevaluate what was actually being said. If we examine common reading speed (200-250 words per minute) and the bit density of written English (about 8 bits per word), we get 2000 bits per minute, or 33 bits per second. So the channel of actual information uptake is much narrower than the bandwidth of the retina.

Optimized Compression

While it is narrow, the good thing about this system of observation is that it is optimized for the common cases you encounter, because it is constantly being trained. If you are a native speaker of English, you will have no trouble recognizing a page of English, while a Chinese speaker’s visual system will be more attuned to Chinese. If you are a programmer, even if you have never used it the Eclipse IDE will likely look familiar, while if you have been a Wall Street trader, then a Bloomberg terminal will seem familiar.

This trained visual system has a big impact on the design of information interfaces. Humans are capable of using very complex interfaces, if they have been trained to use them. Throughout his talk, Tufte kept coming back to the sports pages, pointing out that they are a wonderfully dense source of information, and a good place to go for inspiration. Well, one reason for this is that the last few generations of Americans were introduced to the sports pages as kids, and took the time to understand the information displayed there. We were not born with the ability to interpret a baseball line score, but it would be tough to grow up in America without at least some familiarity. And so any quantitative display that is based on a line score will be easy for people to understand.

When choosing a quantitative display, consider your audience and the displays with which they are already familiar. Familiar information displays will have a fast path through this visual compression. They won’t look confusing, they will look familiar. The information is pre-compressed. It doesn’t look like something else, it looks like people expect information to look.

The benefits of experience explains why new visual communications paradigms like treemaps, heatmaps, or sparklines don’t see much uptake. They are new, and there isn’t a compelling reason for people to learn them. And until a critical mass of people learn them, smart authors won’t use them.

So while I agree with many of Tufte’s conclusions, I think his theory leaves something to be desired. The goal of a visual display of information is not information density. The goal is efficiency of comprehension. And graphical paradigms that people already understand are the easiest way to give them new information.

Exchanging my Kindle for another Sony Reader

I replaced my Sony Reader with a hipper new Amazon Kindle, and I’m totally disappointed. The Kindle has a few good ideas, but it is terribly executed. I’m returning it today (something Amazon is making pleasant enough) and buying another Reader.

Read on for more detail…

Leer más »

Buy It Like You Mean It and Vendor Relationship Management

I just got back from the launch party for Buy It Like You Mean It, a startup non-profit that is “enabling the socially conscious consumer”. I’m a big fan of what they are doing. As a free-market capitalist, I like to think that the power of markets can solve all kinds of problems. As a realist (and Wall Street technology vendor), I realize that market actors can have wildly different information and expertise.

Consumer goods suffer greatly from this problem. They are produced and distributed by large and complex organizations. Consumers, particularly in traditional retail settings, have little to go on but what it says on the box and the brand. And in recent times, brands have become commodities themselves, with everyone from Martha Stewart to Sesame Street selling their name. In order to make this market work, we need better technology at the point of sale.

Enter Buy It Like You Mean It.

Leer más »