Labnotes

Weekend Reading — Summer's back!

Published on

Christoph Niemann "Summer's back!" (more fun 2.5D art on his Twitter)


Design Objective

Product Design Exercises We Use At WeWork Interviews The "Dribbblisation of Design" gets us pretty, but useless products. Here are 17 exercises you can do to hone your product thinking skills, and become a better product designer.

Designing for Forgiveness Help users make fewer errors through design.


Tools of the Trade

A better way to view & analyze data A desktop application for viewing and analyzing tabular data.

Web Developer Security Checklist "I’ve been developing secure web applications for over 14 years and this list contains some of the more important issues that I’ve painfully learned over this period."

ForbesLindesay/taxi-rank JSDom-based Selenium Webdriver API.

Exploring Relay Modern Looks like React's attempt at LINQ for GraphQL queries. Full of good ideas, but that syntax …

/dev/null "How to exit this bus?"


Web-end

fantasai

PSA: Use font-kerning/font-variant-* instead of font-feature-settings. They cascade better & do more correct things. https://www.w3.org/TR/css-fonts-3/


Lingua Scripta

Node v8.0.0 (Current) Node 8.0 just landed and it's full of goodness: npm 5.0, async/await and util.promisify(), upgraded V8 with TurboFan & Ingnition, new native API, V8 Inspector, and more.

The Important Features and Fixes of Node.js Version 8 Reviews some of the new features and what they mean for developers.


Lines of Code

Microdecisions In code, even small — seemingly inconsequential — decisions matter:

If there are no reasons to choose one version over another, take the time to find a reason to pick one. There are a couple benefits to this.

First, if anyone comes to you questioning your code, you'll have answers ready and will be able to defend your decisions.

Second, the process of reasoning through each of your decisions will help you to catch mistakes.

Lastly, if you have a reason for everything you choose, it will minimize the WTF moments of the next person to look at your code.

Good comments explain WHY, not WHAT, and 3 more rules on writing good comments If you have a habit of documenting decisions in Github issues/PR, not good enough:

The "next developer taking over" is almost a myth.

Usually the "next developer" is just "quickly passing by" has her own thing she wants to get done and your code got in the way.

Imagine the next person landing in your code to have no context whatsoever and VERY limited time to change it.

Syntax, Predicates, Idioms — What Really Affects Code Complexity? 222 subjects, so small study caveat and all, some interesting conclusions:

  • for loops are harder than ifs
  • 3 predicates is harder than 2; 3 vs. 4 not significant
  • flat structures appear to be slightly easier [than nested]
  • some but not all uses of negation are harder
  • loops counting up are easier [than counting down]

Test Sizes Still relevant after all these years: some call them unit, integration, and end-to-end tests; this article quantifies them more precisely as small, medium, and large tests.

@SwiftOnSecurity And eternally grateful:

We stand on the shoulders of giants who bothered to login to StackOverflow and explain their problem in words easily indexed by Google.


Architectural

How to Set the Technical Direction for Your Team "Having a clear long-term and short-term technical direction is critical to leadership in software development."

Cleaning up your codebase with a clean architecture I love articles that illustrate difficult concepts with simple to understand code:

A clean architecture is a guide to splitting up your code, giving direction on where certain concepts belong.

  • Separate your code by layers
  • Put abstractions in the inner layers
  • Put implementation details in the outer layers
  • Dependencies can only point inward, never outward.

@noahsussman The entire thread is a gem:

the idea behind Continuous Delivery is that you write code and someone else reviews it and you deploy it and you see its impact if any

the maximum value is derived from Continuous Delivery when writing, reviewing, deploying and watching all occur ON THE SAME DAY


Devoops

@DanielMorsing 😭

I'm naming my cats-to-be kafka, cassandra and pagerduty so that I will be less surprised when they wake me up in the middle of the night


Locked Doors

Sun Tzu

"Your enemy cares not that the maintainer of an Internet-connected server left 10 years ago." - Sun Tzu

Khalil Sehnaoui "When you don't want your enemies to track your moves. #Opsec"


None of the Above

Toby Price "What #legos do when we aren't looking."

Hasan Minhaj 'Homecoming King' now streaming on NetFlix. Incredible.

Mikko Hypponen "Nowadays we do Voice-over-IP, but we used to do IP-over-Voice."

Internet Trends 2017 Mary Meeker's deck — 355 slides packed with important research — covers global internet trends, digital media, cloud computing, the Chinese and Indian markets, healthcare records, and more.

samim "Silicon Valley (1950)"