MaisonBisson

a bunch of stuff I would have emailed you about

It just looks better that way

In Old English the past tense of “can” did not have an “l” in it, but “should” and “would” (as past tenses of “shall” and “will”) did. The “l” was stuck into “could” in the 15th century on analogy with the other two.

From Arika Okrent, in a MentalFloss piece about the weird history of some spellings. The piece has other examples of spelling changes to conform words to some aesthetic or another, even when those changes were inconsistent with the history and etymology of the word. And here’s a reminder to myself about the author’s book on invented languages.

On building a culture of candid debate

A good blueprint for [building a culture of candid debate] can be found in General Dwight D. Eisenhower’s battle-plan briefing to top officers of the Allied forces three weeks before the invasion of Normandy. As recounted in Eisenhower, a biography by Geoffrey Perret, the general started the meeting by saying, “I consider it the duty of anyone who sees a flaw in this plan not to hesitate to say so. I have no sympathy with anyone, whatever his station, who will not brook criticism. We are here to get the best possible results.”

Eisenhower was not just inviting criticism or asking for input. He was literally demanding it and invoking another sacred aspect of military culture: duty. How often do you demand criticism of your ideas from your direct reports?

From Gary P. Pisano in The Hard Truth About Innovative Cultures

Shuffle sharding in Dropbox's storage infrastructure

Volumes are spread somewhat-randomly throughout a cell, and each OSD holds several thousand volumes. This means that if we lose a single OSD we can reconstruct the full set of volumes from hundreds of other OSDs simultaneously. This allows us to amortize the reconstruction traffic across hundreds of network cards and thousands of disk spindles to minimize recovery time. » about 300 words

Parts of a network you should know about

If you’re running infrastructure and applications on AWS then you will encounter all of these things. They’re not the only parts of a network setup but they are, in my experience, the most important ones.

The start of Graham Lyons’ introduction to networking on AWS, which (though the terms may change) is a pretty good primer for networking in any cloud environment. Though cloud infrastructure providers have to deal with things at a different later, Graham’s post covers the basics—VPCs, subnets, availability zones, routing tables, gateways, and security groups—that customers need to manage when assembling their applications.

We're gonna need a bigger PRNG cycle length...

The general lesson here is that, even for a high quality PRNG, you can’t assume a random distribution unless the generator’s cycle length is much larger than the number of random values you’re generating. A good general heuristic is —

If you need to use n random values you need a PRNG with a cycle length of at least .

From a 2015 post by Mike Malone on PRNGs vs. random key collisions. The Chrome/V8 bug that caused Mike to write nearly 5000 words to explain has since been fixed, but you can check your browser’s PRNG here.

On Uber Eats nobody knows your restaurant is a popup

For independent or family-owned restaurants with less traffic, Douglass points to the pop-up restaurant. Not to be confused with popup restaurants, which are dining concepts open for a limited time. Popups are cooking stations within the main kitchen of a restaurant dedicated to fulfilling delivery-only orders. Eater recently profiled a Dallas, TX-based chain called SushiYaa, which owns five physical locations but houses a couple dozen brands within them. The virtual brands are only available through Uber Eats.

By Jenn Marston for The Spoon on how internet delivery is changing restaurant kitchens as we know them.

Interconnected, machine readable data, at scale

The NGA provides a free database with no regulations on its use. MaxMind takes some coordinates from that database and slaps IP addresses on them. Then IP mapping sites, as well as phone carriers offering “find my phone” services, display those coordinates on maps as distinct and exact locations, ignoring the “accuracy radius” that is supposed to accompany them.

“We assume the correctness of data, and often these people who are supposed to be competent make mistakes and those mistakes then are very detrimental to people’s daily lives,” said Olivier. “We need to get to a point where responsibility can be assigned to individuals who use data to ensure that they use the data correctly.”

From Kashmir Hill writing on the role of interconnected data in our modern lives. In this case it’s geo IP data, but it’s a story that’s increasingly common and likely in any field.

Two years after MaxMind first became aware of this problem with default [geo IP] locations, its lawyer says it’s still trying to fix it.

In praise of refactoring

Under the right conditions refactoring provides a sort of express lane to becoming a master developer. […] Through refactoring, a developer can develop insights, skills, and techniques more quickly by addressing a well understood problem from a more experienced perspective. Practice make perfect. If not the code, maybe the coder.

From Patrick Goddi, who argues refactoring is about more than code quality.

The day-to-day drudgery of state sponsored hacking

After a review of bids and testing the capabilities of some of the exploits offered, the team decided to build its own malware. “This is the only inexpensive way to get to the iPhone, except for the [Israeli] solution for 7 million and that’s only for WhatsApp,” explained one team member in a message. “We still need Viber, Skype, Gmail, and so on.” The same was true of the Android and Windows malware and the back-end tools used to manage the campaign. Rather than using zero-day exploits, the organization relied on a combination of physical access, spear-phishing, and other techniques to inject its espionage tools onto the targeted devices.

From Sean Gallagher in ArsTechnica on the details leaked from a state sponsored malware effort.

Who controls the menu?

When people are given a menu of choices, they rarely ask:

  • “what’s not on the menu?”
  • “why am I being given these options and not others?”
  • “do I know the menu provider’s goals?”
  • “is this menu empowering for my original need, or are the choices actually a distraction?” (e.g. an overwhelmingly array of toothpastes)

From Tristan Harris, co-founder of the Center for Humane Technology. It’s the first of ten magic tricks he pointed to that technology companies use to hijack users’ minds and emotions.

Apple CloudKit uses FoundationDB Record Layer

Together, the Record Layer and FoundationDB form the backbone of Apple’s CloudKit. We wrote a paper describing how we built the Record Layer to run at massive scale and how CloudKit uses it. Today, you can read the preprint to learn more.

From an anonymous FoundationDB blog post introducing relational database capabilities built atop FoundationDB’s key-value store. The paper about CloudKit (PDF) is also worth a read. CloudKit is Apple’s free at any legitimate scale back-end as a service for all iOS and MacOS apps.

You can identify a dog on the internet, but will you bother to?

You can construct any [effing] narrative by scouring the internet for people claiming something. It doesn’t make it relevant. It doesn’t make it true.

From Agri Ismaïl’s media criticism (start here). This isn’t an issue of not knowing the dogs on the internet, it’s a matter of not caring who’s a dog in the interest of either clicks or political interest.

Technology choices, belonging, and contempt

I was taught to be contemptuous of the non-blessed narratives, and I was taught to pay for my continued access to the technical communities through perpetuating that contempt. I was taught to have an elevated sense of self-worth, driven by the elitism baked into the hacker ethos as I learned to program. By adopting the same patterns that other, more knowledgable people expressed I could feel more credible, more like a real part of the community, more like I belonged.

I bought my sense of belonging, with contempt, and paid for it with contempt and exclusionary behaviour.

And now, I realise how much of it is an anxiety response. What if I chose the wrong thing? What if other people judge me for my choices and assert that my hard-earned skills actually aren’t worth anything?

From Aurynn Shaw on cultures of exclusion and contempt in technology professions.

Rollback buttons and time machines

Adding a rollback button is not a neutral design choice. It affects the code that gets pushed. If developers incorrectly believe that their mistakes can be quickly reversed, they will tend to take more foolish risks. […]

Mounting a rollback button within easy reach […] means that it’s more likely to be pressed carelessly in an emergency. Panic buttons are for when you’re panicking.

From Dan McKinley, speaking about the complications and near impossibility of rolling back a deployment.

Shooting down Star Wars as a vehicle for exploring human relationships with future technologies

Into the ongoing fight between those who dismiss Star Wars as a shallow space opera vs. those who who would elevate the movies to a position of broader significance (so-called hard science fiction) strolls Jeremy Hsu, who points out:

Regardless of writer-director Rian Johnson’s intentions for “The Last Jedi,” his story transformed the adorable robotic sidekick into a murder droid with a will of its own. That would normally have huge implications in a science fiction story that wants to seriously explore a coherent and logical futuristic world setting. But like most Star Wars filmmakers, Johnson generally seems satisfied with merely creating an illusion of familiar technology that delivers cool visual storytelling, even if that leaves some of the bigger questions on the table.

Insert mic drop emoji here, I guess.

Common root causes of intra data center network incidents at Facebook from 2011 to 2018

From A Large Scale Study of Data Center Network Reliability by Justin Meza, Tianyin Xu, Kaushik Veeraraghavan, and Onur Mutlu, the categorized root causes of intra data center incidents at Fabook from 2011 to 2018:

Category Fraction Description
Maintenance 17% Routine maintenance (for example, upgrading the software and firmware of network devices).
Hardware 13% Failing devices (for example, faulty memory modules, processors, and ports).
Misconfiguration 13% Incorrect or unintended configurations (for example, routing rules blocking production traffic).
Bug 12% Logical errors in network device software or firmware.
Accidents 11% Unintended actions (for example, disconnecting or power cycling the wrong network device).
Capacity planning 5% High load due to insufficient capacity planning.
Undetermined 29% Inconclusive root cause.

Two notes worth considering:

We use “failures” to refer to any network device misbehavior. The root cause of a failure includes not only hardware faults, but also misconfigurations, maintenance mistakes, firmware bugs, and other issues.

And:

We use Govindan et al.’s definition of root cause: “A failure event’s root-cause is one that, if it had not occurred, the failure event would not have manifested.”