Blag
Revisiting Query String Hell
Musing about useBoolean
Media Query Decorator
Getting Ordinal Suffixes in JavaScript
Unbiased Decisions
A simple pattern for method overloading in TypeScript
Encoding data for POST requests
Permalink: Encoding data for POST requestsThe Future of CSS
Permalink: The Future of CSSType Predicates on Properties
Modern HTML Boilerplate
Permalink: Modern HTML BoilerplateTIL: node.isConnected exists
Permalink: TIL: node.isConnected existsMedia Query Ranges
My Focus
Web Animation Gotchas
Permalink: Web Animation GotchasMore than Coding
Permalink: More than CodingHacking the Prime Minister
Permalink: Hacking the Prime MinisterTalking About Time
No Acceptable Protest
Whisper & Explosion & Subtitles
James Hong - Great Big Story
Permalink: James Hong - Great Big StoryLeading Trim
Permalink: Leading TrimDuration Notation
Use My Voice by Evanescence
Permalink: Use My Voice by EvanescenceOh shit, git!
Permalink: Oh shit, git!Looking Both Ways
I Could Be Your King by Katherine Langford
Permalink: I Could Be Your King by Katherine LangfordCleaning Your Desktop and Downloads
Invert, Always Invert
Permalink: Invert, Always InvertThe Day I Tried to Live cover by Sevendust
Permalink: The Day I Tried to Live cover by SevendustMulti-Colored SVG Symbol Icons with CSS Variables
Thoughts on wearing a mask
Wear a mask to avoid indecent exposure.
Should I use px or rem units in CSS?
In the fifteen years since rem was introduced, I've heard many variants of this question. This is my answer, including code samples to show how to achieve the best results.
Sweet Child o' Mine cover by The Heimatdamisch
Show Windows' Windows on All Virtual Desktops
Shortcut to Zoom
Organizing Your Filesystem IRL
While working from home, one thing that helps me focus on work is avoiding clutter on my desk. Papers are particularly problematic as they're so thin that they can stack up over time without a noticeable difference until it suddenly seems that there's a teetering tower of precariously balanced "things to do". If you struggle with keeping your workspace clutter-free, I use a system that requires minimal effort and materials.
Poor Planning
Classes are just spicy attributes
Spectacular View
Beauty in Simplicity
Styled Components Naming Convention
Ceux qui rêvent by Pomme
Hello Subgrid
Emojinate
Default Grid Columns, Rows, and Areas
Media Mixin
I've seen a lot of ways of handling media queries in Sass. This is my current favorite.
Time Savings
Scrabbler
I built a word-finding website over the weekend as a fun little project.
Who's the Hero Here?
Jeff Bonforte gave an excellent talk at the Facebook At Scale conference. The entire talk is worth watching, but to me the most important part comes at 16:45, where he talks about the issues with hero culture and rewarding "firefighters".
Fight or Run
Are you a REAL developer?
It's time to set the record straight on who is--and more importantly, who is not--a real developer.
If you want something done
The “S” in “IoT”
The “S” in “IoT” stands for “Security”
Never Take a Hard Shot
Interesting Numbers
Apeshit by The Carters
Planning
Why are we always wading?
Learning to Juggle
Light at the End of the Tunnel
Many Maps
Sometimes, instead of one-to-one mapping functions, it's useful to have one-to-many mapping where one input produces multiple output values within a single collection.
For Else
I think it would be nifty if loops could have "else" clauses. I'd particularly like it for templating languages.
The Functional Shape of Loops
Imperative loops can often be translated to a sequence of declarative functions. In this post I go over the three most common iterative functions and provide some examples of how they're used.
Good Judgement
Clinging to Mistakes
Dynamic Sort Direction
Looking at some functional structures to help make sorting more expressive while avoiding code duplication.
Multisort via Composition
An exploration of the structure of sorters and how to compose multiple distinct sorting functions into a single compound sorter using expressive syntax.
Knight in Shining Armor
Dots Oscillating
Writing Good Release Notes
Worst Version of IE
Worm in Horseradish
Never Trust a Thin Chef
Asking the Wrong Questions About Self-Driving Cars
Iyad Rahwan asks "What moral decisions should driverless cars make?" I answer that I'm willing to let them explode catastrophically killing everyone in a five block radius.
New Tech Start-up Bubble
CSS Frameworks are Box Mix Brownies
Spaghetti Code
It doesn't take long to go crazy
Bad Assumptions
How to Stop Hating Your Tests
The Art of Labeling
Effective Estimation
A Radical Approach to Powerful Headings
A deep dive into font scaling.
Elon Musk Thinking About the Future
Not Quite Horizontal Rules
I really wanted to call this post "Angular Rules" but it's not at all about AngularJS, and I generally dislike clickbait. Rather than mislead people on what this is about, let me make myself clear: This post is about styling horizontal rules to be angular such that they slope at a nice angle.
Thoughts on Bots
Private Properties in JavaScript
Just-in-Time Documentation
How to Beat Procrastination Starting With Your Inbox
Zeroing the Desk
Patience
Writing Less Damned Code
Lollipop Code
Some thoughts on code that's repeatedly redundant.
The "null" URL
Smarter Than I
Response to "Buttons shouldn't have a hand cursor"
I saw Adam Silver's post on Medium and I disagreed with some of his arguments.
Immobile Device
Collective Noun for Developers
Fly Away
Response to "Meaningful CSS: Style Like You Mean It"
@tbaxter wrote "Meaningful CSS: Style Like You Mean It" a couple weeks ago, and it's been stuck in my mind. Recently there's been some amount of controversy around it from front-end developers, and I wanted to get my thoughts down before I forget.
Response to "MaintainableCSS"
@adambsilver recently published MaintainableCSS which aims to be a best-practices guide for writing CSS. It's a good read and gives generally sound advice. I made a rather terse remark about it's similarity to BEM on twitter, and I'm hoping to clarify my thoughts in long form because I tend to be verbose and twitter isn't an appropriate medium for conveying nuanced thoughts.
Which KeyboardEvent key to use
You might think that writing JavaScript for the browser to listen for keyboard events is something that we'd have solved after 20 years. Unfortunately, like many things in JavaScript land, it's a mess caused by naïve implementations of multiple inconsistent standards…
Autoselectable textareas
Sometimes it's useful to provide text or code to users so that they can copy and paste it elsewhere. This might be an embeddable code snippet, a generated license key, or maybe a recipe. What's being copied doesn't matter so much, but how you allow users to copy it does. Autoselectable textareas can be a great UX improvement for providing text to users to be easily copied to the clipboard.
Simple Playlists Without JavaScript
HTML is a powerful language that has a lot of features. In the current JavaScript- and framework-heavy front-end culture, it's easy to lose sight of the native features of HTML in favor of more JavaScript bloat. There are many instances where JavaScript is used to poorly replicate what HTML can do for free. In this post I'll cover how to make a simple youtube playlist with only HTML & CSS.
Response to "Things to Avoid When Writing CSS"
Jared Spool on Beans and Noses
Maciej Ceglowski on William Howard Taft
Useless Marketing Jargon
The Right Way to Build a Text Editor
I read an excellent article on medium on how [contenteditable] is terrible with a detailed mathematical explanation of why. More importantly it explained at a high level how Medium designed their editor and what was involved to make it not suck. It's a fascinating article, and absolutely worth a read.
Happy Holidays from Project Fi
I received a package from Google today. I was pleasantly surprised because I hadn't ordered anything...
Shorth is Better Than Length
Ambition of Pens
Feline Affection
Client Haiku
Pet Happiness
Scriptless Dynamic SVG
You can change what SVG images display using the :target pseudo class. This even works when the SVG is referenced within <img> tags, which I think is pretty nifty.
How to write code
1. Write some functions, 2. Write the rest of the fucking code.
Announcing QueryStringJS
I made a JavaScript query string parsing library because all the others sucked.
Justin Searls on the 80-20 rule
Good Code
I do not know what good code looks like. I would not recognize it if I saw it.
They Say You Die Twice
How Not to Bind Click Events to Hyperlinks
A lot of JS tutorials online are teaching bad habits when it comes to binding click events. Take care when binding click events to links that you're not preventing the user from using native browser features.
Das Keyboard
Unstylish
Sometimes designs are improved by what you remove rather than what you add.
Comic Sansify
Some days everything is Comic Sans
Interview With Mike Smith About Nu Markup Checker
Steve Faulkner gave an exceptional interview with Mike Smith about the Nu Markup Checker
Debugging Clever Code
Waiting for Change
jQuery .data() Auto-casting Changes
jQuery 1.8 rc 1 introduced some changes to how auto-casting numeric values was handled. I'm not particularly happy about it.
Fall 2014 Redesign
I felt like redesigning my wobsite, so I did. Check it out and let me know what you think in the comments.
"Robot Boy" by Linkin Park
"Robot Boy" by Linkin Park is stuck in my head.
Skype: Removing Imported Sounds
Learn how to remove sounds from Skype settings.
Unidirectional JavaScript
Two Hard Things
Comments in Code Reviews
“Shatter Me” by Lindsey Stirling
Good Vacuums Suck
Scott Hanselman on Email
Changes to your Google storage plan
I got an automated email from Google a couple weeks ago notifying me that they were changing the pricing of their Google Drive storage plans. My initial reaction was the standard sarcastic “oh that's wonderful, how much more is it going to cost me now?” I had been paying $2.50 per month for 25GB of storage. The new plan will be $2.00 per month for 100GB of storage! 20% less for 300% more. Google, seriously, how do you even make money?
My Response to "Questions I Have For People Who Have Their Life Figured Out"
Anonymous Companies
I'm not sure that I support the idea of removing privacy for businesses. It's essentially an argument about restricting the liberties of companies, which is a restriction of the liberties of the people who make up those companies.
No one cares how long you've been failing
I'm going to be honest here: No one cares how long you've been failing. I'm not concerned if you've got a problem that's been bothering you for two seconds, and I'm certainly not bothered if it's something you've spent weeks trying to sort out. To be perfectly candid: I don't give a fuck about your time.
Quote Styles Updated
I've updated the way quotation-only posts are styled across the site, which included some new blueprints and templates in Kirby CMS. Nothing too fancy, but it was nice to change things up a bit and make quotes stand out and be a bit more readable.
"My Understandings" by Of Mice & Men
I've been listening to this song on repeat.
Code Reviews
Automating
Wifi
I decided to compile a list of fun names for wireless networks because the internet is made for listing things.
Poorly Written Code
True Friends
Good Motherfucking Design
Priorities
Kerning
Mathematics
target="_blank"
Every time a client asks me to add a target="_blank" attribute to a link somewhere on a website, I die a little inside.
Recipes
Mountains
Static Checklist
I added simple, static, pure CSS checklists to my website in 10 minutes at 1:00 AM. This is how I did it.
Scalable videos with aspect ratio
I finally sorted out a pure HTML & CSS way to have videos (and other elements) maintain aspect ratio when they're resized. This is awfully useful for fluid-width portions of responsive websites.
Mumford and sons
Bookmark this site
A client requested that we add a bubble on the mobile version of the website to tell users to bookmark the page to their home screen on iPhone. In related news, the '90s called and asked for their terrible user experience back.
Grouplove "Ways to Go"
Africa (cover)
Mike Masse and Jeff Hall perform an absolutely amazing acoustic cover of "Africa".
CSS selectors you should code without
You should generally avoid using the universal selector in CSS. More often than not it will apply to elements that would have otherwise inherited their styles from parent elements.
Double Data
Quick Google Hangouts
Emergency Bourbon
In case of emergency, drink glass.
Irony
Irony: The opposite of wrinkly.
CSS Teamwork
The Codeless Code
Classy Images in Markdown
What exactly is semantic HTML and how would I use it to describe the American flag?
Typography for Vendetta
Mullet of Websites
Synonym for "sexy"
Speeches and Skirts
Saving Time
A week in the lab will save an hour in the library.
Web Components Looks Nifty
I just found out about Web Components.
Wine and Sewage
A drop of wine in a glass of sewage is sewage. A drop of sewage in a glass of wine is sewage.
Red Hands
Affairs of Dragons
Do not meddle in the affairs of dragons, for you are crunchy and taste good with ketchup.
Fake Plants
My fake plants died because I did not pretend to water them.
Query String Hell
You've been handling query strings wrong. It's OK, so has everybody else. When I say "everybody else" I mean that I've yet to find an accurately conforming library in any language that I use. I think it's finally time to cover all of the complicated parts of query strings in hopes that someday, someone will get them right.
The Road Not Taken
"The Road Not Taken" by Robert Frost
Polldaddy's API Sucks
Polldaddy has a terrible API
The Past Wasn't Better
The past wasn't better, we just forgot about all the shitty shit.
Favorite Pies
Err vs Arr
To err is human. To arr is pirate.
The Bells
One of my favorite poems by Edgar Allan Poe
Question
Have you asked a good question today?
Clumsiness
Clumsiness will bring about a change of pants.
HTML, CSS, JS
HTML belongs in .html files; CSS belongs in .css files; JS belongs in .js files.
Confusion
Confusion is like pineapple.
Computers vs Programmers
Computers are incredibly stupid machines with the ability to do incredibly smart things. Computer programmers are incredibly smart people with the ability to do incredibly stupid things.
Brand new blag!
First post on my brand new blag. I should try to say something inspirational...but I won't.