Chuck Thacker wins ACM Turing Award

This week Chuck Thacker has won the ACM Turing Award. This is good.
The best article I’ve seen is this one from Microsoft:
Microsoft Press Release on Chuck Thacker
I had the privilege of working near Chuck at Xerox and for him at Digital, back in the day.
I started at Xerox as a grad student intern in 1977, working for Ted Strollo in the Systems Sciences Lab (home of Smalltalk, Alan Kay, Chuck Geshke, and John Warnock).  My first project was a power line carrier communications modem.  I got to <use> an Alto, which was by itself a transforming experience.  Technically this project wasn’t that interesting, but it came out well enough that I was able to talk the lab into letting me stick around.
My next project was with John Shoch and the DARPA Bay Area Packet Radio network, which was a network of packet radios around the San Francisco Bay Area, at 100 to 400 Kbps.  This was in 1978, mind you, a few years before WiFi.  PARCs part of the project was to provide packet switching experience and my part of the project was to design the hardware to interface the Alto to the packet radios.
Rudyard Kipling said “An engineer can do for 10 cents what any fool can do for a dollar.”  Chuck Thacker, the engineer’s engineer, could do for 10 cents what a mortal engineer couldn’t do at all.  With the Alto, in the mid ’70s, that meant building a six MIPS minicomputer, 128 Kbytes of memory, 5 MB disk, and million pixel display, for $20,000 or so.  I got to know the innards of the machine fairly well, designing the BBN-1822 interface for the packet radio, and writing the microcode and device driver for it.  The Alto had extreme economy of design.  The CPU executed a 32 bit microinstruction every 170 nanoseconds, and “hyper-threaded” between 16 micro tasks.  The lowest priority task ran an emulator for whatever high level instruction set you wanted: Nova-like for BCPL, bytecodes for Mesa, and different bytecodes for Smalltalk. The other micro tasks were responsible for the Ethernet, the disk, the display, and whatever else got plugged in, like a laser printer controller, or a packet radio.
This capability let you design I/O device controllers that were much simpler than they had any right to be. The 1822 interface turned into a couple of shift registers and  a couple of PROM-based state machines, plus a modest handful of microinstructions. (Dave Boggs of Ethernet fame taught me how to build the state machines.)
I was pretty young then, and I didn’t immediately realize how amazing this was. I had designed things like a tape drive interface for an Interdata and a color display controller, that took up entire boards, but this stuff was <tiny>.  The whole Alto was like that.  The disk controller was essentially the same, all datapath and no control.  The disk microcode would wake up once a sector and ask itself “is this the right place to start transferring data?”
Alto: A personal computer
In 1981 I graduated, and landed a full time job in the PARC Computer Science Lab.  My project was building the Etherphone, and by then Chuck was busy building the Dorado, an ECL based personal super-mini.  I started slowly picking up Chuck’s design ethic:
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away” – Antoine de Saint-Exupery
In 1984 I followed Chuck and Bob Taylor to the Systems Research Center of Digital Equipment Corporation.  We had 24×80 dumb terminals hooked up to a VAX-785 time sharing system.  This was not the same thing as a personal Dorado at all.  The first main project was the Firefly (I think the name suggestion was mine, actually), a multiprocessor workstation built out of commodity processors.  The first version used the Motorola 68010. Chuck designed the hardware.  I wrote the boot rom code.  Around then, however, Digital came out with the MicroVAX chip, and we immediately started a redesign. The Firefly used a coherent memory system we called the “snoopy cache”, where each processor “snooped” on the bus traffic of the others to maintain a consistent view of memory.  This scheme and its variations became the standard way to build small scale multiprocessors.  I designed the MicroVAX CPU modules, Chuck designed the memory system and the display controller.  The display controller was another minimalist creation – replacing the “standard” Digital display controller with one that did more and took half the space.  He also threw in audio I/O, with, I think, two extra chips and some microcode.  A typical Thacker design element for the CPU modules was his choice of a two-phase non-overlapping clock system. This let us use Earle latches implemented in 15 nanosecond 16L8 PALs for all the control logic, without needing any edge triggered registers or causing much heartache about timing.
Firefly: a multiprocessor workstation
After the Firefly, Chuck turned to networking, building, in 1987 or so, a 100 Mbps local area network called Autonet. I didn’t work on Autonet much beyond design discussions, but I came away as coinventor with Chuck on a routing patent.  How cool is that?
Chuck’s next big idea, around 1988 or so, was to build a liquid cooled minimalist 200 MHz computer in a single ECL gate array.  Bill Hamburgen of the Digital Western Research Lab knew how to do the liquid immersion cooling. Phil Petit of SRC worked on the CPU design.  My piece was the level-1 cache modules, designed using 1K bit Gallium Arsenide SRAMs.  This was a lot of fun.  We never built it, because the project was overtaken by Alpha.
Digital’s Alpha chip was a technical tour de force.  Chuck’s idea was to build multiprocessor development systems around the chip, to speed Digital’s time to market, and just maybe, to encourage a bit more minimalism among the Digital engineering community.  At that time, the spec for Digital’s “BI” bus design for multiprocessors ran to some hundreds of pages.  Chuck’s design for the coherent memory bus for the Alpha Demonstration Unit was 13 pages.
The Alpha demonstration unit: a high-performance multiprocessor
I designed the I/O system for the ADU. It was built with ECL100K, power dissipation no object, but very fast, and very clean signals. Chuck designed the memory system, and Dave Conroy designed the CPU module.  Dave also embodies Chuck’s minimalist spirit.  he kept a copy of the classic 5 tube AM receiver circuit on the wall of his cube, with the caption “If you want a job here, remove a part from this design”.
All American Five radio design
Wikipedia Article on All American Five
The ADU project probably saved a year time to market for Alpha products, and accelerated around a billion dollars in revenue.
As others have noted, while Chuck is primarily a hardware designer “a humble purveyor of cycles,” he’s also an architect and programmer.  One time at Digital he got an early laptop, with TurboPascal, and immediately started writing cad tools for himself.
I’ve gone off in different ways in the last 15 years, but I was able to visit Chuck in his lab at Microsoft last spring.  I have to say not much has changed, he was busy designing logic for an Ethernet controller, only this one runs at a gigabit and fits in a corner of the BEE3 FPGA system.
I am very pleased at the ACM’s recognition of Chuck’s contributions. Now go back to your offices and delete some logic or code that doesn’t really add anything. You will be one step closer to perfection.
-Larry

Toaster Repair

My toaster only toasts on the outside, because the center heating element doesn’t.
No problem! I will take it apart.  Maybe I can fix it.
My toaster is held together by tamper resistant screws!
No problem!  I have a set of tamper resistant bits.
…but the screws are down inside holes that are too narrow for the bit.
What kind of state secrets are inside this thing?

wbshop.com

I don’t think I’ll be shopping at wbshop.com any more.  They have had some sort of massive logistical breakdown.
Back on Tuesday, February 9, 2010, I made an $82 order for in-stock items, with two-day air shipping.  Since I ordered in the morning, I expected delivery Thursday, but I would have been only moderately disappointed with Friday, since almost everyone says “two day” when they mean “three days”.
It is now 13 days later, and the order has not shipped.  I had received an order acknowlegement email, but the online system says I have never ordered.  The telephone customer support center says the order is fine and is “in processing” at the warehouse, but they are running “a little behind”.
The gap between reasonable expectations and corporate performance is large.
Here are a few notes and suggestions.

  • The website continues to show items “in stock” and “ships in one day”, when this is obviously not true.
  • The website does not show my order at all.  According to the call center people, it will only show up after it is shipped.
  • My credit card was charged at the time of order.  Maybe my impression that mail order companies are only allowed to charge when they ship is out of date.  I have made an inquiry.
  • There have been no emails or calls from wbshop reporting delays or setting expectations.

I know a modest amount about systems for e-commerce, since I wrote a book on the subject (Designing Systems for Internet Commerce).  I have a few suggestions on technical aspects:

  • The online system can show all orders, completed and pending.
  • The online system can show current status, and contain links to make inquiries
  • The website can contain correct information about product availability
  • The online system can send email updates when previous promises become inoperative
  • There does not need to be any difference if the user account was created at the end of the first order or before it starts. The order is tied to the account and should show online.

And  I have some thoughts about public relations and customer satisfaction

  • Transparency works.  When you have a problem, coming clean about it and providing the best and most accurate information you have is nearly always better than becoming defensive, failing to respond, or stonewalling.
  • For an online store, logistics is everything.  Amazon gets this right.  Wbshop does not.
  • Customers have blogs.  Those blogs are indexed.  Maybe I can add some special index terms.

So what is happening?   I got one customer service rep to go off-script and mention “500 orders behind” but I doubt that is right.  500 is not a two-week problem, it is a few person-days of work at most. That doesn’t explain an ongoing two week delay.
Update 2/26/2010
The order still hasn’t shipped.  I’ve learned a few more things

  • Discover card says it is up to the merchant to charge on order or on shipment.  Discover is happy to help me dispute the charge if I want.
  • A supervisor at wbshop tells me their practice is to charge when items are in stock, and hope they ship soon.  That obviously isn’t working well.
  • “Escalation” consists of sending an open-loop inquiry to the warehouse, with no expectation of hearing back from them.  As far as I can tell, there is no way for the call center to even find out if the order has simply been lost.

I was told Tuesday that the backlog should be cleared by “the end of the week”.  Here it is Friday afternoon and that has not happened.
The call center also has a music on hold system. It interrupts the music every minute or so to tell you “please continue to hold.”  This is a really bad design, since the caller has to shift gears to listen to the message every time.  It would be much better to have the music uninterupted.
Update March 1, 2010
I received an email from wbshop.com this morning:

Dear Lawrence Stewart ,
We deeply apologize for any inconvenience, but your order number xxxxxxx-00 has been delayed due to warehousing issues and we have been unable to ship the merchandise in your order. Please note that our warehousing issues have been resolved and we will be able to ship your order by no later than March 2, 2010. We will send you an email confirming when the shipment leaves our warehouse.
WBshop.com values you as a customer and greatly appreciates your business. We regret that this delay has occurred, and will be refunding $5.00 from your order number xxxxxxx-00 and will issue the refund to your credit card by March 31, 2010.
Please note if you have any questions about your order or charges on your order, please feel free to email us at service@wbshop.com or call our toll-free customer service number, 1-866-373-4389. Customer service representatives are available Monday thru Friday between 8:00 am and 10:00 pm (EST), and on Saturdays between 8:00am and 6:00pm (EST).
Also, you may always call this customer support number to cancel your order prior to shipment of the order to receive a prompt refund. If we do not hear from you before we ship your order to you, we will assume that you have agreed to this shipment delay.
Again, thank you for your patronage.
Sincerely,
WBshop.com

After 20 days, they are able to tell me my order is planned to ship by 21 days.
I have some suggestions.

  • Send an email immediately when does not ship on schedule.
  • If a new ship date is available, provide it.
  • In any case, provide a date for the next informative email.
  • If the original delivery date can be maintained by upgraded shipping, do that at no charge
  • If the original delivery date cannot be maintained, provide free shipping
  • Provide online order status for pending orders
  • Build systems that give the call center visibility into the warehouse. Maybe you don’t want to tell people “there are 1200 orders ahead of yours” via the web, but telling people angry enough to call is a good idea.  We’re angry, but we realize that folks delayed longer than us should be cleared first.

But, after nearly three weeks, stating with such assurance that you will ship by tomorrow is unlikely to be believed.
Update March 3, 2010
Good News!  Amazingly, wbshop did ship on March first.  I only know this because I called.  They did not send an email to say so.  How hard is it to send an email?  In addition, I got another email announcing a 25% off sale on the very items I tried to buy.  After another call, wbshop issued a credit for the difference.

John Mucci

I am greatly saddened to report the passing of John Mucci this past Sunday.
As some of you know, I have an affinity for people when I cannot predict what they are going to say. I am not talking about randomness, but about folks who have an approach to thinking that is unlike my own and a depth of insight I rarely reach.  John was one of those people.
I first met John in 2004 when I got started talking to Matt Reilly and Jud Leonard about SiCortex. John was perhaps foremost a salesman, but he worked not only to understand the technology but to understand it well enough to see how it would apply in new situations.  At first I was surprised that the CEO wanted to interview every prospective team member, but I came to treasure the hiring meetings afterwards.  Not only could I not predict his opinion, but his assessments made sense.
As far as I could tell, John knew everyone involved with High Performance Computing and usually on a first name basis.  Walking the floor with John at Supercomputing was an experience.  The mean free path between people he knew was about 10 feet.
Prior to SiCortex, John had worked at Digital Equipment and at Thinking Machines, where our paths almost intersected, as I worked elsewhere at Digital, and later Open Market took over space in Cambridge previously occupied by TMC. I mention this because of another similarity between Thinking Machines and SiCortex – both were well liked by their customers.  I know that John Mucci was responsible for the good regard folks have of SiCortex, and I like to think the same was true at Thinking Machines.
He will be missed.

More Hotel WiFi

At SC09 in Portland, I stayed at the Marriott downtown, which was a perfectly fine hotel, except that the restaurant and bar seemed to close at 10PM.  What’s with that?  WiFi was $10 a day.  As I’ve noted before, there is an inverse relationship between the expense of a hotel and the quality and ease of use of its Internet access.
I was in New York City two weeks ago, and stayed at the Millenium Hotel at UN Plaza.  Don’t bother.  They no longer have ice machines!  This is just such a basic requirement of hotels that… I can’t go on.  In any case, they don’t have WiFi, they have wired Ethernet for $12 per day.
A few days ago, I was in Baltimore and stayed at the La Quinta BWI.  The WiFi was fast, free, and easy.  These guys have it <almost> right.  There is a browser intercept screen, but it does not ask you to register. All it does is ask if you want to join their email list (no), and then it lets you on the net.  There was no problem playing You Tube videos, which usually kills hotel networks.
I was really quite impressed.
In any case, the inverse relationship still holds.  Millenium (expensive hotel and bad Internet), La Quinta (inexpensive hotel, free  and good WiFi). Marriott, somewhere in between.
I’ll note, however,  that you can see a <lot> of WiFi networks from the 36th floor in Manhattan.

Excellent Ad Placement

Ad placement is the problem of putting an advertisement in exactly the right spot so that the people you are trying to reach will see it.
This week I was at the Supercomputing conference in Portland.  The density of iPhones at the conference is very high.  One morning I fired up my Accuweather app to find out if I should bring the umbrella.  It is Portland after all!

iPhone screen shot
iPhone screen shot

This is outstanding ad placement.  You are looking for supercomputer geeks.  They congregate in Portland, they have iPhones. They are going to check the weather.  Score.

A Tribute to xkcd

I am an avid reader of xkcd.  Recently a cartoon on Movie Narrative Charts appeared. My immediate reaction, of course, was to search the Minuteman Library Network for an available copy of the time trave movie Primer.
My favorite quotes:  “Are you hungry? I haven’t eaten since later this afternoon.” and “The best mathematicians are the lazy ones.”
Win and I watched the movie the other night, and I came up with this appreciation, in the style of xkcd:

time001

Thin (mobile) clients considered harmful

I’ve tried to stop following the T-mobile / Microsoft Sidekick disaster, in which all customer’s data has been lost, but I can’t.  It is an example of schadenfreud.
So far, the word is that Microsoft embarked on a SAN upgrade without an adequate backup, or perhaps without an independent backup.  Sidekick devices are thin clients, which keep data only as a cache of the truth, which is on the server.
Thin client is an idea which periodically pops up. The reasoning behind thin client seems to take two forms: thin clients need less hardware, so they are cheaper, and thin clients are easier to centrally manage.  These days I suppose there might be a third issue, which is that thin clients are more secure, because they don’t contain your data when you are not there.
The “cheaper” argument really hasn’t made much sense for the last decade. Storage has been following the usual technology curves, and has become incredibly cheap. Processing power as well.  It just makes no sense to make the client stupid on the grounds that it saves money.  A related argument has been that thin clients are quieter than thick, because they can be made fanless.  We now have flash storage that is very low power.
The “centrally managed” argument has a place in the enterprise, in which IT can “provision” a workstation remotely, and employees can “hotel” by taking any available cube.  This argument doesn’t seem to apply to mobile devices like laptops or phones, however, because they usually are assigned to one person for an extended period. It definitely doesn’t apply to non-enterprise devices.
The security argument is a red herring, I think, and one that is easily corrected by a decent encrypting filesystem.  Yes, a stolen device would be susceptible to offline attacks.
Another issue is availability.  We are not always connected, at least those of use that depend on wifi and crappy cell phone networks.
I think that techn0logy trends and connectivity argue for local data. I want copies in the cloud, as backup, and available for computations out there, but I want local access as well.
My personal digital footprint now hovers around a Terabyte, and is only that large because I’ve been gathering digital copies of home video.  I have, I think, about 4 copies.  I can’t keep it all inside the laptop or iPhone yet, but I can keep all my historical email, all software I’ve ever worked on, all music I own, and all photos I own with me at all times.  I also have 10 or 20 gigabytes of public domain books, just in case I need something to read.
In a few years, all that will fit in my phone, and a few years after that, I can have the video as well.  Vernor Vinge got this right in his Marooned in Realtime, with a “pocket database” that could hold one’s digital footprint, plus plenty of reference material.
I think there is also an argument that the Sidekick architecture failed to adapt to technology trends.  Thin client might have made sense when Danger was starting, back in ought-two or whatever, but it doesn’t make sense now, with multi-gigabyte flash chips nearly free.

Days of (Vista DNS) Rage

I have a Trendnet print server between the LAN and an HP1320 USB printer.  The printserver speaks LPR, among other things, and I set up Cathy’s Vista laptop to print via an LPR port to 192.168.166.7, queue HP1320, and it worked fine.
After a rework of the network infrastructure, the printserver moved to .167.39, and acquired a DNS name on the internal network of studyprint.stewart.org.
To make printing work again on the Vista laptop, I created a new LPR port to studyprint.stewart.org queue HP1320 and all was well.
Yesterday the laptop stopped printing.  Jobs were queuing locally.  From a command prompt window, I could ping 192.168.167.39, but I could not ping studyprint.stewart.org.  Aha! DNS problems.  However Firefox and IE worked normally for names outside the LAN.
I tried nslookup, and it works fine.  studyprint.stewart.org resolves, as it should, to 192.168.167.39.
Then I discovered that I could ping “studyprint” but NOT “studyprint.stewart.org. I presume because the DHCP server told it the default domain was stewart.org.  There is really no excuse that the fully qualified name doesn’t work.
At this point, I remembered that Vista is not my fault, and hardwired the printer port to 192.168.167.39.  Printing works again.
Dear Microsoft.  How is it that you cannot make DNS lookups work reliably? How is it that nslookup works fine but ping does not?   It is really too bad that C has some sort of Mac allergy.
Did I mention that the Trendnet printserver speaks Bonjour?
I think it is supposed to speak windows networking as well, but I’ve never gotten it to work.