Archive for February 19, 2019

Tuesday, February 19, 2019

Lessons From 6 Software Rewrite Stories

Herb Caudill (via David Heinemeier Hansson):

Netscape’s disastrous 5.0/6.0 rewrite is the original poster child for “never rewrite”, thanks to Joel. […] Mozilla, the open-source community that Netscape had created, would go on to release the Firefox browser in 2004 — after yet another ground-up rewrite. Firefox did manage to gain back some market share from Microsoft.


They rewrote Basecamp from scratch and it turned out great. It took around a year, and new signups doubled immediately following the release of Basecamp 2. […] So they presented Basecamp 2 as a completely new product, with no guarantees that it would be backwards compatible with Basecamp Classic. […] That brings us to the second interesting thing they did, which was that they didn’t sunset their existing product.


Visual Studio is a heavyweight product in every sense: It can take upwards of half an hour to install. It has to support a wide variety of complex use cases relied on by enterprise customers. So it wouldn’t have made sense to use Visual Studio itself as a starting point, for Microsoft to try to appeal to other platforms by adding features. And presumably the idea of making Mac or Linux versions of Visual Studio was a non-starter. So Microsoft started from scratch with no guarantees of backwards compatibility.


Inbox gave the Gmail team a way to experiment with features without disrupting workflows for the vast majority of users who didn’t choose to switch over. By committing to having both versions use the same back end, though, Gmail put hard limits on their own ability to innovate.


One response, of course, would have been to do as Basecamp did: Take everything Fog Creek had learned about bug tracking, and reinvent FogBugz, starting from a clean slate. Presumably this was a nonstarter, you know, because of all the “things you should never do” and “worst strategic mistake” stuff. […] In the meantime, FogBugz languished in obscurity.


Shortly afterwards they lifted the veil of secrecy: They let BillSpring customers know that the product was now FreshBooks, and let existing FreshBooks customers know that a new version would soon be available. Little by little, “FreshBooks Classic” customers were invited to try the new upgrade — but they didn’t have to, and they could always migrate back to the more familiar version if they wanted.


Update (2019-02-20): FogBugz:

As the new owner, we are rewriting Fogbugz on a modern cloud stack. We expect to ship in Q2. (and LOC to drop from 1.6m to 5,000).

That seems like far too few, unless they are removing a lot of functionality.

See also: Hacker News.

Update (2019-02-21): FogBugz:

We have seen the tweets of disbelief in the 5k LOC for the “new cloud stack Fogbugz”. We are documenting our journey and will publish how we leveraged cloud services to replace so much code in the rewrite.

T2 Macs Have a Serious Audio Glitching Bug

Peter Kirn (via Hacker News):

The problem is, it appears that this new chip has introduced glitches on a wide variety of external audio hardware from across the pro audio industry, thanks to a bug in Apple’s software. Issues with the way the new chip synchronizes timing causes dropouts and glitches in the audio stream. (It seems basically all USB 2.0 audio interfaces will be impacted. This of course unfortunately leads users to blame their interface manufacturer, but the fault lies with Apple.)

Switching off “Set date and time automatically” in System Preferences will reduce, but not resolve the issue.


To clarify: all T2-based Macs, that is all Mac models from the 2018 generation, are evidently unusable with USB 2.0 audio interfaces, irrespective of vendor. Audio interfaces using FireWire or Thunderbolt are reportedly unaffected by this particular bug, but USB 2.0 is for the moment the most popular bus for audio devices, so nearly all owners of the new machines are encountering the issue.

Update (2019-02-20): See also: Stephen Hackett and Jason Snell.

Marco Arment:

I haven’t, but I’ve heard about it from enough people that it’s probably a significant issue.


I’m curious to know whether dropouts were occurring on older models when bandwidth heavy devices were in use - were the internal cameras on older macs connected over USB? Is that something anyone you know can try?


The problem is that USB was never a “real time” bus - usually, traffic on it can be kept to a minimum when you only have the built-in keyboard / mouse being the only consumers, and so the audio chips would get their way the vast majority of the time…

Stephen Nellis:

These reports are all the more interesting because, in the days of very powerful phones and tablets, one of the few really good reasons for buying a full-on laptop is processor-intensive work like pro audio.

Ricci Adams:

Note: switching off “Set... automatically” doesn’t eliminate the issue because timed appears to still sync on occasion, even when off. There are likely other issues at play too. Unloading timed entirely fixed it for me, but not everybody.

Update (2019-02-21): Ricci Adams:

Follow-up: The issue still occurs for me after running sudo pmset nopoll when timed is loaded. There may be different issues at play, however.

Also, in case it helps anybody else, the best way I’ve found to test is to rapidly check/uncheck “Set date and time automatically” during playback while searching Console for “pauseAudioEngine”. If the engine is pausing, you will glitch at some point.

Update (2019-02-22): See also: Accidental Tech Podcast.

Update (2019-02-26): See also: Joel Hruska.

Update (2019-04-08): Geoff Duncan:

Since the introduction of the iMac Pro—and continuing with newer T2-equipped Macs—users have reported occasional audio glitches: little clicks, pops, or bursts of noise that seem to happen at irregular intervals. They occur with both audio playback and audio recording, and can happen using any app, whether listening to Apple Music, watching a video on YouTube, playing a game, or—uh oh!—playing a hot DJ set at a party or recording a live symphony orchestra.

The problem seems most common with USB-connected audio devices—whether consumer-grade headsets, podcaster-level microphones, or professional audio gear—but the glitches also happen with built-in speakers and microphones as well as audio devices connected via Thunderbolt. How often do they happen? Hard to say. Some users see a few every hour, others maybe only one per day.


However, for others, these glitches are literally showstoppers.


All that said, if you rely on your Mac for audio—whether recording podcasts, DJing parties, or as a professional engineer or musician—I recommend avoiding T2-equipped Macs until audio issues have been verifiably resolved for quite some time.

Update (2019-05-27): Peter Kirn:

The T2 security chip continues to wreak havoc with audio performance – and the 2019 MacBook Pro, like all Macs since a 2018 revision, continues to use it and inherit its audio stability issues.

Even after a recent OS update that “addressed” performance, we are still hearing widespread reports that the new Macs exhibit this issue. And normally when I say I’m “hearing” them, I mean people are writing to tell me about it. In the case of the T2 issues, I actually keep literally hearing it. You’ll go to a concert or festival, and listen to one MacBook Pro after another glitching with the issue. You’ll sit for a meeting and hear it going on in the background.

See also: MacBook Pro 2019.