A project in lieu of coursework

My friend Tom Lyon just dug up a piece put out by the University of Essex in 1970 to describe their new PDP-10. It also mentions that they were acquiring a PDP-15 for “research and teaching”. And that reminded me of an interesting project.

I applied to Essex in the spring of 1968, intending to study economics under Richard Lipsey. Lipsey was something of an enfant terrible in the field of “math-econ”, and I was really interested in his work on mathematical modelling. So I ignored the advice of my teachers at RGS to try for Cambridge, and was accepted at Essex. Rather than going straight up, I decided to do a “gap year” working at AERE Harwell, which introduced me to what was going to be my life-long work: computing. This meant that when I arrived at Essex in September 1969, I wasn’t too disappointed when I learned that Lipsey had resigned and decamped to his native Canada.

The academic structure at Essex was interesting. During my first year, I divided my time between mathematics, economics, and computer science. At the end of that year, I was required to pick a major, which would dictate my studies over the remaining two years. Obviously, I chose computing, which led to another decision. The computer science program included an “industrial experience” segment, which meant that the second year would comprise two terms at Essex followed by five months of work in “industry” (which would be graded).

In September 1970, I returned from my summer job at the Ministry of Technology to begin my second year. As I wrote elsewhere, there were several of us students who had almost as much experience as the academic staff, and in several of the courses it was going to be difficult to accommodate the wide range of abilities and experiences. Creativity ensued.

As mentioned above, Essex had just acquired a PDP-15. This was, perhaps, a poor choice. The department had several PDP-8s, and probably saw the PDP-15 as a nice step up from the limitations of a 12 bit architecture. In practice, the PDP-15 turned out to be a dead end. It was a TTL-based evolution of the family that included the PDP-1, PDP-4, PDP-7 and PDP-9. (IIRC, the electrical engineering department had a PDP-7 or PDP-9.) However, in 1970 DEC introduced the PDP-11, which spelt the end of the 18-bit architecture.

Nevertheless, the PDP-15 was chosen as the design which would be used to teach hardware architecture and machine language programming to undergraduates. And almost immediately a problem arose. The number of students studying computer science was growing rapidly, and it was going to be difficult for them all to get hands-on time on the PDP-15. So one of the staff (probably Dave Lyons) cornered several of us more experienced students and made a proposal. Rather than taking the machine language programming and hardware architecture courses, we could work together to develop a PDP-15 emulator to run on the PDP-10, so that future students would be able to use a virtual PDP-15 for their studies. Naturally, we would need accounts on the PDP-10 to do this work, and we’d be the only undergraduates with full access.

Four of us agreed enthusiastically. We carved up the project – TTY-based console UI, hardware emulation, resource management, and so forth. Everything was written in MACRO-10. I implemented the instruction set emulation, using the PDP-10’s elegant byte manipulation mechanisms to decode PDP-15 instructions. I don’t remember all of the details, but I think we hit our goal of booting up the DECsys operating system on the emulator in February 1971.

In April 1971, we all headed off to our “industrial experience” gigs. (I returned to Harwell, but that’s another story.) I think a couple of grad students were given the job of turning our project into a usable service for students. I hope it served them well.

A week of public transportation…

I just got home from a whirlwind week in the UK to visit family, friends, and colleagues. I was struck by the fact that everything depended on a diverse network of public transportation, and I thought it might be amusing to document all of the services I used during that week. So here goes. (This is going to be long….)

Wednesday February 7: I flew from Portland (PDX) to San Francisco (SFO), and then on to London (LHR). To get from home to PDX I used a rideshare service (Uber); the only realistic alternative would have been to drive and leave my car at the long-term car park.

Thursday, February 8: I arrived at Heathrow around noon. Passport control was swift and self-service: “scan my UK passport, gaze into the camera”. No checked baggage to retrieve, so I headed to my hotel in Pimlico. There are several ways to get from Heathrow to London, but I chose the oldest and cheapest: Piccadilly Line tube from Heathrow to Earls Court, and District Line from Earls Court to Victoria. My hotel was a 7 minute walk from Victoria. As with all of my bus and tube travel in London, I used my phone to pay; I didn’t have to buy tickets, or even install a special app. In fact, I didn’t use a (physical) credit card or cash during the entire trip. And of course(?), for the various travels which I’d booked in advance – United Airlines to London, Eurostar to Paris, GWR to Oxford, Avanti to Manchester – all of my tickets/boarding passes lived on my phone, either contactless or QR.

Friday, February 9: I had a business meeting in Paris, and so I was travelling by Eurostar train from London St. Pancras to Paris Gare du Nord. My train left at 7, but because of the passport control bullshit following Brexit you’re advised to arrive 60-90 minutes before your train. I could have used the Tube, but the service frequency at 5am is iffy, so I asked the hotel to call a taxi, which arrived in about 90 seconds. Sweet. Once I got in line at St. Pancras, I was invited to switch to the 6am train, which I did. Eurostar was very nice; I was traveling in Standard Premier class, and it was quiet and delightful.

Within Paris, I planned to take the Metro from Gare du Nord to Ecole Militaire using lines 4 and 8 (changing at Strasbourg Saint Denis). In preparation, I tried to set up for contactless payment, but this proved much more difficult than in London. (You have to install the IDF Mobilités app, which then asks you to install the My Travigo ticket management app.) The setup process failed several times, so in desperation I restarted my phone; that did the trick.

The return journey to London was uneventful, and I took the Victoria Line from St.Pancras to Pimlico to get back to my hotel.

Saturday February 10: The main event of the day (and the ostensible reason for the whole trip) was a family gathering in Blackheath, in south-east London. The party didn’t start until 1, so in the morning I spent some time in my favourite parts on London. I caught a 24 bus (my first ride on a New Routemaster) from just outside my hotel up to Leicester Square, and meandered towards Covent Garden and the London Transport Museum. Eventually I walked down The Strand to Charing Cross station and took a southeastern service out to Blackheath. After the (delightful!) family event, I walked back to Blackheath station and took another southeastern train to Victoria.

Sunday February 11: I may have been born in London, and have lived more than half my life in the US, but Oxford is one of my home places. So on Sunday I took a GWR train from Paddington to Oxford, to have lunch with an old friend and do a little shopping in Blackwell’s. I used the Circle Line to get from Victoria up to Paddington, which worked very well but triggered a momentary confusion, because I grew up in the era when the Circle Line was really a “circular” service, rather than today’s weird loop! The GWR service was on one of their 800-class bi-mode multiple units (it’s electric from London to Didcot, then switches to diesel power up to Oxford and beyond). The 800s are widely criticized; maybe my standards are too low, but I found it to be fast and comfortable. (It runs at around 120mph for much of the way, compared with 165mph for Eurostar.)

Monday February 12: I spent the day with my cousin, exploring the Victoria & Albert Museum and walking through Hyde Park.Travel was mostly Circle Line between Liverpool St and South Kensington, and bus from Marble Arch to Victoria.

Tuesday February 13: My plans for the day were straightforward: travel to Canada Water station (Victoria Line to Green Park, then Jubilee Line to Canada Water) to meet an old friend for lunch; then return to Victoria to meet a former colleague for dinner. I set off quite a bit earlier than I needed to, and as I approached Canada Water station I had an inspiration. I would stay on the train to North Greenwich, and then ride the cable car across the Thames. So I did. I can imagine that in good weather the views must be spectacular, but in the steady rain…. Definitely the weirdest bit of public transportation on this trip.

Wednesday February 14: Yet another “lunch meeting with an old friend” – but this time in Manchester. I took the Victoria line froim Pimlico to Euston, and boarded an Avanti Class 390 Pendolino for the 2 hr 6 min journey to Manchester. I decided to indulge myself by booking First Class, and the service was excellent. I met my friend at Manchester Piccadilly station, and since we are both transport nerds, we spent the time before lunch in a thoroughly appropriate fashion. We took a Metrolink tram out to Manchester Airport, and then rode on one of the new electric buses back into the city.

Thursday February 15: The last day of my trip, and there was one more transportation decision to make: how to get to Heathrow? There are three obvious choices: the Piccadilly Line (slow, cheap), the Heathrow Express from Paddington (fast, expensive), and the Elizabeth Line (moderately priced, new and interesting). I chose the Elizabeth Line, of course. I took the Circle up to Paddington and walked across to the new Elizabeth Line station. (I understand the infrastructure constraints, but the need to tap in and tap out twice seems less integrated than I’d expect.) The trains feel like an odd hybrid of tube and mainline design, with both longitudinal and transverse seating. But they’re comfortable and fast, and definitely better than the Piccadilly!

Then home. As on my outbound flight, the United 777 was only about half full, and I had a complete row to myself. Immigration was almost as fast as at Heathrow; I have Global Entry, so it was simply “look at the camera, flash my US passport to a human”. Parts of San Francisco airport seemed eerily empty. Since we’d got in quite early, I decided to try switch to the earlier SFO-PDX. I snagged the last seat – middle, of course, but at least it was Economy Plus. And then Uber home.

So that was the trip. Commercial air, Ubers at both ends in the US, one taxi in London, and otherwise 100% public transportation. (I think of all of the mainline rail services in England as “public transportation”, because even though some of the operators are commercial entities, they are required to operate in accordance with their franchise arrangements.) One minor ticketing glitch in Paris, but otherwise flawless. Tired, but happy, and so glad to have seen all my fiends and family.

Hubris and AI

Tim Bray just posted a delightful piece on the state of LLM (large language model AI), and it got me thinking.

I think that one reason why people have been dismissive of AI (both the current efforts and the possibility) is that we humans tend to be convinced that our consciousness and capacity for reasoning is SPECIAL. Some of it’s religious (things like “souls”, “in g*d’s image”, etc.) and some is based on the fact that we tend to be awfully impressed by complex things we can’t understand. (I studied the philosophy of mind for a few years, and became increasingly frustrated by the way people would talk about “The Hard Problem” of consciousness.) But of course a lot of what we do and think is really mundane, and wouldn’t be much of a challenge to an orang-utan or a dolphin.

Funnily enough, I think that systems like GPT could well be useful deflators of our collective self-importance. People like Tim and I who have worked with Really Large Scale Systems are probably slightly ahead of the curve on this….

Doing my taxes….

I think there’s a lesson in here somewhere…

This week, I did our taxes. In the past, I’d handed that off to accountants, but we’ve simplified things and I was fairly confident that I could do it myself. The only complication was that we’d be filing jointly for Federal, but separately for State. No biggy, right?

I banged all the data into the basic TurboTax DIY web system, pulled stuff directly from banks and so forth, with no problems. But when it came to the State return, the system directed me to a dense page in the online help, which told me that I’d have to prepare two complete sets of returns – one joint, one separate – and file the Federal from the first and the States from the second. And because #reasons, I’d only be able to file by mail.

This sounded tedious, and error-prone. The obvious answer: upgrade to the premium TurboTax service, and let them do it for me. So I clicked Upgrade, and started a web chat with a Product Expert. (Not the Preparer, just a gatekeeper.) She told me I’d have to begin by uploading all my documents into the Checklist. “But I’ve already entered all the data, it’s in the system.” “Oh, no, we can only see the stuff that was imported electronically. None of the data that you typed yourself will transfer to the new return.” When I pointed out that this was crazy, she offered the following: “OK, I can drop you out of Full Service to let you get at the return you’d been working on. Then I suggest you screenshot each page. You can then return to Full Service and upload the screenshots, so that your Tax Preparer can enter the data.”

At first, I resisted. I tried to enter some of my data using the Full Service checklist, but it was completely useless. For example, there was a checklist item for Social Security income… but it only allowed you to enter one SSA-1099. If you have several, you’re SOL.

Reluctantly, I did what the Product Expert had suggested. I retraced my steps through the DIY web interface, and built up a folder containing 45 screenshots and 6 other documents, like photo IDs. I switched back to Full Service, and started to upload the files, to prepare for the call with my Tax Preparer.

After I’d uploaded 22 files, the system refused to upload any more.

First, I had a stiff drink. (I’ve moved from single malt Scotch to Bourbon recently.) Then I cancelled Full Service, and bought a copy of the Download/CD TurboTax Windows application. To my surprise, it successfully imported all the data I’d entered into the online service. I finished the whole Joint/Separate stuff in about an hour, with no significant issues. In part, this was because the UI of the Windows application was vastly superior to TurboTax’s web based services, and I had full control over the various versions of the return. The validation and issue resolution UX was crystal clear, highlighting each problem by showing the exact tax form fields involved. (In the online version, you have no visibility whatsoever into the relationship between the on-screen dialog and the resulting tax form entries.)

So what are the lessons here? It’s instructive that the only smooth data interchange occurred when I imported web data into the desktop app. I can imagine the desktop app team thinking, “These online services are likely to be problematic: let’s make sure we can always give the user a way of recovering by moving to the more reliable, old-school desktop environment.” Yes, there’s always a risk that the old desktop app will become an orphan in the world of web and mobile solutions, but I think TurboTax has managed to avoid that…. probably because accountants tend to be conservative. (And a good thing too!)

The timelessness of privileged anxiety

Facebook’s current outage is a great impetus to do more with my blog….

There’s a great little piece in today’s Sift that is worth highlighting:

Conservative rhetoric seems to be timeless. I ran across this quote in the book Freedom: an unruly history by Annelien de Dijn (which I will say more about after I finish it). Cato the Elder, speaking in 195 BC in favor of an anti-luxury law that the women of Rome wanted to see repealed (because it specially targeted women’s jewelry), warned against allowing women to have a voice in government:

The moment they begin to be your equals, they will be your superiors.

We still hear that point today from every overprivileged class, directed at every underprivileged class. Whether the subject is women, people of color, non-Christians, gays and lesbians, non-English speakers, transfolk, or what have you, the message is the same: There’s no such thing as equality. So if men, Whites, Christians et al. stop being the masters, they’ll become the slaves.

In spite of Cato’s efforts, the Lex Oppia was repealed. But Rome never did become a matriarchy. In more than two thousand years of testing, Cato’s they’ll-take-over theory has never proved out. And yet we still hear it.

What I’ve done

My friend Deirdré Straughan recently posted a short rant on FB in which she said:

My career – the entire span of it – is something to be proud of. I have never stopped learning and innovating, and I have worked hard to make things better for customers since long before Amazon came along.

So I have updated my resumé to include ALL my experience. With dates. This is who I am and what I’ve done.

https://www.beginningwithi.com/resume-deirdre-straughan/

This motivated me to finish off a piece that I’ve been kicking around for a few months, and published it here on my blog. I’ve chosen a narrative style rather than a resume, and I’ll probably revise it occasionally to add more details. Anyway, this is my career, this is what I’ve done over more than fifty years, and like Deirdré I’m really proud of it.

Blog reactivation

As the subtitle above suggests, I’ve had a blog for many years. When I was working – and particularly when I had a job that required an active presence in social media – I blogged very frequently. My recent gigs required me to keep a lower profile, and coincidentally I refocussed much of my personal commentary on channels such as Facebook and Twitter. As a result, this blog languished – it was practically moribund.

But now I’ve retired, and I feel no constraints on what I might write professionally. Furthermore, I find that I’m spending longer on Facebook than seems entirely healthy, and I’m sure that some of my friends and family are getting a bit tired of my political postings. So I’ve decided to try to switch back to blogging, and limit my engagement with Facebook. We’ll see how successful I am.

Here we go….

Four Google WearOS Smart Watches

The value and usefulness of a smart watch depends on two things: the device, and the software. A few years ago I moved out of the Apple ecosystem, so my recent smart watches have all been based on Google’s WearOS, an Android-based system. Unlike Apple’s closed world, WearOS is intended to be used by many different device manufacturers, with different ideas about what these devices should look like. This is an interesting challenge.

I presently have four WearOS devices:
(1) Mobvoi Ticwatch Pro
(2) Skagen Falster 2
(3) Diesel Fadelight
(4) Michael Kors Bradshaw

These four devices have three different control configurations and two different screen technologies. Thus although all are WearOS devices, I interact with them in quite different ways.

The Ticwatch Pro was one of the first “second generation” smartwatches for WearOS, and I understand that Google worked closely with Mobvoi on it. It’s the bulkiest of the four, and has a two layer screen (a bright, colored, hi-res display and a low-power monochrome overlay). This gives it a degree of “always on” use without the color display draining the battery. It has two buttons, but no crown (clickable rotatable button). This means that every selection of a new application, or scrolling through messages or notifications, involves swiping on the screen. This didn’t seem like a particularly big deal until I got the Skagen; since then I hardly ever use the Ticwatch. Ease of use matters.

My second WearOS device is the Skagen Falster 2. It’s a lightweight utilitarian watch married to a cheap and cheerful yellow silicone strap, which works just fine. It has a crown and two buttons, and each button can be assigned to launch a specific app. (I tend to use button 1 for Google Fit and button 2 for Weather.) I really like this watch, and only gave it up because something even better came along.

Watch number three is the Diesel Fadelight. I really can’t recommend it. Physically, it looks like a rather chunky watch module snapped into a stiff clear vinyl strap. It’s not very comfortable, and the buckle is awkward. The Fadelight has a crown, but no buttons, so there’s no way to launch an app quickly. (Launching an app takes four actions: click to turn on the screen, click again to show the apps, scroll or swipe to the app, and click or tap to launch. On the Skagen, I simply double-click the assigned button.)

And then I got the Michael Kors Bradshaw, which has become my favorite watch. Firstly, it looks and feels just right: it’s got a navy blue aluminum case and multilink band, with an optional blue silicone strap. It reminds me of my old Citizen SkyHawk, which I wore for many years. It looks and feels like a classic. For controls, we have a crown and two buttons, like the Falster 2, and I was able to set it up to work just the same in a couple of minutes. Compared to the other three, it comes with an amazing range of faces. Some are the kind of “bling” that I would never use, but others demonstrate a tasteful and creative combination of style and function.

One more point: charging. The Ticwatch Pro uses a custom charging dock, with four contact pads. The other three all seem to use the same white magnetic two-pin charger, which mates with the sensor module on the watch which is set inside two contact rings. I’m glad to see some standardization emerging here. (It’s also worth mentioning that the dual display of the Ticwatch Pro didn’t prove to be a big advantage. With “tilt to wake” turned on, all four watches have 24 hour battery life, which is good enough for me.)