Labnotes

Published on

Design Objective

Chatbots: Your Ultimate Prototyping Tool How chatbots can teach us what people need when designing products and services.

Paul Stamatiou "when the engineer only reads half of your email about the design"


Tools of the Trade

Homebrew 1.0.0 Happy birthday! I'm most excited that brew bundle and brew services are now officially supported and automagically installed.

Karl Marx Admirer

If you pass --exec "make test" to git rebase -i, git will run your tests after each commit it generates

joshnewlan/say_what Genius!

This script listens to meetings I'm supposed to be paying attention to and pings me on hipchat when my name is mentioned.

It sends me a transcript of what was said in the minute before my name was mentioned and some time after.

It also plays an audio file out loud 15 seconds after my name was mentioned which is a recording of me saying, "Sorry, I didn't realize my mic was on mute there."

DOOM (2016) - Graphics Study Visual/technical walk through of how Doom renders frames to look so realistic.

Lighting 75%


Lingua Scripta

nolanlawson/optimize-js A curious micro-optimization: wrapping eagerly-invoked function can speed up initial JavaScript load 45% on Chrome 52!


Lines of Code

Think Like a Software Developer

  • Expect change
  • Prepare for the worst case scenario
  • Make one big problem into several small problems
  • Automate first steps
  • Deliver

Outsmarted


Architectural

Emmanuel Paraskakis

“How we used to build APIs” 😜 https://speakerdeck.com/paraskakis/the-api-workflow-in-2026 … API Left: API Consumers, praying, Center: Bikeshedding, Right: Lone Craftsman


Locked Doors

iPhone passcode bypassed with NAND mirroring attack A hack to get around the password entry limit on any mobile device. May not be as easy on later iPhone models.


Techtopia

The agony of trying to unsubscribe What happens when a local supermarket refuses to take no for an answer.

Josh Reich

The anxiety felt when viewing a screenshot from someone else's phone and, for a moment, you think your phone is at 2%.


None of the Above

Command Line Magic Stay safe!

#ItCanWait Please stop using your phone while driving. On average, 1180 people are injured each day just in the US from distracted driving.

How many days until ...? A countdown calendar.

How Not to Talk to Your Kids When and how to praise.

Eventually, in my final stage of praise withdrawal, I realized that not telling my son he was smart meant I was leaving it up to him to make his own conclusion about his intelligence. Jumping in with praise is like jumping in too soon with the answer to a homework problem—it robs him of the chance to make the deduction himself.

Andreas Lindh

Related: people often assume that us who work "intimately" with computers also like computers. The truth is: it's complicated.

Published on

Design Objective

The Greatest Sales Deck I’ve Ever Seen How to tell the story of a software product/service with a slide deck.


Tools of the Trade

The math of CSS locks CSS doesn't have max-font-size or min-font-size, but this formula gives you the same effect: responsive text that scales up/down with screen size, but stays within the lower/upper limits you set.

6 web layout myths busted So now we just wait …

Most profound of all, CSS Grid Layout will arrive sometime in the next year, completely changing how we approach page layout on the web. The question will no longer be 'which framework should we use?' We aren't going to need them any more..

shu223/iOS-10-Sampler Code examples for new APIs of iOS 10. Check out what the little device can do, including …

Convolutional Neural Networks in iOS 10 and macOS Pocket AI!

Convolutions are very important in digital signal (audio, video, image) processing and Graphics Processing Units (GPUs) are optimized to execute convolutions in a very efficient way. ... As humans, we also use convolutions in our daily activities, specially in those activities where our 5 senses are involved.

7 email hacks every developer should know Behind every pretty HTML email there are tons of hacks.

Introducing the WebVR API VR coming to a web browser near you, eventually.

Jeremy Walker "So, yeah... This is what happens when you mount S3 as a filesystem..."


Lingua Scripta

My New Favorite ES6 Toy: Destructured Objects as Parameters Functions that use named parameters are easier to work with than functions that rely on precise order of arguments, or the ever so popular but opaque params argument.

9 Security Tips to Keep Express from Getting Pwned I'll add a 10th one: all the parameters you pass from HTTP request to business logic must be whitelisted and type casted.


None of the Above

Kae Lani Kennedy "Proof that Pumpkin Spice is getting out of control, exhibit A:"

Top 10 Secret Features in iOS 10 I recommend upgrading to iOS 10 — bunch of new features, stable release — caveat, there are enough UI changes that it takes a bit to adjust. The Messages app gets a bunch of new ways for communicating. Also, important trick if you're using Do Not Disturb.

It’s Bayes all the way up On top-down and bottom-up processing in the brain, statistical models and the chemicals that power them.

The Appropriately Messy Etymology of ‘Kluge’ 1. I'm pronouncing it all wrong: it's klooj. 2. I should use it more often, especially in software development, there's a lot of kluge to go around.

Feed a Cold, Don’t Starve It Sometimes sugar causes inflammation. Sometimes it does the opposite.

How to Pick the Fastest Line at the Supermarket I usually rely on queue theory and dominant hand bias.

Max Roser Cool visual trick: your eyes just can't see all 12 back dots at the same time.

Published on

Design Objective

A Bad Product Decision "Fuck-ups will happen. You won’t be perfect. But it doesn’t mean you can’t be a great PM."

Five tips for improving your technical writing and documentation. Get more users and fewer support requests by leveling up your writing and technical documentation.


Tools of the Trade

7 Good Developer Habits I Wish I’d Adopted Sooner These are all excellent habits, and it's never too late to start:

  1. Look It Up. Everytime.
  2. ASK!
  3. Clean Code, Right from the Start
  4. Use Version Control
  5. Raid the Bathtub and Grab Your Rubber Ducky
  6. Work in Parallel
  7. Circle Back to What You Know

The Building Blocks Of Progressive Web Apps Start your PWA journey here. Explains what PWA are, when/where to use them, what currently works and doesn't (*cough*Safari*cough*).

Oh shit, git! How to get yourself out of your git messes, explained in plain English.

Fuse.js Lightweight fuzzy-search library.

Robin Hood Hashing should be your default Hash Table implementation Cool trick for dealing with collisions efficiently and speeding up lookup times (also part II).

Complete List of “Secret” Chrome URLs And Their Uses chrome://chrome and friends.

The XY Problem Ever wondered why so often people answer a technical question with "why would you want to do that?"

The XY problem is asking about your attempted solution rather than your actual problem. This leads to enormous amounts of wasted time and energy, both on the part of people asking for help, and on the part of those providing help.

The problem occurs when people get stuck on what they believe is the solution and are unable step back and explain the issue in full.

Guess who deployed on Friday


Lingua Scripta

When Not to use an Arrow Function TL;DR arrow functions are not "concise function expressions" — they have different semantics and specific use cases.


Lines of Code

Becky Sweger This!

Ways to be the best programmer without being the best at programming:

  • humility & willingness to collaborate
  • read docs
  • learn biz domain

Marc Andersen Gather around all who love puzzles:

Lecturer at R course: “Programming is like this amazing puzzle game, where the puzzles are created by your own stupidity.” So true.

Computer Facts

you: its broken but it was just working why did it stop working

computer: times change man dont cling to the past its not healthy


Locked Doors

discovering how Dropbox hacks your mac Remember when Dropbox lost 60 million account details? Their desktop app is asking for root access. What could possibly go wrong? (How to fix Dropbox permissions)

The story of how WoSign gave me an SSL certificate for GitHub.com Are we heading towards an HTTPS security plateau?

House of Keys: 9 Months later... 40% Worse 4.5 million devices on the web are using known private keys for their HTTPS server certificates.

Is HTTP Public Key Pinning Dead? How a browser feature you never heard of can let someone else brick your website.

PEGASUS iOS Kernel Vulnerability Explained - Part 2 The problem with partial security patches: attackers use the patch to find out similar vulnerabilities still present in the patched code.


Startup Life

Intercom This should be familiar to any business with a freemium model, also anyone who does paid development and open source:

Customers on free plans will ask for more features, customers who are paying will ask for better ones.

Urchin Software Corp. The unlikely origin story of Google Analytics, 1996–2005-ish.


Peopleware

The Futility of the Workout-Sit Cycle American Heart Association warns that exercise doesn’t seem to undo the health effects of excessive sitting.

This drug commercial is gonna blow your mind! "Warning: nothing in Nature is clickable. Clickable withdrawal is normal."


None of the Above

Sarah Drasner "Me trying to code before coffee"

Why the White Lab Coat Changed Medical History The story and reasoning behind the costume change.

This might be the coolest visualization of evolution ever Watch these bacteria evolve antibiotic resistance in just 12 days.

Dave Morton

We hope that this year's Fibonacci conference will be as big as the last two combined.

Northland man denies burning down house but insurer refuses to pay out Bland headline — bizarre story involving a couple of inkjet printers, blackmail, and the IRA threat that wasn't.

Fidget Cube: A Vinyl Desk Toy Can't wait until I get mine (KickStarter).

Published on

15 things people who love to sleep truly understand

Design Objective

Tutorial: CSS Fixed Positioning in Interactive Email Cool trick that adds animation to emails by using CSS position: fixed.

Ways To Reduce Content Shifting On Page Load Content shifting on page load is annoying. No one likes it. Here are a few tricks to make sure your web page/app delights rather than annoys.

Pantsuit: The Hillary Clinton UI pattern library The name is spot on.


Tools of the Trade

How do I use QuickCheck to test if a function terminates? Asks StackOverflow: "how do I solve the halting problem?"

egoist/nswatch Like gulp.watch but for npm scripts.

Rclone Command line program to sync files and directories to and from various cloud services, including Google Drive, S3, Dropbox, Backblaze.

Hipku Encode any IP address as a haiku

nasa/openmct NASA's web-based mission control app is now open source. Launch vehicle not included.

Trying to make sense of Gmail CSS support From which I learned there is in fact more than one Gmail:


Lingua Scripta

Constant confusion: why I still use JavaScript function statements The avoid the shiny new function syntax, stick to what works.

Babili (babel-minify) TL;DR: Babili can accept ES2015+ input, while current minifiers are mostly limited to ES5, requiring code to be transpiled before minification.

Feature watch: ECMAScript 2017 What's already ECMAScript 2017, and what's coming in 2017, or maybe 2018.

Three JavaScript performance fundamentals that make Bluebird fast Micro-optimizing function allocation, object size, and default callbacks.

JS MythBusters A bunch more micro-optimizations you can do with JavaScript code running on V8.

Power Thought Bottom Remember Maven?

npm feature request: allow specifying "all" in package.json to import all known npm modules, in line with current industry best practices


Lines of Code

The art of writing small and plain functions Read. Practice. Apply. This is not too difficult, and will make your code so much better:

Every function is obvious and straightforward. You don't waste time digging to realize what the code does. That's how the clean code should be.

Testing, for people who hate testing You probably know a few developers who should read this. Starting with this common objection:

If writing tests is hard, that might be a bug

The thing is, tests are just code. If you have a hard time constructing your own objects with some particular state, it might be a sign that your API is hard to use!

400,000 GitHub repositories, 1 billion files, 14 terabytes of code: Spaces or Tabs? The people have spoken, and the spaces have won the popular vote. More valuable learning:

Analyzing each line of 133 GBs of code in 16 seconds? That’s why I love BigQuery.


Architectural

Flexible Paxos: Quorum intersection revisited Paxos without quorum (PDF):

Specifically, we observe that each of the phases of Paxos may use non-intersecting quorums. Majority quorums are not necessary as intersection is required only across phases. Using this weakening of the requirements made in the original formulation, we propose Flexible Paxos, which generalizes over the Paxos algorithm to provide flexible quorums.

Me, elsewhere

The new hip architecture: Service workers in the front, serverless app in the back


Locked Doors

How to steal any developer's local database One more reason to not store any production data on your local machine. Simple attack against Redis, Memcached, Elasticsearch and other services that support plain text protocols.

@SecureSamurai "Sometimes, the world needs a hero."


Startup Life

I Got Scammed By A Silicon Valley Startup Red flags to look for when joining an early stage startup.


Techtopia

The iBrain is here When it comes to AI and machine learning, Apple does think different:

Apple says it has answers for both. “Some people perceive that we can’t do these things with AI because we don’t have the data,” says Cue. “But we have found ways to get that data we need while still maintaining privacy. That’s the bottom line.”

Facebook recommended that this psychiatrist’s patients friend each other Creepy violation of people's medical privacy.


None of the Above

Livia Labate "TIL after 99 tabs open, the counter on Chrome on Android just laughs at you."

Inside the Federal Bureau Of Way Too Many Guns The one place the US government is not allowing the use of computers.

Cards Against Developers #2

FDA bans antibacterial soaps; “No scientific evidence” they’re safe, effective Finally.

Animals Galore

Look its a secret bunny meeting. What are they talking about? Veggies? Carrots? World domination? We will never know

Published on

Design Objective

When to Use a Switch or Checkbox What I love about this post is, once you spend a few minutes thinking about it, it's pretty obvious and easy to remember:

You should only use switches on settings that need to take effect instantaneously. If a setting requires a button press before it can take effect, you should use a checkbox instead.

What I’ve learnt interviewing 10 badass product managers Drops of wisdom.

Jeffrey Veen Truth:

Every product team ever: "Love the style guide. Big fans of consistency. We need to make these 17 exceptions."

Reginald Braithwaite "When people suggest that bolting on new features makes your product better, not worse"


Tools of the Trade

Imposter Handbook A book to help you catch up on Computer Science. We need something like this, hope this is it:

That book is The Imposter's Handbook: a compendium of my year-long quest to fill the holes in my CS knowledge. Not a replacement for a degree, not an authoritative source for any of the concepts presented. Just a concise summary of the things you should know.

Brad Stulberg 💯

One of the most effective productivity/performance enhancers is pausing, even if only for a second, to ask "why?" before doing something.

RafalWilinski/express-status-monitor Realtime monitoring for Express.js apps, inspired by status.github.com.

The Practical Dev

🎶
And in the master branch, they gathered for the release
They test it with their CI suite, but they just can't deploy the beast
🎶


Lingua Scripta

Test262 is a JavaScript Sideshow You think you know JavaScript? I bet JavaScript has a few surprise tricks up its sleeve. Check out some of these edge cases.

"fs" unpublished and restored You've got to be kidding me.

@wesbos TIL you can use ES6 spread to see what an emoji is made up of:


Lines of Code

The hardest problem in computer science This week's top link and for a good reason. Whenever you're stuck trying to name something, take comfort: our industry couldn't even agree on naming the most basic concepts:

Someone who got started with JavaScript would have a very different idea of what a “class” is than someone who got started with Ruby. People come to Python or JavaScript and exclaim that they “don’t have real closures” because of a quirk of name binding.

Paul Ford

Rubies are red,
Some threads are green,
But only Java has AbstractSingletonProxyFactoryBean

Leisa Reichelt

You can tell a lot about a car company that thinks having 100 million lines of code is something to brag about...


Architectural

30K Page Views for $0.21: A Serverless Story Using AWS Lambda to batch update web content. This is what microservices (Lambda functions) are good for, a simple and effective architecture. And because Lambda pricing is so low, the whole thing costs practically nothing.

Paul Borrill on Time clocks and the reordering of events Let that be your Computer Science/Physics lecture of the week. (YouTube, starts at 33:50)


Closed Doors

Sophisticated, persistent mobile attack against high-value targets on iOS Upgrade your iOS device to 9.3.5 immediately. This exploit is too damn easy and you wouldn't even know your phone has been hacked.

Hackers Could Make a Killing After Finding Vulnerability in Medical Device Tech Maybe this is the shakeup we need, so businesses start taking security seriously:

After finding serious security vulnerabilities in St. Jude Medical’s pacemakers and defibrillators, cybersecurity and research company MedSec decided to take that information to a short-seller (Carson Block of the investment firm Muddy Waters) which then bet against the company in the stock market.

MedSec’s CEO Justine Bone says that her company didn’t disclose to St. Jude because it was unconvinced the medical device maker would actually fix the problem. Rather than have the problem ignored (and potentially put patient’s lives at risk), MedSec decided to not just shame St. Jude, but make it pay.


None of the Above

Shen Ye "an oddly specific number"

How the Clinton campaign is foiling the Kremlin I'll save you a click. Staffers are now required to use Signal whenever the conversation involves Trump. It wouldn't surprise me if the business sector follows soon.

Reducing Racial Profiling on Nextdoor Kudos Nextdoor for taking the issue seriously, and designing for it:

We are proud to report that the most effective combination of forms reduced posts containing racial profiling by 75% in our test markets.

Me, on Twitter Whenever I drive behind a truck, that's exactly what goes through my mind: