Archive for February 19, 2019

Tuesday, February 19, 2019 [Tweets] [Favorites]

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.

Previously:

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.

McCloud:

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?

McCloud:

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.