Tuesday, February 18, 2014

Why should Mozilla continue developing Rust?

The title of this post is not (entirely) rhetorical. I'm puzzled by Mozilla's decision to burn several of its full-time engineers' cycles on the Rust programming language. Maybe someone can enlighten me. I offer the following observations with all due humility.

As a problem of engineering management, programming language development can be analyzed in terms of cost, risk, and return. I do not see how Rust makes sense for Mozilla along any of these dimensions.

Cost: Getting a new programming language off the ground only requires a handful of people, if you have the right people. For giant technology corporations, which have thousands of engineers on staff, that's a tiny relative overhead, well within the margin of a sensible research budget. By contrast, for Mozilla, a lean, low-headcount organization, it's a major opportunity cost. A handful of Mozilla's top full-time developers represents a big bite out of Mozilla's engineering throughput.

Risk: The baseline probability that a new programming language will become popular is low. It is even lower when you cannot use the popularity of a platform to strong-arm external developers into adopting it (the existence of such a platform is the story behind the success of JavaScript, Objective-C, and C#). Mozilla has no platform that it can use to strong-arm anyone into using Rust, nor does it even wish that it did. And when a programming language does not become popular, its few sponsors end up doing all the heavy lifting for it indefinitely. The language also remains a laggard behind comparable languages in libraries and tools. Mozilla isn't well positioned to mitigate this risk or to deal with its downside.

Return: The returns to adopting a better language are roughly proportional to the developer-hours spent writing code with it. As a organization with both low headcount and few projects, Mozilla will have difficulty recouping its investment:

  • Consider Google and Go. Suppose 5 core Go developers work on the language for 2 years; this costs about 5 * 2000 * 2 = 20k developer-hours. This investment can be recouped by saving 1000 Google engineers an average of 2 hours per week for just 10 weeks, or equivalently by providing a quality increase equivalent to 2 more hours per week of design, testing, etc. Viewed this way, Go has a plausibly huge upside for Google. But Mozilla will never have 1000 full-time engineers using Rust; it has a few hundred employees roughly 1k employees total, not all of whom are engineers, and few of whom might be writing Rust full-time in the foreseeable future. Perform a similar calculation using any remotely plausible numbers, and the case for the Rust's return to Mozilla comes out pretty weak. Either Rust will take far too long to pay off, or it must be orders of magnitude better than the next-best alternative (and the latter seems unlikely).
  • It is easier to realize the benefits of a better language when starting a new, greenfield project than when rewriting legacy code. In fact, when rewriting legacy code, developers incur more costs than benefits until a tipping point is reached. Google, Microsoft, or Amazon, to take a few examples, each start dozens of substantial projects and hundreds of little projects per year. At such companies, it is conceivable that, by winning over new projects at their inception, a new language could achieve an annual adoption rate of hundreds of developers per year. By contrast, Mozilla can't start more than few projects per year without losing focus. So the rate at which Mozilla can realize the benefit of a new language is constrained even further than their headcount would suggest. And indeed the core developers of Firefox, Mozilla's biggest project by far, will not benefit from Rust anytime soon.

Now, in spite of all the above, one might disregard risk, cost, and return if one had a truly unique opportunity. If you're the only organization in the world that might plausibly deliver on some project of unique importance, then it might be worth rolling the dice: "We have to save the world from X; nobody else will." Perhaps reasonable people can disagree, but I can't see how Rust qualifies. As a "fast, safe, concurrent, static, systems language", Rust is quite comparable to Go or D; even if one grants, for argument's sake, that it's better than those languages in some ways, it occupies a similar space. So Mozilla's opportunity is simply that it has the money and freedom to pay a few software engineers to work on Rust full-time. The "unique opportunity" rationale for overriding cost/risk/reward does not seem to apply.

Alternatively, one might rebut all of the above calculations by saying that Rust is a research project, not strictly an engineering project. But it is a curious research project. Research justifies its existence by hoping to advance computer science in a fundamental way. Rust conversely aims to minimize novelty, as its FAQ states: "Old, established techniques are better [than novelty]". I cannot think of a fundamental computer science question that is investigated by Rust's development. It is research only in the sense that it is a speculative engineering project without an obvious short-term payoff.

Furthermore, all of the above must be considered in light of Mozilla's current position. Mozilla is fighting to maintain relevance in a world where all the major desktop and mobile operating system vendors are shipping high-quality web browsers. And Mozilla is fighting with far less resources than its competitors. Mozilla punches far above its weight, and for that it should be proud, but I doubt that it has the luxury of diffusing its focus at this time. Mozilla is not like the IBM or Microsoft of old; it cannot plow huge surplus profit margins into basic research without subtracting needed resources from product engineering.

Therefore, in my opinion, Mozilla should spin out the Rust project to community maintenance, and try hard to convince its paid engineers to work on something with a cost/risk/return/opportunity profile better suited to Mozilla's place in the world. Rust developers are experts in programming language implementation, so ES6, asmjs, or Firefox and Firefox OS developer tools all seem like promising alternatives.

Or, if Mozilla really believes that reducing dependence on C++ is a major strategic priority, these developers might investigate rewriting Firefox components in another language — one for which they won't have to do most of the heavy lifting in toolchain and library development. Delegating language development to someone else makes far more sense than doing it in-house. By way of analogy, Mozilla does not try to innovate in datacenter design. To do so would be ludicrous, as Google, Amazon, Facebook, etc. are all far better-positioned to do so. Instead, Mozilla is happy to reap the fruits of robust multi-party competition in datacenters. They should take a similar approach to programming language design and implementation (outside of the web client platform, where they are unavoidably a key contributor).

A third alternative might be to find a deep-pocketed external sponsor to take on the heavy lifting for Rust. Samsung made some noise a while ago about sponsoring Rust; but how many active Rust contributors come out of Samsung's headcount rather than Mozilla's? I believe that the key cost of Rust development for Mozilla is the opportunity cost of expert Mozilla developers' labor. Until Samsung or some comparable organization credibly commits not only financial sponsorship but long-term ownership and headcount to Rust development, its costs will not be truly offloaded from Mozilla.

p.s. I say all of the above as someone who likes what I've seen of Rust, purely as a programming language. I would be happy if some organization took up the Rust banner and carried it forward. But I do not think Mozilla is a logical primary sponsor for it.

Wednesday, November 13, 2013

How much education do computing innovators usually have?

Today brings us this tweet from Neil deGrasse Tyson:

Getting straight "A"s does not guarantee success, but plenty of evidence shows that not getting "A"s doesn't preclude it.

This is fine, as far as it goes. Having an imperfect academic record does not doom you to a life of mediocrity. And it is crucially important for anyone, no matter how you are assessed by the educational system, to continue striving towards a meaningful and successful life, however you choose to define that.

However, I foolishly clicked on the thread to see what people's reactions were, and came upon someone saying this:

@neiltyson you realize Everything you pretty much use on the Internet were created by people who never got grades at all.

Ugh. Sometimes I read something so wrong that I'm pretty much compelled to spend a couple of hours of my life disproving it. (Of course, this particular semi-grammatical tweet is so inconsequential that it's comical that it affects me at all, but it represents a much broader current of popular thought about the world of computing.)

The Internet is an outgrowth of computing and communications technology. Below, I have listed the educational attainment of a few dozen people who, it seems to me, created things that are important to the Internet as it exists today.

The list is, one might say, not drawn to scale. Everyone just gets a bullet, even though some are giants who left behind towering contributions that will be studied centuries from now, and others merely made something that seems to be widely used or influential today. I've also used a fairly subjective criterion for selecting the people: these are simply names that occurred to me in about ten minutes of thinking about the technology that's literally sitting in front of my face as I write this. Nevertheless, I think it is a decent sample, and although it can be improved around the edges, I doubt that you will be able to supply thirty more names that are better candidates and whose educations differ dramatically from these people's.

(I have used "bac." to indicate any 4-year undergraduate degree (B.A., B.S., or equivalent) since I don't find it useful, for this purpose, to distinguish among them.)

Foundations of computing

  • Alan Turing: Cambridge bac., Ph.D.
  • Alonzo Church: Princeton bac., Ph.D.

Networking and secure communication

  • Vint Cerf: UCLA Ph.D.
  • Bob Kahn: Princeton Ph.D.
  • Tim Berners-Lee: Oxford bac.
  • Robert Metcalfe: MIT bac., Harvard Ph.D.
  • David Boggs: Princeton bac., Stanford Ph.D.
  • Ron Rivest: Yale bac., Stanford Ph.D.
  • Adi Shamir: Tel Aviv bac., Weizmann Institute Ph.D.
  • Leonard Adleman: UC Berkeley bac., UC Berkeley Ph.D.
  • Whitfield Diffie: MIT bac., Stanford Ph.D. dropout.
  • Martin Hellman: NYU bac., Stanford Ph.D.
  • Ralph Merkle: UC Berkeley bac./M.S., Stanford Ph.D.

Operating systems and programming languages

  • Ken Thompson: Berkeley bac., M.S.
  • Dennis Ritchie: Harvard bac., Ph.D.
  • Rob Pike: unknown, possibly no college. Caltech (according to comment; bac.?)
  • Doug Engelbart: UC Berkeley Ph.D.
  • John McCarthy: Caltech bac.; Princeton Ph.D.
  • Kirsten Nygaard: U. of Oslo M.S.
  • Ole-Johan Dahl: U. of Oslo M.S.
  • Alan Kay: U. of Utah Ph.D.
  • Ivan Sutherland: CMU bac., Caltech M.S., MIT Ph.D.
  • Dan Ingalls: Harvard bac., Stanford M.S., Ph.D. dropout.
  • James Gosling: U. of Calgary bac., CMU Ph.D.
  • Richard Stallman: MIT bac., MIT Ph.D. dropout.
  • Bjarne Stroustrup: Aarhus M.S., Cambridge Ph.D.
  • Linus Torvalds: U. of Helsinki M.S.
  • Alan Cox: Swansea University dropout.
  • Theodore Ts'o: MIT bac.
  • Brendan Eich: Santa Clara bac., UIUC M.S.
  • Guido Van Rossum: U. of Amsterdam bac./M.S.
  • Yukihiro Matsumoto: U. of Tsukuba bac.

Founders of important technology companies

  • Gordon Moore: UC Berkeley bac., Caltech Ph.D.
  • Steve Wozniak: UC Berkeley dropout.
  • Steve Jobs: Reed College dropout.
  • Bill Gates: Harvard dropout.
  • John Warnock (Adobe): U. of Utah Ph.D.
  • Charles Gesche (Adobe): CMU Ph.D.
  • Marc Andreessen: UIUC bac.
  • Larry Page: Michigan bac.; Stanford Ph.D. dropout.
  • Sergey Brin: U. of Maryland bac.; Stanford Ph.D. dropout.
  • Jeff Bezos: Princeton bac.
  • Jerry Yang: Stanford bac./M.S.
  • David Filo: Tulane bac., Stanford M.S.
  • Diane Greene (VMWare): MIT M.S., Berkeley M.S.
  • Mendel Rosenblum (VMWare): Berkeley Ph.D.
  • Ed Bugnion (VMWare): Stanford M.S., Stanford Ph.D. dropout.
  • Evan Williams: U. of Nebraska dropout.
  • Mark Zuckerberg: Harvard dropout.

Assorted hackers

  • Jamie Zawinski: college dropout, institution unknown.
  • John Carmack: U. of Missouri dropout.
  • Michael Abrash: U. of Pennsylvania Ph.D. dropout.
  • Jeff Dean: U. of Washington Ph.D.
  • Sanjay Ghemawat: Cornell bac, MIT Ph.D.
  • Russ Cox: Harvard bac., MIT Ph.D.
  • Paul Buchheit: Case Western Reserve bac.
  • Lars Bak: Aarhus bac./M.A.
  • Paul Graham: Cornell bac.; Harvard Ph.D.

One thing you will notice right away is that there are lots of Ph.D.s and Master's degrees, generally from highly-ranked universities. A lot. Obviously far more than the general population, and probably more than leaders in most other industries. The notion that invention and innovation in computing are done mostly by scruffy, uncredentialed twenty-year-olds is a myth. Yes, you can see a substantial minority of college dropouts. But it should not surprise anyone that the major achievements in a field based on technological advancement are often created by people who studied technology at an advanced level.

Among those who do not have Ph.D.s or Master's degrees, many attended some grad school (usually meaning they finished an undergrad degree), and almost all attended some college. Even John Carmack attended some college, and he is maybe the best example alive of a hacker who created an entire industry with his mind simply by sitting in front of a personal computer and writing code nobody else could write.

That said, there is some truth to the notion that (college) dropouts succeed in the computing industry at a higher rate than in the general population.

As far as I can tell, most of the successful college dropouts quickly found something else to do that was unique and important at that moment. Based on this list, one sign that dropping out might be a good idea, rather than a copout, is if the thing you do instead requires much harder work than what your college classes require.

Also, I think it is worth observing that the people behind major technological advances tend to have advanced educations. By contrast, successful dropouts tend to be people who made their mark by designing and marketing commercial products using widely available technology, or with modest and incremental technological innovation.

There are a few anomalies: Carmack, Wozniak, and perhaps Pike (UPDATE: see comments) were supremely technical and don't have college degrees.[0] On the other hand, they are among the most brilliant hackers who ever lived. I think that, for a young hacker, betting that you are the next Carmack is an extreme long shot (although if you really believe that this possibility is substantiated by the evidence of your work quality, then go for it).

Why does this matter? Why did I write this? Mostly because when someone's wrong, it annoys me. But here are two other reasons.

First, people should be giving credit where credit is due. The vast majority of technological innovation in our field comes from people who participated, in some fashion, in the higher education system — in most cases, the elite part (broadly construed [1]) of the North American university system. The stuff you use on the Internet was emphatically not mostly created by people who "never got grades at all". Don't propagate this myth.

Second, it would be a mistake to generalize from the small minority of successful dropouts to the conclusion that a college education is not meaningful, and that skipping it would therefore be a good idea for you. Dropping out of college is a terrible idea for most people. I think it is probably a bad idea all the way up to, maybe, the top 2-3 percentiles of ability or motivation, and even for those people it is only a good idea in particular circumstances.

The past decade has seen outsized financial success accrue to a few consumer Internet businesses, like Facebook and Twitter, which were founded by dropouts. This has led to a certain current in our cultural imagination that substitutes a remote lottery-ticket shot at getting rich quick on a startup for the dream of broad-based prosperity based on equitable access to high-quality education, health care, and housing. Actually, both components are necessary. Big prizes do seem to drive risk-taking entrepreneurship. But the foundations of an innovative technological economy are built by people who mostly study hard, get good grades, and pursue advanced study in their field. The exceptions are just that — exceptions — and the sound way to get more innovation is to instill in more people the habit of studying hard, and to give more people the opportunity to pursue advanced education.


[0] Actually, it's not clear to me whether Rob Pike attended no college, or whether he did, and for characteristically eccentric reasons refuses to reveal it to the public. But until I find more information, I'm assuming he didn't. (UPDATE: If the anonymous comment below is to be believed, Pike went to Caltech, degree unspecified.)

[1] By "elite" here I mean roughly top-100-ranked four-year institutions. This may strike some readers as an overly broad class to label "elite", but the universe of higher education includes a much broader class still, including community colleges, professional and vocational schools, etc., and if you count heads in higher education then it is still a minority of students who go to top-100 4-year schools.

Tuesday, August 27, 2013

Quick Serbia impressions, August 2013

We flew into Belgrade from Tokyo last week. Eleven days in Japan is such a huge bolus of experience that I'm still digesting it, so the ongoing travelblogging will be out of order. (You probably don't care, but this does bug my OCD tendencies a little.) On the other hand, what follows will often mention Japan as a point of contrast.

Japan has a reputation for being a conformist culture, but upon landing in Serbia, one of the first things I noticed was that, to a first approximation, all young Serbian men seem to have the same utilitarian close-cropped haircut, which is a contrast with the carefully styled and sometimes flamboyant male haircuts sported by many young Japanese men. Likewise, Belgrade women's dress is casual and, again compared to Japan, almost drab (which isn't to say that it's drab in an absolute sense), for which I'll advance two tentative hypotheses. First, obviously, Serbia is a dramatically less wealthy and densely developed society. Fewer people can afford to invest extensively in personal ornamentation, and the lower level of economic specialization also leads to fewer opportunities to invest in distinctive fashion. Second, perhaps Japanese women, and especially women in Tokyo and other major Japanese cities, feel more pressure to invest heavily in self-presentation, although I'm unsure whether that's social pressure from peers and acquaintances, or dating market pressure. (Somewhat relatedly, the MR bloggers have a speculated rather extensively about where women are beautiful, but I'm not sure any of their hypotheses explain Japan very well.)

Belgrade is a small, easily digestible city. You can walk around the entirety of Old Belgrade in a day. The museums we visited (Nikola Tesla, Zepter, the Ethnographic Museum) were similarly human-scale. You will never have the feeling, familiar to anyone who has visited the Met or the Louvre, of spending three hours in a museum, being exhausted by the ancient, massive profusion of human culture, and still feeling that you have not even seen the whole museum. Of course, this is because Belgrade's museum collections are much more modest, but that's the tradeoff. (Note that several of Belgrade's major museums have been under renovation for years and are thus currently unvisitable.)

At current exchange rates, everything in Serbia seems cheap by developed-world standards. We stayed in private double room at a hostel in the city center, about three blocks from the National Assembly, for about 4000 RSD (US$47) per night. 1200 RSD (US$14) will buy a fairly extravagant meal, including alcohol, or alternatively will feed you well for a day on more modest fare.

Three days here have hardly made me an expert in Serbian cuisine, but it does remind me of the fact that hot dogs and American megabrews (Budweiser, etc.) are both lineal descendants of central European sausages and lager. Meat and pale yellow beer are the order of the day, and for what it's worth they're done reasonably well. Vegetarians and teetotallers will feel rather deprived. On the other hand, I had some of the best cooked squid I've ever tasted at Cafe Reka in the Zemen district.

There are many, many charming places to relax with a drink. The numerous cafes and bars on the broad pedestrian boulevards, the splavs (cafes, bars, and nightclubs built on river rafts), Skadarlija street, and the Zemen district could all feature as eye-candy backdrops for some terrible formulaic romantic comedy. I'm too old to go clubbing anymore, but Belgradian nightclubs are likewise rumored to be excellent. There is abundant street life everywhere in the central city.

The people are mostly friendly. It is difficult to believe that there are tens of thousands of living war criminals walking among them. I doubt that most Serbians think the war was excusable, but the body politic has certainly not owned up to its guilt. The museum at Petrovaradin Fortress in Novi Sad contains a laughably self-pitying exhibit on the NATO bombing of Novi Sad, without a word about the wider Yugoslav War that prompted it. I can't really do justice to this subject at all, but if I get around to writing about Bosnia, I'll come back to it.

Religion seems to be taken seriously by a wide swath of the populace. Visit an Orthodox church and you will see people of all types (not just what Americans would read as "religious conservative" dress) kissing icons with evident emotion.

Overall, I think that Belgrade in 2013 would be an ideal place to visit if you're about 25 years old, not completely broke but perhaps watching your bank account closely, ideally with a mixed-sex group of five or six friends, one of whom you have an unconsummated crush on. It's cheap, fun, pretty, easily navigable, and frequently romantic, and the lack of top-tier cultural attractions is less important when you're young.

Thursday, August 08, 2013

Assorted tech fails related to Copy.com

Lots of fail to go around today.

A. just tried to share some photos with her mother via Copy.com (disclosure: this is a referral link, because why not, although as you'll see I don't recommend using Copy much in its current state). Her mother's sole computing device in Taipei is an iPad.

Fail no. 1: Although the photo folder was shared with the email address that A.'s mom used to sign up, the folder is not accessible anywhere I can find via the iPad app UI. Blame goes to: Copy's developers, who either failed to implement sharing correctly or hid it behind some undiscoverable UI.

Fail no. 2: The Copy website's image viewer page crashes Safari on iPad. Blame goes to: the Copy developers for failing to test this configuration; the iOs browser developers, for implementing a crashy browser (note that current Chrome desktop doesn't crash, so WebKit/Blink alone is not to blame).

Fail no. 3: Downloading Chrome onto her mom's iPad reveals that the crash occurs again, so the crashing defect is with WebView, not Safari-specific wrapper code. On an even marginally more open OS, Chrome (and Firefox, and every other browser vendor) would be permitted to ship an alternative browser stack, and I'd probably be able to download a browser that wouldn't crash. Blame goes to: Apple's business strategy bosses, for being control freak jackholes.

Fail no. 4: Searching for "Copy.com" safari ipad crash on Google is annoyingly filled with garbage. Blame goes to: Google for failing to recognize that when I write "copy.com" in quotes, I really don't care about web pages that merely contain some subset of the segmented lexemes in that query*; also the leadership at Barracuda networks, who gave Copy a ridiculously search-unfriendly name for branding reasons, thus guaranteeing that tech support queries for their service would be frequently frustrated by the current generation of search engine technology. (Also pity all the future users, of any operating system, who need some help with a copying feature not related to Copy.com.)

Welcome to the "post-PC era", where your storage is in a cloud you can't access because your shit crashes and your ecosystem overlords prevent you from installing workarounds.


*To be more precise, for this search, Google does prioritize "copy.com" over web pages that contain "copy" and "com" or even "copy com" (with a space or other punctuation between the two words). The absence of useful results for this query is due to the fact that there's just no relevant content on the web. I just wish the result page would make it more obvious that Google doesn't think there's any good match for this query, and it's scraping the bottom of the barrel for some weakly related content, so that I could give up my search sooner.

Tuesday, July 23, 2013

Acer TimelineX 1830T: 2 year report and hard drive replacement notes

Attention conservation notice: Google-food for a gadget you will probably never need to know about.

About two years ago, I bought an Acer 1830T as a cheap second laptop to throw in my bag (alongside my work-issued Macbook Pro; I segregate work and personal computing fairly rigorously when I'm employed).

Some people say you can't get a decent laptop for much less than $1,000, and indeed many cheap laptops are terrible. However, I found that I used this dinky little plastic laptop almost as much as the Macbook Pro, and often enjoyed doing so. Even now, having quit my job and bought a workstation-class laptop for personal hacking, I still reach for the 1830T pretty often because it's tiny and light.

I'm also planning a 9-week multi-country international trip in the near future. Losing my big expensive workstation laptop would be hugely painful. Losing the 1830T would be an annoying but tolerable inconvenience. Guess which laptop I'll be toting around the globe to hostels and sundry.

On the other hand, even after all this time, the keyboard and touchpad still feel a little awkward compared to other keyboards and pointing devices I use.

Overall, I'm happy with the return on investment for this machine. However, if I were looking for a new machine to fill a similar role today, I would probably spend slightly more and get an Thinkpad X131e (Intel version), mostly due to Lenovo's superior ergonomics.

Replacing the hard disk with an SSD

Recently, I dropped this laptop on a hardwood floor while the disk was churning vigorously on a vagrant suspend. The disk was destroyed. I back up everything that matters, to a mixture of external disks and remote git repositories, so the permanent data loss was minimal. Still, the laptop needed a new hard drive.

SSDs have gotten amazingly cheap. I got the 120GB Samsung 840, which currently retails for $100. Granted, spinning-platter hard drives are even cheaper — a 500GB 7200RPM 2.5" drive costs about $60 — but a 120GB SSD is silent, much more durable, much faster, and large enough for everything I'm going to do with this laptop. So I bought the SSD.

A younger version of myself would have installed Linux next, and called it a day. I decided to try to get Acer's Windows 7 image running on it again instead. In hindsight, I can't fully justify this decision, except with reference to vague worries about whether suspend and the HDMI output would work well. Regardless, if you're reading this, I imagine you might want to reinstall Windows too, so I'll go into some detail about the process.

Now, by default, Acer expects the hard disk to be configured with a recovery partition, so that the system can be restored directly from the hard disk ("D2D recovery") in case of OS corruption. I think this is a waste of time and space, particularly since I ordered recovery CDs anyway (see below). However, if you want to try to set up a recovery partition prior to installing the OS, then feel free to wade through threads like this for help. The instructions below won't bother.

Here are the steps I took:

  1. Order Acer eRecovery discs for my machine's serial number, and wait for them to arrive. It took 3 days in total, from the day I ordered online until the day I received the discs by expedited FedEx, and cost about $38 including shipping. The package I received contained 4 discs: "System Disc (1 of 1)", "Recover Disc (1 of 2)", "Recovery Disc (2 of 2)", and "Language Disc".
  2. Open up the laptop's bottom panel with a small cross-head screwdriver. The RAM, wireless card, and hard drive are all easily accessible. It is trivial to remove the old hard drive and swap in a replacement, as the image below shows.

    It's a refreshing throwback to see a machine made this way. This style of design seems to be on its way out, at least in consumer markets, as people prefer sleek and hermetically sealed to slightly chunky and upgradeable.
  3. Connect an external USB CD-ROM drive and insert the disc labeled "System Disc".
  4. Turn on the machine. During the boot screen, press F2 to enter BIOS setup. In the "Main" section, find the option labeled "D2D Recovery" and toggle it to "Disabled". Press F10 to save and exit.
  5. During the reboot, quickly press F12 to bring up the boot order menu. Select the CD-ROM drive and press Enter.

  6. At the first menu screen, select a language.

  7. At the second menu screen, select the option to "Completely Restore System to Factory Defaults".

  8. Follow the onscreen instructions, inserting new discs when prompted. The recovery program may eventually ask you to insert a nonexistent "System Disc 2". This is a defect in Acer's recovery software. I am not sure if this is somehow specific to the discs I got (are these recovery discs burned on demand, or mass-produced?). Regardless, here's what I did to deal with this error:
    1. Hard reboot by holding down the power button until the machine turns off.
    2. Turn on the computer. Once again, at the boot screen, press F12 and boot from the CD-ROM.
    3. At the first menu screen, select the option to "Restore Operating System and Retain User Data". There will be no user data to back up, but this is harmless. It appears that in this recovery code path, the defect which requests "System Disc 2" is not triggered.
    Eventually, recovery will complete and the system will boot into Windows.
  9. I found that, for some reason, the default recovery image did not include drivers for the Broadcom wireless card. I plugged into a wired network, went to Acer's 1830T driver page, and downloaded and installed the Broadcom Wireless LAN Driver dated 2011/08/23. (Not all 1830T machines contain a Broadcom card, so this step may not apply.)

From then on, it was merely the usual routine of repeatedly running Windows Update until fixpoint, uninstalling crapware, and installing the considerable complement of additional software needed to make Windows a tolerable development environment.

This probably sounds like a huge hassle, and it was, particularly the "insert System Disc 2" problem. Ultimately, though, I resurrected a broken laptop for about $138, and I expect this laptop to last at least another year, so I suppose it was worth the trouble.