Labnotes

Published on

Santero "Huh. Man with dogs in his pockets walking his duck, which has shoes on"


Design Objective

Atomic Design by Brad Frost Brad Frost explains atomic design, and how to apply its principles to your very own design system.

Designing for iPad Power Users If you are working on an iPad app, then please, yes and thank you.

The Problem with Liberal White Designers Jennifer Daniel:

Nothing has forced myself to reckon with what is important to me more than talking to people who disagree with me. I would challenge designers to talk to people who challenge them. People who don’t look like you, people who don’t think like you, people who make you angry and confused. It’s fucking hard but you can do it, or at least try.

Linea - Sketch Simply Iconfactory's new sketch app for the iPad.


Tools of the Trade

We built a PWA from scratch - This is what we learned Caching gotchas and strategies, offline workers, add to home suggestions, and more.

Adventures with NPM or: How I Learned to Stop Shrinkwrapping and Love Yarn Mirrors my frustrations with npm. Be advised, Yarn is not bug free, not even close, but so far has proven more dependable than npm.

Magnet Cool little OS X app to help with window placements.

This browser tweak saved 60% of requests to Facebook On cache-control: immutable (shipping in Firefox) and the recent caching improvements in Chrome.

The future of the page cache Apropos, "Caching is the art of predicting the future, he said."

How to Prevent Gmail From Displaying An Image Download Button In Your Email If your email has an image above a certain size, Gmail will display an image download icon. Here are three techniques to disable this icon.

Pixel Recursive Super Resolution One step closer to CSI infinite zoom:

… by incorporating the prior knowledge of the faces and their typical variations, an artist is able to paint believable details. In this paper, we show how a fully probabilistic model that is trained end-to- end can play the role of such an artist by synthesizing 32×32 face images depicted in the middle column of Figure 1.

Lee Byron

Finally an answer to the age old riddle. Which came first?

node -p "[ '🥚', '🐔' ].sort()[0]"

🐔


Lingua Scripta

Martin Kleppe: 1024+ Seconds of JS Wizardry -- JSConf EU 2013 The art of writing exceptionally compressed JavaScript.

Int64 & More Slides from Brendan Eich talk to TC39, about Int64, Uint64, and beyond.


Lines of Code

Jedd Ahyoung

"What is technical debt?" Technical debt is hard to explain, but a picture is worth a thousand words

Sarah Mei In response:

It's not debt. It's clutter that eventually leaves you so little room to maneuver that you lose the game.

It's the same with software design. To avoid clutter, come in with a plan, but alter it to fit each new feature request you get.

Land Mines Preventing database landmines in your project: avoid shortcuts, be obvious, consider migrations.

Gregory Brown

Share domain knowledge 100x more often than you do tips on how to turn three lines of code into one line of code.

Alex Levenson


Devoops

GitLab.com Database Incident Or, why you must practice database recovery every so often:

So in other words, out of five backup/replication techniques deployed none are working reliably or set up in the first place. We ended up restoring a six-hour-old backup.


Peopleware

Managering in Terrible Times First, read Productivity in Terrible Times. Then follow these guidelines for supporting your team:

As managers, one of our responsibilities is to provide the safest workplace we can to those around us. This includes members of marginalized groups who are dealing with a rapidly worsening environment, folks who may be anticipating legal challenges, and people with families who are uncertain about their ability to keep their jobs and stay safe in their communities. How do we support our reports in this rapidly changing political environment?


Locked Doors

Coded A video series about the new generation of hackers that are rising up and fighting corporate/government surveillance.


Hotel ransomed by hackers as guests locked out of rooms Literally, locked doors. (Thanks andrew)

You're a victim with one word in 'Can you hear me?' phone scam TL;DR if you don't recognize the caller, send them to voice mail:

A growing "Can you hear me?" phone scam can make you a victim if you utter just one word: "Yes."

Certified Malice Now that HTTPS adoption has reached the tipping point, we have to reckon with the ease of acquiring intentionally deceptive certificates:

In my mind, this is a critical failing—while much of the objection is well-meaning (“We want a level playing field for everyone”), it’s extremely frustrating that we punish users in support of abstract ideals.

Lesley

Quick reminder that "Potentially Unwanted Program" is antimalware-ese for "works pretty much like malware but has lawyers"


None of the Above

Mike Murphy "Why does my pasta need an app"

Something Happened: The origin of day-one patches The first story, in Ars Technica's anthology of "sad, funny, and weird workplace stories".

Simon Barron

So far the main difference between my 20s and my 30s is all the fascism. No-one tells you how much fascism there will be in your 30s.

Bot Traffic Report 2016 On the web, no-one knows you're a bot.

Make America Bohemian Again The fascinating history of the Chelsea Hotel.

Suddi Raval "Take a minute to look at the brilliance of this street art."

Published on


Jennifer Harrison You're looking at a video of FOUR directly-imaged exoplanets orbiting a star. You're looking at another solar system in motion


Design Objective

Making input type=date complicated Don't worry about "looks the same in all browsers", instead focus on "works the best in each browser":

If a browser says it supports <input type=”date”>, you should trust it to deliver a decent experience to its users. If it says it does not, and only in that case, you should use a custom widget instead.

How Super Mario Run Onboards New Users Wow. Surprised they get so many people to play the game.

Abstract: The Art of Design Coming to Netflix in February.



Tools of the Trade

Everything you need to know about HTTP security headers Handy list and your regular reminder to check your application's HTTP headers.

Safari 10.1 Fetch, Custom Elements, ECMAScript 2017, CSS Grid, coming soon to a mobile device near you.

The end of the clearfix hack? display: flow-root; means never having to clearfix again. Coming soon to Chrome and Firefox.

Parsing absolutely anything in JavaScript using Earley algorithm Long but quick read, an introduction to Earley parsers using Nearley.js.

Stepping into math: Open-sourcing our step-by-step solver The algorithm behind the Socratic math solver app.

Deep Learning Enables You to Hide Screen when Your Boss is Approaching Putting ML to work … so you don't have to.

Renovate Self-hosted npm dependency updater.

Introducing Riptide Geeking on GC, and learning about WebKit’s Retreating Wavefront Concurrent Garbage Collector.

Una Kravets "💕 CSS Love Poem 💕"


Lingua Scripta

deps: update V8 to 5.5.372.40 V8 5.5 just landed in Node, and that means … async/await! Along with all the recent browsers.

ES proposal: Shared memory and atomics Scheduled for inclusion in ECMAScript 2017, new primitives for parallel processing to JavaScript. This post explains what they're all about.

The Promise of a Burger Party A visual explanation of what it means when a function "returns a Promise".


Lines of Code

Why Every Element of SOLID is Wrong TL;DR write simple code!


Don’t document your code. Code your documentation. Code that needs no comments:

Extract as much code as you can to methods. Even if you end up having a method with only 3 or 4 lines. Each method should do one thing and only one thing. And the name must explain what it does.


Peopleware

If Your Boss Could Do Your Job, You’re More Likely to Be Happy at Work

In our project, we studied 35,000 randomly selected employees and workplaces. The samples are from both the U.S. and Britain. ... When we look closely at the data, a striking pattern emerges. The benefit of having a highly competent boss is easily the largest positive influence on a typical worker’s level of job satisfaction.

Consider the Maintainer If you're an open source maintainer, set the time to watch this talk:

The four freedoms of open source maintainers

  • The freedom to decide who participates in your community
  • The freedom to say no to contributions or requests
  • The freedom to define the priorities and policies of the project
  • The freedom to step down or move on from a project

A Quick Post About Resumes Resumes are the first look for most companies, make sure you're putting your best foot forward.

3 videos that describe what it's like to have anxiety and depression when our own words don't suffice Explaining anxiety, depression, and/or any other psychiatric disorder is hard; these videos can help.


Locked Doors

It might be time to stop using antivirus The best time to stop using an antivirus was yesterday:

Back in June last year, Google's Project Zero found 25 high-severity bugs in Symantec/Norton security products. "These vulnerabilities are as bad as it gets, … They don’t require any user interaction, they affect the default configuration, and the software runs at the highest privilege levels possible. In certain cases on Windows, vulnerable code is even loaded into the kernel, resulting in remote kernel memory corruption."

waylonz "your move @reCAPTCHA"



Techtopia

The Secret Agenda of a Facebook Quiz Read. This.

If ever you’ve answered questions like these on one of the free personality quizzes floating around Facebook, you’ll have learned what’s known as your Ocean score …

For several years, a data firm eventually hired by the Trump campaign, Cambridge Analytica, has been using Facebook as a tool to build psychological profiles that represent some 230 million adult Americans …

Cambridge Analytica says it has as many as 3,000 to 5,000 data points on each of us.

Kelly Ellis "I meant 'on the timer I just set,' but ok"


None of the Above

The Founder "A dystopian business-simulator"

It's 2001. Start modestly from your apartment and build up your startup alongside the major players and future technology behemoths.

Cindy Au

Has anyone created a google hangout hack that can detect the edges of your bathrobe and overlay a nice, professional outfit

Medium, and The Reason You Can’t Stand the News Anymore. TL;DR "The methods used to fund modern journalism simultaneously undermine trust in the news outlets."

stacy-marie ishmael Apropos:

What is the mechanism that lets people believe parody accounts are rogue truth tellers but reporters citing sources are making things up?

JT If I ever participate in a gameshow, it will be this one:

There's a Japanese gamehow where they change something in a room with chocolate and the contestants have to try and find it.


matt blaze

Note to students taking my exams: alternative facts will receive alternatives grades.

Sorry cats, doggos run the internet now Good news for dog lovers.

theyarenotaboy Fantastic.

Published on

Shen Me. Every night.


Design Objective

PEENT PEENT So that got me to stop and rethink a few things:

Like, 90% of infomercial style products were designed by/for disabled people, but you wouldn’t know that, because there is no viable market for them. THey have to be marketted and sold to abled people just so that any money can be made of off them and so the people who actually need them will have access.

I think snuggies are the one example almost everyone knows. They were invented for wheelchair users (Do you have any idea how hard it is to get a coat on and off of someone in a wheelchair? Cause it’s PRETTY FUCKIN HARD.) But now everyone just acts like they’re some ~quirky, white people thing~ and not A PRODUCT DESIGNED TO MAKE PEOPLES DAY TO DAY LIVES 10000X EASIER.

Take the Time to Use Fewer Words LT;DR If a user experience needs an explanation, something is fundamentally broken. Consider redesigning the experience until people no longer need it explained to them.

Using science to make truly tappable user interfaces Understanding target size.

A truly tappable UI is built with elements that are at minimum around 10mm, with the optimum touch element size around 13mm, which is at Microsoft's standard.

Forget about the Golden Ratio and let's talk about Order vs Complexity The mathematics of aesthetics.

Birkhoff defines a typical aesthetic experience as a compound of three successive phases: (1) the act of attention, that increases proportionally to the observed object's complexity (C); (2) the feeling of value or aesthetic measure (M); and (3) the realization that the object is characterized by a certain harmony or order (O).

Best Practices for Cards On designing UIs that use cards.

Mission to Mercury: Designing a clean reading experience for web articles Behind the design of Mercury Reader, successor to Readability.

The Futures of Typography What Gutenberg and Manutius can teach us about web design:

Which of these two readers are we designing for? Is the reader familiar with the ideas being presented? Are they likely to read more about the product or service? How do we encourage the right type of reading? And how much information is vital, how much is superfluous? Our future typography will have to cater to both of these groups of readers.

Paco Hope Thoughtful CLI: "The 'at' command is so quirky. Moans about grammar but does its job anyways. Knows 'teatime'."


Tools of the Trade

Global Git Ignores How to use ~/.gitignore effectively.

Isn’t our code just the BEST 🙄 "Views from the 6 weeks in hell I spent rewriting bumpers in react." If you're starting with React, read this first. I don't agree with all of it, but always good to learn from the mistakes/explorations of others.

json.browse() jq in the browser.

3 New CSS Features to Learn in 2017 Feature queries, grid layout, and native variables. Not yet supported by all browsers, but soon enough.

Animate to Different End States Using One Set of CSS Keyframes Cool CSS trick.

Webhooks do’s and dont’s: what we learned after integrating +100 APIs "The webhook landspace is still fragmented but common patterns are eventually coming up tough."

Writefull This app that gives feedback on your writing by checking your text against databases of correct language.

Tom Morris Guilty as charged:

I love it when programmers get all huffy about having to upgrade to Python 3 while also grumbling about IE9 holdouts.


Lines of Code

Learning the Fundamentals of Functional Programming A free email course explaining the basics of functional programming.

Julia Evans Pretty much:

getting better at software: when I write "if something goes wrong" I try to erase it and replace it with "when something goes wrong"

marius eriksen

It’s really amazing to think that Ken Thomson and Dennis Ritchie managed to make Unix without StackOverflow.


Architectural

How Long Would Your Organisation Last Without Programmers? The poll results are telling.

Abstraction for the sake of Abstraction KISS

I like tooling and automation. I think writing unit tests is a freaking fantastic and very rewarding endeavor. However, I feel that there is a point at which the tools we use to automate rudimentary tasks add too much complexity. I'm seeing more and more of this everyday, thanks to the speed at which the web development ecosystem is progressing.

Kelsey Hightower

The best technical discussions focus on trade offs under a given set of constraints; not better or worse comparisons.


Techtopia

Manisha Agarwal

Nomads: people who have larger collections of coffee shop wifi passwords than clothes - Stevie Nix

Fred Lambert "A bunch of Tesla Model Xs in training flapping their wings. Closest thing we have to flying cars right now"


Locked Doors

A look at how private messengers handle key changes Ignore what the Guardian has to say about WhatsApp, and read this post instead to understand which messaging app is right for you. TL;DR

WhatsApp: Some nice features and functionality, but needs to change the behavior for key changes while messages are in flight. Getting this right while supporting groups is probably tricky.

Signal: Safest choice, but borrowing a few features from WhatsApp could be nice.

We reverse engineered 16k apps, here’s what we found Your regular reminder to check your codebase for hardcoded secrets.

A Threat Intelligence Thought Exercise Interesting thought experiment for anyone dealing with security/threat modeling:

I was at dinner on Tuesday with 6 security professionals and I proposed this hypothetical situation and I thought it was worth writing up and sharing.

Let them paste passwords "Improve your security by supporting your users. Let them paste passwords."


None of the Above

Steven Shorrock "When you find yourself reading something on the plane that is probably better saved for another time."

Japanese toilet industry agrees to standardize complex bidet controls “But figuring out the bidet controls is half the fun” — wife

Who’s winning the cyber war? The squirrels, of course Adorable, furry animals, also pose biggest risk to our infrastructure.

trevor beattie "Stalin mocked Churchill for the crocodile skin case on his iPhone. Yet the Tweets he received from Bletchley Park helped us win the War.."

Published on

12 Dog Thoughts


Design Objective

Erika Hall

A designer is a person who organizes choices. The better you understand the range and implications of choices, the better designer you are.

Lessons Learned: Why Newton Swears by Plain-Text Emails TL;DR users respond when the email feels like a conversation.

The Line Of Death On the impossible task of designing UIs for secure browsing:

In web browsers, the browser itself usually fully controls the top of the window, while pixels under the top are under control of the site. I’ve recently heard this called the line of death:

Pwn All The Things Emails are just as hard:

Some folks asked why this is a bad email. So I annotated it.


Tools of the Trade

Dirty CSS Hacks for Responsive Emails With bloated markup, you can do a few interesting things with HTML emails.

CSS Writing Modes Explains how writing-mode: vertical-rl; works.

Color Supply In-browser color palette picker.

Gitscout Beautiful macOS app for managing your Github issues.

React or Vue: Which Javascript UI Library Should You Be Using? If you're not sure which to pick, start here.

Deep Text Corrector Using deep learning to correct grammatical errors.

nteract: Revolutionizing the Notebook Experience Desktop-based interactive computing application; think installable Jupyter:

Interactive computing applications allow individuals to create documents, like the one below, that contain executable code, textual content, and images and convey a computation narrative.

Introducing Nextjournal Another take on Jupyter, this time as a web app:

Today we’re launching a preview of Nextjournal: part writing tool, part interactive programming environment, designed for every stage of research from experimentation to publication.


Lingua Scripta

A Prettier JavaScript Formatter Re-format code instead of linting: "Prettier gets rid of all original styling and guarantees consistency by parsing JavaScript into an AST and pretty-printing the AST."

Brendan Eich TIL statement completion value:

It's not a return value, rather a statement completion value. Consider for(var x=42; false;); which has no completion value.

ES proposal: import() An asynchronous version of the require function, to complement the static import statement.


Lines of Code

Single-letter names - a cautionary tale Sad and true:

I was fascinated that a graduate software engineer could not see the bug and disappointed that they had no interest to use meaningful identifier names. In our current education system, it takes a professional software engineer a good decade to realise that good identifier naming is important to code readability.

The Practical Dev This:

"First, solve the problem. Then, write the code." - John Johnson

GonzoHacker

The good news is that everything is statically typed; the bad news is that the only type is a String

Cybershell

I've never empathized with any fictional character as much as I do with this HorizontalScrollView...


Architectural

Take It to the Limit: Considerations for Building Reliable Systems Explains why limits — like message and queue size — should be built into the system, even if at times they feel inconvenient and arbitrary:

Unbounded anything—whether its queues, message sizes, queries, or traffic—is a resilience engineering anti-pattern. Without explicit limits, things fail in unexpected and unpredictable ways. Remember, the limits exist, they’re just hidden. By making them explicit, we restrict the failure domain giving us more predictability, longer mean time between failures, and shorter mean time to recovery at the cost of more upfront work or slightly more complexity.

Containers from Scratch Start here to learn what containers are, from the bottom up:

Often thought of as cheap VMs, containers are just isolated groups of processes running on a single host. That isolation leverages several underlying technologies built into the Linux kernel: namespaces, cgroups, chroots and lots of terms you’ve probably heard before.


Peopleware

An opinionated guide to writing developer resumes in 2017 I'm more likely to respond to a resume that follows the rules laid in this article:

The first rule is that you should always be truthful. Your next most important goal is to write a document that's easy to skim. If you work with web development, that should feel more or less natural to you.

Jessica Rose Asks, "How could/should one best screen for toxic workplaces before joining?" Hundreds of good replies in this thread.

Standing in the Shadow of Giants Open source and Manifest Destiny:

If we don’t change how we talk about open source, creators will continue to burn themselves out chasing an ideal they don’t really care about. New projects will continue to be excoriated for lacking novelty. We will continue to build the same ad hoc culture atop every greenfield we find.

Lullaby Language Words I'd like to eliminate from my work vocabulary:

Penny chimed in. “I get it. The ‘just’ makes it sound like there won’t be any problems. It discounts the difficulty.”

“Precisely. It’s what I call a ‘Lullaby Word.’ Like ‘should,’ it lulls your mind into a false sense of security. A better translation of ‘just’ in Jeff’s sentence would have been, ‘have a lot of trouble to.'”


Locked Doors

Matthew Green So about those implanted cardiac devices that can be programmed wirelessly:

But in case 24-bit RSA isn't bad enough, the manufacturers also included a hard-coded 3-byte fixed override code. I'm crying now. 9/

What Else is Revealed by Order-Revealing Encryption? Order-revealing encryption can be a desirable compromise — think encrypting a database but still being able to run queries — or an unintended security flaw:

CAA Records "CAA record is used to specify which certificate authorities (CAs) are allowed to issue certificates for a domain."

Patrick McCulley "Remote Command Execution #infosec"


None of the Above

TVs in the 1920s Had Bottle Cap-Sized Screens, With Just 30 Lines of Resolution

Jonas Mann

Boarding Group 2 is like the middle class in that, despite mathematical impossibility, everyone is in it.

Igal Tabachnik "huge if true"

Alexandra Erin "Then why does it change every day?"

Merriam-Webster

Good morning! The #WordOfTheDay is immutable.

Brett O'Connor

what if when you die you just see, "$1.99 to upgrade to pro"

The Swedes ditching desks to work from strangers’ homes Cool idea for remote/nomads: rent a desk at someone else's home.

The History of Email From humble origins as a file, through to FTP, to what we recognize today.

Published on

jlmorrison "I think it's from one of the Henry's"


Design Objective

Brad Voytek "Neat. If you inspect the code for a Facebook photo, alt text reveals Facebook's computer vision interpretation of image contents."

All of 2016’s top mobile apps are owned by either Google or Facebook Mobile apps are not dead, but …


Tools of the Trade

How and why the leap second affected Cloudflare DNS In computers, time does not always move forward, or moves at a steady pace. Here's the one character bug fix:

dev.to Is taking on Medium, but focused on developers, with developer-friendly publishing tools (code snippets, Github links, etc).

Falsehoods Programmers Believe About CSVs I'd pick this as number one: "All CSVs follow a defined standard"

SpaceVim Like spacemacs, but for vim.

Joël Perras So what's your excuse for doing "drop table" in production?

TIL that a PostgreSQL table can only have 1600 columns, and that previously dropped columns count towards that total.

Michael Denomy "Merges to master before tests finish"


Lingua Scripta

Reginald deBRAIDEWAD Yes.

Regardless of we might think of JS coercion, it’s obvious that many find it confusing. Therefore, using coercion is writing confusing code.

Why does [1] + [2] - [3] = 9 JavaScript, don't ever change.

Pinboard That's actually a great idea for a job interview question:

FizzBuzz for 2017: given a set of N strings at most 140 characters long, concatenate them into a page that does not require 3M of javascript


Lines of Code

Mathias Verraes This entire thread is worth your attention:

1/7 Many programmers think of all activities that are not coding as "not real work". Meetings, documenting, even modelling on a whiteboard.

...

7/7 Change the definition of "real work" in order to get better work. "Always Be Coding" is monoculture.

Ben Rady

A: "But if all of our programmers are pairing, won't they write half as much code?"

B: "No, hopefully they'll write even less than that"

mcc

any program can be made correct if one appropriately adjusts the specification


Architectural

Efficient Storage: How We Went Down From 50 PB To 32 PB Dealing with duplicate content using reference counting in a distributed system, relying on magic numbers for error detection.

Nick Craver 'One way to accomplish “100% uptime”'


Peopleware

Monktoberfest 2016: Mandy Whaley - The Power of #FamilyOps for Women in Tech Explores "the specific ways #DadOps can help girls get into and stay in STEM."

Tobbe Gyllebring That's me:

The best devs I know, after 2 decades writing code still thinks it's too hard and feel like they're just starting to grasp it.

True story.

Working remotely, coworking spaces, and mental health Being remote is not an easy transition for everyone:

But for me, it was the opposite: I’d gone from management (high social interaction) to software development (lower social interaction), and from working in an office (hundreds of people) to working from home (two cats), and expected that this would all be fine.


Techtopia

TV anchor says live on-air 'Alexa, order me a dollhouse' – guess what happens next "That, apparently, was enough to set off Alexa-powered Echo boxes around San Diego on their own shopping sprees."

Hidden Voice Commands Related to the above, and not nearly as funny:

We explore in this paper how they can be attacked with hidden voice commands that are unintelligible to human listeners but which are interpreted as commands by devices.

Watch Korea's mech take its first steps with a pilot on board "The 13-feet-tall, 1.3-ton machine was created to work in extreme conditions where humans cannot go unprotected."


Locked Doors

anttiviljami/browser-autofill-phishing Phishing by abusing the browser autofill feature. Try the live demo.

Best Buy Geek Squad Informant Use Has FBI on Defense in Child-Porn Case Be advised:

At the time, nobody knew the company's repair technicians routinely searched customers' devices for files that could earn them $500 windfalls as FBI informants.


None of the Above

David Shackelford

If you're a F.lux fan on iOS and want it darker at night, try out the "reduce white point" accessibility setting. Stacks with Night Shift.

We Don’t Have a Fake News Problem—We Are the Fake News Problem

I said a few weeks ago that the solution to this problem begins at home. … For readers, that means evaluating your own habits. Consuming less, paying for more, resisting the urge to share—this creates incentives for better information and less fake news.

Has the Internet Killed Curly Quotes? TL;DR No. Nonetheless, an interesting read about the history of quoting and quotation marks in western texts.

Kae Digital "Metrocard machine asking existential life questions"