Labnotes

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"

Published on

Take a look behind-the-scenes with design documents from The Legend of Zelda!


Design Objective

What Comes Next Is the Future A beautiful documentary film about the web, its origins and future.

Now I get it! How to design clarity in 3 steps.

snipe "Gosh, if only someone would tell me what tomorrow is! Why are calendars still such a mess? :("


Tools of the Trade

noam3127/github-code-folding Chrome extension that enables code folding in GitHub.

Visdown Write visualizations with Markdown and fenced block (three backticks).

Machine Learning Weekly Hand-curated newsletter (not an algorithm?) about machine learning and deep learning.

Eric Alper Epic thread. I remember when computers were made of 90% empty space and 0% batteries.

Without revealing your actual age, what something you remember that if you told a younger person they wouldn't understand?

Gingerbread CPU Much like:

From Tape Drives to Memory Orbs, the Data Formats of Star Wars Suck (Spoiler alert)

What on earth is being stored on that magnetic tape cassette? Is it 5000 .bmp images loaded into slides in Powerpoint with accompanying animations? Why is DEATHSTARfinalfinal_FINAL.dwg.doc.gif.pdf so big?

Showerthoughts

Spiders are the only web developers who are happy when they find bugs.


Lingua Scripta

ECMAScript proposal updates @ 2016-11 64-bit integers, Promise.try, shared memory and more.


Lines of Code

What science says about naming Tackling the hardest problem in computer science:

Ironically, these papers fail to agree on one thing: the best name for bad naming. They variously refer to naming bugs, identifier flaws, linguistic anti-patterns, and none of them use Peter’s ‘naming smells’ name. It’s too bad that academic papers don’t have Rename refactoring

Changelog "What on Earth Jeff 😂"


Architectural

Brian Lonsdorf

The more you limit a system, the simpler it will be to understand. Less possibility = less complexity. Avoid power, embrace constraints.


Devoops

Upgrades How often do organizations upgrade infrastructure software?

Dᴀɴɪᴇʟ Mɪᴇssʟᴇʀ

OH: “Schrodinger’s Backup: The condition of any backup is unknown until a restore is attempted.”


Peopleware

Why A Body of Work Has Greater Long Term Value Than a Resume

One of my favorite Chris Sacca quotes is “your GPA only matters to people who have no other reason to find you interesting.” And you could replace GPA with a bunch of other things as well.

How to use rest to maximize creative output Take a break. I know I am.

When you Recharge, you give your ideas incubation time, solidifying and improving them.

Remote Stories Anonymous stories from remote workers.

DHH Worth repeating:

For every person who've heard your point or story ad nauseum, there's a thousand new ones who never even knew you existed. Keep repeating.


Locked Doors

Where in the World Is Carmen Sandiego? A 59 minute presentation about the insecurity of travel systems, most of which are throwback to 80's technologies. Entertaining, and sober reminder to never Instagram your boarding passes (also don't: credit cards, passports, IDs, etc).

Gone in 60 Milliseconds Hacking AWS Lambda, a 33 min talk that you must watch if you're using Lambda in production.

Police seek Amazon Echo data in murder case The P in IoT stands for privacy.

GRIZZLY STEPPE – Russian Malicious Cyber Activity The FBI and DHS go on record about the Russian hacking of US elections.


None of the Above

xXToffeeXx "...Not like romance is subjective or anything. How images can feel romantic, not sure."

Americans believe crazy, wrong things Our tenuous relationship with facts. Related, Click on this f**cking outrage (that is not at all what it seems):

In the digital age, consumers have a greater responsibility than ever before about what we share — our shares, likes, and retweets are the currency of the new digital age of journalism. Use them wisely.

; DROP TABLE "COMPANIES";-- LTD Little Bobby Tables starts a consultancy.

A Brief Economic History of Time How capitalism changed the way humans perceive the passage of hours, days, and weeks.

Matthew Deiters

OH: where do you see yourself in 5 beers?

Extreme Sandbox "We are a Heavy Equipment Adventure company that lets clients play on construction equipment. Yes, we let people drive a 26 ton excavator or bulldozer for FUN!"

Steve Silberman "Best tech idea I've seen in months."

Published on

Leaked Footage of the Rogue One Sequel


Design Objective

The Four-Letter Code to Selling Just About Anything Cool is all about finding optimal newness:

The highest evaluation scores went to submissions that were deemed slightly new. There is an “optimal newness” for ideas, Lakhani said—advanced yet acceptable.


Tools of the Trade

24 ways Advent calendar for web geeks. 24 worth-your-time articles about web design and development to read over the holidays (or whenever, my Instapaper queue will take all of 2017 to read, so who am I to judge?)

Octobox Take back control of your GitHub Notifications.

Voca Modular JavaScript string manipulation library.

v.camelCase('bird flight');              // => 'birdFlight'  
v.sprintf('%s costs $%.2f', 'Tea', 1.5); // => 'Tea costs $1.50'  
v.slugify('What a wonderful world');     // => 'what-a-wonderful-world'  

10 Things You Might Not Know About Using S3 Such as:

Newcomers to S3 are always surprised to learn that latency on S3 operations depends on key names since prefix similarities become a bottleneck at more than about 100 requests per second.

Explaining the battery life problems with the new MacBook Pros Why the battery on the new MacBook Pros is a let down, and what (little) you can do about it. BTW it's normal if the first few days, battery life is non-existent, due to the setup overhead of apps like Spotlight, Dropbox, Mail, Backblaze.

The Methbot Operation Investigating a bot that makes its owner $3~5M a day by faking hundreds of millions of video views. The technology behind it includes Node, Cheerio, tough-cookie, and JWPlayer. (PDF)

7,500 Faceless Coders Paid in Bitcoin Built a Hedge Fund’s Brain A hedge fund that crowd sourced all its algorithms.


Lines of Code

JavaScript Clean Coding Best Practices Read, practice, share with your team. For example:

Use intention-revealing names and don't worry if you have long variable names instead of saving a few keyboard strokes.

If you follow this practice, your names become searchable, which helps a lot when you do refactors or you are just looking for something.

functional-programming-jargon From arity through functor and traversable, all the functional programming terms you may have heard but can't exactly figure out, explained in plain terms with simple examples.

christmas megazord 🎄

things that take way longer than they should:

  • standups
  • naming things
  • adverts at the cinema
  • DNS propagation
  • gift wrapping

Machine Teaching

A Visual and Interactive Guide to the Basics of Neural Networks A gentle introduction to the basics of neural networks. No brain science, just understanding the simple formula y = Wx + b.

Auto-Generating Clickbait With Recurrent Neural Networks Is as easy as you think it is.

Deep Learning the Stock Market Some of this goes over my head, still an interesting read on using machine learning for something that's fairly easy to grasp: predicting the VIX.

Лучший стрит-арт месяца


Locked Doors

Tom Scott New phishing attack that can easily fool anyone:

This is disturbingly clever. You get sent to a text/html data URI! Not testing any further but, blimey, talk about using power for evil.

Your threat model just changed EFF urging the tech industry to adjust to the new reality, work to defend Internet users, and delete your logs.


Peopleware

Jen Simmons Don't forget that …

Not everyone works for VC-backed app-focused startup. In fact by volume, globally, hardly anyone works for a VC-backed app-focused startup.

Fiora@MAGfest 🏳️‍🌈 "i'd like to propose an alternative to the whiteboard interview"

The Psychology of White-Collar Criminals

Usually, a gut feeling that something will be harmful is enough of a deterrence. But when the harm is distant or abstract, this internal alarm doesn’t always go off. This absence of intuition about the harm creates a particular challenge for executives.


Techtopia

Two days with the shadowy emoji overlords Investigating the secret cabal that decides which emojis are fit to grace your screen.

Andrew Benson That is me:

I just keep checking boxes with the phrase "I am not a robot" without any self-reflection.

Chris Miller Related:

Apparently there is a little known Fourth Law of Robotics that prohibits robots from clicking the checkbox "I am not a robot"


None of the Above

eleventh hour gifts

Luke Millar

Ok San Francisco, this is getting ridiculous. Deconstructed bread? How am I even supposed to eat this?!?

Aerial "Aerial is a Mac screen saver based on the new Apple TV screen saver that displays the aerial movies Apple shot over New York, San Francisco, Hawaii, China, etc."

Carl T. Bergstrom

My son clearly has a better grasp on the real world than his teacher does.

Published on

joel "someone's cow just walked over and fell asleep on my legs?? and now i cant fucking move or ill wake her up"


Design Objective

Design words with data Should the button say "Log in"? "Sign in"? How about "Sign on"? If only Google search could tell us what people call it …

Resilient Web Design A web book, and accompanying podcast. Check it out.

The Marline Story — From a sketch pad to #1 on the App Store I can see why people love this app.

Conversational Interface. Sketch/Illustrator templates for designing chatbots and messaging apps.

It’s not what you design, it’s why you are designing Why designers should think about "why" before delving into the "what".


Tools of the Trade

Fabulous macOS Tips & Tricks Shift + Cmd + Period is a cool trick if you're using dot files regularly.

How to create a good pull request A meta-guide for creating easy to review requests, and the follow up How to perform a good code review.

The Current State of Adaptive Design Comparing Sketch, Figma and Subform, to see how each deals with adaptive design.

dflemstr/rq A tool for performing queries on streams of records in various formats. Think awk/sed, but for working with structured (record) data instead of text.

Spacetime Helps your distributed team share their work hours on Slack.

CYHSM/chess-surprise-analysis "Find surprising moves in chess games". Sounds cool, but how do you teach a computer to recognize surprising chess moves?

The key concept is to compare the evaluations of a chess engine in low depths with the evaluation at high depths, with the idea that a low depth engine may represent a naive observer of the game

Mathpix Write an equation on paper, take a photo, and your phone will find a solution and plot it in 3D.


Lingua Scripta

The truth about traditional JavaScript benchmarks Time to retire SunSpider, Kraken, Octane and friends.

If we are serious about performance for the web, we need to start judging browser by real world performance and not their ability to game four year old benchmarks


Lines of Code

The Idea of Lisp is both simple and big:

Let me say that again: John McCarthy wrote 6 easy things in machine code, then combined them to make a programming language. Before that, the only higher-level programming language was Fortran, which took 18 man-years to develop. Fortran was a big achievement, but Lisp was a big idea.

Samantha 🐝 Quiñones

In 20 years of engineering I've never said, "thank goodness we hired someone who can reverse a b tree on a whiteboard while strangers watch"

Bob Ross, Game Dev

If you look at your old work and it looks terrible to you, that's a good thing. That means you are improving.


Architectural

Infographics: Operation Costs in CPU Clock Cycles Understanding the CPU cost of different operations, helpful when writing performance sensitive code.

How To Make Your Database 200x Faster Without Having To Pay More? For business intelligence queries, which rely on large data sets, you can often reach 99.9% accuracy with 0.1% sample size. There's a name for this — Approximate Query Processing — and it's not as simple as picking sample data at random.

Saving the internet 2000 terabytes a day: fixing Font Awesome's fonts All the tricks to reduce font file size without compromising quality.


Locked Doors

New Scheme: Spread Popcorn Time Ransomware, get chance of free Decryption Key Ransomware, meet growth hacking.

FastMailʼs Values If you're looking for an email provider that will not recklessly lose, or for a price sell, your data.

‏Chris Adams‎

This is why security questions are dangerously irresponsible: Yahoo can change their database but users can’t change facts used elsewhere


Techtopia

Ivor Tossell

My Lyft's GPS is confused and has the car literally driving in circles. The driver, being middleware between app and car, obeys, baffled.

Trammell Hudson™

They said USB-C will make it possible to use the same cable for everything. No one mentioned reading tiny pale serial numbers on the cables.


None of the Above

@assaf Ground to air trolling.

Paul Phillips

The spaghetti code you call your belief system was written mostly by others and committed without review. You are its vigilant maintainer.

David Newbury

Going through old papers my dad gave me, I found his map of the internet as of May 1973.

The entire internet.

Facebook Finally Gets Real About Fighting Fake News Welcome to the fact-check industrial complex.

Joon Lee "i have concluded that this is one of the greatest videos on the internet"