Do All English Hotels Suck?

I have been traveling to the UK, on and off, for a number of years. I have yet to stay in a hotel which was up to my standards, and my standards aren’t that high.

In the last 90′s I was in London on a regular basis for a series of consulting projects. I stayed in the city a number of times, often near Trafalgar Square. I remember small rooms, dark hallways, and plumbing that was apparently older than the Queen of England. I had a project out in the suburbs once, and I stayed at a truly dismal hotel in a forgotten little town called Burgh Heath.

I’ve been to the Amazon.co.uk offices twice in the last two years, and I’ve had the distinct displeasure of staying in Marriott properties. I stayed in the “regular” Marriott in Slough last year. This time I stayed at the Courtyard Marriott, also in Slough. I haven’t linked either of those, since they deserve no attention and certainly no link love. Both of these hotels “feature” small, cramped hallways with low ceilings, dark and depressing rooms, and not much else to recommend. With the notable exception of the restaurant staff (in both places), the hotel staff were generally friendly and helpful.

Neither hotel is located convenient to any off-site restaurants or shops, and I don’t like to drive in the UK, so I had no choice but to use the on-site restaurants. I don’t know what it is about the Marriott restaurant staff, but there’s really a problem. The staffers are slow, indifferent, forgetful, and lazy. The service is slow, and the overall quality of the food is mediocre. Menu selections are limited, and there’s really nothing to recommend here. In both hotels, guests went unserved while staffers hung around the cast register or chatted with their co-workers.

Bill Marriott has always made a big deal about service, but this message has yet to reach the United Kingdom.

Back in the USA

I just returned from a whirlwind recruiting trip to the United Kingdom. I have lots to blog about, but not tonight. I woke up at 6 AM London time, was at the Amazon office by 7:30, met with two software developers, and then hopped in a cab to London Heathrow airport at 1 PM. Checked in, and walked through duty-free, felt like a pauper due to the weak dollar. Flew to Chicago on a lightly loaded 777, then on to Seattle. Arrived home at 11:30 PM Seattle time. Whew!

RSS For Dummies

Syndicating Web Sites with RSS Feeds For Dummies  (For Dummies (Business & Personal Finance)) I was a paid tech reviewer on Ellen Finkelstein‘s forthcoming RSS For Dummies book. The listing just showed up on Amazon and the book is now available for pre-order, for shipment in late March.

The book is chock-full of useful content! It is not just for ‘dummies’ and it is not solely for beginners. Intermediate and advanced producers and consumers of RSS are going to enjoy and find some valuable information in this book. There is great info on blogging, data formats, hosting, podcasting, and much, much more.

I really enjoy the tech review process, and I would be happy to entertain offers to do more such reviews. I enjoy reading and providing quality feedback to authors, and I also like the chance to be a bit ahead of the curve by reading new material before it is available to the general public. I have also done tech review for Amazon Hacks, for Google, Amazon, and Beyond, and for Mining Amazon Web Services.

I wrote a separate blog entry on the subject of tech reviewing.

Doing a Tech Review

So, how does the review process work? After agreeing to the terms and the time frame, I typically work directly with the author and the editor. The editor will set the time frame and will also set up some working rules for the process, such as the turnaround time for each section, the method to be used for inserting comments into the draft chapters, and so forth. Then the author or the editor will start sending chapters to me as they are ready, often with suggested deadlines for review.

When I receive the chapters, I start to set aside some time in the evening to do review. I generally load them up on my laptop, and sit down in front of the TV with my family. That way I am in the middle of the action on the home, but I can still make steady progress on the review. To review a chapter, I simply read it with a very critical eye, checking for technical accuracy, overall flow, completeness, and so forth. Sometimes the editor wants me to check grammar and spelling, sometimes not. Even if I have been asked not to check these things, I will sometimes make a note if something really bothers me, or if I fear that it could be overlooked for some reason. I generally use Word’s “Track Changes” mode, making comments inline using a style and format set by the editor.

After I finish each chapter, I send it back to the editor, and start on the next one.

For me, the important thing is to set a consistent and sustainable pace, getting some work done each day instead of letting it pile up as the deadline approaches.

Seattle Sunset

At the time I was leaving work last night the sunset was simply beautiful, and the City of Seattle looked great. Here’s a quick picture:

Seattle Sunset

This was shot from the top floor of the Amazon parking lot using my Motorola V-650 phone.

Supple Project at the University of Washington

Earlier this week I took a break from my usual routine and took a drive out to the University of Washington for a morning meeting. My destination was the Department of Computer Science & Engineering, headquartered in the new (and spectacular) Paul G Allen Center for Computer Science and Engineering.

The day before my meeting I had received a brief email from Kiera Henning. She told me that her group was building an application around AWS, and that I would probably find it interesting.

I entered the building, met Kiera, and she took me up to their lab, where I met her co-worker, Krzysztof Gajos.

Apple Cinema 30Krzysztof and Kiera (and several others that I did not meet) are working on a project called Supple. Supple is intended to move the state of the art in user interface design past the “one size fits all” model. The goal is to start with an abstract description and end up with an interface suited to a display of any size, ranging from a compact cell phone all the way up to the Apple Cinema display that Krzysztof had on his desk.

In a nutshell, the input to Supple is a functional specification of the user interface, information about the display device, and information about the user. The output is a dynamic, fully customized user interface layout. The layout will be comprised of one or more windows, with a number of user interface widgets on each window, laid out in a pleasing and logical fashion. It is important to know that the output can consist of more than one window. On a large display, Supple can create a “flat” layout, putting many widgets in the window. On a more constrained display, Supple will automatically create a hierarchy consisting of a main window and child windows.

The user interface is specified in abstract form using a tree structure with the application at the root. Child nodes are then used to specify logical groups of values and the values themselves. The values can be basic types (integers, strings, and so forth), constrained basic types (an integer within a fixed range, or a string chosen from a list of values) , vectors, containers, actions, and optional hints. The constraints are an important aspect of the model because they allow Supple to do a better job of mapping the value into the most appropriate widget.

The device model consists of a set of constraints, a widget library representing the repertoire of functionality available for the device), and a “cost function” for each widget. The cost function expresses the amount of user effort needed to make a change to the widget.

The user model is still under development, and we didn’t talk too much about it. As described in one of the Supple papers, the user model includes traces derived from actual use of the interface.

Artificial Intelligence: A Modern Approach (2nd Edition)The layout algorithm takes the functional specification and assigns widgets and windows to it. It essentially creates a gigantic search space of all possible widget and window assignments and then applies artificial intelligence techniques to optimize the tree for the best possible solution, as expressed by a cost function. The cost function is rather complex; it takes in to account a number of factors, including the effort needed to navigate between widgets and the actual pattern of interface usage as derived from the trace data collected from the user. In plain English, this means that the system has the information it needs to ensure that the most frequently used widgets, and the widgets used in conjunction with each other, are the ones that are the most readily accessible. That’s pretty cool.

The real effort here is in minimizing the search space and quickly coming up with the best possible solution. Any real user interface will have billions and billions of possible solutions; doing a full layout and computing the resulting cost for each one would be prohibitively expensive. Krzysztof explained to me that he is able to prune the search in a very opportune manner, eliminating many solutions which have no chance at all of being the best one. He called this an “A* Search”.

So, how does it all work in practice? Really well! They showed me a Java implementation which uses the Java Swing widget library. Complex UI’s with dozens of elements were laid out in a matter of a few seconds. This is perfectly reasonable, and I am sure that it will get even faster in the future. Some applications will do UI layout at startup time, others will do it on the fly, and others will probably be shipped from the factory with some starter layouts.

The fact that Supple can generate a fresh UI layout more or less in real time opens the door to some new types of application behavior. As we enter into the era of ubiquitous computing, interfaces which can morph into the form appropriate for a wide variety of devices will become increasingly important. For example, I generally read my mail at home using Thunderbird. Supple would allow this same application to present an appropriate user interface when I need to get my mail from my Motorola cell phone, my flat-panel TV, or from a web browser. At this point, applications need to be able to work well on devices that didn’t actually exist at the time the application was designed and built. A late-binding, dynamic approach as exemplified by Supple is going to be an essential aspect of many types of applications in the future.

Bluetooth 1.1: Connect Without Cables (2nd Edition)We also talked about some ways in which a Supple-based system could help to blur the boundaries between applications. For example, this morning I needed to copy a picture off of my cell phone (via Bluetooth), to my PC, tweak the size, and then upload it to this blog. I had to use tiny parts of four different applications. A more powerful system would be able to see that sequence of events and create a workflow or custom application to do all of this in one fell swoop.

So what happens next? Supple will be released as a toolkit in the near future. They will also release it as a web service; this makes a whole lot of sense. Using such a “layout service” an application running on a small device without a whole lot of memory or computational power can make a call which says “create an optimized layout for my display”.

It was wonderful to get a glimpse of the future, and I look forward to watching this technology as it matures and grows in breadth and scope.

More information can be found at the main Supple site.

Drumheller Fountain

Earlier this week I was on the campus of the University of Washington for a morning meeting (more on this later). The air was cold, crisp, and clear. Mount Rainier was clearly visible behind the Drumheller Fountain:

Drumheller Fountain

It is a bit faint in the picture, but it is there.

Driving back to the Eastside after the meeting, I had clear, horizon to horizon mountain views that were simply spectacular. It was the kind of morning which makes you say “This is why I live in Seattle.”