Today, Jon Brewster from Hewlett-Packard gave a guest lecture, entitled “Will Compile For Food (life in corporate America)”. He has worked at HP since 1977, and graduated from OSU in 1980.

When he was at OSU in about 1976, there was a large analog computer or two in Dearborn Hall. These computers actually added and divided voltage amounts, rather than using voltages to represent bits. This made the computer very fast (compared to contemporary digital computers) for physical simulations, such as a flight simulator.

Jon explained which projects HP’s Corvallis location worked on. Originally they mainly built calculators. These were very useful in their day, programmable, modular (memory modules could be added), and they were based on reverse polish notation (which looks likeĀ  4 3 + instead of 4 + 3). He even wrote a universal Turing machine on one of these.

In 1984, HP released its first personal computer, which included many other firsts for the company: first mouse, inkjet printer, 3.25″ disk, window system, flat panel, and unix system from HP. Since there were no standards, all of the drivers and operating system were built from the ground up at HP. They had to cross-compile C code to get it working on the processor, which involved a complicated bootstrapping process of using compilers on themselves.

Between 1987 and 1993, HP led a consortium that standardized X windows system, so that it was easier for application makers to write for any machine. This consortium beat Sun Microsystems’ very nice window system, because the standardization was helpful to developers and cost customers nothing.

Jon also dropped a crucial knowledge bomb around this point: “If you don’t answer email from your 6-year-old daughter, it’s not okay.”

In the mid-1990s, Jon went to Hawaii to work at an observatory, replacing very old equipment (computer that used Fortran and 16-bit manual input) with a more modern Unix/C/X windows system. He has become quite a bit of an astronomy hobbyist and operates his own automated mini-observatory in Monmouth, controlled entirely by Javascript.

Since about 1998, HP Corvallis has focused on eServices. Jon is extremely excited about eServices, particularly using Agile development processes (in this case, Scrum) to deliver software in small increments and adjust easily to changing requirements. This is likely an ideal situation for agile, but despite Jon’s disdain for waterfall development, some projects need a larger perspective, even if eServices do not. EServices also have the upsides of making it easy to push updates, keep code in-house, test, and gather data from customers and users.

Finally, Jon began to talk about the cloud. He explained that the cloud doesn’t simply designate an application that stores no information locally; rather it is a different processor/data storage paradigm, that distributes both processing power and data over many servers, rather than having many servers that crunch numbers pulling from one main database. This avoids the database bottleneck, and makes it easier to expand capacity without overbuying, and so works well for websites like Facebook and Google. Jon called this ‘map reduction’: computing in parallel across a ‘blizzard’ of machines, and then reducing to the answer needed.

Unfortunately, we did not have time to see whether Jon’s ancient HP PC worked, but his enthusiasm in relaying the developments of the last 30 years in computing was much appreciated.