Labnotes

Weekend Reading — Adult supervision

Published on

@waxpancake how we shared cool GIFs in the 80s

This week, babies teach us how to write great error messages; it's Wiki vs README; we learn that most errors hide in error handling code; and how best to onboard engineers; we quack like a USB keyboard; we read the script to a missing Silicon Valley episode; and we learn to take better selfies.


Design Objective

Bye, Google Maps "Citymapper is what happens when you actually understand user experience." You can learn a lot from this side-by-side analysis.

How to write a great error message The best error message is the one that never shows up. But if you need to show a message, follow these guidelines.

@andrewtraviss

Having a baby has really driven home how terrible it is when several issues result in the same error message

The Rise of Phone Reading It’s not the e-reader that will be driving future books sales, it’s the phone; how publishers are rethinking books for the small screen.

@hpdailyrant

Feature Attachment Anonymous: A support group for people in software who can't let go of a feature bc 1 user asked for it. #UX


Tools of the Trade

Alex A text linter that catches gender favoring, polarising, race related, or other unequal phrasing. apm install linter atom-linter-ales and type away.

Protected branches and required status checks Coming up in Github, protected branches that can't be force pushed, can't be deleted, and won't merge changes until they pass a status check (i.e. CI).

Some thoughts on documentation Wiki vs README:

tl;dr: people don't seem to trust Wiki content, nor explore it. They're also more nervous about editing Wiki content. Files imply: this is officially part of the project, and people feel comfortable sending a PR

The anatomy of responsive images Oh my.

h2non/toxy Hackable HTTP proxy to simulate server failure scenarios and unexpected network conditions.

Black Screen A modern terminal emulator based on Electron.

@ctford

BDD is about starting conversations, because every time you bring it up you have to have a conversation to define the term.

Is it Pokemon or big data? Another fun guessing game.

@status git reset --hard HEAD


Lingua Scripta

Typed Arrays in ECMAScript 6 Everything you wanted to know about the new JavaScript API for handling binary data.

Measuring JavaScript Functions’ Performance Learn how to use the High Resolution Time API and avoid the common pitfalls.

The JavaScript Misdirection Contest Write innocent-looking JS code implementing malicious behavior.


Lines of Code

Lessons Learned From Reading Postmortems The role error handling, configuration, hardware, and human error play in outages:

Drilling down further, 25% of bugs are from simply ignoring an error, 8% are from catching the wrong exception, 2% are from incomplete TODOs, and another 23% are “easily detectable”, which are defined as cases where “the error handling logic of a non-fatal error was so wrong that any statement coverage testing or more careful code reviews by the developers would have caught the bugs”

5 Questions Every Unit Test Must Answer In a nutshell:

A failing test should read like a high-quality bug report.

What’s in a good test failure bug report?

  1. What were you testing?
  2. What should it do?
  3. What was the output (actual behavior)?
  4. What was the expected output (expected behavior)?

@jamespearce

Considering a new engineering job? Wouldn't it be cool if you check the quality of their production code before you decide?


Peopleware

Five years, building a culture, and handing it off This is how you build a culture of success. And the ultimate test:

And building a thing that can be handed off means … you eventually hand it off.

How to Onboard Software Engineers I'm going to put this into action with our next hires:

The big ones are burning out senior mentors. Then that leads to, “We can’t take on any more junior engineers,” which is a huge travesty. When I hear companies saying that “We only hire senior engineers,” I’m like, “Who do you think is training all of these senior engineers? Where do you think they come from?” There are 2 ways to get great engineers at your company. You can steal them or you can make them.

When Discrimination Is Baked Into Algorithms Software algorithms are going to discriminate, that's their default state. What can we do to solve that?

@RichRogersHDS "This has been confusing our parents for years... #Programmers"


Locked Doors

New cybersecurity mantra: “If you can’t protect it, don’t collect it” Exactly!

USB Rubber Ducky Deluxe Ducks like a USB thumbs drive, but also connects as a USB keyboard and types commands into the host computer, which is why you never plug foreign USB objects into your computer.


Techtopia

Adult Supervision (PDF) Blake Ross couldn't wait 8 month for the next season of Silicon Valley, so he wrote his own episode. And it's fantastically funny and true to form:

LAURIE

We're "managing you out" of the CEO role, not Pied Piper itself. No one knows more about the tech than you do.

RICHARD

So...you're looking for a CEO with a little less experience?


None of the Above

Avoid Humans Leave the house but keep to yourself? Avoid Humans combs data from Foursquare/Instagram to give you the nearest places with the least amount of humans.

AirConsole Brilliant. Play console games on your computer, using your iPhone as a gamepad. Works in the browser, no app to download/install.

Take better selfies Fantastic guide for cisgender men who are generally (myself included) not that good at the art of the selfie.

@Pinboard

Full stop (n.) A punctuation mark that should be the only thing following the phrase “I am not a lawyer” in online discussion

Maybe This Global Slowdown Is Different We need to adjust our economic models:

Finally, consider the things that people do want to spend their money on. The defining consumer product of our age is the smartphone. … Most of its value is in the software that is loaded onto it and the people, information and entertainment you can connect to with it. That's a different sort of value creation than 20th-century resource-based value creation.

How Google defines ‘quality content’

But what they show is that marketers were correct in their assertions that the days of trying to ‘game the system’ are pretty much over, and now it’s about putting time and effort into creating content that is genuinely valuable.

Ashley Madison Code Shows More Women, and More Bots You expected Ashley Madison to be above board?

@jaffathecake

I used to do this:

"3 days"

"Can you do it in 2?"

"Yes but it'll be late by 1 day"