Labnotes

Weekend Reading — A long time ago in a suburb far, far away ...

Published on

@skywalkertwink "wHO DID THIS"

This week we explore existential UIs; we discover Emacs for Vim people; there's a better way to handle JS exceptions; "remote dynamic linking"; we visit the malware museum; times were tough before the GoPro; these are not the batteries you are looking for ...


Design Objective

Is this the perfect save icon?

The key thing is, if you really need an icon just make sure that it is simple, identifiable and consistent.

It’s unclear what the future will hold for the floppy disk icon. Maybe there is an argument that you don’t really need to know that it’s a floppy disk at all? You just need to know that pressing this weird boxy symbol means to manually save something.

The Secret UX Issues That Will Make (Or Break) Self-Driving Cars The hardest problem in UX science?

The Price Of Not Using UX Patterns But you already knew that:

When users are accustomed to using a pattern, even a minor change in that pattern can be very expensive in performance terms. In fact, the minor change is confusing in two ways: (1) since the difference is minor, it can go unnoticed, hence , and (2) since the user is already well-trained with the standard pattern, their knowledge masks the new pattern and inhibit learning.

@assaf Existential UI


Tools of the Trade

Spacemacs Emacs for people who love Vim.

tuvistavie/atomic-chrome Use Atom to edit text area in Chrome.

Noun Project for Mac 100,000+ icons in easy to search, minimal app.

The Keybase filesystem Big news for the security minded: frictionless sharing of public signed directories, and sharing private end-to-end encrypted directories:

Every file you write in there is signed. There's no manual signing process, no taring or gzipping, no detached sigs. Instead, everything in this folder appears as plaintext files on everyone's computers. You can even open /keybase/public/yourname in your Finder or Explorer and drag things in.

...

Soon, you'll be able to throw data into /keybase/private/yourname,pal@twitter, even if that Twitter user hasn't joined Keybase yet. Your app will encrypt just for you and then awake and rekey in the background when that Twitter user joins and announces a key.

Veertu Minimal virtual machine for OS X: this app is all of 18MB, simple UI, easy on battery usage, purchase/update from app store, thanks to the native OS X virtualization framework (VMNet).

draft-ietf-appsawg-http-problem-03 RFC for standardizing how HTTP APIs use JSON to communicate errors, henceforth known as "problem details".

What success really looks like in open source How to help open source projects succeed, and it starts by moving away from the myth of the bazaar:

From far away, successful Bazaars look like moneyless anarchic systems, but up close, the bulk of responsibility falls on a couple of people, who are usually being paid to do the work.

@HenryHoffman

I fucked up Git so bad it turned into Guitar Hero

Async CSS w/ link[rel=preload] Interesting technique for async loading CSS:

<link rel="preload" href="http://scottjehl.com/css-temp/slow.php" as="style" onload="this.rel='stylesheet'">

npm addict "Your daily injection of npm packages"

p-e-w/maybe Run a command and see what it does to your files without actually doing it!

@mhoye

"Unix will give you enough rope to shoot yourself in the foot. If you didn't think rope would do that, you should have read the man page."

@simula77 "Browsing the fiction section..."


Lingua Scripta

Functional Refactoring in JavaScript How to use functional programming to make your code more expressive.

@ericclemmons This:

Since using const everywhere I find that "let" means I need to put that logic in function and return instead. Or a reducer.

@kentcdodds "ES2016 in a tweet"

[1, 2, 3].includes(2) === true

3 ** 2 === 9

Promise Rejection Events Sample Unhandled rejection event handlers - that's a mouthfull - arrive in Chrome 49. For the uninitiated, like windows.onerror but for rejected promises (also async/await without a try/catch).

@nzgb Perfect!

ProTip: confuse your team mates with expressions like a >= b ? a => b : b => a

@haoel "The right way process JavaScript exception."


Lines of Code

The Unreasonable Effectiveness of Dynamic Typing for Practical Programs TL;DR static analysis won't save you as much time as you'll spend dealing with types (Vimeo).

@SoManyHs Presented without irony:

Duck typing

@mattgreenrocks This limit affects everything you develop:

coupling/cohesion are the physics of software construction: they form an upper bound on how fast you go

@iamdevloper Feels so familiar:

The software development process

i can’t fix this

*crisis of confidence*

*questions career*

*questions life*

oh it was a typo, cool


Architectural

https://news.ycombinator.com/item?id=11028885 This is how every successful company evolves its tech stack:

... the founder chooses a tech stack based on whatever he knows best and will let him write a v1 quickest - whether it be Java (Google), Perl (EBay), PHP (Facebook), or Common Lisp (Reddit). The first few employees collectively say that the founder is an idiot, choose a different tech stack (usually whatever's hot right now - probably Go or Node.js at this time, Python or Rails in 2005), and rewrite the whole product. They hire an experienced VP who says that the first few employees are idiots ...

@harrisj Not quite as bad as punch cards:

Back in my day we didn’t have no newfangled JSON APIs. It was all FTP and uphill both ways.

@juliepagano From a real job listing:

New favorite job title that sounds ridiculous without context. “Kafka Infrastructure Engineer”

@schmichael Properly labeled:

Microservices don't sound as appealing when you call them "remote dynamic linking.'


Locked Doors

The Malware Museum Collection of malware programs, usually viruses, that were distributed in the 1980s and 1990s on home computers.

How a Lone Hacker Shredded the Myth of Crowdsourcing What happens when someone decides to play adversary to a crowdsourced effort.


Techtopia

‘Error 53’ fury mounts as Apple software update threatens to kill your iPhone 6 Which camp are you in?

  1. @geoffreyfowler "Latest battle in the right to repair our gadgets: iPhone software updates that brick unofficial home button fixes"

  2. @charlesarthur "Apple stops NSA, China, crooks meddling with TouchID during repair"

@MarkHarrisNYC Re: rumors that Twitter will start using an algorithm:

Nobody in the world has a lower opinion of you than the algorithm that compiles "Other Stories You Might Enjoy."

@assaf "Times were tough before the GoPro ..."


None of the Above

Thomas101/wmail A Mac app for Google Inbox/GMail. Support multiple accounts, unread notifications, open source.

@Karishad

Sure they were free with the product...but I don't trust cheap Chinese made rechargeable batteries named "SoonFire"

@afilina "Gamers will understand."