Books and Links: April

We just got back from a simultaneously relaxing and exhausting trip to California... without my computer, so this is a little late.


I read two books in April... the most recent James SA Corey novel and The Left Hand of Darkness by Ursula Le Guin.

In TLHoD an envoy from a human civilization makes first contact with a world full of very strange humans. Ultimately, I think it's about the complications in communication that come from completely alien experience, culture... especially with someone we assume we understand.

I'm working on too many books at the moment... Mindset by Carol Dweck and Essentialism by Greg McKeon are on deck. Maybe too much self-help for one month.

I got some excellent feedback last month to make this shorter... but there were so many good links this month, and I haven't built a new script to generate smaller snippets.

Automators - Relay FM

Automation is near and dear to my heart, and this show is right up my alley. This very blog post is generated through a slew of automation... so I'm definitely going to be subscribing and catching up on some back issues. Start with Episode 1, about calendar automation for a quick taste of what the hosts have to offer.


Godzilla 1998

picture from behind the scenes

I love super detailed blogs that obsess about design details. I love movie props and miniatures. This blog is both of those things.


The Tim Ferriss Show Transcripts: Neil Gaiman (#366)

This whole interview is worth reading either for discussions of writing, focus, or just the love of a good yarn.

My favorite piece of advice, among many:

I would go down to my lovely little gazebo at the bottom of the garden, sit down, and I’m absolutely allowed not to do anything. I’m allowed to sit at my desk, I’m allowed to stare out at the world, I’m allowed to do anything I like, as long as it isn’t anything. Not allowed to do a crossword, not allowed to read a book, not allowed to phone a friend, not allowed to make a clay model of something. All I’m allowed to do is absolutely nothing, or write.

What I love about that is I’m giving myself permission to write or not write, but writing is actually more interesting than doing nothing after a while.


I think it’s really just a solid rule for writers. You don’t have to write. You have permission to not write, but you don’t have permission to do anything else.


Details on <details>

This talk is fantastic. I had never really examined this HTML element before, but the ability to make dropdown/modal/menus with pure HTML, no js, and accessible... very cool. Now I want to rebuild my menu without the checkbox trick.

The link I liked is the details of implementation, but you should read the slides first.


Native image lazy-loading for the web!

Simple attribute that will hopefully remove tons of weird javascript hacks over the years.


Opinion | You Are Not as Good at Kissing as You Think. But You Are Better at Dancing.

Another factor that predicted overconfidence is how much a person’s skill level at a trait is a matter of opinion. Give people more wiggle room in how they can define the skill, and they will tend to rate themselves higher. People were slightly more overconfident in how they ranked their intelligence (somewhat subjective) than their performance on an IQ test (seemingly more objective.)

Some interesting brain science here... outcomes vs. objectives.



There have been a lot of posts recently about the back-end of front-end programming, and what that shift means for the web as a whole. Last month I posted a great article about what that means for building teams and hiring, but I think Jeremy Keith hits the nail on the head with my other concern about this trend:

As a user-centred developer, my priority is doing what’s best for end users. That’s not to say I don’t value developer convenience. I do. But I prioritise user needs over developer needs. And in any case, those two needs don’t even come into conflict most of the time. Like I said, from a user’s point of view, it’s irrelevant what text editor or version control system you use.

I struggle with this a lot... but as someone who has spent a lot of time over the past years working on accessibility remediation, I've seen a lot of damage created by making decisions for developer convenience.


Last year, I was asked “Is there a fear or professional challenge that keeps you up at night?” I responded:

My greatest fear for the web is that it becomes the domain of an elite priesthood of developers. I firmly believe that, as Tim Berners-Lee put it, “this is for everyone.” And I don’t just mean it’s for everyone to use—I believe it’s for everyone to make as well. That’s why I get very worried by anything that raises the barrier to entry to web design and web development.



I've been diving heavily into the world of iOS automation, trying to learn all I can. If I can report one thing... its this: give a nerd a cookie, and he'll build a full-bore scheduling and automation system.


Dark Scrum

Often, today’s power holders believe that their job is to decide what their people should do, tell them to do it, and see that they do. Scrum teaches otherwise: explain what needs to be done, then stand back and let the people self-organize to do it.

People can’t just click over into Scrum’s new mode of operation. It takes time to unlearn the old ways. It takes time to learn new habits, time to learn to trust the team. It takes time for the team to learn how to be trusted: in a way that’s the underlying message of this article. Scrum’s training begins this learning process for the people who get the training.

Dark Scrum begins when people who know their old job, but not their new Scrum job, begin to do the Scrum activities. It goes like this:

Well worth the read. Still thinking about and re-reading this article a month later.

When leadership cannot see working software, they become afraid about the future — and rightly so. They show that fear, invariably, in ways that are not helpful, and that are generally painful. Developers can stop that from happening. The only way I know is to deliver software. Real, live, working software. With visible features!

Great article, with a strong emphasis on some real strategies that developers can employ to move the team towards a healthier work cycle.


Product Thinking vs. Project Thinking

Product thinking takes a fundamentally different approach. Rather than focusing on the output, product thinking is focused on the outcome.

This is a significant shift from the mindset of project thinking. Rather than focusing on timelines and dates, we focus on the goal we want to achieve or the job to be done. Because we’re focused on the outcome rather than the output, it is much more difficult to put time constraints around the delivery, at least up front. Primarily because we don’t necessarily know how we’re going to accomplish the goal up front.


The key is to make commitments and project plans only at a point when we can do it with a high degree of confidence. So rather than committing to a specific path beforehand, we commit once we’ve validated what we’re doing and have had a chance to really understand what it will take. Often that is a sprint or two into the work. That may feel really late in the process, but it is at the point when estimates and plans can actually mean something. Marty Cagan, in his book Inspired: How to Create Tech Products People Love, calls this type of commitment a “high-integrity commitment.” We allow teams time to do proper discovery and research before asking for commitments.

I guess I need to finish reading Inspired.


Home | Automation Orchard

There are fabulous tools out there to help you automate things, but which tool should you use? How can you make better use of it? Automation Orchard is collecting content from all over the web to give you a central repository where you can find everything about automation.

I've been reading and learning a lot about personal automation, and this is going to be pinned in my tabs for a while. Amazing resource!


Mario gets a BOOSTed makeover [Video] | The Brothers Brick

This is incredible.


My Affair With the Intellectual Dark Web

“New crops of young journalists, many consigned to online opinion writing, knew all too well that career advancement depended on clicks, which in turn depended on fealty to the woke narrative.”

I don't agree with all the positions presented in this story. The desire to have "nuance" in discussion, to be able to raise ideas without being shouted down by those more extreme... that does resonate with me.


Things on iOS: The Complete Guide to Automations and Workflows

I'm mostly saving this for myself. I'm working on being more organized, so I'm going to need this link for later. :P


RoutineHub - Start Meeting

picture of part of the workflow

This is a crazy example of a full workflow built in Shortcuts. (Can you tell I've been doing some reading on personal automation?)


How Algorithms Know What You’ll Type Next continues to a be source of interesting learning through visualizations.


What Happens When You Enter a URL In Your Browser of Choice - The History of the Web

There’s this scene in the second season of The Crown (if you watch enough old movies, you’ll see the same kind of thing). The scene depicts Princess Margaret, away from England and distraught after hearing news of a former love, as she attempts to get in contact with her sister, the Queen of England. She tells her staff to place an urgent call, so her attendant goes to the phone and picks it up. He is immediately greeted by an operator. He tells the operator he needs to connect to Buckingham immediately, on a secure line.

What follows is an inside and in-depth look at how mid-20th century phone calls were connected. The operator pulls a phone connector out of a hole in a machine on the wall and plugs it in elsewhere. This connects the phone line to another operator, this time in England, who once again patches the call to a different line. The third operator does the same as the second, and the fourth the same as the third, and on and on it goes down the line of switchboard operators pulling plugs in and out of large telephone switchboards that cover entire walls all with the goal of connecting one telephone line to another until Her Majesty the Queen is finally located and answers in her stables.

The sequence is as compelling as it is mesmerizing, meant to highlight the very real mechanical and human-driven logistics of global communication, a small glimpse at the work of the many that enables the strength of the British Crown. In those days, calls were connected by actual human beings, connecting phone lines through a series of switches until callers were connected. These telephone switchboard operators, as they were known, were essential, though over the years they would be replaced, first by mechanically automated switches, and later by electric tones.


sizes: better disk usage reporting in Terminal -

I’ve come up with a lot of ways to see what’s taking up space in my directories from Terminal over the years. I’ve finally built one that covers all the little niggles I’ve had in the past.

Let’s start with the other ways you can do this.

Not only a useful tool... but a great explanation on how to build tools for yourself.


Using htaccess to provide better Open Graph images -

I joined David Sparks and Rosemary Orchard on episode 20 of the Automators podcast. It was a riot, and made me realize exactly how nerdy I am about automation and its peripheral nerdery. One of the things that came up was my htaccess trick for handling Open Graph metadata on my blog. I got a bunch of questions about that, so I’m writing this up to explain.


Drag’n’drop revisited

One of the interfaces needed for this feature was a form to re-order items in a list. So I thought to myself, “what’s the simplest technology to enable this functionality?” I came up with a series of select elements within a form.

Great story of how to approach a simple accessibility fix... simple and to the point.


Solving Advent of Code in Under a Second

As someone who struggles to even finish a year's worth of problems, this is insane.


The ultimate guide to DuckDuckGo -

I've started using duckduckgo as my main search engine out of a desire to not give google all my data. Here's a useful guide to some hidden features.


Trainers. —

The results of Brenda’s work, and the work of her coworkers, will fuel the artificial intelligence research at companies like Microsoft, IBM, Facebook, and Google. Employees at Brenda’s company make around $9 a day. The most accurate “trainers” will receive a shopping voucher.

This is exploitation, of course—an especially old strain of it. And what’s more, imagine how precarious Brenda’s job is. As image recognition technology improves, will her job still exist in a few years’ time? It’s quite possible that the data work she’s doing is being fed into automated solutions that will eventually replace her.

Ethics are important y'all... and hard.


Notes from Laurie Voss’ “Stuff everybody knows (except you)” talk from Tampa Bay Startup Week, part 1 - Global Nerdy: Because Hacker News is Trash

Amazing article, I really need to watch the full talk. Here's a great excerpt with a great warning;

URLs are part of UX.

  • HTTP is a stateless protocol, which is a fancy computer science way of saying “No matter who you pass a URL to, if they follow it, they’ll see the same thing”. If both you and I follow the same URL for a terrible article, we will both see the same terrible article.
  • This seems obvious to people who’ve been on the web for a while, but it’s unique to the web, and it’s why the web is so popular. It runs off social networking and our deep-seated desire to share stuff with each other.
  • If you’re building a web app, you need to think about how people share it. You can’t have a rich web app that has a single URL that is the home page and a bunch of random s--- that happens when you click buttons.
  • You should be able to follow a path into a site really deeply, and when you find something and want to share it, you should be able to copy its URL, send it to someone, and they should be able to follow it and see the same thing. That’s how the web is supposed to work.
  • Support deep links because the web is social and people share stuff.
  • Don’t break URLs! And remember, they’ll end up shared and embedded in everything.
  • Your URLs from 10 years ago need to work today, otherwise you’ll lose people who are trying to find you.
  • Supporting deep links isn’t just good social networking and SEO; it’s also crucial to scaling.

  • Beware Twitter’s hashbang mistake, which they made when they tried to turn it into a rich web app.

  • At the time — 2010 — they needed IE6 compatibility, and so they decided to make use of the hashbang.

  • The problem with the hashbang is that everything after it in the URL is considered to be a page fragment — it means it doesn’t go to the server; it’s handled on the page.

  • This decision means that now and forever, Twitter’s homepage has two jobs:

  • It has to be Twitter’s homepage, and

  • it has to be the location of any one of 1.8 billion tweets

  • If you load Twitter’s homepage from scratch, you’ll see that it stays blank for a second while it tries to determine if you want to see a homepage or a tweet and if it’s a tweet, has to load the user interface and then dig into the database to get that tweet.

  • It’s a 2010 engineering decision that broke everything; they’re stuck with a stupid one-second delay forever because they can’t break all those URLs that have been shared.

Read Part 1

Read Part 2

Meet the Mormon Transhumanists Seeking Salvation in the Singularity

I guess The Expanse series vision of a technologically oriented Mormon colonists wasn't that far off... fascinating read.

Read more... - Simulating Blobs of Fluid

I really enjoyed reading through this process... very thoughtful and rather intense. I especially enjoyed all the consideration and explanation of neat optimization tricks.


UI/UX Patterns You Literally Cannot Design: Design Patents From Tech Companies

Content warning: language.

Super fascinating look into the dark business side of design... including things as specific as facebook's:

Animation of user’s profile spinning into view with a like reaction expanding next to the user’s icon.

or Netflix:

Play duration as an animation on the play button itself

Sorry... can't copy that affordance, you'll get sued.


Why you should use CSS env()

You now have the tools to share any variable between CSS and JS, with a single place to update values as needed. This solution provides a more robust way of sharing variables and is much less likely to break when the variable values change.

This is very cool, I have faced this several times on server side and client side… very excited to see this become more common.


How To Ask Questions The Smart Way

I saw this resource used brutally on a subreddit to gatekeep a newbie… but it honestly is a great guide.


Francis Fukuyama Postpones the End of History

Been reading a little bit about Fukuyama because a friend pointed me at his work. This is not the kindest reading of his opinions, but I mostly put it in favorites because it has a plethora of references to his basic tenents and influences… including his time at the RAND corporation. That place keeps coming up!


Improving the keyboard accessibility of Embedded CodePens

Depending on the colors in a CodePen theme and the browser used, focus styles are more or less visible. To make sure that focusable elements are sufficiently highlighted all the time, I added these lines to my custom CSS file:

  a:focus {
    outline: 5px solid #f23c50;
    outline-offset: 2px;

    transform: rotate(0);

The outline property highlights the “CSS” button on focus. Wait! What?Why did you add transform: rotate(0);?

To make sure that other items don’t overlap the outline of the focused item, I create a new stacking context on focus by applying the transform property with a value that doesn’t change anything else visually. transform is just one of many other properties that create a new stacking context.



Clip sharing with Overcast –

For podcasting to remain open and free, we must not leave major shortcomings for proprietary, locked-down services to exploit.2 Conversely, the more we strengthen the open podcast ecosystem with content, functionality, and ease of use, the larger the barrier becomes that any walled garden must overcome to be compelling.

My favorite podcast app gets better.


  • 2022-06-08 11:31:29 -0500
    Rename articles

  • 2020-06-18 14:26:02 -0500
    Move everything to CST

    Don't know why I didn't do that before. It caused _no_ end of

  • 2019-05-06 11:02:22 -0500
    Fix broken link in the embedded codepens story

  • 2019-05-06 11:00:37 -0500
    Censor a word I don't want on my blog.

  • 2019-05-04 14:20:06 -0500
    Remove article: user experience field guide

  • 2019-05-04 14:17:50 -0500
    Fix video display

  • 2019-05-03 14:32:35 -0500
    Make a link post for april