Labnotes

Published on

Holiday and travel got in the way of publishing Weekend Reading, but I'm back and catching up on three weeks worth of fantastic links.

"Uh oh"


Design Objective

The dangers of delightful design Everything, in context and in moderation:

One thing I’ve learned is that it’s usually safer to be delightful on the screens that a user won’t see too often. ... This is why you’ll often see delightful imagery in onboarding flows.

Your Best Work Will Be Invisible

As a designer, your best work is going to always be invisible. It’ll be invisible because the best part of what you do will be everything that takes place behind the scenes, where nobody will ever see it.

Ryan Freitas

"A canceled meeting cannot be declined." I gotta say, Outlook, that's pretty zen.


Tools of the Trade

nathancahill/Anycomplete The magic of Google Autocomplete while you're typing. Anywhere.

CSS Reference A visual guide (try before you code?) to the most popular CSS properties.

When to use which CSS methodology Find the CSS methodology that's right for you, your project, or your team.

kubek2k/lambdoku Heroku-like command line for AWS Lambda functions.

htop explained. Explanation of everything you can see in htop/top on Linux.

davehull/Kansa A Powershell incident response framework.

Attacking discrimination with smarter machine learning Turns out you can build machine learning algorithms that don't amplify bias and give in to discrimination.

Probabilistic Data Structure Showdown: Cuckoo Filters vs. Bloom Filters "For similar space constraints, the Cuckoo filter provides lower false positives, particularly at lower capacities."

turbo.js Perform massive parallel computations in your browser with GPGPU.

Ben Bridts‏ The unintended consequences of machine intelligence:

Just did a test with @awscloud Rekognition, and it was capable of correctly classifying objects in google's reCaptcha


Lingua Scripta

ES6 is great, but use it cautiously Destructuring is one of those ES6 features that are easy to get carried away with:

"Let's use fancy ES6 destructuring"

"Seems hard to read"

"Fear not! I'll leave an explanatory comment"

The Missing Immutable.js Manual with all the Examples you’ll ever need What it says on the label.


Lines of Code

FunctionLength Martin Fowler answers the age old question, "how long should a function be?"

The argument that makes most sense to me, however, is the separation between intention and implementation. If you have to spend effort into looking at a fragment of code to figure out what it's doing, then you should extract it into a function and name the function after that “what”.

Slow Down to Go Faster Not convinced? Watch this unrelated video:

Yoni Weisbrod

Programming definitely has an addictive component. Those tiny wins that keep you solving a problem for hours and hours.

Please Don't Learn To Code From Stock Photos
"All websites should end with: <!-- End of Code forWeb -->"


Architectural

AWS Snowmobile Amazon taking Tanenbaum to the logical extreme:

Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway.

— Andrew S. Tanenbaum, 1989

You can transfer up to 100PB per Snowmobile, a 45-foot long ruggedized shipping container, pulled by a semi-trailer truck.

— AWS re:Invent, 2016


Devoops

Etsy’s Debriefing Facilitation Guide for Blameless Postmortems

By placing the focus explicitly on learning first, a well-run debriefing has the potential to educate the organization on not just what didn’t work well on the day of the event in question, but a whole lot more.


Peopleware

No one expects the lady code troll Jenn Schiffer on why and how she satirizes the tech industry. Hilarious. And insightful.

The Fraud Who Isn't Impostor syndrome explained.


Techtopia

Silicon Valley Has An Empathy Vacuum

Silicon Valley’s biggest failing is not poor marketing of its products, or follow-through on promises, but, rather, the distinct lack of empathy for those whose lives are disturbed by its technological wizardry.

Justin Shanes

Amazon thinks my recent humidifier purchase was merely the inaugural move in a newfound hobby of humidifier collecting.

Elizabeth Spiers

There are an awful lot of stock photos for virtual reality that just consist of people wearing headphones incorrectly.


Locked Doors

How To Fight Calendar Spam If you’re getting calendar spam, do not decline. That just confirms your account exists. Read this article on how to deal with calendar spam.

drduh/macOS-Security-and-Privacy-Guide A practical guide to securing macOS.

San Francisco Rail System Hacker Hacked Because everyone loves a double hack story. Also have backups ready for all your production systems.

Oleg Šelajev

The S in the IoT stands for Security.


None of the Above

Smartphone Magnifier Turn your smartphone videos into blown-up retro masterpieces.

We went in search of the world’s hardest language "English is pretty simple. Learning to speak Ubykh or !Xóõ presents more of a challenge"

Books I’ve read Looking for something to read? Check out Derek Sivers' list of books he read.

Disrupt Cards Cards against humanity but for startups.

How to Write Email with Military Precision Please, everybody who emails me:

  1. Subjects with keywords
  2. Bottom Line Up Front (BLUF)
  3. Be economical

Jaiden Mispy

This W3C spec reads like a text on gnostic mysticism

Wyoming, MN Police

Do NOT drive drunk. I will find you. I will arrest you. I will make you listen to One Direction cover bands on the way to jail.

Rescue Goat With Anxiety Only Calms Down In Her Duck Costume

Published on

Design Objective

“Please enter a valid last name” Getting UX right starts with a name.

If Satan was a web developer Creative ways for making web forms harder to use.

The Practical Dev margin-right: -100px !important;


Tools of the Trade

Abstract App “It’s a version controlled workflow, built on Git, and seamlessly integrated with Sketch.” This looks fantastic, excited to try it out (there’s a waiting list).

Write beautifully on iPhone, iPad, and Mac I’m using Bear right now to write this blog post.

@rabcyr “modern software development”

Fascinating Pictures RTFM!

Reading the instruction manual for the elephant you’ve just bought. We’ve all been there!


Lingua Scripts

Jake Archibald Async iterators make reading streams really easy. Already in Babel.

Apropos, async/await shipping in Chrome and soon Firefox.


Lines of Code

What I learned from writing six functions that all did the same thing This is something I see a lot of developers struggle with. I guess tweaking code relentlessly is easier than applying math. And it’s not just an issue of performance, it’s also simpler code.

So the winning function was roughly 9,690 times faster than my best effort, and 275,858 times faster than my initial effort.

If you need me, I’ll be over at Khan Academy studying math.

Dan Abramov Read this entire thread, starting with:

Looking a few years back, one of my biggest mistakes was my obsession with not repeating myself.

Seemingly duplicate or “boilerplate” code would physically irritate me. I’d spend considerable effort making sure everything is very DRY.

DRY is not free. You pay with a deeper abstraction stack and a higher price for changing individual cases later. I love boring code now.

Jay Kuri The perfect developer machine:


Devoops

Josh Zimmerman “Presented without comment”


Locked Doors

Battery Status readout as a privacy risk At some point we got a web api for checking battery status. Turns out (surprise?!) it can be used to track users who would rather stay anonymous. Mozilla took the courages decision to drop this API in the next version of Firefox.


Peopleware

How “Empowering” Your Team Is Stressing Everyone Out How structure helps people worry less, get more done:

Don’t you wish you could just make your own hours? “Get your work done, guys, we don’t care when!” Ahh — smells like total freedom.

Until you have to actually work with other humans, anyway.

Now every person on your team isn’t just in charge of their work — they’re in charge of tracking the unique daily schedules of everyone else they need to interact with! So convenient, right?

Being an Effective Ally to Women and Non-Binary People Allyship is important. Easy it’s not:

Show up. Every day. Allyship isn’t something you can do in your spare time or only when it’s convenient for you. It’s effort, it’s work—often hard work. Show up, every day, and don’t let it slip.


None of the above

Sindre Sorhus Here’s a kitten dressed as a bat to brighten up your day.

Developers Read 1 Star Reviews “Worked very well, had all the functions necessary … 1 star”

Yuri Sagalov “The first half of my MacBook Pro has arrived”

Holovect World's first desktop holographic display (KickStarter).

Me on Twitter “A history of acquisitions, as told by an email receipt”

LEGO Vehicles Take Over The Streets Of Rome How awesome.

Published on

Design Objective

How to do a Product Critique

It just has to happen because you’re curious, over and over and over again. Because you want to learn how to build good things.

Watch and learn. That’s all there is to it.

Aaron Hodder "Someone wrote this:"


Tools of the Trade

A documentation crash course for developers Judging by the majority of software projects, documentation is harder than programming, so that's why I link to so many articles about writing better docs, like this one:

It’s a small change, but that switch the reader instead of function is a quick and easy method to make the reader feel more involved in the explanation. We’re not writing fiction in technical documentation, but there’s no harm in telling a story.

Functional Lattice Cryptography (PDF) Perfect example for applying functional programming to cryptography. Right down to the choice of naming:

This work describes the design, implementation, and evaluation of Λ◦λ, a general-purpose software framework for lattice-based cryptography.

matt blaze

I wonder how much Big Emacs paid Apple to get rid of the escape key. They'll stop at nothing in their war on vi.

Chris Martin

The worst part about space travel will be the date libraries. You think time zones are bad, have fun with relativity.


Lingua Scripta

Three ways of understanding Promises Three not-so-obvious aspects of promises.


Architectural

Going Faster: Speeding up Software Development Where manufacturing terms are once again applied to the practice of software development:

  • Remove friction
  • Reduce inventory
  • Eliminate unneeded work

If the three software project levers above sound to you like DevOps, Lean, and Agile, you are spot on.

The Practical Dev And Medium posts:

I made a venn diagram to describe conference talks


Techtopia

History Of Mechanical Keyboards Fascinating designs.

Nick Robinson

me, glaring at my wi-fi bathroom scale while peeing: "is it you. are you the one hurting all the websites"


None of the Above

how much does a good telescope cost

Dave Weigel

I do appreciate the new definition of "leaked" emails. Years ago, I "leaked" an iPod after someone broke into my house.

Total Nightmare: USB-C and Thunderbolt 3 On the plus side, we finally got one port to rule them all: data, audio, video and power. Problem is, that's ten different ports that confusingly look the same. I predict this will end up more frustrating than Bluetooth.

Science Isn’t Broken It's just that "science is hard — really fucking hard". Includes an interactive chart that illustrates p-hacking in practice.

Blake Hammond

"Relax, don't do it" is my mantra. Except replace "relax" with "completely overanalyze the situation & feel defeated by your own thoughts"

‏@HapaxLegoman "they're called 'livejournals'"

Published on

Design Objective

How the Web Became Unreadable "I thought my eyesight was beginning to go. It turns out, I’m suffering from design."


Tools of the Trade

google/highwayhash Addressing performance and security, this package includes a faster version of SipHash, a data-parallel variant of SipHash using tree hashing, and an even faster algorithm called HighwayHash.

Books Programmers Don't Really Read

Please stop recommending books to others that you haven't read yourself. It's counter productive, as often there is a better book (more focused on a specific problem domain, easier to understand, geared more toward a specific programming language or programming skill level) that someone more knowledgeable could recommend.

@sarah_federman

Just passed a license plate that said "LGTM +1" on the freeway. I love you, Silicon valley.


Lingua Scripta

Tips for using async functions (ES2017) Few things you should know when using async/await.

npm v4.0.0 Hoping 4.x will be stable and dependable, and cure our 3.x blues.

Loop through a collection of DOM elements Old tricks for old browsers (that are still in circulation).


Lines of Code

@martinfowler

Many people underestimate the importance of deleting unnecessary code, it still has to be read and understood.

‏@UdellGames

Use whatever brace style you prefer.

But not this.

Don't do this.

Seek help instead of this.


Devoops

‏@JillWetzler

OH: I lived in a house with two other women engineers and at some point our PagerDuty cycles synced up.

‏@jjarmoc

In a relatively short time we've taken a system built to resist destruction by nuclear weapons and made it vulnerable to toasters.


Locked Doors

Hacked Cameras, DVRs Powered Today’s Massive Internet Outage Most people have no idea their connected devices are compromised within minutes of being powered on:

Mirai scours the Web for IoT devices protected by little more than factory-default usernames and passwords, and then enlists the devices in attacks that hurl junk traffic at an online target until it can no longer accommodate legitimate visitors or users.

And there's nothing you can do about it, other than throwing these devices in the trash:

That’s because while many of these devices allow users to change the default usernames and passwords on a Web-based administration panel that ships with the products, those machines can still be reached via more obscure, less user-friendly communications services called “Telnet” and “SSH.”

Also, an attempt to identify the device makers.

Matthew Olney Security experts: "using common file extensions as TLDs is a bad idea" ICANN: ¯_(ツ)_/¯

“Most serious” Linux privilege-escalation bug ever is under active exploit (updated) "A serious vulnerability that has been present for nine years in virtually all versions of the Linux operating system is under active exploit". Nine years.

‏@internetofshit

"How'd your accounts get owned?"

"Toaster. You?"

"Washing machine."


Techtopia

@craigmod

Little known fact: inventors of BlueTooth were wabi sabi fetishists — felt reliable functioning would undermine ephemeral beauty of life.

@ragzouken

black mirror #3 set in the distant future where you can attach a video to an email and it actually works


None of the Above

@tenderlove "Area man approves pull request"

Mexico’s Demand For Potent California Marijuana Creates Southbound Smuggling The times are changing.

Silicon Valley Etiquette

In Silicon Valley, some principles do matter: Efficiency, Respect, and Communication. California is for sure the “Land of The Cool”. But don’t get it wrong. Things are codified.

Published on

Design Objective

A Glimpse into the Future of Messaging-First Onboarding A case study on designing the on-boarding experience for the Slackbot Troops.

Manisha Agarwal

OH: Software is like a pinball machine. Nobody reads the printed instructions clearly.They just drop their quarters & start pushing buttons

Amir Shevat Spot on.


Tools of the Trade

open-guides/og-aws "This guide is by and for engineers who use AWS. It aims to be a useful, living reference that consolidates links, tips, gotchas, and best practices." Bookmarked!

On Writing Product Specs This:

Effective product specs are a critical part of building great software. They force critical thinking up front, scale communication, and raise accountability — all leading to higher quality, lower schedule risk, and less wasted time.

Thoughts on yarn Judging by my Twitter stream, lots of people love it, but many also hate it — or just being cynic for the sake of it? I'm going to give yarn a try on future projects.

Dmitry Ignatiev (cons cat (cons cat nil))


Lines of Code

nfriedly I expect anyone who's a JavaScript expert to do the same:

When I was hired on the Watson team, the first thing they asked me to do was help improve performance of their AngularJS-based website. It was all-around slow, especially for the initial page view. I stripped out AngularJS and most of the other JavaScript, and published a website that was almost pure static HTML. It loaded very quickly. My manager thought it was hilarious - his "JavaScript expert" came in and deleted all of the JavaScript.

Jiaaro These should be part of the Computer Science curriculum:

Actual talents involved in programming:

  • naming things
  • introspective thinking
  • explaining things to other people clearly

Architectural

10 Modern Software Over-Engineering Mistakes Starting with the original sin:

Engineers think we’re the smartest people around because we build stuff. This first mistake often makes us over-engineer. But if we plan for 100 things, Business will always come up with the 101st thing we never thought of. If we solve 1,000 problems, they will come back with 10,000 problems. We think we have everything under control — but we have no clue what’s headed our way.

Peter Seibel

In distributed systems you’re screwed if you don’t have caches but if you do, you’ll screw them up. This is known as a ”cache-22”.


Peopleware

Eric Elliott

In a mentorship culture with lots of pairing and code reviews, even novice developers quickly become great assets.

Casey West

Did you consider how hard it is to get six people to agree on a two pizza order before you sent the email about your microservices strategy?


None of the Above

Bite Sized Observations You Didn’t Know You Needed.

How Did Walmart Get Cleaner Stores and Higher Sales? It Paid Its People More Shocking business strategy.

Dave W-F

Possibly the most unbelievable thing about Star Trek is how different alien civilizations maintain cross-compatible video calling software.

James Poniewozik "BREAKING: Wow. I don't say this very often, but this is a game-changer. #Wikileaks"

The Dutch Reach: Clever Workaround to Keep Cyclists from Getting “Doored" Simple and effective:

Basically, instead of using their door-side (left) arm, they reach over with their other (right) arm. This simple behavioral shift causes drivers to look back naturally and see whether or not there are oncoming bicyclists.

Andrew Bloch "Whoever designed these LEGO bags deserves a pay rise"