Archive

October 2026

Watched: Slow Horses Season 6 📺 The show is as perfect as ever, in its own way. It’s the best show on Apple TV that you’re probably not …

Things I learned in autocross this year

Use more gas and more brakes. Actually, just tap the brakes. It’s not a track, the speeds aren’t that high, the braking zones aren’t big. Oregon Raceway Park is a fantastic track. …

Finished: Plato’s The Republic by Plato 📚. Plato sure doesn’t like creative-types! Talk about zero self-awareness. Though, I suppose …

I had been feeling a bit two-dimensional. Coding agents, too many attention-hungry algorithms making my feeds a bit predictable. Maybe (finally) fallout out from video games. Distractions (apps and social media) too close at hand. Indicators of doom in our daily news. I wanted to …

Social media is where you’ll find the most sublimely interesting and entertaining people in the world. Right next to them are people with so many bad takes and shallow enthusiasms. Of course, all the clankers, some masquerading as human and some transparent in their toaster-ness. …

September 2026

Some days, you write for yourself. Other days, you write for everyone. Most days, the world writes for you. 🤓

The big blur – Brian Bailey nailed it. Wish I’d thought of this framing. We’re living through the big blur. Product, design, engineering, mobile, web, QA. Roles are fluid. Previously clear lines now fade at the edges like lines in an Agnes Martin painting. I’ll yes-and this: not …

Once more, with feeling – another season, another newsletter. Trying to get a conceptual hold on how to feel human in this continually liminal time in software and technology. Current hypothesis: maybe thinking slowly and holistically, whilst acting quickly, is worth exploring. …

Within you are many wolves writing code

One wants to implement this feature to the best of your standards, regardless of the surrounding code. Another aims to fit in with the standards of the existing code, as it is. …

August 2026

Interestingly

Three modalities of creativity I am keen to explore: dirt, screenshots, monk-like. 1. Dirt, metaphorically Take something worthless (e.g., literal dirt, metaphorically non-working …

I’m on book six of Dune. But, I’m just now finding out the story runs eight books. (Have Frank/Brian Herbert not heard of trilogies?) Finding focus when working with coding agents, flying too close to the multitasking sun. But, it turns out concise output and taking intentional …

Watched: Spider-Man: Brand New Day 🎥 Properly rated at ~71% positive. It’s a fun movie. Definitely better than the second Spider-Man, …

Patrick Dubroy, Fast is better than slow: Think about it — if you’re fast, you get data more quickly. That helps you make better decisions, sooner. It also means you learn faster, and over longer periods it means you learn more. Being fast also means you can try out multiple …

Frozen 2 should be rated R (Interconnected): Frozen 2 in which the entire city is almost destroyed by a tidal wave… It is SO LAZY. While we’re piling on lazy writing here: LOST, and most American television, is particularly lazy about generating consequence and tension with lines …

July 2026

If the clankers have you down, I recommend: read your favorites, write like that, discover new favorites, write and edit like that, rinse and repeat. It would seem, at this moment, only a human can produce liveliness by chaining words into language and narrative. Writing is how I …

Working with agents, summer of 2026: you have an always-on, amazingly deep collaborator. The coding ones can work themselves out of most problems, if you are willing to pay for the effort and thinking costs. But, wow, you are absolutely right! They are boring as nails and write …

The frontier labs regularly run promotions like “hey there’s a long weekend or holiday soon! Tokens or this new model is half-off until the next business day back.” I don’t like the nudge to “always be prompting”, working with the models at all time. To trade a long weekend for …

So what had happened was, my daily reading sort of tailed off. Distractions and all that. Then my writing dropped off. And then, the web hit me with three great ideas hit me right in a row. The web provides energy for reading, the reading transforms into energy for writing. …

June 2026

Grass touched, wind felt. Mountains driven, autocross done in ski resort parking lots. Bend, OR and its surrounding areas.

Silvermoon Brewing and McKay Cottage in Bend, Oregon

You ain’t got time for all this – the latest newsletter edition from yours truly. Some of my recent writing, remixed. Some all new links. If you’re seeing this on your computer screen, you might like it!

🎧 Human Touch is the Phil Collins-est of Bruce Springsteen albums. From one Oscar winner of the 1990s to another.

📚 Finished: In a Narrow Grave by Larry McMurtry. If you’ve ever lived in Texas, even more so if you’re from Texas, this is a great read. …

Exploring the Rich History of Funk and Soul Music: A Journey Through Rhythm and Emotion: Funk and soul music aren’t just sounds; they’re vibrant threads woven into the fabric of musical history. Emerging from the rich cultural tapestry of African American communities in the 20th …

🛬Back from Spain. Vermouth de grifo, Hieronymus Bosch and Matisse, old buildings, and public green spaces are pretty great. 📚Still at it with Power Broker and the first six Dune novels. Larry McMurtry essays are making me a little nostalgic for the idea of Texas (but not …

May 2026

Fits on a floppy, great idea: Software has lost its way. Apps that once shipped on a single floppy disk now demand gigabytes of your storage, minutes of your time, and far too much of your patience. We accepted this gradual bloat, but that’s not progress. Software should be as …

Soundgarden’s Badmotorfinger is underrated. Twenty five years later, still no skips.

Previously in tech, the joke was that Microsoft’s org chart was a bunch of divisions in a Mexican standoff. Fast-forward to now, instead of pointing guns at each other, every division at Microsoft is yoked to the other via KPIs and bonus allocations. None can maneuver freely …

Madrid–Barajas and Heathrow, day 10.

Madrid, day 4. Museo Prado not pictured at the request of the Museo Prado.

Madrid, day 3. Sometimes, you gotta sleep in and take a short bus tour.

April 2026

Examples of The Eponymous Trifecta: “Black Sabbath” by Black Sabbath from the album Black Sabbath “Motörhead” by Motörhead from the album Motörhead “Iron Maiden” by Iron Maiden from the album Iron Maiden Hopefully you’re starting to see the pattern. (There’s way more of these out …

git-spice – stacked diffs, but without another (SaaS) tool to provision and pay for. Excellent ergonomics, if you’re comfortable with the git CLI as-is. I’ve tried this for one project so far, things went as hoped. Moving between commit ‘stacks’ is easy, and rebasing changes from …

When you’re stuck or uninspired, reach for your spark file: This is why for the past eight years or so I’ve been maintaining a single document where I keep all my hunches: ideas for articles, speeches, software features, startups, ways of framing a chapter I know I’m going to …

If you were wondering, “could anyone make OAuth2 an even more involved, jargon-filled process?”, the answer is yes. AT Protocol and Bluesky sure did. 🙃

March 2026

RIP my vim muscle memory

I bet a lot of the grumbling about coding agents is really about losing out on the joy of moving quickly through code via a deeply learned text editor. I’m feeling it too, but I’m …

Yeah, I’ve locked in to a few writing and coding sessions with The Social Network soundtrack. But, have you ever tried locking in to something you can move your hips to? Related: currently compiling a list of Soundtracks That Didn’t Have To Go So Hard, and Prince’s Batman is way …

Wrapping up lil’ document editor “research”, starting to write more on it. In short: cross-platform in the Apple ecosystem is possible, but tricky once you get into third-party libraries. Agent coding makes a lot possible, but doesn’t make anything trivial. Prototypes without a …

Behind every guitar god there is, literally, a drummer making the odd 7/8 or 5/4 bar sound like 4/4. Paraphrasing Einstein, true guitar gods don’t play at dice or outside of a strict 4/4. (Inspired by: what the heck even is “Black Dog”?)

Squeeze out the trickiest part of the problem, another part of the problem becomes the trickiest. A tale as old as time. Today, it seems like the biggest opportunities will be in the third of my opening statements. Building systems remains hard. Can I assume you’re familiar with …

February 2026

I love when/what Matt Webb builds: It should be SO EASY to share + collaborate on Markdown text files. The AI world runs on .md files. Yet frictionless Google Docs-style collab is so hard… UNTIL NOW, and how about that for a tease. — mist: Share and edit Markdown together, …

Contra my optimism on software estimates, some realism: I gather as much political context as possible before I even look at the code. How much pressure is on this project? Is it a casual ask, or do we have to find a way to do this? What kind of estimate is my management chain …

Astronomy is perhaps the science whose discoveries owe least to change, in which human understanding appears in its whole magnitude, and through which man can best learn how small he is. – Georg Christoph Lichtenberg, The Waste Books You can’t argue with a star!

I went to see an elephant about a birthday.

Dave Rupert, Write about the future you want: There’s a lot that’s not going well; politics, tech bubbles, the economy, and so on. I spend most of my day reading angry tweets and blog posts. There’s a lot to be upset about, so that’s understandable. But in the interest of …

January 2026

I’ve been reading Power Broker on and off throughout the year (brag). I’m almost five hundred pages in (brag again) and it’s worth it. The writing is as good as the research is deep. Which is to say, it manages to maintain a great pace even though it’s a huge book (brag the …

Wherein we meet the boss of humans, same as the boss of agents (sorta)

Wherein there are cars, light-sabers, and television in my life.

December 2025

Three great clarinet-adjacent sentences

I DID NOT KNOW what was going to come from Angela’s clarinet. No one could have imagined what was going to come from there. I expected something pathological, but I did not expect …

November 2025

“So then the changes in progress are just there, ready to go.” “How are they copied? A network sync, an on-disk copy? What about conflict resolution?” “The data is available on disk and yeah, there’s a sync. Conflicts happen less often than you might think.” “That’s not how …

Every so often I find myself a few screens deep in an application’s navigation hierarchy and forget I can just pop out instead of going back to the top. I was reading feeds, decided I should do something else, but felt compelled to go back from the item view to the item list to …

I’m on-board with exploring LLM and agent tooling to improve upon the whole endeavor of software development. But, I consistently find myself disabling Copilot/Claude/etc. completion and next edit prediction in Markdown files. This is the one way in which I’m “too cool” for the …

When sizing up a stranger, the advice I’ve heard in the past was to observe how they treat service staff: waitstaff, flight attendendants, concierge, etc. This one seems equally appropriate to the internet age: To rapidly reveal the true character of a person you just met observe …

October 2025

A little voice in the recesses of my brain, the one that remembers of compiling Linux kernels and collecting WinAmp themes on university Ethernet LANs in the 1990s, is very happy to report that “obscure bit of syntax dot TLD” is still a very valid and fashionable sort of domain …

Everyone is losing the thread. Maybe that’s what makes this moment in history so difficult to follow and frustrating to live in. Not just politics, and media, and our government(s). BMW lost the thread on their sports cars and classic design language. Apple lost the thread on …

Moody weather, a variety of cars, good coffee.

Maybe we should build more personal software in the text: For navigation, the Cat featured leap keys: two rose-colored keys below the spacebar. You could press and hold one while typing a sequence of characters to “teleport” to the nearest instance of that pattern. The left leap …

The King Gizzard & the Lizard Wizard Rule: If you provide a text box for people to put things on the internet, you will eventually need some kind of moderation mechanism for people to opt out of the King Gizzard and The Lizard Wizard discourse without bothering the admins.

Many folks seem really excited about autumn’s arrival. (Pending, in more stubborn locales.) Maybe the world is too much blasting, dismal, …

Taylor Troesh, Compressing Codebase Collocates: To decompress a codebase, inline its paths of execution. For example, rewrite each endpoint of a webserver with only standard library functions and simple database drivers. One can repeat the decompression process all the way to …

A blog post can just end. Informality is an advantage, most days. And, being an amateur. We’re all terrified of being revealed as amateurs, but in fact, today it is the amateur—the enthusiast who pursues her work in the spirit of love (in French, the word means “lover”), …

I am told that you can enter thousands of words in a note attached to a task in Things. This seems like an esoteric and unconventional bit of trivia, Things being a task management app, not one of the likely candidates for a “second brain.” My pal Brian Bailey knows the exact …

Think of how much context space you’re wasting from all the times a coding agent says, “of course you’re right…” Slaps CLAUDE.md yeah I can fit so many more tokens in this baby since I told the agent to 1) call me “Meatbag” and 2) say “gotcha” when I correct it and then get on …

September 2025

Modern applications can’t hope to escape towering chains of complexity. Careful consideration of trade-offs and a bit of gardening are the way through. If you don’t read, you won’t succeed. – Tom MacWright, How to keep package.json under control Possibly the best one-liner advice …

The CSS rediscovery continues! Then, a few years ago, I read a blog post by Josh W Comeau called My Custom CSS Reset. I realized that there’s no deep magic; everything a reset does is just normal CSS that you can read and understand. — Jake Lazaroff, My Modern CSS Reset I have …

It’s no “for sale, baby shoes…” (spoiler redacted), but I like the feel of this short fictional invention: From decades of reading The New Yorker, he had an extensive recall of the fabric that makes up the world. This recall, however, seemed exclusive to facts and anecdotes that …

Polyglot runtimes have arrived and fizzled throughout my stage whisper 25-year career. Supporting multiple programming languages without reducing them to an uninteresting lowest common denominator has proven wildly difficult. That is, most multi-language runtimes are one of: “you …

📚_The Long Way to a Small, Angry Planet_, Becky Chambers I’ve read three of Chambers’ books now and would characterize them as “comfy sci-fi”. In the best possible way! There’s a spaceship with many sapient species making up its crew. There are stakes and adventures, but they …

Easier doesn’t mean less good

Explosion of mediocrity, video gaming edition: it’s become easier to build games, so there are more and more games every year; but the number of highly acclaimed games per year has …

CSS done grown up

Look at this bit of CSS. For greatest effect, imagine sending it yourself from ten or fifteen years ago, or the first time you hit upon a limitation in browser compatibility or …

Feel, fast, function, form

In that order, every time. I make a big deal about working downhill. Get stuff done, slice it smaller, get feedback, go again, remove friction, a little faster this time. But let …

Since I last wrote a /now post: Friends visited, a lovely time being a tourist in our hometown was had. We went to Disneyland for my birthday, stayed at our favorite hotel, ate our favorite things, it was good. Saw The Roots in a downtown town square, this was a great way to …

August 2025

No surprises

When leading projects, in any capacity, avoid startling your colleagues. Tech leads, engineering managers, product managers, etc. need to keep peers and stakeholders informed. When …

Morning reading level up

Dig out, not up

So you messed up. Now what? Late projects stay late. It’s terrifically rare to “catch up” on a late project. When projects run late, it’s because you’ve missed something in your …

Dilla Time: The drums weren’t the only instrument to play with rhythmic expectation, because in funk, every instrument was used as a drum, especially the bass guitar, which also began to take on the melodic work. Funk made the bass line prime. — Dan Charnas Rocco Prestia and Doc …

For the love of fast (looking) machines. From the exhibit outside the Walt Disney animatronic show currently on at Disneyland.

In-memory Filesystems in Rust. Spoiler alert, introducing indirection around filesystems isn’t a test performance win, for some combination of use cases and modern hardware: In the meantime, it seems like modern SSDs (and modern OS filesystem caches) are so fast that it doesn’t …

How will we know it works? My favorite set of magic words to push this process forward is to ask: How will we know it works? Don’t accept silly answers like, “The button will be red.” That’s not what the person who wrote that ticket is looking for. They have a reason for wanting …

🌶️ The collected works of Motown are at least as good as Mozart’s. Adjacent: Phil Collins’ and Michael McDonald’s albums of Motown covers are pretty dang good, if you want to explore beyond the originals.

When in doubt or staring down a blank canvas: Readme-Driven Development still exists. And, is possibly even more effective in a time when you can paste a design doc into a slot machine made of numbers and get (possibly working) code out the other end.

Finishing is a mindset

The last 10% of any creative act is the hard part. (Previously: Finishing is a skill.) You had an idea, thought it would take X days, only to find X-1 days of all these other …

July 2025

Good enough to get going

The winning scenario for agent-assisted code, design, science, etc. is humans having more time to do creative and impactful thinking because computers/LLMs do the tedious setup, …

This is a fancier way of saying that it’s unfortunate that naps don’t make one feel more energetic afterward: So, if you read through the Philokalia, it is very common to find the same author alternating between talking of thoughts (logismoi here referring to negative, vicious …

💤 Midday disappointments: A dip in energy is not fixable by napping, and napping does not restore one’s energy A superb nap is restorative, but difficult to predict or consistently generate A short nap might make you feel better, but rarely more energetic Coffee after a certain …

Multitasking with my eccentric pal

Over the course of two experiments within two half-day coding sessions, I better glimpsed what working with coding agents might look like over the next couple of years. 1. I teach …

📚Currently reading: Ursula LeGuin, The Language of the Night. A series of essays about writing, science fiction, and LeGuin’s own works. The only novel of hers read is The Dispossesed, but I’m enjoying the heck out of her non-fiction writing and thinking. It’s pretty timely, …

The problem with liking anything besides “ahead of their time” musical groups from the 90s like Radiohead or Wu-Tang Clan: Everyone who was a teenager in the 90s has one or two favorite bands or albums that they hold dearly and honestly. The problem is, basically every musical …

Yesterday I coded with only my wits for the first time in a while. It was pretty great. Not quick, but educational. Not efficient, but full of that great feeling when challenges are tackled with one’s own intelligence and experience. Do recommend.

Coding agents create an opportunity for shorter coding times, faster iteration, and shorter feedback loops. That opportunity is wasted if we don’t solve for all the reasons a software project can go sideways that aren’t “we couldn’t type fast enough”. “Lowering the cost of …

Computers are also free to be weird: I’m a programmer. You’re probably a programmer. We think in systems, deterministic workflows, and abstractions. What’s more natural for us than viewing LLMs as an extremely slow kind of unreliable computer that we program with natural …

I kept an 8-week streak of writing and publishing a newsletter essay going. I love the output, but not that it absorbs almost all of my writing energy. Back to re-thinking the format on that one. “It ships because it’s 11:30am” was useful in setting that streak. But “focus on the …

📺 Currently watching: MurderBot: I might have cast this differently, but I’m still enjoying it. Poker Face: still an absolute delight. The Bear: they push me away with all the yelling, they pull me back in with “people doing a creative thing together” montages.

Prototyping with LLMs

A few reflections on what I’ve been building (with) lately: llm is great for prototyping many kinds of workflows. If you’re thinking “I’d like to build an app with some …

June 2025

A thing about homeownership is that every room is a workshop until it becomes whatever room it’s going to be. This seems to hold for brand-new homes and old homes. Sometimes, for rooms you’ve been using one way for years, and now you want to use them for a different purpose. Or, …

It’s unfortunate, but true, we can’t sensibly integrate all the great productivity tools out there into our workflows. I wish I could find a way to put Bike, Antinote, and Agenda into my (daily) workflows. 🤷‍♂️

Systems expansive enough to warrant a course, discussion forum, or orthodoxy may not solve your problem. I was thinking of knowledge management systems when I wrote this down. But it’s probably more broadly true than just organizing your tasks and notes. 🤔 Related: I Deleted My …

I’ve been writing about estimating and planning a lot lately, so this is worth sharing: Numbers are not the goal. Successful outcomes are. Those footing the bill would rather have a successful outcome than an excuse to blame the estimator. In exploring better estimation, I’m not …

We tested for tedium

Folks are ruffled that LLMs, even without tool use, are pretty good at coding interview challenges. How will we even know who is good at coding anymore? (Current hypothesis: by …

Communicating early and often is a great hack, and easy to do: In the end, write the docs you want to write. If no one reads them, or if readers find they are out of date, then consider not writing them next time. But don’t let anyone shame you into wasting time. The question is …

Backyard Coffee And Jazz In Kyoto, Japan: One of the things I read about while getting ready for our vacation in Japan were these famous tiny businesses: bars or izakayas with four seats, narrow little bookstores or record shops in people’s houses or the bottom floors of small …

Exit Codes Are Having a Moment

LLMs (and agent coding tools in particular) love a fitness function. Give them a tool that indicates success or failure and they’ll go to town. Compiler errors, linter …

Differential Coverage for Debugging. Take a failing test. You have no idea where the underlying issue might be. The system you’re working with is possibly deep, wide, and eldritch. Your move: run the tests and capture code coverage without the failing test run the tests and …

So your estimates were wrong

AKA “Help! I estimated a project and hit every branch falling down the surprises tree.” A shocking turn of events that definitely has never happened to any of us. Don’t worry too …

Take an album track, in this case Daft Punk, deconstruct it, and then reconstruct from scratch in Ableton? That’s a cool hack. I must admit something: while I consider Daft Punk’s first two albums absolute masterpieces, I’ve never been a huge fan of their guitar tones—especially …

I was talking to a pal about how some software developers are able to operate in a sort of timeless way. If contemporary tech, the stuff that made “tech people” the antagonist, is on one end of the spectrum, these developers are all the way over on the other end. Picture a sleepy …

May 2025

Another month, another Cars and Coffee event. Honestly, 75% of it was Porsche 911s of all vintages. But, I tried to work cars with other …

Anyone miss running Linux in the 1990s/2000s and leaving a visualizer, xscreensaver, or some kind of demo running while working on other things? Nostalgia is a heck of a thing. 😆 Improbably, Apple Music still has something close to Winamp/XMMS visualizations.

Maintain fewer and smaller backlogs

Easy advice to give, tricky to implement. Sometimes it’s effective, sometimes it’s a wash. Like rearranging for the sake of rearranging. But when it is effective, it creates mental …

On one hand, there’s the classical music catalog mode of blogging. This is a bookmark, that’s a note, a photo here, a link there, an essay when I’m feeling ambitious. Étude, sonata, variations on a theme. Framing the writing by its scale and shape. A taxonomist’s delight. Then …

I miss writing “DO NOT ERASE” on whiteboards when a collaborator and I finally succeed at capturing the mental or visual model of a problem or its solution. It’s like writing “a good thing happened here today” on the whiteboard. Close second place: the act of crossing an item off …

What’s a high-level language? Is it Java, Go, and C#? Or is it Ruby, JavaScript, or Python? Where does Swift go? It’s all a matter of perspective. To a kernel developer who thinks about bytes on a wire or spinning a disk to read a file, git is incredibly high-level. 🙃 To a …

📺Currently watching: The second (and final) season of Andor was spectacular. The best Star War of the past ten years, IMO. S3 and S4 of Slow Horses continue to delight. Capable but slovenly Gary Oldman is a great character. I’m surprised how much I look forward to The Studio …

The web (and blogs) are free to be weird! Experiment on structure. Don’t feel constrained or normalized by the forces of engagement, algorithms, or profitability. Do your own thing. A personal website brings flexibility for presentation. Today, you may create a chronological …

1990s “alt” culture was wild. You could throw an obscure t-shirt on, watch a lesser-known or (future) cult-classic movie, and that was a whole starter personality. “Oh yeah, I’ve met that guy Adam with the Citizen Dick shirt who really likes My Blue Heaven and Army of Darkness.” …

Whilst editing yet another newsletter on building with AI and Claude gave me this feedback: Consider replacing “slopping out code” with a more specific term like “generating excessive code” Apparently, Monsieur Model does not like how I refer to its art! That’s a little sensitive …

Of all the hype I’ve read about AI, none of it has suggested that they will make estimating software projects a thing of the past. If they aren’t going to eat software estimates, I guess we’re going to have to strap in. The good news is: Delivering software reduces the demand for …

April 2025

I’ve noticed an uptick in writing about human thought processes using the language of machine learning and neural networks. Jargon-y phrases like “improve your mental search space” or “if at first you don’t succeed, improve your gradient descent”. (I only made up one of these …

Thorsten Ball’s tutorial on building agents only takes an hour or two to work through. It’s an excellent read for audiences of all technical acumen. It’s not that hard to build a fully functioning, code-editing agent. It seems like it would be. When you look at an agent editing …

If a team identifies a process, feature, or subsystem as “slow”, it risks resisting change by mythology alone. Slowness seems to make a special contribution to this picture in our heads. Time is especially valuable. So as we learn that a task is slow, an especial cost accrues to …

For circa 2015 Adam, two of the most stressful words in software development were deadlines and estimates. To my surprise, deadlines were easier to write about. Deadlines prevent work from snowballing. They guide us to favor the clarity of the present over the speculative …

I should worry less about missing One Amazing Thing, the feed FOMO. I can’t read the whole internet. Not even the small part I’ve carefully selected and loaded into my feed reader. Newsblur has an option to expire feed items after some number of days. I’d previously disabled …

Portland Cars and Coffee. Even on Mustang day, the European and Japanese cars were good. Not pictured: the most tastefully modified Toyota …

📺 Currently watching: Paradise (S1): James Marsden and Sterling K. Brown make an excellent cast. The show itself is an okay puzzle box/mystery story. Interestingly, not the deepest or best at building a mysterious world, so they may be able to land the second season without …

As goes writing, so goes software development teams: “Having a method, a process, makes my writing more consistently good. This might sound like a win, but it is a problem. The usefulness and beauty of essays follow a power law, where the outliers create almost all the value—so …

JEG2 reminds me that Elixir is about as lovely as programming languages get

Our trees are putting on a show lately! I’m not sure if we’re still in Fake Spring here in Portland, OR. The color and temperature beats …

Observations on excellent teams, from my newsletter: Teams at the top of their game have a few things going for them. They operate with pace and confidence, reducing the need for time-consuming and detailed planning. They work together with coherence and trust, anticipating each …

Our calendars are often painful because they display order (meetings) too well, but don’t display disorder (surprises and interruptions) at all. Into every developer’s day (and managers in particular) arrives surprises, interruptions, questions, and side-quests. A bit of chaotic …

March 2025

Sync Engines are the Future: So, what’s the significance of sync engines? I have a theory that every major technology shift happened when one part of the stack collapsed with another. For example: Web apps collapsed cross-platform development. Instead of developing two or three …

Now Tina Turner might force me to re-consider my laws of songs performed slowly. This is a high-quality problem!

Programming: it’s all about mental focus and stack management, dummy

We weren’t meant to compound the edifice of human society by typing in unadorned text area elements.

Every career step is searching for the next set of collaborators. And, even in a buyer’s market like we face today, it’s a bidirectional affair. The employer and the employee have to choose each other. Granted, I’ve been at this particular job search longer than I’d hoped!

New to me diner. Old school “where people meet in TV shows” vibes. Perfect for a Friday morning.

Vibe coding is generating code with an LLM (Claude, ChatGPT, Copilot, etc.) and just going for it. No review, no tests, just prompt/reload/repeat. Hopefully, you’re only doing this for prototypes! I’m sure some folks are not. Surely, they don’t read this website. When working …

A return to hand-written notes by learning to read & write – Google research on training models to recognize not just text in handwriting, but the actual strokes. So you could color or even edit-in-place the handwritten strokes later on. I hope someone is working on productizing …

February 2025

Harper Reed, My LLM codegen workflow atm: If you have a small or large project that you are procrastinating on, I would recommend giving it a shot. You will be surprised how far you can get in a short amount of time. My hack to-do list is empty because I built everything. I keep …

Team morale is what happens when everything is clicking. You can’t optimize for it, but you can pay closer attention to the fundamentals that yield good morale.

Mikkel Malmberg makes macOS apps “for the connoisseurs,” creates lots of little web things, and has a pretty delightful YouTube channel where he shares his creation process. While you’re there, scroll to the very bottom of his webpage for a surprise.

Zed now predicts your next edit with Zeta, our new open model. I wouldn’t guess that new features in a programmer’s editor require such attention to detail in user experience and development of a specialized language model for code edits. Watching the video on how they built it …

A parable of adventures

Consider two adventurers, one setting off alone and another setting off with fellow explorers. Both in search of greater glory through software development. 🙃 One adventurer closes …

Previously, an iron rule of Aretha Franklin: she could sing anything slower and better than anyone else. Update, a contender has entered the ring: Carole King performs “You Make Me Feel Like A Natural Woman” pretty dang slowly. Which she wrote! So I have to relax the iron rule …

A field guide to exploring rabbit holes

You’re deep in eldritch code, a product problem, or a cross-functional issue that is affecting your team. Hours have passed, and you feel like you’re only starting to get your …

You never stop growing as a project leader. Hurry up and flub your first fifty projects; the sooner you learn from stumbling, the better. Get a taste for all the technical and interpersonal ways a thing can go sideways. Grow past trying to use process to block all the ways …

Perfection often manifests as procrastination. But, we imagine our work with more perfection and grandeur than we could hope to achieve in reality. By definition! Something—our limited talents, our limited time, our limited control over events, and over the actions of other …

🔊Recently listening, mostly jazz

“Puzzling Evidence”, The Talking Heads. Somehow I’ve just noticed this song. It sounds like if the E-Street Band helped write a Talking Heads song. Which is not a thing I would …

A few weeks ago at work we had a talk where senior developers (including me) were invited to spend around five minutes each talking about our personal software development philosophies. The idea was for us to share our years of experience with our more junior developers. – qntm, …

Make great stuff. Tell people about it.

Don’t sweat the network or medium. It’s all tinkering at the margins! Serving at the pleasure of the algorithm! The core concern, the thing that really matters, is doing …

January 2025

Path dependence is one heck of a thing. It’s hard for teams and organizations to do something different if nothing seems imminently broken. Don’t let “we’ve always done it this way” serve as the entirety of the answer to “why are we doing it this way?”. Even if a wholesale change …

The categorical flaw behind “ghost engineers” is seeing a house only for its superficial wood, glass, and brick. Anyone who has owned or rented a house for more than a few months knows that specialists who can work on the infrastructure within those walls, especially the timely …

🧠Do the Impactful Things. Avoid the temptation that leads to attempting to do All the Things. (And, the guilt of coming up short.) Once you stop believing that it might somehow be possible to avoid hard choices about time, it gets easier to make better ones. You begin to grasp …

Tinkering is the productivity (output) killer. 2024 was the year I stopped thinking like a super-customizer. I’m not (and maybe wasn’t ever) one who writes scripts and plugins for my own idiomatic note-taking, coding, and website publishing needs. 2025 is the year I accept the …

How weird is it that Ol’ Dirty Bastard was featured on a song that samples “Islands in the Sun”? (This is why hip-hop and sampling are great.) Probably wrong answers only: It was the 90s, sampling litigation was a thing, maybe that sample was the best/cheapest option. Perhaps the …

Short of disconnecting, I’m finding that my ideas in A vacation is a tool for disconnecting are plausible for application in my everyday routines. Avoiding algorithmic feeds and limiting social networks with journaling and just existing in the moment doesn’t require travel or …

Six easy pieces on Shape Up

In short: like any method of working that is copied from one organization and pasted into another, very different organization, there are chutes and ladders. Habits and practices …

📺 Recently on television

What We Do in the Shadows, final season + finale: they did a fantastic job on the finale. The last season had a few stand-out episodes; it doesn’t feel like the show went one …

Workplace Groundhog Day loops

There are many ways to feel like you’re living out the same workday over and over. Weekly, if you’re unlucky. Let’s talk about two in particular: failure to write it down, and …

December 2024

Reading well in late 2024

It was a good year of reading, for me. I read some big books. I got more insight out of the books I read. Furthermore, I read things I don’t normally read, like philosophy and …

Reading with a computer assistant (an LLM) to answer questions, summarize dense paragraphs, and expand on ideas has been one of the ways I leveled up at reading over the back half of the year. You don’t have to upload any book into the system. The Great Cosmic Mind is smarter …

The collected wisdoms of Calvin Fischoder (voiced by Kevin Kline) from Bob’s Burgers: A bet is a bet, Bob. I once lost thirty thousand dollars on a horse. She just ran off with it. – “The Kids Run the Restaurant” I lost the year 1996 to schnapps. I still don’t know what the …

A low-road LLM prototype, with FastHTML

I wanted to tinker with llm and “AI engineer” up a humble tool for working with my notes, writings, highlights, etc. Emphasis on humble: if I could tinker with any one of those …

Currently reading 🐙 Van Pelt, Remarkably Bright Creatures: on an octopus and a widow. A recommendation from my sister. I could go with more octopus narration. 🕰️ Burkeman, Four Thousand Weeks: the thesis is that no amount of time management gives you infinite time, so you might …

The Trouble with Tools. Daniel Miller on notes, tasks, projects, and the overlapping tension of using software to manage them. It remains very true that all software expands to the point that it can host checklists. I try not to worry too much when a task list emerges from a …

November 2024

Bruce Springsteen’s “No Nukes” concert is one of the better early period surveys of his work. But what I’m really after, lately, is a middle-period summary of his discography. A live album highlighting the material from Born in the USA through The Rising. Two very different peaks …

Backlogs

Can’t live with ‘em, can’t live without ‘em🤷‍♂️ A product team (at least the ones that have been working for more than three weeks) has a backlog of work they’d love to tackle, but …

I’m reading Four Thousand Weeks. Thus, my mind is often on finitude, “the state of having limits or bounds”. Bear with me as I consider tactics for time scarcity that aren’t “try harder and use this method to organize tasks in this way that worked for one person a while back” 🙃

We cannot truly know whether we are not at this moment sitting in a madhouse. (Georg Christoph Lichtenberg, The Waste Books) An astounding percentage of Lichtenberg’s quotables are just as relevant today as they were in 1789 when they were written. What’s more 2024 than this …

Lists for the past, lists for the future

Reader, I want to (once again) talk to you about the life-changing power of making a list and putting it in order. Ambiguity of like, “what are we gonna build?” or “how are we …

Thinking a bit about essays because Room to think and Essays the size of cathedrals.

Team sizes & breakpoints

“Dunbar’s number is a suggested cognitive limit to the number of people with whom one can maintain stable social relationships—relationships in which an individual knows who each …

Kinda comedy

Permit me to throw shade at the Emmy Awards for a moment. Reservation Dogs is a better kinda-comedy than The Bear. Dogs is consistently funny and finds ways to explore the lives, …

The emotion key

The function key, on iOS and possibly Mac keyboards, is bound1 to show the emoji picker. Apple has chosen to bind a whole key, no modifiers or anything, to “convey an emotion”. A …

Bias towards hitting publish

Jeff Triplett, Please publish and share more: You don’t have to change the world with every post. You might publish a quick thought or two that helps encourage someone else to try …

Iteration (take 7)

Kent beck, Coupling and Cohesion: The only way to be able to describe something well is to describe it badly 100 times. I’m forever feeling this one. Many times, I’ve felt the idea …

October 2024

Scaling down native dev

In short: I want to build low-road applications for myself. They will have a very narrow function. I may use them for as little as a week or so, finish the task at hand, and move …

A bag of vignettes

From that point on, well, there’s only one, maybe two great nail salons in Amsterdam. I was rewatching Ocean’s Twelve, because empty calories and fantastic faces. Having watched it …

Throw more books

Simon Sarris, Reading Well: You should start many books and complete few. You should never feel beholden to completing them, there are simply too many worthwhile works to read. I’m …

Hot-takes on web browsers

Safari is (on macOS) the only good application and web browser. Chrome is a remarkable feat of engineering but a mediocre application. Arc is extremely promising. Reimagining the …

Six one-liners on meetings

Make a better meeting when you can, and the best of a meeting when you can’t. The choice to avoid holding a meeting may snowball into problems that require even more meetings. …

Pen, paper, and a problem

Ben Brooks, Thinking Analog: The way this works is simple: use a notebook and a pen when you need to work through a problem of any kind. Not a tablet with a stylus. Not a …

September 2024

Every day counts (even edits)

George Saunders, A Swim in a Pond in the Rain: “What does an artist do, mostly? She tweaks that which she’s already done. There are those moments when we sit before a blank page, …

Jam session

At its best, social media is like jazz — there’s an improvisational, multi-player quality to it. Following threads, riffing, and quipping creates a collaborative rhythm all its …

All roads lead me to maximalism

Within me are two musical opinions, constantly at tension. 😇 “You can make pretty dang good music with only a few, excellent musicians. Sometimes, even pretty dang good and loud …

Lukewarm water on a hot day

Henrik Karlsson, Swimming in July: There is something so frivolous about water. It makes you float like you are in outer space! And no matter what you do—whatever shape you make of …

Mind the attention traps

Alan Jacobs, The Homebound Symphony: Station Eleven had the Traveling Symphony: I’m trying to be the Homebound Symphony. Just one person sitting in my study with a computer on my …

Jazz as cinematic universe

I love when jazz album covers list all the players. Herbie Hancock! Your favorite drummer. A couple of sax players you think are pretty good. A bassist you’ve never heard of! It’s …

Wherein this old dog learns new tricks

I’m dabbling in building, again. I felt the energy of XOXO for nostalgia of a web of the past, making one’s own thing, and indulging in (socially good) weird whilst doing it. It’s …

On Founder Mode

Founder Mode. The discourse (algorithm) demands we discuss it. My hot-take: the original article is, honestly, not PG’s best work and is best viewed as a jargon land-grab. That …

How I write on the web, in 2024

My approach to writing on the web in 2024: Write (to think, riff, share, or publish) every day. Post anything over about one hundred words to my blog. Don’t worry about scheduling, …

Less waste, equal haste

If you waste less time, you’ll make more stuff without increasing time outlays. Find more leverage, you’ll make more stuff in the same amount of time Get better & faster at a task, …

Letterbird, lovely

Recently, I found myself in need of a contact form for my website. Luckily, I didn’t let myself fall to the temptation of rolling my own! 🙃 My good enough pals at Good Enough have …

August 2024

Decision and context flows

Commonly shared/held wisdom: leadership is flowing decisions down and information up. What if this is (slightly) untrue? Or at least, in need of contextualizing. Strategy, …

Associated objects are promising

Garrett Dimon, Organizing Rails Code with ActiveRecord Associated Objects: At the simplest level, associated objects come in handy mostly by helping organize and compartmentalize …

Write a lot

Nat Bennett, How to write: Write a lot Just Write Read a lot Write every day Walk Have a time and a place for writing Take it less seriously Have an audience At least as good as …

This is not my beautiful role

Ben Kuhn, Categories of leadership on technical teams: More importantly, though, we often want to somehow split these responsibilities between people. Team leadership covers a huge …

Methods of production

Herein, a napkin sketch on producing creative work, ideas on finding the spark(s) that consistently lead us to assemble new things, and the hand-wavy stuff in-between. Production …

Top of Mind No. 7

It’s been so long since we spoke, /now-page aficionados. I’ve been moving to Portland, buying a house therein, and selling a house in a bizarre hyperlocal real estate situation. …

July 2024

Hurry up and whiff it

There are things you can only learn by negative experience. In these cases, you just gotta go out there and suffer: Lose your first 50 games as soon as possible (Go proverb) …

The (Leadership) Discipline

Robert Fripp via Austin Kleon, The Meaning of Discipline: The musician has three instruments: the hands, the head, and the heart, and each has its own discipline. So, the musician …

diff, a top-5 software tool

Mike Hoye, Fifty Years of Diff: My friend Greg Wilson has argued, and I absolutely believe, that you can divide the entire computational universe into who has diff and patch, and …

Journal, highlight, revisit, blog

Writing from notes is a bootstrapping problem. Anything you can do to get started, overcome static friction, and “defeat” the first blank canvas is the best thing you can do. I …

Slash pages & micro-features

Slash pages: …are common pages you can add to your website, usually with a standard, root-level slug like /now, /about, or /uses. They tend to describe the individual behind the …

Constraints generate style

Steph Ango, Style is consistent constraint: “Collect constraints you enjoy. Unusual constraints make things more fun. You can always change them later. This is your style, after …

Corporate stories

Should internal narratives, and the philosophies they generate, be among the guarded proprietary info within a company1? The stories the company tells the outside world are more …

June 2024

Be findable

Thorsten Ball with a great reference to Comedians in Cars Getting Coffee. Be findable: You’re in your apartment watching TV, and they knock on the door, like “Jerry, I’m Dave …

Seek the good (enough) things

100 Tips for a Better Life: Some types of sophistication won’t make you enjoy the object more, they’ll make you enjoy it less. For example, wine snobs don’t enjoy wine twice as …

Finishing is the skill

Previously: The only way to finish writing, planning, coding, designing, etc. is to do the thing. Rarely will new tools, larger scope, a different approach, another section, more …

Frequency instead of quantity

Austin Kleon, A few notes on daily blogging: With blogging, I’m not so sure it’s about quantity as much as it’s about frequency: for me, there’s something kind of magical about …

May 2024

Delegate, don’t dictate

It’s the only way to survive as an engineering leader. Hand off tasks/work to the team Give guidelines, execution tactics, or constraints to keep things on track Set an expectation …

Beginners helping experts

“In the beginner’s mind, there are many possibilities. In the expert’s mind, there are few.” — Shunryo Suzuki The trick being, how can an expert help a beginner, given they know …

Humble writing

I’m trying to change up my blogging style: write without telling people what to do. Show, don’t tell. It’s a stronger writing position to take. It’s the difference between writing …

Try smarter, not harder

“Try harder” is the worst kind of plan. It’s basically not a plan, a small resistance to planning. An anti-plan that signals virtue but instead reflects shallow thinking. Don’t say …

April 2024

Show up every-dang day

Anne-Laure Le Cunff, 4 science-backed ways to build your own mental gym: Building mental strength is not too different from building physical strength. It’s all about consistency. …

A big bucket of text

Matt Stein, How I Use Obsidian: It’s also just a heap of Markdown I’ve carried around and put Obsidian in charge of sometime late in 2021. Those plain text files are mine and they …

Recently in pair programming with AI

My recent experience with GitHub Copilot Chat (non-autocomplete assistance) and Raycast’s ChatGPT-3.5 integrations lead me to think that prompting will be a crucial skill for most …

Trim the attention sails

In America, the 2024 election cycle is unlikely to amuse anyone. Maybe this is a rallying point for “unifying” the country: a near-universal loathing of our politicians, how they …

Detroit’s airport (DTW) is…kinda decent? It’s got a monorail and a light show set to songs of Motown. At the very least, it’s not a bad …

March 2024

Blogs were/are a fun moment

Manuel Moreale, Why I write: But the reason why I started is long gone at this point. I started the blog as some sort of public accountability tool and it’s now everything but …

Psuedoprose

Taylor Troesh’s pseudoprose is a notation for writing/note-taking/thinking: How to Write in English, Spanish, whatever. Grammar is optional. Markdown is encouraged. Embed in any …

Rails generators are underrated

Every experienced Rails developer should pick up Garrett Dimon’s Frictionless Generators. Generators are an often overlooked piece of the Rails puzzle. The book shines a light on …

Collective flow

Dave Rupert, Play at work: I’ve talked about this before in the context of prototyping and play and how we worked at Paravel. It’s a lot like playing baseball; each member of the …

February 2024

You learn faster by falling down

Julia Galef, The Scout Mindset: The “self-belief” model of motivation assumes that if you acknowledge the possibility of failure, then you’ll be too demoralized or afraid to take …

Building software is great

…even if some days working in corporations or under unwanted pressure makes it considerably less fun. I also just don’t especially want to stop thinking about code. I don’t want to …

Masters of the space between notes

Virtuosity and speed are nice, in music and life. But you leave some space between the notes or slow things way down? Make some space in between the music for the music to happen? …

Careers are non-linear

David Hoang, Should managers be technical?: Career development looks more like unlocking attributes for a different subclass in a role-playing game, than picking a distinct class …

A tinker for your tinkers

David Crawshaw, jsonfile: a quick hack for tinkering. 114 lines, including comments. Nothing revolutionary here. Just a nicely written and well-thought-out “classic hack” for …

I love a good shower-thought

Regarding Leó Szilárd, a theoretical physicist who first conceived of the possibilities of nuclear chain reactions, nuclear power, and nuclear weapons: The bath was down the hall. …

January 2024

Squeezing ideas

Turning a big idea into a more manageable one has second-order consequences: Remember, the more complex the issue, the more prone communication is to being lost. – Andrew S. Grove, …

Rails generators reminders

First: use them! Most frameworks have a project boilerplate and that’s it. Rails’ ability to quickly lay down a conventional resource, model, or anything else is a productivity …

Notes on focus and attention

Focus and attention are inputs to producing excellent things. All the talent in the world won't get me far if I’m not focused or attention isn't working in my favor. Beyond my …

The funk is in the notes you don’t play

Funk is unique amongst musical genres, in my perspective, due to the importance of the notes you don’t play. The space between notes, and not “shredding” every possible moment, is …

The LFG called life

LFG: looking for game. An ad-hoc scheme, often forum-esque, where strangers looking to play an online game that lacks matchmaking find each other and coordinate starting a game. No …

Weekend in Portland

Day two: breakfast, books, public transit! Tina Fey and Amy Poehler (surprise guest: Maya Rudolph!) put on an excellent show. (Not pictured: very, very cold.) Grits ’n Gravy. …

Work in progress

I’ve had this sitting prominently in my Muse workspace for a while. Seems like a good time to deploy it now. What if it’s all work in progress? Just sharing/publishing the process …

Weekend in Portland

Day one, travel day. Air travel is fine. Green carpets are green. It’s cold and dreary, as expected. There may be snow. We persevere.

Obsidian + LLMs

My experiments (with obsidian-copilot) have yet to yield a satisfying intersection between LLMs and Obsidian. I generally find OpenAI’s models write too much like breathless …

Journal for work/life/everything

Ray Grasso, Long Live the Work Journal: Keep a journal for work, champions. It’s pretty easy to get started—just create a text file. Throw in a new heading each day and write down …

The status quo

Most fascinating game there is, keeping things from staying the way they are. – Kurt Vonnegut, Player Piano The status quo is a hell of a thing. Path dependence makes this a …

Low-key CSS libraries

I like the idea and execution of Tailwind. That said, there’s something nice about dropping a CSS library reference into a new HTML file and getting styled content without adding …

2023 by the bullets

Places visited Marfa, Texas Las Cruces, New Mexico Tucson, Arizona Disney World (Orlando, Florida) Disneyland (Anaheim, California) Prunedale, California Salinas, California …

December 2023

Low-key tools-for-thought

I have an elaborate, perhaps baroque, setup of journals, notes, tasks, highlights, read-it-laters, feeds, and canvases-for-thinking. I consider it a crucial, and very …

iA Writer and AI

Writing with AI: Writing is not about getting letters on a page. It’s not about getting done with text. It’s finding a clear and simple expression for what we feel, mean, and want …

Celebrate the van Beethoven guy

It’s Ludwig van Beethoven’s birthday. Here are a few ways to celebrate the old piano-biter: small: try his other famous piano sonata, No. 8 “Pathetique” medium: try the third …

ui.land

ui.land is an interview site at the crossroads of design and engineering. Rauno Freiberg: Trying to create software with tiny details that feel exciting to build, experience, and …

Notes on strategy and execution

Will Larson, How to Size and Assess Teams From an Eng Lead at Stripe, Uber and Digg. This pull-quote lead me through some juicy lines of thinking: Inflection points are just …

Organize for Discovery

S-tier programming skill: organize code and behavior such that others can discover and understand it out later without your presence/consultation. S-tier writing skill: organize a …

Notes on focus

I’ve tried a bunch of things, over the years, to find time and discipline to focus on working the tasks and projects that are meaningful to me. Mostly it boils down to actually …

November 2023

Everything’s a draft

Publish pretty much everything you write because you can’t predict what is going to be popular. There is a lower bar for quality, but barring dishonesty and literally unreadable …

Zawinski's law, updated

Every program attempts to expand until it can read email (the original) invite a friend check off tasks in a list record consent to receiving cookies or storing data in the United …

Listening, November 2023

Andre 3000, New Blue Sun – come for the over-the-top song titles, stay for what sounds to me like an ambient and (astral?) jazz album. Earth, Wind, and Fire, “Serpentine Fire” – …

My summer at 100 hertz

Is there a lost art to writing code without a text editor, or even a (passable) computer? It sounds romantic, I’ve done it before, I tried it again, and…it was not that great. …

Saying No is the first step

Ryan Holiday, 35 and 34, 36 Lessons on the Way to 36 Years Old: As part of that, I made the difficult decision to call my publisher to push my next book a year or so. This was a …

October 2023

Have principles, will travel

Pirijan, Kinopio’s Design Principles: The more unique and definitive your values are, the more useful they’ll be as a decision making tool later on. These are some of the …

Top of Mind No. 6

I’ve been thinking a lot about setting expectations and goals. I have an idea about setting expectations on how we practice software development in teams and four pillars thereof. …

The point of a commonplace notebook is not to generate immediate enlightenment. Writing a quote or idea now is the tip of the iceberg. The real insight comes when reviewing commonplace notes later and the dots start to connect themselves. That’s when the galaxy brain kicks in and …

My promise to you, and the world: I will never call anything a “rig”. No matter how much people want to read about it, or how many hours I invest in it. Even if it is a car or musical equipment or an RV or something that is literally “a rig”. No matter how rigged up it is, I will …

Build for the excitement of building

Nice Tietz-Sokolskaya, Write more “useless” software: When you spend all day working on useful things, doing the work, it’s easy for that spark of joy to go out. … Everything you …

Inside you, there are two or more brains

David Hoang, Galaxy Brain, Gravity Brain, and Ecosystem Brain: The Galaxy Brain thinkers are in 3023 while we're in 2023. They relentlessly pursue the questions, “What if?” …

Aristotle’s ethical means of virtue and vice but for creative work: Winning is the mean between moving the goal-lines to finish and not finishing due to non-constructive goal-lines Quality is the mean between piles of incomplete junk and one or two overwrought ideas Taste is the …

September 2023

I’m not your cool uncle

I find that playing the “I’m the leader, this is the decision, go forth and do it” card is not fun and almost always wrought with unintended consequences. A notable exception is …

The Textual framework

Textual is a Rapid Application Development framework for Python, built by Textualize.io. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal …

Stop writing

George Saunders on getting past self-critical/low-energy writing spirals (aka one of the many forms of writer’s block): Another thing I sometimes suggest is this: stop writing. …

Build with language models via llm

llm (previously) is a tool Simon Willison is working on for interacting with large language models, running via API or locally. I set out to use llm as the glue for prototyping …

August 2023

I wonder how Vonnegut might have coped with the acceleration of change we cope with in our modern dilemma. It’s just a hell of a time to be alive, is all—just this goddamn messy business of people having to get used to new ideas. And people just don’t, that’s all. I wish this …

llm is a wrapper for interacting with locally run (or remote, via API) generative AIs from Simon Willison. Tastes great with gpt4all, which assists in downloading and running models locally.

I dropped in on historic races (the newest cars were 30 years old) at Laguna Seca. It’s great to see the track at scale, not as video-game …

This is where we live, for a few days. I’m hoping “little adventures” like this are a nice compliment to vacations. Perhaps the former …

“Now a truth,” said the judge. “The main business of humanity is to do a good job of being human beings,” said Paul, “not to serve as appendages to machines, institutions, and systems.” – Kurt Vonnegut, Player Piano We’re here to do human things: create for each other, love our …

A vacation is a tool for disconnecting

I’m reflecting1 on travelogue’ing my recent trip to Disneyland. In particular, that it was effective at taking my mind off work while maintaining creative writing and publishing …

A pretty ideal travel day: start at the pool, wait in the breeze and shade, depart from the open tarmacs of tiny Long Beach Airport. Not …

Many parts of Disneyland are ridiculously easy to photograph. Particularly at dusk and night, and for folks (like me) with very rudimentary …

Wherein favorite franchises are done

July 2023

Rule #1 is you a) get up early, b) ride stuff early and c) take a break in the middle of the day while (many) folks are at the parks. Roz is …

1. Rule #2 is you gotta take a picture of this signage, every time. 2. Matterhorn looks better from almost every angle than it feels to ride …

Evenings at the Village Gate: John Coltrane (with Eric Dolphy). Five tracks, all excellent. Great bass playing by Reggie Workman and Art Davis. Favorite tracks: “Greensleeves”, “Africa”.

Less but better

The Designer’s Designer’s Watch – A Look Back At Braun And The Rebirth Of A Few Classics The Braun watches AW 10 and AW 50 embody simplicity. Just as do the clocks and electrical …

This is nice. Once Over’s back patio annex is excellent.

When finished isn’t done

The work is done, the post is published, the code has shipped, the boxes are all checked. And yet, it remains in my head. The bit of code I’d like to revisit, an edge I couldn’t …

Charles Chamberlain

An “independent researcher & developer focused on making new interfaces to create with”. He’s developing some neat low road (in the How Buildings Learn sense) ideas at the …

Think through making. – Matt Webb (by way of Matt Ward) Protocol Fiction, Desire, and Belief Ideas in your head are shallow next to ideas worked out with craft, material, and context.

The Bear

I watched seasons 1 and 2 over the course of a few weeks. Fantastic show, no notes. I can’t start to describe it. It’s not crime-y, not a comedy. It’s not exactly feel good, but it …

Shortcuts for scripting API integration

If you want to do straight-forward API scripting, Shortcuts + Actions might do the trick. Patterns in play: Fetch URL (Shortcuts built-in) Parse document as feed/JSON/XML (not sure …

Use Swift Playgrounds to sketch ideas

Before spinning up a whole Swift project, use Swift Playgrounds to sketch out ideas. In Xcode (macOS): File -> New -> Playground Choose “Single View” (I’m not sure what impact …

In the meantime, if you’re not into the world you live in, you can build your own world around you. (Now would be a good time to put on your headphones and cue up the Beach Boys song “In My Room.”) Surround yourself with books and objects that you love. Tape things up on the …

June 2023

In the moment

Is pessimism about the past, present, or future? If it says, “we can’t get there from here, based on where we’ve been”, it neglects the present and maybe the future. Does optimism …

Notes on narrative for engineering leaders

Alex Reeve, 22 Principles for Great Product Managers: You have to own the narrative. When there’s a narrative vacuum, people will “creatively” fill in the blanks themselves—and you …

May 2023

Albums is a great app and The Best App for Albums is a great review of what makes it good for music enthusiasts and/or organizational hobbyists. I don’t want to jinx it, but Albums checks a lot of boxes for me that Rdio did, back in the day.

TIL Jenny Lewis covered the Traveling Wilburys’ “Handle With Care”. 👍🏻

Don’t zero out the margins

Efficiency is the enemy, Farnam Street: It’s possible to make an organization more efficient without making it better. That’s what happens when you drive out slack. It’s also …

Three meditations on wins

Leaders (and managers) are successful to the extent that their teams and peers notch wins. Former Intel CEO Andy Grove calls this the “output” of a manager, and wrote the book on …

April 2023

Top of Mind No. 5

Like everyone (it seems), I’m exploring how large language model copilots/assistants might change how I work. A few of the things that have stuck with me: Use LLMs to reduce the …

Err the Blog, revisited

Before there was GitHub, there was Err the Blog. Chris Wanstrath and PJ Hyett wrote one of the essential Rails blogs of early Rails era. Therein, many of the idioms and ideas we …

March 2023

Dock jackpot In twenty years of using Mac OS X/macOS, rarely has my dock not been all blue icons or a bunch of faces staring at each other. …

Focus in a time of distraction

That is, some notes on helping junior developers focus on execution when they are surrounded by the twin distractions of novelty and outright broken things. With apologies to Love …

February 2023

Reading, February 2023

I’m still reading about the Manhattan Project. The going is slow. Big books, big timelines. At least, for the speed at which I read. Rhodes, Making of the Atomic Bomb – I’m 500+ …

Top of Mind No. 4

The practice of building software/technology is going through a phase shift. We’ve worked from abundance the past few years. Now we have to figure out which developments are worth …

January 2023

Make code better by writing about it

Writing improves thoughts and ideas. Doubly so for thoughts and ideas about code. Writing, about software or otherwise, is a process wherein: thoughts and ideas are clarified ideas …

Corporate personhood and ants

Filtered for ants and laws, Matt Webb: Let’s say we could chat with ants. Could we trade with them? What would we want from them? … In short: people treat almost everything as …

Top of Mind No. 3

Working in small increments towards medium-to-large projects or outcomes is tricky. I too frequently find myself down a much deeper rabbit hole than I’d intended. And I’ve spent a …

The nap hierarchy

Doing a short snooze in the middle of the day? I highly recommend it if you have the means. Ideally, one of these places (in order by quality of rest): Couch nap Chair nap …

Bruce Springsteen Epochs

Motown Bohemian, curly hair, The Wild, The Innocent, and the E-Street Shuffle Denim, muscles, Born in the USA The introspective wanderer, bolo tie, Human Touch Revival, the …

What A Guitar Is Supposed To Sound Like

“Summertime Blues”, The Who, Pete Townsend “Estranged”, Guns ’n Roses, Slash “Glory Days”, Bruce Springsteen and the E-Street Band “Highway to Hell”, AC/DC, Angus Young

Music I Wish I Had Written

The Rite of Spring, Igor Stravinsky The Planets, Gustav Holst “Good Vibrations”, Brian Wilson “Losing My Edge”, James Murphy “I Feel the Earth Move”, Carole King

December 2022

Best of 2022

Television: Severance (Apple TV), Andor (Disney+) Movie: Everything Everywhere All At Once Music: deep dives into Carly Simon, Nina Simone, J Dilla Book: Player Piano by Kurt …

Think your thoughts

We live in the most amazing time for ideas. They’re all over the place. It’s never been easier to share them, and indeed they are shared at a phenomenal pace1. It’s so easy to find …

Driverless Crocodile, Nostalgia Revisited: Nostalgia: a kind of homesickness for the past. Another way of putting it: the longing you will have in future for the places and people around you now. Time’s arrow is a hell of a thing.

Top of Mind No. 2

How I work: what might “pairing” with a language model-based assistant (e.g. GPT-3) look like? How I build: the tension between the web platform being more capable than ever versus …

An ideal weekend

Nothing, nothing, nothing makеs me happy Nothing brings me nothing but joy So if you haven’t tried nada I really think you oughta — C. Fischoeder, Bob’s Burgers On minor funks, …

November 2022

One thing at a time, incrementally

Only Solve One New Problem At A Time, Ben Nadel: The example he gives in the episode is "learning Golang". Understanding how to use Golang was a new problem for the company. As …

How I would explain music to an alien

Were I faced with an intelligence not of this earth, but one that shares our understanding of what music is/for, these are the exemplars I would hold up for them to understand our …

Dilla Time

Dilla Time is a great book for music history enthusiasts. If you’re at all interested in hip-hop, music production, or sample culture, it’s a must-read. The references to …

Currently digging

Listening: Afrobeat, e.g. Fela Kuti Best musical discovery this week: an excellent Apple Music playlist Shapeshifting, catalogs jazz fusion with indie, hip-hop, electronic; all the …

Updating Eisenhower on planning

Previously: a long time ago, Dwight Eisenhower probably said something to the effect of: “Plans are useless, but planning is essential”. Today, software development (and knowledge …

Mastodon & Me, 2nd Edition

A few years ago, I set up a Mastodon account on a now-defunct instance. It didn’t scare me away, is kinda neat in some ways, the Bird has gone chaotic, and so I’m at it again. Like …

Sketching yields quantity yields quality

The Art of Sketching: Strategies for Getting Started: Edouard Manet, the French modernist painter, once gave a still-life painting lesson to another French impressionist, Eva …

October 2022

Certified Jams

“Rhythm Nation”, Janet Jackson “Holding Out For a Hero”, Bonnie Tyler “Footloose”, Kenny Loggins “Partyman”, Prince

Top of Mind No. 1

Delegating: supporting teammates, delivering the right context, setting good outcomes/goals. Not delegating: managing/mitigating risk, resolving unknowns. “Delegate downhill work, …

Currently digging

Obsession: Ferraris - they’re at a whole other level. Listening: Ramsey Lewis, “Japanese ambient” Watching: Andor, She-Hulk Reading: Welcome to the Monkey House - Vonnegut short …

Peak Aerosmith

Permanent Vacation, Pump, Get a Grip, Nine Lives. That’s an excellent run of albums. It was considered a renaissance at the time. IMO, it’s their best stuff1. Moreover, the peak of …

September 2022

The Flipping Table(s)

This is a story about a tiny toy table. Well, a couple of them. Courtney and I play pub quiz, a lot. We play with a regular group of people at a couple of venues across town. We …

Great Albums: Little Rock

Or: Texas, the Good Parts. (Despite the title!) Or: it sounds like Texas, to me. (Again, despite the title.) Hayes Carll is my favorite under-the-radar, “this is what country music …

August 2022

An un-conference appears

I jumped into a short un-conference organized/hosted by Andy Matuschak last weekend. Within this humble Gather, I came across lots of intriguing people and energizing ideas. Some …

July 2022

Perspective, you want it

Perspective is the lens we view our world, work, relationships, etc. All the luck, resources, or knowledge in the world are wasted without good perspective. If we’re talking about …

Leadership keywords

My current theory of leading software teams and projects has four keywords: Trust: I assume everyone is working to get the job done. They assume I will help them get the job done. …

May 2022

The paradox of producing process

The agency to create the system or process you want to work in (axiomatically?) implies you’ll rarely get to work in the system because you’re spending a lot of time working on the …

Notes from the Miles-verse Parts 1 and 2

Wherein I’m listening to Miles Davis’ studio albums in chronological order. Priors: I have listened to Kind of Blue and Bitches Brew a lot. I’m mostly familiar with “earl years” …

April 2022

Get lost in an idea

Rabbit-hole-athon - it doesn’t look like an event is scheduled, but I dig the idea: Tl;dr, we are organizing a weekend long IRL rabbit-hole-athon for technologists: an intimate …

Two snappy covers

I saw this local band Adam’s Farm (no relation, promise) a few times when I was 15 or so. In the era of mixing bass guitar out of rock music (no thanks, Metallica), these fellows …

March 2022

February 2022

Benchmarking Rails apps in 5 bullets

When in doubt, measure. Twice! For ad-hoc/napkin estimates, I use Benchmark.ms { …the code… } to size up the performance of Ruby code. When I want to do The Science to compare …

January 2022

Logistics is endless intrigue

The modern marvel that moves commodities, sub-assemblies, finished product, and people across the planet is largely invisible. Except when I’m bumped from an overbooked flight. Or …

Great albums: Blood Sugar Sex Magick

Favorite tracks: “Suck My Kiss”, “Sir Psychosexy”, “Power of Equality”, “The Righteous & the Wicked”. The essential (in my opinion) Red Hot Chili Peppers album is, for me, a few …

December 2021

My favorites of 2021

Gotta sneak this one in under the wire, otherwise it’s just a sparkling list of things. Movies Summer of Soul - Nina Simone, Stevie Wonder, Sly and the Family Stone. Heck yes. Dune …

A more evocative word for mega-corps

Kevin Kelly, The Third Way: Huge monopolistic companies running platforms like Facebook and Amazon are not mere corporations, nor are they governments, even though they have many …

November 2021

Great albums: Endtroducing

Endtroducing is my canonical example of a revealing album. I heard “Building Steam With a Grain of Sand” completely accidentally in a college business writing class, of all places. …

What makes a great album

There are four-ish kinds of great albums, in my mind: Pivotal albums: the artist or genre was distinctly different before and after the album came out. e.g., classical music was …

Better know a standard library

Read your current/new language’s standard library. Highly recommended for developers of all experience levels. You’ll pick up the idioms, you’ll discover something useful. You’ll …

Very famous white guys from history who were not famous for, but known to bite pianos: Thomas Edison and Ludwig van Beethoven.

Before the Porsche 911, there was the 356…and the 904. It a looker! Back in the ’60s, you could buy a street-legal version of Porsche’s top …

Don’t be spooky

It’s possibly the best advice for managers I've given so far. When you’re communicating with your team, lead with context and reassurance. Never message someone on your team, …

September 2021

Into the Miles-verse

I’m kicking off a new “listening project” - Miles Davis. Inspired by A Beginner’s Guide to Miles Davis, I’m going to grind my way through the Miles-verse in chronological order. …

August 2021

An exercise in CPU design, in the small

One Page CPU Project: Welcome to the OPC series of CPUs, where everything fits on one page - one page each for specification, emulation, HDL. For details see the OPC Project web …

Math-y and/or word-y

I'm a developer who (formerly) recoiled at math, especially calculus and matrices. Instead, I thought, I loved the language-y parts of software development. Programming languages, …

July 2021

Craig Mod’s simple search

Craig Mod, Fast, instant client side search for Hugo static site generator: I believe Fast Software is the Best Software and wanted keyboard-based, super fast search for my …

June 2021

What makes an excellent design doc

Replicache Detailed Design(https://doc.replicache.dev/design): Replicache runs alongside your existing application infrastructure. You keep your existing server-side stack and …

4 perspectives on writing

Spoiler alert: it’s all about organizing what they wrote in the past, finding it later, and remixing it into something they need in the moment. 🧠 Austin Kleon, Indexing, filing …

One priority is like wind in the sails

It’s true that I can scale myself, teams, and organizations to walk and chew gum at the same time, but it is surprisingly effective to focus on one thing at a time. This is the …

May 2021

Desktop vibes

I’ve got three “virtual” desktops going on my Mac right now. The idea each is its own functional workspace. I don’t have three separate physical workspaces to do my …

Planning focuses our ideas

Planning is essential. But, not too much. Mostly in the next 90-day window (with apologies to Michael Pollan). Humans are, with few exceptions, awful at planning. It’s impossible …

Tumblelogs, a thousand weird flowers

I miss tumblelogs. Especially projectionist. Twitter and Tumblr fit the mold, functionally. But the vibe is not the same. That time right before centralized social media achieved …

Shawn Wang’s 35 Principles for 35 Years are a good read. A few of my favorites: Seek First To Understand, Then To Be Understood. Don’t get defensive about your point of view or perception of reality - understand theirs first. Either you will learn something new or you’ll …

April 2021

Working, directly & small

Omar Rizwan recollects that one of the original selling points of React was that you could consolidate all the HTML, CSS, and JS for a single component in one file. No navigating …

March 2021

The long game of notes

You can do a lot of fancy stuff with your notes these days. Backlinks, graphs, embedding, “transclusion”, knowledge databases, and digital gardens are all tempting sirens. But …

Let them go their own way

A mistake many newly minted (and some experienced) engineering managers (EMs) make is listening to their team (good!), discussing potential solutions and tradeoffs (good!), and …

February 2021

CHONKR

I saw this BMW at Radwood in Austin last year. In hindsight, I would kinda like to know the whole story behind this car and the custom plate.

January 2021

Darlene Love re: Phil Spector 🔥

The Voices Of Black Women Were Essential To Phil Spector’s Wall Of Sound Darlene Love began her partnership with Spector in 1962, when she came to the attention of Lester Sill, …

When I first walked past the TV and saw Biden behind the big-fancy desk in the Oval Office, it sunk in for me: competence is back. Bluster and bullying, for the moment, are on the decline. President Biden begins signing a tall stack of executive orders during his first Oval …

On repeat (which I rarely do, lately): Empyrean Isles by Herbie Hancock. Ron Carter, Freddie Hubbard, heck yeah.

Perspectives on creativity for 2021

Austin Kleon - A working from home manual in disguise: Make lists. You can be woke without waking to the news. Airplane mode can be a way of life. Naps are a secret weapon. David …

December 2020

Mike Perham: Redis is a Swiss-army knife

Mike Perham: Grouping Events for Later Processing: But we see enough traffic that we don’t want to turn every single click into a background job. We want to aggregate the clicks …

November 2020

Better meetings (but also fewer, mostly)

Christof Damian, My thoughts on meetings: I used to really hate meetings. As a developer they seem to just get into the way of doing real work…But at some point you specialise, …

October 2020

A slice of the old way

September 2020

Austin Kleon’s list of perfect albums: #perfect31. Non-compilation albums, no songs worth skipping. Discovering these albums is one of my favorite things about listening to music. Blood Sugar Sex Magik was the first one I found myself, when I was sixteen. Blew my mind.

August 2020

Matt Webb on Asimov’s Foundation, and what’s unique about science fiction: Like any scientific endeavour it starts as a phenomenological exercise: what’s happening? How does this thing behave in various circumstances? Then beginning to probe: what are its limits? How do we break …

Let me tell you about my theories on art and fishing. This Ernest Hemingway story is definitely about fishing. On the other hand, I have a theory that most Billy Joel songs are either a) definitely about a fisherman or b) could exist in one world where the protagonist is a …

Failure = entropy due to adding humans

Here’s a real dinger of a sentence from Michael Lopp’s latest, The Art of Leadership: Small Things, Done Well: Failure is created by the increasing entropy of a growing number of …

Determined Disney fan recreates the original Disneyland version of the Alice In Wonderland ride-through in 3D. Same, but for Mr. Toad, one of my top 3 Disneyland favorites.

Writing is thinking, so write about code

Writing clarifies thinking. Therefore, writing design docs clarifies one’s thinking about code. Design Docs at Google and an example/meta design doc from the same author are great …

Bradford Fults on feedback and human bias

A Better Approach to 360° Feedback: Bradford Fults shares ways to route around fallible human memory and gather useful information when it comes to review season. Humans also have …

In my too-frequent skimming of German sports cars for sale near me, I came across a BMW 135i with a black exterior and interior. It’s a tempting car, but I’m afraid it says “I listen to two kinds of music: Kraftwerk on cassette and Kraftwerk on vinyl”.👴

Do Texans Dream of Summer Days?

1992 Lancia Delta Integrale Martini 5 Evoluzione, Bring a Trailer fodder for the day. I can’t resist Martini Stripes. Or bright yellow, …

Watched Jim Gaffigan’s The Pale Tourist. I’m surprised one can dedicate an hour-long set to Canada alone, but he makes it work. Gaffigan’s not the edgiest comedian or most insightful orator, but he is delightful. And delightful is mostly what I want out of entertainment right …

July 2020

Unlocking value with durable teams, Anna Shipman: If you build teams around projects, this means that there is a ramp-up period while the team go through the early stages, and if the team is not together for long enough, it’s possible they won’t spend very long (if any time at …

I’d never seriously listened to Mazzy Star before today. Had really only heard “Fade Into You”. Now I’ve listened to all four albums and they’re a) pretty good! and b) kinda ahead of their time? I’m a little surprised that something so straight-forward and sounding very much of …

Marketing folks should dispense with “this is familiar-thing two point oh”. It’s always “Underpants 2.0” or “Butter Knife 3.0” and never “Non-stick pan 2.3”. Just call it like a straight-up Hollywood sequel. “Chair 4: The Sittening” or “Ball-point Pen 7 Part 1: The Penultimate”. …

Bunkerpunk, short sci-fi from sudowriters, “a speculative fiction writing group”. My first foray into collected short science fiction. Recommended for modern, addled attention spans, those who are intentionally avoiding mega-tomes/epic fiction worlds, and/or the biographies of …

I would never have guessed that “video memos” would become a thing in remote working. Rather than sending a wall of text (which people are unlikely to read or even expand in Slack), record a short (~5 minute) video summarizing the ideas in context with metrics, screenshots, etc. …

Awesome Cold Showers - “ It’s great when people get excited about things, but sometimes they get a little too excited.” A collection of papers for when you don’t believe the hype and need to help others think that way too.

By some kind of coincidence I’ve read The Difference Engine by Gibson & Sterling followed by Quicksilver by Stephenson (re-read) and both are set partially in a London where covering once’s face for safety is prevalent. History repeats itself, historic/science fiction doubly so.

Alex Danco: The Freud Moment - You could draw a line from all of America’s divisiveness and much of the culture wars down to ego vs. superego. America’s egotistical bent doesn’t mean we lack a conscience: we carry around a ton of guilt, as part of the cost of letting egos run …

The Garden Of Forking Memes: How Digital Media Distorts Our Sense Of Time - grab a beverage, this one made me think of time in a whole other way and reframed our narrative-heavy, fact-light information situation: The de-centralization of timekeeping brought about by digital media …

Tom Armitage » Props and Prototypes - props for movies are like prototypes for building technology. A hero’s lightsaber exists as different props for stunts, close-up shots, costuming, plus a digital version for CG shots. Clickable mockups, short video demos, and working code all …

We had a real dinger of a sunset last night

I finished the last season of The Clone Wars over the weekend. Recommended for all Star Wars fans. Hot take: the last four episode arc is a better Star War than Rise of Skywalker.

Oddisee’s new EP Odd Cure has skits, but they’re recorded phone calls keeping up with his family and friends. Kind of a perfect version of the interstitial skit for this moment in history.

Conceptual tools for thinking

Untools is a collection of mental models for thinking about problems, projects, and ideas. For example, the latest tool, the Cynefin framework is useful for assessing the kind of …

Albums with acceptable skits between tracks: Three Feet High and Rising by De La Soul The Listening by Little Brother (TIL!) That’s it, as far as I know. It’s exceedingly difficult to pull off skit tracks. p.s. there may be an Outkast or Goodie Mob album with nearly acceptable …

How I Got My Attention Back - doing a residency and totally disconnecting is implausible for most people. But the idea is great and Craig Mod spins a great story every time I read him.

Writing Better, Type-safe Code with Sorbet. Hot take: gradual typing of large Rails codebases is going to make developers more productive than microservices, radical decoupling, and splitting out SPAs has. Combined.

How “Starship Troopers” Aligns with Our Moment of American Defeat For most of “Starship Troopers,” humanity, in every possible facet, gets its ass kicked. A culture that reveres and communicates exclusively through violence—a culture very much like one that responds to peaceful …

Terrace Martin in heavy rotation this week: 808s and Sax Breaks and Dinner Party 👍👍 Robert Glasper, 9th Wonder, and Kamasi Washington mean you can’t lose!

Tips from HBO’s Watchmen on building an inclusive workplace: The most valuable thing a showrunner—or any manager—can do to create an inclusive workplace is to listen carefully and respectfully to what their employees have to say, while checking their own defensiveness. The …

Periodic reminder that we are worse off for letting folks run Kathy Sierra off the social parts of the internet.

Peak Texas weather. The moment I step outside, I’m thoroughly warmed by the sun. A pleasant glow. For 5 seconds. Then it’s time to plan how I’m getting back to climate control. Rinse and repeat until mid-September. I probably write this every summer because every summer I love …

June 2020

The Cool Zone: The pandemic that has dominated the past three months strikes a useful contrast with what’s happening now. Unlike coronavirus, racism and police violence are problems caused by humans. There’s a saying, “You aren’t stuck in traffic, you are traffic.” Similarly, the …

May 2020

Never give up on reading the whole internet

Towards smaller JavaScript

The JavaScript ecosystem’s gone to a strange place where dense frameworks and complex tooling are the status quo. But, there are data-points suggesting the pendulum could swing …

A tale of Ghosts’n Goblins’n Crocodiles There is something noble about developing on a dead platform – it is so completely for the joy of the development, without any commercial motivation. John Carmack When does a platform truly “dies”? A “dead language” is defined as “a …

Yin and Yang: Lessons of Creativity — David Perell Flow states are the holy grail of productivity. To achieve flow, we need a proper skill-challenge ratio. Skill: Yin (Order) Challenge: Yang (Chaos) We do best when we’re pursuing goals that are a little bit tougher than what we …

Dear Apple Music algorithms, The center item is not at all like the others.

H.264 is Magic. There’s so much amazing stuff you can do with math in the pursuit of distinctly non-math-y endeavors. I’ve always thought compilers, and their cousins the query optimizer, are magic. Computer graphics too. Turns out video compression is also uniquely amazing.

Bonus quote from Revenge of the Intuitive: Years ago I realized that the recording studio was becoming a musical instrument. I even lectured about it, proclaiming that “by turning sound into malleable material, studios invite you to construct new worlds of sounds as painters …

The Revenge of the Intuitive and developer tools in 2020

“Building quality things of substance takes time.” - Rands in Repose, One Thing

Why NetNewsWire Is Fast - I love it when Brent Simmons writes about system design and principles.

Tools for plain-text thinking

Margin is a plain text notation for thinking in lists, notes, and structured data. I have a soft spot for notations for thinking like, e.g. Markdown, TaskPaper, even bullet …

April 2020

No way through but together

The Bremont Argonaut - there’s a lot of “ink” on this watch face, but it doesn’t seem busy. Even more, the marks on the crowns are the real winners. …

The second best sunset of the week (Monday)

Manage for time and mental burden

Features in software are answers to questions. How can customers send what they're looking at to someone else? That's share via email. How can customers distill all the data about …

AirPods as a Platform: You could also think about the Apple Watch as the main input device. In contrast to the AirPods, Apple opened the Watch for developers from the start, but it hasn’t really seen much success as a platform. Perhaps a combination of Watch and AirPods has a …

Graphs are the new hierarchies

In the sense that trees of people (managers and reports, ala Taylorism) are the old guard. Data (folders and files) are old sauce and nodes + edges are new sauce. In the sense that …

Machine Supply: Knowing what books someone loves is to know their perspective and their journey, to have something special in common, to share a language.

The CWC Mellor-72 - I love the overall shape, but especially the arrow icon above the 6.

My law of music: there is no song that Aretha Franklin could not perform slower and therefore better than everyone else. Newly discovered corollary: except possibly Pierre Boulez and Beethoven’s 5th. So slow, nearly belabored. Love it!

Drew Austin on high/low-brow music, how it fits into album reviews and club culture, and how all that has shifted in our current state of distance. Energy Flash: “For Reynolds, “at home and at album length” refers to a process of decontextualization, the musical equivalent of the …

A new cannonball run record set - a surprise and unintentended consequence of pandemic and shutting down the economy. It’s now much easier to drive a car really fast from New York to Los Angeles. The new record is just a few hours over a day.

Top of Mind No. 0

Managing a backend engineering team at Pingboard. Managers can, and should, do deep work. What forms does that take? You can build anything from trust; how do you turn …

The Majestic Monolith can become The Citadel - when a function of the monolith becomes unwieldy, split off an Outpost to service that need specifically. I like to call them sidecars, because that seems more fun!

Introducing Watchsmith - I love the idea of using customizable, bespoke complications to get a foot in the door of customizable Apple Watch faces. I’m trying it right now, so far so good!

Ever forward, eventually, to the new way

I’m no good at photography, but Texas sunsets make it easy.

I’ve been tinkering this weekend and MVP.css may be one of my new favorite tools. Drop in some CSS and then just use HTML elements as their name would suggest. No layout, no grids, no typographical system. No classes to memorize. Build now, worry about all the other stuff later.

March 2020

This weekend, I’m revisiting some of David Perell’s writing on writing, thinking, and aiming high. My favorites: Why You Should Write, Learn Like an Athlete, Networked Writing.

That is a beautiful machine. I must have a soft spot for extensive air-cooling schemes. If Windows/PCs were a thing I could get with, I would get with this hardware.

We took all the dogs on a walk today. Even the sixteen year old one who walks janky. I have never seen so many people out walking in our neighborhood. So that’s nice! Add that to the list of things we should considering preserving once we reach the new normal.

Stop the Coronavirus Corporate Coup. I’ve got a bad feeling about this. The aerospace giant of course wants a $60 billion bailout. Financial problems for this corporation predated the crisis, with the mismanagement that led to the 737 Max as well as defense and space products …

The jazz icon Sonny Rollins knows life is a solo trip. Seems like a surprisingly wise, grounded performer.

February 2020

The Beautiful Ones

Prince’s unfinished memoir, The Beautiful Ones is a quick, but awkward, read. The preface is the most coherent, the story of how the editor, Dan Piepenbring, ended up being chosen …

I watched the various Watchmen

I just finished reading the Watchmen graphic novel and it is amazing. I was drawn in by the HBO series last year, which amplified my enjoyment of the original story. It might end …

Get a cute credit card and overtip

Highly recommend: get a BB-8 or similarly lovely icon from your favorite mythology on the credit/debit card you most frequently use. I have a couple lovely bonus conversations with …

Keep waterfall out of your agile

An insightful thing my pal Brandon Hays observed is that teams introduce little bits of waterfall into their agile processes when they get burned by scope expansion, bugs, …

January 2020

Unblocking oneself

Succeeding and thriving at remote work is largely about getting very good at asynchronous (Slack, discussion threads, email, etc.) and nearly-asynchronous (phone calls, video …

Sharing context in code review

A nice guide on code reviews (unfortunately no author is attributed on the Notion doc) is making the rounds. If you do code reviews, you should read it. If you don’t, you should …

Reading massive tomes: less slog, more joy

I’m drawn to expansive views on a subject. Sprawling narratives are irresistible. Giant books are my weakness. It’s rewarding to finish a chunky, 500-page book but getting there is …

When management clicks

As a manager, I hear about things that are interesting and things that probably need changing. “We want to do three projects but only have two teams.” “The next production release …

Contracts made older objects better

Developers love contracts, i.e. types and type systems. Except, and especially, when they don’t. Contracts tell us, this module has a few functions and they definitely take these …

Training & Learning

A thing I’ve learned from weightlifting (also from Destiny, but that’s a whole other thing), is the value of showing up several times a week and putting in the right kind of work. …

William Gibson in the New Yorker

How William Gibson Keeps His Science Fiction Real - I gotta read more Gibson; just as soon as I finish all the Stephenson. 🤦‍♂️ One of them showed him an episode of “Cops,” the …

Options everywhere

Setting roadmaps and key results feel like truthful, strategic work. But the flip side is, if you approach them at face value or don’t focus on the outcome, they reduce the ability …

December 2019

Taking notes on paper vs. glass in 2019

Software (currently, GoodNotes) and hardware (iPad Pro + Apple Pencil) are finally to a point where glass is competitive with paper (currently, Studio Neat Panobook, previously …

How regressions happen

Working with software is frustrating, and working on software doubly so, because things up and break. Seemingly without warning or cause. One day the software is fine, the next day …

My 2019 routine, your mileage may vary

I'm having a moment where I feel like I've got a winning wakeup/morning formula 🎊. Wake up early, around 6:30am. Feed the cats so they don't barf in protest later. Skim the tweets …

Writing to a past version of myself

Left to my own devices, I write in the second person. With apologies to my high school English teachers, I have a justification for this: I’m writing to myself from one, five, ten, …

Your father's janky graphs these are not

You can Graphviz on the web now. Roughly-drawn sketch style, slightly Swiss modernism, or even in the design tool Figma. Mostly enabled by a port of Graphviz to Web Assembly via …

November 2019

Locality, module systems, coherence

Michael Feathers on locality in software design: You have locality when you don’t have to look beyond your gaze to understand how you are affected or how you affect. I find …

Team organization matters

On team composition and the distribution of higher/lower experience team members: Even though pretty much any team can deliver results, suboptimal team composition is still a …

Dave Quah made a pretty dang good HTML & CSS version of the Destiny loading animation. I see a lot of this thing and that’s pretty a pretty dang awesome achievement.

Things makes a nice landing pad

One of the better productivity ideas I’ve seen over the years is using some app as a landing pad for all the random ideas, recommendations, and notes I come across in the moment. …

I don’t often have the need for a tiny spreadsheet on my phone, but I love everything about Tinysheet by Postlight.

How DJ Premier Changed Hip-Hop - I did not realize he’s the producer on so many tracks. Particularly, Nas (“New York State of Mind”, even), D’Angelo, and (checks notes) Christina Aguilera.

The desirable qualities of good tests

I often say that learning test-driven development is comparable to learning a whole other programming language. The practice of TDD is a mirror world of depth and trade-offs. Kent …

‪I just wrote ‘Automotive form, Eddie Murphy, DC, the Goodfellas/My Blue Heaven connection’. buttondown.email/therealad…‬

A great Twitter thread on the importance of training managers. It boggles my mind we just throw so many people in the leadership pool and hope for the best. Every manager had a manager at some point! Why did we only start writing it down in the past few years? 🤷‍♂️🤦‍♂️

Automotive function determines form

I generally think function should have a strong influence on form, if not determine the form outright. I like to use cars an example of this, but I’m having trouble reconciling the …

Social media in the morning? Whichever.

Austin Kleon recommends skipping the news/social media/blinky lights in the morning. I’ve found this works great for me, and sometimes not! I’m a morning person, so I’ve got that …

Blogging, like writing, is challenging

The thing which makes blogging difficult is not engagement, analytics, finding just the right theme, curating to a newsletter, managing comments, finding reach after the demise of …

August 2019

Currently intriguing: Toby Shorin

I'm currently intrigued by, and not entirely sure what to do with, the ideas of Toby Shorin. Particularly, Jobs To Be Done and The Desire for Full Automation. The thread of design …

The paradox of event sourcing

The hardest part for me is knowing when to use this. It creates a lot of friction for a small application, but all applications start small. Moving to an event-sourced architecture …

Reclaim the hacker mindset

There was a time when the hacker mindset was about something nice. They’ve adopted a hacking mindset. They translate this clever, ethical, enjoyable, excellence-seeking behaviour …

Current obsession: the Porsche 962 racecar. A spacecar GT/LeMans design. Bubble-esque cockpit, ground-effect body. It won some races. A great shape with the body panels on or off.

July 2019

No topic is off-limits

My favorite thing about software development is the breadth and depth of the profession. On the one hand, there’s a ton to learn about computer science, programming languages, …

Problem solvers

We could be problem-solving technologists. We could avoid getting wrapped up in programmer elitism and tribal competition. We might solve more problems that way! We can still find …

Postmodernism rules everything around me

Greater Los Angeles - Geoff Manaugh. Remember when an iPhone had trouble with cellular reception if you put your fingers in the wrong place and a response that was overblown and …

June 2019

Data, it turns out, is far more valuable than code. Google and Facebook are unprecedented in economic history because of the data they’ve amassed; their applications, languages, and vast infrastructure merely enable the data. When the db is the interface – Jessitron: “There are …

Do Something Syndrome: When Movement Trumps Results: I was to learn later in life that we tend to meet any new situation by reorganizing, and what a wonderful method it can be for creating the illusion of progress while producing confusion, inefficiency, and demoralization.

TIL that codemod is a (Python, target language agnostic) thing for doing large-scale find/replace refactorings in code bases, react-codemod is a tool for doing the same specifically for React APIs and idioms, based on jscodeshift for doing large-scale refactorings specifically on …

DeRay McKesson from January 1, 2018: "I’ve found that the people who “play all sides” eventually get played in the end. The world does not need you to pretend to be a neutral party on everything. Stand for the things & people you believe in." Wise words that are going to apply …

Jessica Kerr - the future of software: complexity: “Complexity: Fight it, or fight through it, or embrace it? Yes.” On leverage, the intellectually rewarding kind of software complexity, and tackling accidental software complexity.

Craig Mod, on returning to the internet after forty days without: Strong net connection burbling up above, smartphone in hand, put the right apps on the thing and we are all Odysseuses. Except we didn’t strap ourselves to the mast of our ship, we walked straight up to those …

I'm the bug

Write about how computer programs are fun to solve and everyone can solve programming problems Run into a computer program that involves multiple black boxes in multiple computer …

zDog is 3-D rendering and animation with ~2k lines of JavaScript and only rectangles/spheres. I’m extremely impressed. This is the kind of playful but compelling technology I wish was more prevalent in the world.

May 2019

These are computers, I know this

An encouraging thing happened to me last year. I was faced with a mystery involving how a bit of application code was interacting with ActiveRecord. It seemed like we were calling …

The damn dumbest smart kid I know

Partial explanation for smart folks, like Paul Graham or Mark Zuckerberg, making consistently bad predictions - The Peculiar Blindness of Experts: In Tetlock’s 20-year study, both …

Chernobyl on HBO

We’re three episodes into the Chernobyl miniseries. Great acting, sets, and costumes. I had no idea how much worse the historical situation could have gone. Recommend.

Brent Simmons on Playdate - “the thing that seems very difficult, maybe even impossible, that may fail, but is the best expression of our talent and love”

Music ranked: the string section

Best albums, singles of the years. Who is better, the Beatles or the Rolling Stones. Top 100 smooth jazz to fall asleep to. We love to put music into boxes and then rank the items …

A foray into building interface

I spent some time this weekend attempting to make front-end code with Tailwind CSS. Tailwind is a utility-first approach to CSS wherein styles are organized into classes by how …

Refreshing my Rails: OmniAuth

I’m refreshing my understanding of mainstay Rails libraries lately1. This week, it’s OmniAuth. When you sign-in (authenticate) to website A (say dev.to) via website B (say GitHub), …

Robocalls. What a concept!

They’re on our phones, in our voicemails. Computers or sometimes even humans calling in massive volumes, funneling people into bad purchases. Questionable insurance at best, …

How we get back to space

Space isn’t a dead-end, it’s just taking us longer to figure out than our earliest trajectory. The New Yorker has a great look at The Race to Develop the Moon for industrial …

The notes - May 6, 2018

Unclogging the blog pipes here… Think better I feel seen - Satisfaction and progress in open-ended work: For more open-ended problems, much of the challenge lies in figuring out …

April 2019

Possibly the biggest upsight I’ve had on software estimation in a while - the blowup factor: erikbern.com/2019/04/1…

Typo’d GraphQL as “GraphSQL” and was like “that’s a little on the nose there, fingers”

A nice reminder that our work is often more about storytelling than we think - Name It, and They Will Come — Overreacted

TIL, Vim hybrid absolute + relative line numbering: jeffkreeftmeijer.com/vim-numbe…

Does Clojure style still rely on writing a lot of chains of higher-order functions (with -> IIRC) or have they moved on to something else?

Sometimes software rewrites don’t fail - if you focus on escaping a local maximum for the product and customers.

March 2019

Leaning into the impostor syndrome here, I did a little bit of GraphQL hacking to see how the ecosystem is coming along. Not too badly! github.com/therealad… Also, semi-literate programming 🤓🤠💪!

Stephen Anderson on The Future of Design: Computation & Complexity. Like everything else, its going to get more weird. But, the large-scale outcome remains the same - design is deciding which elements are essential and which elements to remove: The real world isn’t so simple, and …

Since I can never remember their individual names, it’d help me a lot if all pugs were named “Puggers” from here on out. “Mugsy” would also be acceptable, but I might get them confused for bulldogs idk.

At least once a week, I wish I could go show fourteen-year-old Adam Diamonds and Pearls and Enter the Wu-Tang so that I’d have much better musical taste much earlier.

Vacation reads

It used to be that all the programmers were ladies. Arguably, they were higher skilled programmers since they didn’t have little luxuries like text editors, REPLs, and online …

I think with my mouth. Often that means I start talking with some idea, realize that the idea isn’t as hefty as I originally thought, and end up talking until I reach a moment of mild truth. Which often ends up being a platitude. Shutting up: it’s a thing I’m working on.

In the world where data-privacy and GDPR compliance matter, owned/onsite analytics stacks like this seem promising bostata.com/post/clie…

Technologies which I am 🤔 about adding to a product but 🤷‍♂️ if someone has already gone through the process of setting them up and getting the developer experience right: React, Docker, ELK, (probably others)

A thing people don’t like is hearing that a foundational component of their project is mathematically impossible. Corollary: never tell people about the halting problem.

Programming languages > frameworks > libraries > domain languages > domain modeling (Things on the left are higher leverage than things on the right. Things on the right are easier to build than things on the left.) In the brief moment when I start a new application, I work from …

Markets Are Eating The World. A non-obnoxious meditation on how blockchains could reduce coordination costs and makes large, corporate-like entities less necessary in the same way division of labor and technology have in the past.

February 2019

Why are you building this?

At some point in what feels like the very distant past, I bought The Shape of Design by Frank Chimero. For six years, apparently, I’ve flipped past it on the way to reading other …

Little (Rust) learning victories

I’m attempting to learn Rust. And really make it stick this time around. A lot of the “making it stick” part is making lists and having the discipline to stick with crossing items …

January 2019

Was way more into this playlist when I thought it was “Eels!”

Pardon the dust, learning in progress

I’m trying a few things while I learn how ray-tracers work: learning Rust and graphics programming collecting my thoughts and discoveries in the repo, aka blogging doing it all in …

It’s true that Twitter took some air out of blogging. I suspect it’s also true that they formed a positive feedback loop when they overlapped. Longer-form writing informed tweets, tweets responded to or inspired longer-form writing. We can have our tweets and eat blogs too!

Listening to a DJ live set and it opens with the whitest, most English version of a 90’s hip-hop sketch I’ve ever heard. This person learned the exactly wrong lesson of possibly every album after 3 Feet High and Rising.

Gil! Scott! Heron! man crush on LCD Soundsystem intensifies itunes.apple.com/us/album/…

Why blogs are still lovely, part fourteen: shawnblanc.net/2019/01/s…

Corollaries to “new languages won’t achieve career-sustaining critical mass": 1) frameworks become the important point of leverage 2) framework/language harmony or outright integration ala Elm or Erlang become even more important.

Long bet: Java, PHP, JavaScript, Python, Ruby, and C# will be the last languages that achieve a critical mass such that they can sustain developers through their whole career. From here on out, it’s a melting pot of framework and technology choices.

Increasingly convinced houses only exist in two states: brand new and invisibly needing repair, lived in and visibly needing multiple repairs. This adage may apply to societies too.

We don't have to agree about code style

Will we ever come to agree on writing code? Ruby folks like short methods. One-liners even; maybe for their concision, maybe to show off their language and code golfing skill. …

December 2018

Who has two thumbs and is pretty excited for Enumerable#to_h and the proc composition/chaining stuff in Ruby 2.6! 👍👍 anamaria.martinezgomez.name/2018/12/2…

Which came first: the theory of productivity or the Singularly Great Work? Point: GTD and XP are both based on what worked Really Well for One Singularly Productrive person. Counterpoint: we all need our own theory of what might work for us personally before we get started.

In honor of Ms. Jackson’s imminent induction into the Rock Hall of Fame: is Rhythm Nation 1814 a concept album? 🤔 ✋🖐️✋

Fortnite Creative looks like a combination of private servers and exposing most of the map building tools through a clever game item. Seeing as how nothing in Fortnite should work, on paper, I’m excited to see what folks do with it!

In lieu of coffee, I took a five minute walk yesterday when I hit the mid-afternoon groginess. This was at least as effective, if not more than a coffee. 100% success rate, would recommend! 😉

I like how the module systems in ES6 and Clojure solve the “where the heck did this function come from?" problem. I’m optimistic that adding some kind of module system to Ruby can make working with Rails and large apps even more pleasant! github.com/ciconia/m…

November 2018

The New Yorker’s “Touchstones” essays on classic albums are quite good. The inline samples of Missy Elliott’s musical references and supercuts of other artists borrowing Janet Jackson’s chair dance are a great evolution of online music writing. (There’s also one on Nirvana 🤷‍♂️)

Wherein a mind is kept clear(er)

A couple things making me feel more productive lately: Jot down a theme for the day: at the beginning or end of the day, I make up some kind of near-platitude to help me focus and …

Our evil corgi, national champion Fran is now an evil corgi cover girl 😃😃😃

Bobs: What would you say it is you do around here? Me: I curate and repost cute animal memes from various Slacks into our company Slack’s pets channel. Bobs: This guy’s a straight shooter with upper management written all over him.

Currently enjoying: What Now from Sylvan Esso. Love the edge on the lyrics and the shape of the synth sounds. itunes.apple.com/us/album/…

Ruby library designs based on plugins and/or extensive module composition make me worried I’m going to spend a lot of time understanding the flow of control between modules (e.g. CarrierWave, AuthLogic). I’d rather something that’s already integrated with “common” problems of …

"Maximum theoretical sincerity"

Pitchfork: Talking Head: Remain in Light By 1980, the conflict in music between what was thought and what was felt was in full cry. As disco continued to monopolize music you could …

Elvis Costello is a jewel unstuck in time, simultaneously timeless and of his time. His most recent album, no exception. pitchfork.com/reviews/a…

Now I am the one who microblogs.

August 2018

Context buckets

Sometimes I ask myself: why did past Adam think this text/link/picture/etc. was important. Increasingly the answer is: put it in a bucket that makes the answer self-explanatory. …

July 2018

We are now a two robot vacuum family! One for the cats upstairs, one for the dogs downstairs. Courtney loves them both. The cats and dogs are way smarter than the robots, which just bump around like embodiments of the old Windows logo screensaver. Our floors have never been …

It is I, who dwells at coffee shops, who sometimes reads paper books instead of a glass display, who prefers Apple Pay over card swiping …

On decision tables and conditionals

Over the years, I’ve heard a few times about something like Decision Tables (Hillel Wayne): A decision table is a means of concisely representing branching and conditional …

My favorite question is “why?”

At some point in elementary or junior high school, we were taught all our essays should answer one of five questions: who, what, where, why, or how. These were, at the time, “the …

April 2018

Advocacy = empathy + speaking to someone else’s conceptual framework. When I’m trying to convey an idea from my head to someone else’s head, the biggest challenge is converting from my conceptual framework and values to theirs. Hence, The words that work: For example, one partner …

I’m starting a new job tomorrow. I decided to take a week off in-between jobs, mostly to make a quick trip to Disney Land. I hid most social media apps away, stopped paying attention to news, and caught up on reading. I gave myself a 3-day weekend before our trip to decompress, …

Scribbling through TensorFlow.js

I’ve been trying to wrap my head around machine learning lately. Today I worked through the TensorFlow.js tutorial on recognizing handwritten numbers with a neural network. Herein, …

October 2017

Code minutiae, October 23, 2017

For some reason, identifier schemes that are global unique, coordination-free, somewhat humanely-representable, and efficiently indexed by databases are a thing I really like. …

Just keep writing, October 16, 2017

I watched pal Drew Yeaton work in Ableton briefly and it was pretty incredible. He laid down a keyboard and drums beat, fixed up all the off-beat stuff, and proceeded to tinker …

Heck yeah, October 09, 2017

Simon Willison returns to blogging, in peak form nonetheless. Heck yeah! Janet Jackson, “Rhythm Nation”, posted by Billy Eichner. Heck yeah! A rocket engine made of nuclear …

Strange Loop 2017

I was lucky enough to attend Strange Loop this year. I described the conference to friends as a gathering of minds interested in programming esoterica. The talks I attended were …

Here’s a thing, October 05, 2017

As I endeavor to re-establish writing here as a regular and consistent project, I’m reminding myself of two things that helped me in the past. First and foremost, it’s about the …

exa in 30 seconds

What is it? exa is ls reimagined for modern times, in Rust. And more colorfully. It is nifty, but not life-changing. I mostly still use ls, because muscle memory is strong and its …

The notes, October 04, 2017

I’m intrigued by folks having luck building virtualized development environments for localhost setups. It sounds like fun to work in this kind of workflow. I never want to do the …

Not-a-Science Science

Any field with the word "science" in its name is guaranteed not to be a science. – Gerald Weinberg, An Introduction to General Systems Thinking

Afternoon notes, October 03, 2017

Someone will always have a slicker Git workflow than you. For example,Auto-squashing Git Commits for clever rebasing. The passage of time is weird, lately. Nonetheless, it’s …

Morning notes, October 03, 2017

I like Bluebottle’s coffee subscription service a lot. The web app is well done and having coffee magically appear in my mailbox means I have far fewer “awww heck we’re out of …

The loungification of luxury cars

High-end luxury cars are starting to resemble first-class airport lounges and it’s bothering me. The Porsche Panamera has a dang tray table. Just about every German luxury car has …

September 2017

On Code Review: Bias to small, digestible review requests. When possible, try to break down your large refactor into smaller, easier to reason about changes, which can be reviewed in sequence (or better still, orthogonally). When your review request gets bigger than about 400 …

July 2017

JavaScript's amazing reach

There’s plenty of room to criticize JavaScript as a technology, language, and community(s). But, when I’m optimistic, I think the big things JavaScript as a phenomenon brings to …

👍 Master of None Season 2

Just finished watching Master of None, season 2. What a great show. It’s hilarious without being campy, poignant without being a downer. Aziz Ansari is very good at this. Also, now …

June 2017

If I were a producer: DJ Khaled

Actually, I probably wouldn’t change much. But I have questions about this marketing photo: [caption id=“attachment_4434” align=“aligncenter” width=“487”] People, do not pose with …

If I were a producer: Muse

I have feelings about Muse, but let’s talk about this particular song I’m listening to right now: “Big Freeze” off The 2nd Law. In general, I would overgeneralize Muse’s music as …

OAuth2 🔥-takes

Is it too late to do hottakes for something that’s been around for nearly a decade? OAuth2 pros: I can allow other sites to use my data with some confidence that, at least, my …

May 2017

More ideas for framework people

A few months ago I wrote about Framework and Library people. I had great follow-up conversations with Ben Hamill, Brad Fults, and Nathan Ladd about it. Some ideas from those …

Did you try editing the right file?

The first few years of my career, I edited the wrong file all the time. I could spend hours making changes, wondering why nothing was happening, until I realized I’d been tinkering …

April 2017

Chaining Ruby enumerators

I want to connect two Ruby enumerators. Give me all the values from the first, then the second, and so on. Ideally, without forcing any lazy evaluations and flat so I don’t have to …

When my brain storms

I do my best thinking: In the shower. I love to take long showers, and I love my tankless water heater. While talking. Something about my brain is wired directly to my mouth. When …

Stored Procedure Modern

The idea behind Facebook’s Relay is to write declarative queries, put them next to the user interaction code that uses them, and compose those queries. It’s a solid idea. But this …

We should get back to inventing jetpacks

I don’t like using services like Uber, Twitch, or Favor. I want to like them, because the underlying ideas are pretty futuristic. But the reality of these services is that the new …

Jeremy Johnson, It’s time to get a real watch, and an Apple Watch doesn’t count: ...watches are one of the key pieces of jewelry I can sport, and while many have no clue what’s on my wrist, those that do… well do. And they are investments. Usually good purchases will not only …

Feedback: timing is everything

With feedback, like jokes, timing is everything. Good feedback at a bad time won’t do the trick. I’ve mostly experienced programming feedback through pull requests. This is way …

Practically applying Clojure

Fourteen Months with Clojure. Dan McKinley on using Clojure to build AWS automation platform Skyliner: The tricky part isn’t the language so much as it is the slang. Also, the best …

March 2017

Type tinkering

I’m playing with typeful language stuff. Having only done a pinch of Haskell, Scala, and Go tinkering amidst Ruby work over the past ten years, it’s jarring. But, things are much …

Let’s price externalities, America

Hello, America. We have to talk. You are built on top of a mountain of federal (a trillion or so dollars) debt. That debt covers some things we need (roads, health care, social …

Personal city guides

I’ve seen lots of sites about how to use software. The Setup and The Sweet Setup are my favorites. You can find lots of sites about how to use ideas like Inbox Zero or Crossfit. …

They're okay political opinions

The downside to the Republicans proposing a healthcare bill is that it’s a major legislative disappointment, given they’ve spent seven years symbolically opposing healthcare. The …

A little PeopleMover 💌

I love the Tomorrowland Transit Authority PeopleMover. It’s what a transportation system should be. [caption id=“attachment_4190” align=“alignnone” width=“500”] People Mover …

Your product manager could save your day

I thought the feature I’m working on was sunk. An API we integrate with is, let us say kindly, Very Much Not Great. Other vendors provide an API where we can request All The Things …

Three Nice Qualities

One of my friends has been working on a sort of community software for several years now. Uniquely, this software, Uncommon, is designed to avoid invading and obstructing your …

I have become an accomplished typist

Over the years, many hours in front of a computer have afforded me the gift of keyboarding skills. I’ve put in the Gladwellian ten thousand hours of work and it’s really paid off. …

February 2017

The annoying browser boundaries

Since I started writing web applications in around 1999, there’s been an ever-present boundary around what you can do in a browser. As browsers have improved, we have a new line in …

Just tackle the problem

There’s a moment when a programming problem engulfs me. Perhaps it’s exciting and intriguing, maybe it’s weird and infuriating, maybe it’s close to a deadline and stressing me out. …

What is the future of loving cars?

To me, a great car is equal part shape, technology, sound, and history. It seems like the future of cars is all technology at the expertise of all other factors. What will it mean …

Levels of musical genius

I often think about what kind of unique musical talent some performer I enjoy possesses. A few examples: J-Dilla was at the center of many groups doing amazing things creating an …

Four parks, one day

In January, Courtney and I went to Disney World for her birthday. We bought an annual pass last year, so we’ve literally been a few times over the past year. This time ‘round, …

Protect the beginner's mind

Someone joins your team. They have a beginner’s mind about your project and culture. Take a person with beginner’s mind, tell them about how things have always been, how they got …

The right way and the practical way

Brent Simmons, Reason Number 33,483 to Hate Programming: Or I could have the superclass expose the appIsTerminating property in its header file, so that the subclass could see it. …

Contrast NYC and SF

Dallas and Austin are the cities I’ve spent my life in. I’ve spent maybe three weeks of my life, total, in San Francisco and New York City. They’re similar in that SF and NYC are …

Framework and Library people

By unscientific survey, I think many developers would prefer to work in a “framework world” where many decisions of principle and organization are passed down by a vendor or …

Execution and idea in Frontierland

It’s commonly held, and pretty much true, that ideas are shallow and execution is depth. That is, the former is nothing without lots and lots of the latter. Let’s set aside how …

Empathy Required

Nearly fourteen years ago, I graduated college and found my first full-time, non-apprentice-y job writing code. When I wrote code, these were the sorts of things I worried about: …

Copypasta, you're the worst pasta

Copypasta. It’s the worst. “I need something like this code here, I’ll just drop it over there where I need it. Maybe change a few things.” Only you can prevent headdesks! It’s not …

Through mocks and back

A problem with double/stub/mock libraries is that they don’t often fail in a total manner. They don’t snap like a pencil when they’re used improperly. Instead, when you use them …

Stevie Wonder, for our times of need

Tim Carmody writing for Kottke.org, Stevie Wonder and the radical politics of love: Songs in the Key of Life tries to reconcile the reality of the post-Nixon era — the pain that …

How Disney pulls me in

Dave Rupert, Disneyland and the Character Machine: In October my family took a trip to Disneyland. I couldn’t help but be infected by the magic of Disneyland that allows you to …

January 2017

Perhaps there’s a benign explanation for Paul Ryan appearing to have cut off his phones. Anecdotally, it does not seem GOP Congresscritters are putting much effort into their voicemails or phone lines. I called my representative, Lamar Smith, yesterday afternoon, incensed that he …

The TTY demystified. Learn you an arcane computing history, terminals, shells, UNIX, and even more arcanery! Terminal emulators are about the most reliable, versatile tools in my not-so-modern computing toolkit. It’s nice to know a little more about how they work, besides “lots …

Clinton Dreisbach: A favorite development tool: direnv. I’ve previously used direnv to manage per-project environment variables. It’s easy to set up and use for this. I highly recommend it! But, I’d never thought of using it to define per-project shell aliases as Clinton does. …

Journalism for people, not power

Journalism is trying very hard to do better, but still failing America. Media is covering politics and not “We, the people”. Take the coverage of the Republican attempt to neuter …

I love overproduced music

It seems like some folks don’t like music with a lot of studio work. Overproduced, they call it. Maybe this is a relic of the days when producers weren’t a creative force on par …

Turns out Ruby is great for scripting!

Earlier last year, I gave myself two challenges: write automation scripts in Ruby (instead of giving up on writing them in shell) use system debugging tools (strace, lsof, gdb, …

December 2016

Jobs, not adventures

Earlier this year, after working at LivingSocial for four years, I switched things up and started at ShippingEasy. I didn’t make much of it at the time. I feel like too much is …

Fascinating mechanical stories

I already wrote about cars as appliances or objects, but I found this earlier germ of the idea in my drafts: There’s an in-betweenish bracket where prestige, social signaling, or …

November 2016

The lesser known vapors and waves

There’s a thing going on in music with all the vapors and chills and waves. I’m not entirely sure what it is, yet. Even after reading this excellent survey of the various vaporwave …

Mutual Benefit

Leaders of business and thought have been putting out statements showing unity or acceptance of Donald Trump’s election. I feel this is normalizing what has just happened to this …

October 2016

The least bad solution

Sometimes I look over the options and constraints to choose something suboptimal. I have to pick the least-bad solution. I recently chose a least-bad way to write a test. In a …

Wanted: state machines in the language

Our programming languages are often structured around the problem domain of compilers and the archaic (for most of us) task of converting things people understand to a thing the …

Van Halen ranked, atypically

Best songs that David Lee Roth talks over: "Hot for Teacher" "Panama" "Everybody Wants Some" Coincidentally, best use of Van Halen songs in film: "Hot for Teacher" in the strip …

Bon Iver discovers the Option key on his Mac

[caption id=“attachment_3815” align=“alignnone” width=“213”] Someone just discovered all the weird glyphs you can make if you hold the option key and type random stuff![/caption] …

My first car. Except not right-hand drive. 1989 Honda Accord. And it was not nearly so clean, or grey. But you could fit a double bass in …

September 2016

On the albums of The Clash

Passing thoughts on the discography of The Clash that is not London Calling: Brian and I had a conversation that randomly veered onto the Clash which prompted to me to listen to …

Automotive enthusiasm and pragmatism

A few years ago, I was re-infected with enthusiasm for cars. I came upon One Car to Do It All and found a new reason to obsess over cars. I read Car and Driver and Road and Track …

Here comes GraphQL

GraphQL is gaining purchase outside of the JavaScript communities and this seems like a pretty good thing. Shopify and GitHub have jumped on board. Absinthe (Elixir) and …

August 2016

Weaponized jerks

For a long time, the Central Intelligence Agency has had a guide to wrecking an organization by doing a few weird tricks at meetings. It recently came to light, and took hold as a …

Refactor the cow paths

Ron Jeffries, Refactoring – Not on the backlog! Simples! We take the next feature that we are asked to build, and instead of detouring around all the weeds and bushes, we take the …

Losing the scent, acquiring the taste

When I didn’t drink coffee, the thing I enjoyed about coffee was the smell. It has a really great aroma. Unlike popcorn! Now that I do drink coffee, I don’t notice the smell as …

Getting around, together

Riding the Rails: Celebrating Trains and Subway Commuter Life: Train time is essential time, and rail travel isn’t strictly pragmatic. For many, the commute is their only time to …

July 2016

A bold, future-retro Audi dash

I’m officially intrigued by the Audi TT and R8 going with no center display. The look is retro and functional. Will it annoy passengers, or do passengers who want to change the …

June 2016

Our current political Trolley Problem

As self-driving cars inch closer to a daily reality, the Trolley Problem seems to have entered our lexicon. In short, should a self-driving computer choose to avoid hitting a bunch …

A few qualities of mature developers

What is technical leadership? Per Mature Developers, it's a lot of things. My favorites: So one of the first and most important qualities of mature developers is they’re more often …

I love when snares don't keep time

In the majority of music you’ll hear after 1960, the drummer does most of the time keeping with their snare. On 100% of Bruce Springsteen songs, time is kept entirely with the …

May 2016

April 2016

Why I blog in bursts

I write here in bursts. It confounds me as to what marks the beginning and end of those spikes. I have a few hunches: ambitions grow larger than my free time: it’s easier to hit …

March 2016

Extra Ruby chaining, not that costly

A few folks suggested I try lazy enumerables to make my extremely chained style practical. I was curious about the actual costs of my style, so it’s time for lies and …

One idea per line

Lately, I’m doing a weird thing when writing Ruby code. I’m trying to only put one idea or action per line. I’m not sure about it yet. Here’s what a method to fetch item-y things …

Less fancy

Programming is easier when you know how to stop solving 100 problems with 1 fancy thing and solve 100 problems with 20 plain things.

February 2016

How does a bomber outlast a JS library?

Ember is probably leading the JavaScript framework pack by supporting releases with security patches for slight more than a year. By comparison, there’s a cottage industry of …

Code that resists

Kellan Elliott-McCrea, on the way towards an understanding of technical debt, catalogs the ways we end up with code that resists our efforts to change it: Therefore the second …

Tinkering with Kinto

Here’s a thing I want to experiment with. Short videos talking about what I’m currently tinkering with. Here’s one! [wpvideo lj3gGXFS] More notes in the repo, if you want to play …

Three part method

I find methods/functions decomposed into three parts really satisfying. Consider a typical xUnit test: def test_grants_new_role # setup user = make_user new_role = make_new_role # …

January 2016

My favorite beef is O'Reilly vs. Graham

Of all the pop culture beefs going on at the time of this writing (Meek vs. Drake, BoB vs. Neil deGrasse Tyson, Trump vs. Everyone), my favorite is now Tim O’Reilly vs. Paul Graham …

Things I’ve noticed San Franciscans deeply despise: housing prices nearby events that aren't actually held in San Francisco (e.g. the Super Bowl)

Threaded discussions: nope nope nope

Pet peeve #73: threaded discussions. You may have seen it in a Usenet reader or perhaps even your email. It may seem like a great way to manage a long conversation with multiple …

BDFLs aren't community builders

What if large open source projects appointed a community manager to handle things like codes of conduct and social spaces? Anecdotally, those who make large projects are often the …

One model doesn't fit all

There are two kinds of developers in the world: those who realize data models aren’t monolithic and use business boundaries to their advantage those struggling with monolithic data …

I am a unique snowflake

Every software person is as special and unique as they think they are. But things go weird, in my experience, when I try to express my snowflakeness in production code. If I want …

Rails doctrine and Kremlinology

Long story short, Rails now has a nicely written Doctrine that delineates the principles that motivate tradeoffs the framework makes. Any Rails developer can benefit from …

November 2015

Specific, purposeful emails are great

When I’m emailing with teammates, I try to do them a few favors. I make my purpose clear, specific, and up front. I often write the whole email, figure out the real purpose, and …

August 2015

Code needs boundaries, but not too many

Let’s talk about boundaries in programs. I need them, otherwise programs grow increasingly inscrutable and impossible to change. A lack of boundaries is nearly as bad as spaghetti …

That's a question

In a technical conversation, I love to hear this: “that’s a good question!” Now we are going to talk about something we might have otherwise missed. Later we will look back at a …

July 2015

Life's Easy Mode

This morning I walked a half mile, not too far, to a neighborhood coffee shop. I had two breakfast tacos and a sweet-flavored latte. I can choose to walk, and take a Sunday morning …

Doubt mongering

Doubt mongering. It’s a thing that happens because egos are fragile. Some doubts I’ve heard or uttered myself in the past month: That sounds like building a dependency manager, and …

What about event sourcing?

I was chatting about Event Sourced data models with a pal last week. He is really taken by the idea and excited that perhaps its a “next big thing” in data modeling. Regretfully, I …

Encapsulation is a tradeoff too

Better understand Encapsulation. I can’t 😍 this article enough: An individual programmer has fixed limits on how quickly they can build up instructions and later on how quickly …

Microservices in context

An interview with John Allspaw, on Etsy infrastructure and operations: For example, a good friend of mine runs and has run an electronic trading exchange. You could imagine his …

June 2015

When we model

I’ve observed a few levels of modeling (i.e. thinking about a problem and describing it in concepts plus data structures) that software developers do in the wild: structural …

May 2015

Ideas for Twittering better

When it comes to Twitter, things can get out of hand fast. Setting aside the hostile environment some people face when they participate in Twitter (which is setting aside a …

Hype curve superpositions

It seems, these days, that technologies can exist in multiple phases of the hype curve, simultaneously. Two data points I read this weekend: Node, which I personally place …

Raising all boats

It’s easy to complain about PHP. For instance, why didn’t they choose ☃ as their namespace resolution operator?! As a developer with lofty opinions, I’m not a big fan of PHP. To …

April 2015

Functions about nothing

The tricky thing about decomposing code into abstractions is you end up with “functions about nothing”. You’ve probably seen on of these: a method or function with really vague …

March 2015

Aliens through the eyes of boys

On screening Aliens for a slumber party of 11 year old boys: "I like the way this looks," one said. "It's futuristic but it's old school. It's almost steampunk." "This is like Team …

February 2015

Programming advice for a younger me

How to get better at programming without even programming: Accept, in your heart and mind, that the languages, libraries, and tools that you use to write programs may not be good …

Leadership, pick a size

Like fast food or coffee at Starbucks, maybe team leadership comes in three sizes. Extra large leadership. “This is what you’re doing. Make it happen, let me know when it’s done.” …

January 2015

Pick one novelty per project

My pal Brandon Hays and I are fond of noting that projects have a very limited tolerance for the risk of picking a novel technology or approach. Thus, they should intentionally …

When software loses its hair

Software’s Receding Hairline: This is interesting, because the mechanism of growing a comb-over applies to software development. A comb-over is the accumulation of years of …

New Pro Bowl selection explainer

Pro Bowl rosters selected by Michael Irvin and Cris Carter: Last year, the NFL did away with the AFC vs. NFC format and began using "captains" to oversee a fantasy draft to fill …

December 2014

Sometimes

Sometimes you go on a writing slump. Usually, just throwing something at the wall is how you undo that. Sometimes you notice that a lot of your writing can end up in platitudes and …

November 2014

18 months is a smelly interval

18 months is a dangerous window, when it comes to building a product. It’s far enough in the future that it seems like you could deliver an ambitious idea within a year and a half. …

Dining at the source code buffet

Let me start with a quote from wonderful person James Edward Gray II: One of my favorite techniques for really learning a new language is to read the core API like a good novel. …

October 2014

Megaprojects: megacool

Megaproject. It’s a cool word. It’s an even cooler list-of-pages on Wikipedia. I’ve only worked on projects limited to tens or dozens of people. The human and geographical scale of …

Is SNL trending up?

Has SNL been getting worse? Viewer ratings say, nope. If anything, it’s becoming more consistent and slightly better. Previously: how to understand SNL. Always: nostalgia bias. …

Sam Stephenson, understated and excellent

I’ve enjoyed Sam Stephenson’s work for a long time. Even before “sheesh”, the most polite dismantling of an over-privileged open source user, Sam’s work has been top notch. …

Vacation, disposable, and calm computing

1 Let me talk about vacation computing. The prime directive of vacation computing is that you should compute on vacation as little as possible. Neglect your email, abandon your …

Apple, Disney, and obsession

People in technology disproportionately like to comment on Apple’s products and business. Outside of technology, there are just as many folks who love to obsess over Disney’s theme …

Multiplication over management

When a developer becomes a manager, It’s not a promotion, it’s a career change: If you want to do your leadership job effectively, you will be exercising a vastly different set of …

September 2014

How to succeed at Rails by trying

I think most teams, probably 90% of them, should start and stick with Rails conventions. Intelligently apply design principles, watch out for coupling that’s not worthwhile, …

The wolf moves fast...

The Wolf: The Wolf moves fast because he or she is able to avoid the encumbering necessities of a group of people building at scale. This avoidance of most things process related …

How waterparks became a thing

The Men Who Built the Great American Waterpark, a roaring tale about the fellows who created the notion of a park for water attractions, from Wet and Wild to my personal favorite …

Well-tuned judgement

Lessons From A Lifetime Of Being A Programmer: Never stop learning, the technology steamroller is right behind you waiting for you to stop. I’ve taken this one seriously in the …

Commercialeering

Things you might hear in commercials/promotions for software and beer: “The first 96-calorie Pilsner” “Invented the smooth-pour top” “Next-generation build system” “The database …

Sportsball Deciphered (II)

It’s Thursday. Sadly enough, this year, that means there’s football on. We’re far from peak football, but it’s getting closer. Prepare yourself, and tell your kids of the days when …

Vegas, America/Starbuck's playground

I’m going to Vegas this weekend with my wife on a real vacation where we’re going to do as little as possible. Not run around Disney World all day, not drive up and down the …

Put. The phone. Down.

Nick Quaranto has Too many streams: There’s just too many things to pay attention to. I get questioned pretty frequently about this: how do you pay attention to nearly 1,500 people …

Conservation of complexity

You can’t fight the Law of conservation of complexity: The law of conservation of complexity in human–computer interaction states that every application has an inherent amount of …

Executables deciphered

What's inside a compiled Hello, World program? Julia Evans is on that. How to read an executable: Executable file formats are regular file formats that you can understand. I’ll …

Sportsball deciphered

It’s September and football season is upon us. Thus, I will soon annoy the snot out of people who say “sportsball” and generally ignore sports. Some will be able to mute me on …

Make systems from goals

Use systems to get where you’re going, not goals: My problem with goals is that they are limiting. Granted, if you focus on one particular goal, your odds of achieving it are …

August 2014

Thought + Quality

Oliver Reichenstein, Putting Thought Into Things: Quality — as in “fitness for purpose” — lives in the structure of a product. A lack of quality is a lack of structure, and a lack …

When Developers Design

I see lots of “should designers code?” articles and introductions to coding for designers. I see far less interest in the converse. So what’s a designer think? Cap Watkins, a …

How Rails fits into the front-end

Is Rails well positioned for where the web (on all devices) is going? Pal Dave Copeland asked that on Twitter. Turns out I had plenty of opinions! I buy into the notion that the …

A Ruby hash, Luxury Touring Edition

map.rb, quality software by Ara T. Howard: the awesome ruby container you've always wanted: a string/symbol indifferent ordered hash that works in all rubies m = Map.new m[:a] = 0 …

It's Always Been This Way...Huh?

I’ve been programming, as a full-time job, for more than ten years. I started doing Ruby, and Rails, nearly ten years ago. I’ve been at LivingSocial for a two and a half years now. …

May 2014

Microsoft's Orleans, a good ideas

I came up in the days when Microsoft and Linux were mortal enemies. Back when “Borg Bill Gates” was the icon for stories about MS on Slashdot. Back when Slashdot was the cutting …

Unpacking RailsConf 2014

RailsConf 2014 having wrapped up a few weeks ago, now seems like a good time to try and unpack what I saw, heard, and talked to others about. Bear in mind I skipped RailsConf 2013 …

March 2014

A chunk of paper

So I’m in rehearsals for a comedic musical. I love comedy. I’m very “meh” about musicals; I don’t know much about them. I like combining familiar and strange things, so it’s great …

Businesses can empathy too

Building an Ethical Business: Empathy is sometimes described as a personal trait, but it’s a skill, a skill that can be learned, that can be honed, and that can be instilled as a …

About version numbers

Conjecture: thinking about releasing software versions to users/partners/the public in dotted version numbers, e.g. “1.0, 2.1, 5.3” is a symptom of misshaped thinking. This line of …

Pancake publishing

I’m currently jazzed by the idea of full stack writing: Hi is what we call a “full stack” writing and publishing platform. Just what is a writing stack? Capture. Write. Publish. is …

February 2014

A tale of two Rails views

Why do I prefer to avoid referencing instance variables in view? I needed to clarify this personal principle to a teammate recently. It was one of those things I’ve internalized so …

January 2014

Rockets and startups

A venture-funded startup is sort of like a space program. Space programs don’t build airplanes that fly in flat, predictable, safe trajectories. They shouldn’t be concerned with …

Grow and cultivate

Adding new functionality to software is really exciting. I love poking around the edges of a system, figuring out what’s going on, and looking for that “obvious” place where the …

Currently provoking my thought

The worst NFL announcers, by the numbers (via Kottke). Obviously, this is my jam. To my surprise, Phil Simms didn’t come in last. Simms is a real conundrum; I think he’s great on …

Stop me if you've heard this one

Lately, I find myself stopping to make sure I haven’t previously written the thing I’m currently writing. For starters, I have a horrible method for moving things out of my “I …

December 2013

The joy of finishing

Then, the finish. Stain. Wipe. Wait. Stain. Wipe. Wait. Sand. Wipe. Stain. Wipe. Wait. Check. Seal. Wait. Sand. Wipe. Seal. Wait. Sand. Seal. Wait. And that's if everything goes …

Let the right something in

There will always be more somethings we want to do than we have time to do. Right? Maybe. A lot of the right somethings can add up to a great thing, even if the somethings aren't …

Not that kind of log

First, read all of this excellent distillation of distributed systems by Jay Kreps, The Log: What every software engineer should know about real-time data’s unifying abstraction. …

Dear Sync Diary

Brent Simmons is keeping a diary as he works through implementing sync for Vesper, an iOS note-taking app. Building this sort of thing isn’t easy; cf. it took Cultured Code …

Tony Romo media circuses over the years

2011: should not have thrown that pass 2012: should not have allowed that pass to be tipped and intercepted 2013: should not have allowed his back to become herniated 2014: should …

Toot a horn while you test

Someone make me a thing that plays horn samples as my test suite runs. Every time a test or assertion finishes, toot the horn sample. A fast suite would sound like Phil Spector’s …

Give me all your Blackbird stories

The Blackbird had outrun nearly 4,000 missiles, not once taking a scratch from enemy fire. Apparently its sister plane, the A-12, was not so lucky. I will always be a sucker for …

Aliens ate my program's state

So, Adam from a few years ago, you think you can build a distributed system? Designing a concurrent system, one that runs across multiple processors using shared memory threads, is …

NSHipster rainbow bar

My favorite design touch in the Gowalla apps was the rainbow bar. Small wonder that fellow Gowalla alumni Mattt Thompson included one on the landing page for his collection of …

Database rivalry in the Valley

A couple years ago, Google released an embeddedable key-value database called LevelDB. There was much rejoicing. Recently, Facebook released their fork of LevelDB, RocksDB. There’s …

The false bad guy

A pet peeve, in writing and thinking: introducing a false antagonist to create tension in a story. This is rampant in tech writing. Apple vs. Google, Ive vs. Forestall, Rails vs. …

November 2013

Object-oriented relativism

When a Method Can Do Nothing, Michael Feathers: If polymorphism means anything at all, it means that the object is in charge. We send it a message and it is up to it to decide what …

Designing technological empowerment

Applied Discovery: What future are we building, given that we play a role in such an important process? On the role designers play, what they do as careers progress, and how design …

Currently intriguing me

A channel, a sewer, Alabama, and a sunset walk into a bar: A Lua implementation of Go-style coroutines and channels, inspired by a channel implementation by Russ Cox, who is a …

Breakfast cannot wait, Prince

rd.io/x/QFWiK0E… Look, Prince, I’m not sure if I can agree with you regarding “Breakfast Can Wait”. Cereal? Toast? English Muffins? Sure, those things can wait. Migas? Pancakes? …

October 2013

A path through Enumerable

In Cocoa, you can poke inside object graphs (and more!) using dotted strings: NSDictionary *bestOfBeatles = @{@"paul": @{@"beatles": @"Hey Jude", @"solo": @"Jet"}}; NSString *solo …

Let me help you, computer DJ

I look forward to the day when machine learning can differentiate between “don’t play this song because it is awful” from “ don’t play this song because I’ve heard this it a …

Quit your desk

Things I’ve quit doing at my desk: Many writers maintain a private writing hut. The hut has one purpose: it’s the place they go to write. They don’t do anything else there. Once …

It's all made of maths

Math: humans mostly have a love/hate relationship with it. And yet, even if you’re challenged by the continuous maths like myself, it’s hard to argue that there isn’t something …

Coffee and other warmups

Making a cup of coffee sometimes helps me prepare for the process of solving puzzles with computers. Something about choosing AeroPress, French press, Chemex, or Clever; heating …

Off my grid

Courtney regularly drives an hour southwest of Austin, past Dripping Springs, to practice dog agility at a barn her friend rents. It's amazingly quiet once you get past the city, …

Reads for your weekends

That what I’ve read today and greatly enjoyed: 1491, on rethinking what America looked like before Europeans arrived. Has a delightful sci-fi twist: large parts of the Amazon …

Ignorance: pros and cons

We can often, but not always, choose to ignore those on the internet, on TV, and in our lives with different ideas, philosophies, or opinions about the world. Whether intentional …

September 2013

Draw your software

Better Code Design through Pictures: Looking at a picture like this reveals so much that is missing when only looking at Emacs or Vim. Classes that violate the Single …

Happy Birthday, Mr. The Boss!

How to celebrate the 64th birthday of Bruce Springsteen, “The Boss”, if you’re new to this curious American phenomenon: If you’re totally new to his music, start with Born to Run; …

Developers are weird with words

Naming things is hard. Witness things that developers have named and then struggle to explain because words and people are weird: TDD sounds like it's about testing, but it's …

Twice the podcast listening

I like to listen to podcasts and screencasts at two or three times the recorded speed. The application I use (Instacast) does this with pitch correction, a feature that’s probably …

August 2013

On music, mostly

You know how sometimes, everything is clicking and you've just got it? Some people call it flow. On Thursday, I was in a quiping flow. You may have witnessed it on Twitter. I …

20% of programming is duh

Sometimes I think 20% of programming is staring at a problem for thirty minutes and thinking there must be a really simple solution right in front of me and then, eureka and then, …

Oh, the complexities you'll know

Carried complexity is the bane of your application. When you add something to software, you incur the cost of doing the work plus the risk that the change will break something in …

Confidence despite evolving systems

Facing risk by instrumenting the hell out of it: Software development is a complex system existing as it does at the intersection of people, systems, good intentions, confused and …

Problems as ever-changing mazes

Problems, puzzles, startups as dynamic mazes: just running to the entrance of (say) the “movies/music/filesharing/P2P” maze or the “photosharing” maze without any sense for the …

Refactor for value over cleanliness

Practice Responsible Refactoring: When cleaning up the code enables you to work faster for a task you aren’t dreaming up but actually have at hand, refactoring is the way to go. …

Finishing software ain't easy

When I start work on a project, whether for personal or professional purposes, I have a sense that I need to devote myself to it. That I should figure out how to make it the best …

Improv perspectives on changing code

In the last improv class I took, we spent a lot of time focusing on four kinds of scenes that appear in improv with astonishing frequency: Straight/absurd: A character has a …

The simple problem inside the complex one

A sophisticated solution to a complex problem is fun to find. Its even fun when someone else finds the solution and thoroughly writes it down. Despite the thrill of recognition for …

Technology that's not a startup

Here’s a nice story on technology that isn’t startups: Unhappy truckers and other algorithmic problems. Logistic networks are a technology, just like smartphones. They make our …

July 2013

I don't have time to not teach

It wasn’t long ago that other developers not knowing the things I know was really frustrating. “How could they not know this?!” I thought that I didn’t have time nor should I be …

Overtime means your business is hurting

Overtime is Morphine, Ernie Miller: A developer who is truly concerned about the health of his or her company also must be careful to ensure the "patient" isn't developing an …

June 2013

Tools for software in the large

When software becomes successful, software often becomes large. More features, more support systems, more infrastructure, more people, etc. Therefore, software “in the large” seems …

Use what you got

How Shopify scales Rails was one of my favorite talks at Big Ruby. Therein, John Duff talks through what Shopify’s Rails stack looks like and why it works for them. What impressed …

When I complain instead of solve

Pet peeve 74: whenever I slip and focus on complaining about who and what instead of thinking about how and why to solve the problem. This is doubly frustrating because I enjoy …

May 2013

My Rite of Spring overfloweth

Today’s the hundredth anniversary of premier of hometown favorite Igor Stravinsky’s Rite of Spring. The National Public Radios are all over this. NPR Music and WQXR are collecting …

Entropy and anti-entropy on your codebase

Entropy and Evolution of a Codebase goes well with Your Application is on Fire: If you imagine the modules in a codebase like cells in a Game of Life automaton, you could see cells …

Sandi's Rules

One day, Sandi Metz was pressed by a team she was working with to produce a simple set of rules that would lead to better code quality. After consideration, she came up with the …

Your application is on fire

Six easy pieces on thinking about sustainable code Your application is on fire. Something is consuming it, a process converting fresh and shiny code into rigid, opaque legacy code. …

What makes longevity?

A joke for a late-night variety show monologue may only be funny for one day (e.g. a joke about a celebrity). A newspaper article may lose relevance in days or weeks. A TV show …

The downsides of live music

I am a giant music nerd. I listen to a ton of music, I think about music a lot, and I often seek out new music via Twitter and Rdio (🪦RIP). Besides a dislike for showtunes and …

Learning from a dropped refactoring

You don’t have to deploy every bit of code you write. In fact, it’s pretty healthy if you throw away some of the code you write before you even think about committing it. Case in …

April 2013

What I wish I'd known about rewrites

I can’t say enough good things about How to Survive a Ground-Up Rewrite Without Losing Your Sanity. Having been party to a few projects like this, a lot of this advice rings true …

Look up every once in a while!

Sometimes, I feel conditioned never to look beyond the first ten feet of the earth. Watch where you're going, don't run into things, avoid being eaten by bears. Modern life! I see …

Exemplary documentation: size and purpose

There’s a lot to say about programmer-focused software documentation. It’s more crucial than many developers think, so it is often neglected. Even when its not neglected, it’s …

The Third Shift

In the days of industrial labor, many factories ran three shifts per day. Three eight-hour shifts per day keeps a factory fully utilized and some business major’s spreadsheets …

A newsletter

So I did this thing where I wrote a newsletter. I’m going to do it again. The first iteration of this publication was a bit like a written late-night variety show. I wrote about …

Web design for busy coders

Here it is: I'm somewhere between horribly afraid and way-too-smart to seriously attempt front-end web work. Browsers are not the software whose bugs I am interested in knowing …

Hypermedia chicken, web browser egg

A lot of the hypermedia philosophy is centered around the idea that API clients should work a lot like web browsers and plain-old Hypertext Markup Language. They should follow …

How to understand Saturday Night Live

Saturday Night Live is a changing thing. It’s not new like it was in the seventies, it’s not a powerhouse like it was in the nineties, it may not be the training camp for NBC …

March 2013

Context is data to burst your bubbles

Designing with context: Context is a slippery topic that evades attempts to define it too tightly. Some definitions cover just the immediate surroundings of an interaction. But in …

Hyperthreading illustrated

I'm fond of saying hyperthreading is a lie. It's true though; a dual hyperthreaded core is nowhere near as awesome as a four real cores. That's more provocative than useful, so let …

Austin's startup vibe

It's different from other towns. What's the Difference between Austin and San Francisco?: Austin offers you more options, but greater variety means that, on the whole, Austinite’s …

Those Who Make, by hand

Those Who Make is a series about people who craft. Physical things, by hand, that don’t come out the same every time. I love watching people make things, and I doubly love hearing …

Thoughts on "Being a Senior Engineer"

On Being a Senior Engineer made the rounds late last year. Before I finished reading it, I felt it was pointing me down a path I hadn't realized was there but needed to go down. …

Feynman's mess of jiggling things

Richard Feynman, in the process of explaining rubber bands: [youtube www.youtube.com/watch The world is a dynamic mess of jiggling things, if you look at it right! This …

The Rite of March

INT. OFFICE: A team of enthusiastic young folk rush to get their “game changing” app ready for SXSW. A cacophony of phone calls, typing, and organizing swag. EXT. PATIO: A team of …

The double-tap

I use Alfred because I believe that my computer should be practically unusable to other people who try to use it. My goal is to put the things I use frequently close at hand. …

February 2013

Twitter's optimizations

Data point: a few of the infrastructure pieces out of Twitter have been implemented in low-level, heavy metal C and they’re optimizing on individual machines instead of …

Stella by Starlight

My latest weekend project, called "Stella by Starlight" after a Charles Mingus recording, was to build an analytics-style dashboard for looking at random metrics and events …

Don't isolate yourself

As a remote developer, it's tempting to create an environment where all you do is focus on churning out the code you're paid to write. Minimal email distractions, no noise, …

Adam’s Law of Redis

No matter how many times you tell everyone to not use KEYS, there remains a non-empty set of people who think they can use KEYS. You can’t use KEYS because it has to look at every …

January 2013

Thoughts on (Programming) Scala

On a whim, I flew through Programming Scala this weekend. I’ve had the book for a while, and actively tried to read it before. But this time, it stuck. All the ideas in Scala are …

Lessons from premature design

Lessons from Premature Abstractions Illustrated. I’ve run afoul of all three of these: Make sure you have someone on the team or externally available that will keep the critical, …

Semantics/Empathy

People argue about words all the time. In the past two weeks, I've participated and watched as nerds unproductively tried to convince each other that they are incorrectly using the …

Reflecting on Ruby releases

Ruby 1.8 brought us a couple changes that made many kinds of metaprogramming easier, plus a whole bunch of library additions that made Ruby feel more "grown up". Without seeking …

Design for test vs. design for API

How many design considerations are there in an almost trivial method? Let's look at two of them. Consider this code: def publish! self.update_attributes(created_at: Time.now) end …

Declaring coupling

A lot of discussions on software design end up focusing on dependencies and coupling. In short, hell is dependencies and the couplings it produces. It's a tricky problem because …

December 2012

Smiling rappers

The rap game doesn't have to be all posturing and diss tracks. We need more smiling rappers.

Why I'm down on hypermedia containers

In response to my hypermedia opinions, Mike Kelly said: These two seem to conflict: “In my opinion, abstract container formats aren’t useful.” and “Just use JSON”. People normally …

Hypermedia opinions

Through the Gowalla API, and now the Sifter API, I’ve worked with a couple systems one could reasonably call a hypermedia API. Since smart people are talking about them today, I …

How to Jerry Seinfeld

How Jerry Seinfeld writes a joke: [youtube www.youtube.com/watch Very different from how I approach it. But, I love knowing how much goes into his craft and the degree to which he …

Typing code examples, it's like biking

If you want to learn from a piece of code, you should type it out, instead of just reading it. The value of typing code: Typing code may be like riding a bicycle. I’m surprised how …

A decentralized web is hard

The Web We Lost, on the web of ad-hoc, bottom-up social networks before the pendulum swung fully towards centralized networks like MySpace, then Friendster, and now Facebook, …

Wherein I heart Code Climate

We’ve had Sifter’s repo hooked up to Code Climate for a couple months now and I’m really loving it. Garrett and I have both found it fun to kill duplication or refactor away …

Focus-mode considered harmful

I have, at times, been a practitioner of turning off notifications, superfluous applications, and other distracting computer softwares so I could "get things done". Sometimes it …

Ideas for living and creating differently

Try thinking about living and creating a little differently today. Advice for beginners: push through the shortcomings of your early work until your ability catches up with your …

Hit it, don't quit

How to be good at anything. In short: do it, get feedback, study how to improve, repeat. Something I’ve found, through crossfit, is that if I have any strong suit it’s not …

November 2012

Needs better words

How much easier would Haskell be if its vocabulary wasn’t so deeply rooted in abstract mathematics? How many more people would immediately understand Cassandra if it just adopted …

The qualities of better code

What is 'better' code? Dave Copeland on the qualities readable, changeable code exhibits. Of the attributes he identifies, I think number of paths (ABC complexity) is the most …

Gimme clarity

Wise pal Brain Bailey, along the way to writing about Woody Allen, perfectly articulates my challenge in thinking about how a team should work: The combination of clarity and …

The feel of a commented program

Opening a nicely documented source file is like opening a well-designed, nicely printed book. The main text is obvious, but the side-notes are there to help you when you aren’t …

Some productivity winners

Three things that are making me more productive lately: Pick a thing and do it. Whatever you want to accomplish today, do it immediately after you wake up. No social media, no …

Get in my ears, you dissonant chord

Petrushka chord. Two major chords played a half-tone apart. So, it sounds good, except it sounds grating. It's a motif throughout Stravinsky's ballet Petrouchka. Ergo, like …

RubyConf 2012 notes

My notes, in a somewhat sketch-esque fashion, from RubyConf 2012. I hope they’re useful and/or amusing to you! [gallery link=“file”]

Pop discovery/rediscovery

Programming is like pop culture in the sense that Blondie gets reinvented every decade and every decade client-server computing is rediscovered. But it’s also like pop culture in …

October 2012

Marginal pennies and dollars

The give a penny, take a penny jar is a logical conundrum. It is not, on its surface, a rational thing. I have no data, but I suspect very few people who put money into them are …

Ruthlessness and fighting for it

You Are Not Ruthless Enough: Being ruthless to yourself means every time you say “oh, I’ll just open up this internal bit over here…” use that moment to give yourself whatever …

Working with Ruby's GVL

Visualising the Ruby Global VM Lock. A nice commit-by-commit look at how extensions for Ruby 1.9 work with the GVL, what that looks like as tests run, and how to release the GVL to …

How Ruby IO is formed

Ruby's IO Buffering And You! Jesse Storimer screencasts his way through what happens when you read and write to files and sockets in Ruby, explaining the behavior and spelunking …

Follow the smells

It’s handy to know a lot about programming langauges, patterns, “best” practices, and anecdotal experience in applying those ideas. But premature application of ideas can lead to …

A handful of useful project mantras

You could do a lot worse than following the heuristics set out by this Software Architecture cheat sheet. The tip I need to follow more often is "Is There Another Way"; I …

Know a little hardware

Consider: Google's intricate and massive data center operations, wherein Google is not only leading the pack in building distributed computing and database infrastructure, but …

A kingdom of concerns

When doing object-oriented programming and following SOLID principles, there is sometimes a concern that classes will proliferate and you end up with a Kingdom of Nouns. I find it …

bitly's nsq has some good ideas

bitly/nsq: NSQ is a realtime message processing system designed to operate at bitly's scale, handling billions of messages per day. It promotes distributed and decentralized …

Invent the right thing

You have to invent the right thing. Some things you might invent: A solution to a problem. Nothing novel, just an answer for a question. Eg. any Rails/Django/etc. application. An …

A better shared space

Remote teams are hard. Not impossible hard, but running uphill hard. It’s hard because people are used to interacting face-to-face. Given the opportunity, they’ll interact with …

I got Clojure stacks

Here’s a Sunday afternoon hack. It’s a “stack” machine implemented in Clojure. I intended for it to be a stack machine, no airquotes, but I got it working and realized what I’d …

September 2012

Faster, computer program, kill kill!

Making code faster requires insight into the particulars of how computers work. Processor instructions, hardware behavior, data structures, concurrency; it’s a lot of black art. …

When to Sinatra, when to Rails

On Rails, Sinatra, and picking the right tool for the job. Pedro Belo, of Heroku fame, finds Rails is way better for pure-web apps and Sinatra is way better for pure-API apps. Most …

Common sense code checks

Etsy’s Static Analysis for PHP. This isn’t as complicated as you might think. While Facebook’s HipHop is used, and is quite sophisticated, a lot of this is just common sense. …

Designing for Concurrency

A lot is made about how difficult it is to write multi-threaded programs. No doubt, it is harder than writing a CRUD application or your own testing library. On the other hand, …

Cardinal sins

It is conceivable that a really good machine can learn our hash algorithm really well, but in the case of string hashing we still have to walk some memory to give us reasonable …

Three application growth stories

First you grow your application, then you grow your organization, and then you get down to the metal and eek out all the performance you can. Evolution of SoundCloud’s …

August 2012

Hello, you beautiful fixed-width font

Pitch. Not quite a programmer’s font, but holy cow is it gorgeous. I love the thought put into this type; the creator actually tried to recreate the artifacts of type created by …

One part mechanics, one part science

One black-and-white perspective on building software is that part of it is about mechanics and part of it is about science. The mechanics part is about wiring things up, composing …

Know a feedback loop

TDD is one way to create a feedback loop for building your application. Spiking code out and then stabilizing it is another: For most people, TDD is a mechanism for discovery and …

Constructive teamwork is made of empathy

We nerds are trained from an early age to argue on the internet, hone our logical skills, and engage with people based on data instead of empathy. twitter.com/gotascii/… It’s so …

Futures, Features, and the Enterprise-D

A future is a financial instrument (a thing you invest in) where you commit to paying a price today to receive something tomorrow. The price could go up or down tomorrow, but …

The test-driven astronaut

Don't Make Your Code "More Testable", make the design of your program better. Snappy test suites are all the vogue, but that misses the point of even writing tests: create a …

Simplicators for sanity

For those rainy days when integrating with a not-entirely sane system is getting you down: A Simplicator introduces a new seam into the system that did not exist when the service's …

Smelly obsessions

Get Rid of That Code Smell - Primitive Obsession: Think about it this way: would you use a string to represent a date? You could, right? Just create a string, let’s say …

July 2012

A romantic comedy: OO and FP

My magic ball predicts that OO and FP are going to take something of a “romantic comedy” path of evolution. Act I. OO and FP are introduced at dinner parties and they could not …

Rediscovery: OO and FP

I’ve noticed some of the sharpest developers I know are doing one or both of these things: Rediscovering object oriented design. Practicing evolving a design, often driven by the …

Three kinds of distributed systems

Little-d distributed systems: the accidental sort. You built a program, it ran on one server. Then you added a database, some caches, perhaps a job worker somewhere. Whoops, you …

Future lies

It’s easy to delude yourself when writing software. Do these tests really describe what the application does? Does the documentation really describe how the system works now? Is …

June 2012

Too eager to add code

I’m a little too eager to add code. If there’s a mess that needs refurbishing, rather than refactoring, I’m too quick to create a parallel world that is nice and tidy like I’d like …

Etsy's rules of distributed systems

Architecting for change. Complex systems and change: Distributed systems are inherently complex. The outcome of change in complex systems is hard to predict. The outcome of small, …

Thread safety in Rails, explained!

Read up on Thread and Queue and ready for more multi-threaded Ruby reading? Aaron Patterson has written up how the thread safe option works in Rails and some tradeoffs involved in …

Chronologic, a piece of software history

It’s long past time to call Chronologic a project at it’s end-of-life. About a year ago, it went into serious use as the storage system for social timelines in Gowalla. About six …

The Grinder

As teams grow and specialize, I’ve noticed people tend to take on characters that I see over and over. Archetypes that seem to go beyond one project and apply to each team I work …

AC/DC writes robust songs

AC/DC writes songs that are fundamentally very strong. They aren’t the most touching, artistically composed songs. But they’re very solid songs. They hold together well, you can …

They can't all be winners

My Tuesdays typically look like this: write/hack for my weblog, work, lunch, work, short run, and then hack with other Austin nerds at Houndstooth Coffee. As it happens, I did OK …

Convincing yourself you’re not done

Writer’s block gets all the attention. It robs the inspired and stunts the progress of those with a deadline to beat. It’s a starting problem. At some point, I learned all the …

May 2012

April 2012

Ruby anthropology with Hopper

Zach Holman is doing some interesting code anthropology on the Ruby community. Consider Aggressively Probing Ruby Projects: Hopper is a Sinatra app designed to pull down tens of …

A real coding workspace

Do you miss the ability to take a bunch of paper, books, and writing utensils and spread them out over a huge desk or table? Me too! Light Table is based on a very simple idea: we …

Cowboy dependencies

So you’ve written a cool open source library. It’s at the point where it’s useful. You’re pretty excited. Even better, it seems like something that might be useful at your day job. …

March 2012

A Presenter is a signal

When someone says “your view or API layer needs presenters”, it’s easy to get confused. Presenter has become wildcard jargon for a lot of different sorts of things: coordinators, …

Learn Unix the Jesse Storimer way

11 Resources for Learning Unix Programming: I tend to steer clear of the thick reference books and go instead for books that give me a look into how smart people think about …

How to approach a database-shaped problem

When it comes to caching and primary storage of an application’s data, developers are faced with a plethora of shiny tools. It’s easy to get caught up in how novel these tools are …

How I use vim splits

[vimeo www.vimeo.com/38571167 w=500&h=394] A five-minute exploration of how I use splits in vim to navigate between production or test code and how I move up and down through …

Tool agnosticism is good for you

When it comes to programming editors, frameworks, and languages, you’re likely to take one of three stances: marry, boff, or kill. There are tools that you want to use for the rest …

Rails 4, all about scaling down?

To some, Rails is getting big. It brings a lot of functionality to the table. This makes apps easier to get off the ground, especially if you aren’t an expert. But, as apps grow, …

February 2012

Write more manpages

Every program, library, framework, and application needs documentation of some sort; this much is uncontroversial. How much documentation, what kinds of documentation, and where to …

What kind of HTTP API is that?

An API Ontology: if you were curious about what the difference between an RPC, SOAP, REST, and Hypermedia API are, but were afraid to ask. In my opinion, this is not prescription; …

On rolling one's own metrics kit

On instrumenting Rails, custom aggregators, bespoke dashboards, and reinventing the wheel; 37signals documents their own metrics infrastructure. They’re doing some cool things …

Whither code review and pairing

Jesse Storimer has great thoughts on code review and pairing. You Should be Doing Formal Code Review: Let’s face it, developers are often overly confident in their work, and …

January 2012

The cost of jerks in social apps

Trolls, spammers, and people gaming social software are a giant pain in the ass. At best, they are an everyday reminder that people are sometimes jerks. At worst, they can warp the …

Hip-hop for nerds: "Otis"

(Ed. Herein, I attempt to break down a current favorite of mine, “Otis” by Jay-Z and Kanye West, in terms familiar and interesting to nerds, specifically of the nerd and/or comedy …

Make time for your projects

Stick it to the man. Wake up early and do your best work, for yourself. Waking Up at 5am to Code: At 5am I jump out of bed and code for two hours, then get ready for work. I do …

Represent dat API

Rails is missing an abstraction when it comes to building REST APIs, in my opinion. Requests route through controllers, controllers call models or services to obtain the right …

December 2011

When to Class.new

In response to Why metaprogram when you can program?, an astute reader asked for an example of when you would want to use Class.new in Ruby. It’s a rarely needed method, but really …

The year of change that was 2011

The year is winding down, and its time to reflect on the 2011 that was. The year took me into the dark abyss of the American housing market and back out the other end. Somehow I …

Four essential topics of 2011, in charts

The Year In 4 Charts: Planet Money does an excellent job collecting four economic charts (themselves chosen from three collections of best-of charts). I’m a dilettante as far as …

Making a little musical thing

After software development, music is probably the thing I know the most about. My brain is full of history, trivia, and a modest bit of practical knowledge on how to read notation …

A short routine for making awesome things

I’ve said all this stuff before, but I came across some nice writing that highlights people doing it. I’m repeating it because it’s important stuff. Step one, get on that grind. …

Quality in the inner loop

Quality in Craftsmanship: In software, this means that every piece of code and UI matters on its own, as it’s being crafted. Quality takes on more of a verb-like nature under this …

Why metaprogram when you can program?

When I sought to learn Ruby, it was for three reasons. I’d heard of this cool thing called blocks, and that they had a lot of great use cases. I read there was this thing called …

Changing legacy code, made less painful

Rescuing Legacy Code by Extracting Pure Functions. Come across strange, pre-existing code. Decide you need to change it. Follow the pattern described herein. Apply TDD afterwards. …

Cassandra at Gowalla

Over the past year, I’ve done a lot of work making Cassandra part of Gowalla’s multi-prong database strategy. I recently spoke at Austin on Rails on this topic, doing a sort of …

November 2011

Sleep is the best

Sleep deprivation is not a badge of honor: This is why I’ve always tried to get about 8 1/2 hours of sleep. That seems to be the best way for me to get access to peak mental …

Growing a culture

I previously noted that adding people to a team is tricky, doing so quickly doubly so. A nice discussion popped up around how to do so effectively. So, to cover the other side of …

The pitfalls of growing a team

Premature Ramp-up, Martin Fowler on the perils of building up a development team too quickly: loss of code cohesion, breakdown of communication, plus the business costs of …

A food/software change metaphor

Are You Changing the Menu or the Food? Incremental change, the food metaphor edition. It's about software and startups. But food too. Think "software" when he says "food". Just …

How do you devop?

I’m a sucker for good portmanteau. “Devops” is a precise, but not particularly rewarding concatenation of “development” and “operations”. What it lacks in sonic fun, it makes up in …

The Current and Future Ruby Platform

Here we are, in the waning months of 2011. Ruby and its ecosystem are a bit of an incumbent these days. It’s a really great language for a few domains. It’s got the legs to become …

October 2011

Your frienemy, the ORM

When modeling how our domain objects map to what is stored in a database, an object-relational mapper often comes into the picture. And then, the angst begins. Bad queries are …

August 2011

Relentless Shipping

Relentless Quality is a great piece. We should all strive to make really fantastic stuff. But I think there’s a nuance worth observing here: Sharpen the edges, polish the surface …

July 2011

The guy doing the typing makes the call

Everyone brings unique perspective to a team. Each person has learned from successes and failures. There is a spectrum of things that are highly valued and that are strongly …

Skip the hyperbole

Hyperbole is a tricky thing. In a joke, it works great. Its the foundation of a tall tale (TO BRASKY!). But in a conversation of ideas, it can backfire. The trick about humans is …

June 2011

Practical words on mocking

Practical Mock Advice is practical: Coordinator objects like controllers are driven into existence because you need to hook two areas of your application together. In Rails …

Locking and how did I get here?

I've got a bunch of browsers tabs open. This is unusual; I try to have zero open. Except right now. I'm digging into something. I'm spreading ephemeral papers around on my epemeral …

May 2011

Refactor to modules, for great good

Got a class or model that’s getting a little too fat? Refactor to Modules. I’ve done this a few times lately, and I’ve always liked the results. Easier to test, easier to …

ZeroMQ inproc implies one context

I’ve been tinkering with ZeroMQ a bit lately. Abstracting sockets like this is a great idea. However, the Ruby library, like sockets in general, is a bit light on guidance and the …

Ruby's roots in AWK

AWK-ward Ruby. One man Unix wrecking squad Ryan Tomayko reflects on aspects of Ruby that arguably grew from AWK more than Perl. Great archaeology, but also a good gateway drug to …

Humankind's genius turned upon itself

When We Tested Nuclear Bombs. An absolutely fantastic collection of photos from the nuclear test program. Beautiful to look at, terrifying to contemplate the ramifications in …

Burpess and other intense workouts

What’s the Best Exercise? But when pressed, he suggested one of the foundations of old-fashioned calisthenics: the burpee, in which you drop to the ground, kick your feet out …

April 2011

Don't complain, make things better

notes on “an empathetic plan”: Worse is when the the people doing the complaining also make software or web sites or iPhone applications themselves. As visible leaders of the web, …

Perfection isn't sustainable

Perfect vs. interesting: When an interesting person is momentarily not-interesting, I wait patiently. When a perfect organization, the boring one that's constantly using its …

Using Conway's Law for the power of good

Michael Feathers isn’t so quick to place negative connotations on Conway’s Law. Perhaps it’s not so much that organizations don’t communicate well, the traditional reading of …

Hell is other people's concurrency

The first rule of evented programming is, don’t block the event loop! Mathias Meyer’s great intro to Ruby’s EventMachine library. Non-blocking IO is so hot right now. But remember, …

Bloom, a language with time travel

Bloom, a language for disordered (whut!) distributed programming with powerful consistency analysis and concise, familiar syntax (the prototype is built on Ruby): Traditional …

The rules of the yak shave

Yak shaves. They’re great fun. Like most things, yak shaving is more fun when you have some rules to guide you away from the un-fun parts: always have a goal, know when you’re done …

Linux screenshot nostalgia

Anyone else remember uploading screenshots of their super awesome, tweaked out Linux hacker desktops? Sorry, I'm not running WindowMaker, Enlightenment, or Sawmill anymore. Besides …

The next step and the cleared canvas

Knowing the next step is a pretty good feeling. The uncertainty of where you should next place your foot is somewhere between unnerving and terrifying. But if you’ve got an idea of …

The joy of logs

Logs Are Streams, Not Files: But a better conceptual model is to treat logs as time-ordered streams: there is no beginning or end, but rather an ongoing, collated collection of …

I'm Corgi-internet famous

OCD: Obsessive Corgi Disorder, Kitty putting the moves on my man. Also on Men and their dogs. I’m corgi-internet famous! Photo by Courtney.

March 2011

Noel Rappin's Advice on TDD

Testing Advice in Eleven Steps. My favorite: At any given moment, the next test has some chance of costing you time in the short term. The problem is it’s nearly impossible to tell …

Organizing and decoding problems

My favorite sort of problem involves the interactions between individuals, groups of people, and mechanical rules generated by individuals and groups. Speculating on how the rules …

Workouts make focus and discipline

It is probably obvious I have something of a crush on working out. I am proud I have reached a point where being fit is part of my lifestyle and that I see more and more results. …

Driven to drawing monsters

From my notebook: I don't recall what I was working on the time, but it seems that the interaction between many Gowalla models loading from cache via a get class method and …

Clips from unfinished pieces

On the crux of America's challenges: Part of the American experiment is answering the question, "how can we best take advantage of abundance?" Beginning with manifest destiny and …

February 2011

Focus, momentum, and accomplishment

Lately, I’m a little fascinated by the interplay between focus, momentum, and accomplishment. Focus is the feeling of flow, the world around you fading away. Momentum is the …

Simple Ruby pleasures

I think I first discovered the joy of take and drop in my journeys through Haskell. But it appears that, since 2008 at least, we have had the pleasure of using them in Ruby too. …

January 2011

The political empathy gap

The structural problems in American political discourse are legion. Polarized interests, corporate and special interests, the news/hype cycle, and pundits who serve no real …

The ear is connected to the brain

Some measure their work in tomatoes. I measure mine in albums and songs. When it comes time to get stuff done, I match my ambitions to my energy level. Big, uncertain things when …

December 2010

Four odes to Amazon Prime

twitter.com/therealad… I have a somewhat irrational “thing” for Amazon Prime. So much so that I’m a little surprised that I have such an affinity for what is in some ways simply …

Groove failure and reacquisition

Into every creator’s life, a few non-creative events must fall. Sometimes its meetings, maybe it’s a bunch of business-related emails, or a bunch of support tasks have piled up and …

A language experiment writ large

For the past year, the Java ecosystem has seen interesting evolution. Java the language continues take its place as the new safety scissors of programming, but the pieces around it …

October 2010

Bundler, not as bad as they say

Of all the new moving parts in Rails 3, the one I see the most grousing over is Bundler. This is not surprising, as its a big part of how your application works and it's right up …

Language and brains, an update

Does Your Language Shape How You Think? An update on the current thinking around the Sapir-Whorf hypothesis, the one about language and the words therein shaping the thoughts you …

September 2010

Computers should do the boring bits

Future-proofing, Uniform Access, and Masquerades: Boring work should be a cardinal sin in programming: it indicates something that the computer should be doing but isn’t.

An ode to Hashie

I was building an API wrapper this weekend. As is common when writing these sorts of things, I found myself needing something that takes semi-structured data (hashes parsed from …

Examining software principles

There are too many good things to say about the Design Principles Behind Smalltalk. A few of my favorites: Scope: The design of a language for using computers must deal with …

July 2010

Making the complicated seem simple

Don Norman, Simplicity Is Not the Answer: We want devices that do a lot, but that do not confuse, do not lead to frustration. Ahah! This is not about simplicity: it is about …

Form: follow your influences

Now that I've sort of ranted about tinkering with software and how it is less important than writing, let's talk about form. I've found new energy in writing here of late. Part of …

Adam's guide to switching weblogs

Over the past few years of writing on this weblog, I can't tell you how many times I've convinced myself that now is the time to move my stuff to new software. Oh, the shiny and …

Michael Feathers on how code grows

Festering Code Bases and Budding Code Bases: Some teams produce what I call a festering code base. In a festering code base, the team changes the code primarily by adding code to …

Incremental deployment at GitHub

Over the past year, I've read a lot about how teams are deploying their software. I've known for a while that Google has the ability to roll out new code to a small percentage of …

June 2010

Breaking My Habits For Editing Programs

I’m a Unix guy, by upbringing. My first formative experiences in software development were on an early, Linux 1.x version of Debian. I’d used Windows, but always came back to …

Rails' Next Top Model

Of all the new and reimagined code in Rails 3, ActiveModel and ActiveRelation rank amongst what I find the most interesting. I’m excited that they potentially lower the bar to …

Make More Awesome

Over the past year, I’ve been trying to create more stuff, some of which I’d hope to turn out awesome. Largely this is an ongoing sort of thing. I try things, I learn a little, I …

May 2010

The art of making a useful todo list

I have a tenuous relationship with todo lists. Rather than helping me focus on getting stuff done, they usually only give me something to tinker with and feel better about having …

A Personal Journey in Editing Programs

Over the past year or so, I’ve spent a bit of time tinkering with text editors. It feels like I woke up one morning and was simply dissatisfied with what I was currently using. It …

April 2010

Who are we that make software?

We who spend all of our time in front of a computer involved in the production of software are often quick to pigeon-hole ourselves. You probably self-classify as a developer or …

Those who think with their fingers

In the past couple of years, I’ve discovered an interesting way to think about programming problems. I try to solve them while I’m away from the computer. Talking through a …

March 2010

Kindly cogs in unpleasant machines

Some of the most villified companies are poorly regarded because of the way they treat their own customers. Think about people complaining about AT&T’s service in New York City or …

A quick RVM rundown

(It so happens I’m presenting this at Dallas.rb tonight. Hopefully it can also be useful to those out in internetland too.) RVM gives you three things: an easy way to use multiple …

February 2010

The imperfection of our tools

I enjoy a well-crafted application. I place a high value on attention to detail, have opinions on what design elements make an application work, and try to empathize with the users …

Warning: politics

Embedded within the migraine that is American politics are some very interesting ideas. Economics, markets, ethics, freedom, equality, education, transportation, and security are …

January 2010

Goodbye, gutbombs

Last March my wife and I joined a gym, started working out with a trainer, started trying to eat better, and set out to improve our health. Amazingly, we’ve stuck with it (after …

December 2009

Give attribute_mapper a try

(For the impatient: skip directly to the `attribute_mapper` gem.) In the past couple months, I’ve worked on two different projects that needed something like an enumeration, but in …

Just For Fun

This year was my fourth RubyConf. I’ve always come away from RubyConf energized and inspired. But, I’ve yet to follow through on that in a way I found satisfying. I have a feeling …

November 2009

Curated Awesome, the 2nd

The awesome Samson and Delilah, “Emilioooooo!”, Belushi and a skinny tie, contemplating the important stuff, The Rule of Least Power, step into the cypher, and Molly.

October 2009

The Kindle's sweet spot

Given all the hubbub about Kindles, Nooks and their utility, I thought this bears repeating to a wider audience: The Kindle is great for books that are just a bag of words, but …

Testing declarative code

I’m a little conflicted about how and if one should write test code for declarative code. Let’s say I’m writing a MongoMapper document class. It might look something like this: …

Texas is its own dumb thing

Southern American English OK, here’s the deal. Wikipedia has it all wrong. Texas is not part of the South. Texas is its own unique thing. Sure we have dumbasses, but they are our …

Curated awesome, the 1st

A bumpy subway wall, loving things for their Unix-y qualities, Kurt Vonnegut looking dapper, the final movement of Dvorak’s Ninth Symphony (originally his fifth), and a music video …

Chance Encounter

Another meme-ish “film” by yours truly. This time, the idea is you do something in five seconds, plus a two second intro and a one second outro. Here’s what I came up with: This is …

September 2009

Dallas could get a pedestrian bridge

Trinity gift is $10 million for pedestrian bridge. Catering to pedestrians, in Dallas? Surely you jest! I’ll just sit here and quietly hope that the plans for an urban park around …

Ghostbusters then and now

What happens when you take scenes from Ghostbusters and see how New York used to look and how it looks today? Pretty awesome, actually. In two parts.

Birthing Born to Run

The birth of Born To Run. On the creation and evolution of the song and album. Great read for Bruce-o-philes.

Representing time in our programs

Time is the New Memory: The time problem is not easy to see in today's mainstream languages because there are no constructs that make time explicit. It is implicit in the system. …

Ain't talkin' 'bout the man

Here’s a fun game. “The Government”: Try something. Every time somebody complains about the evils or failings of “the government,” strike out “the government” and see what results. …

Polyglottin' your data

Polyglot persistence: I think that many of the NoSQL crowd either fail to either recognize, or to properly describe that their preferred databases don’t replace applications like …

Tons of FP fun

A programming language zoo, a week of FP heaven, rewriting PHP with Haskell and a game for kids of any age to learn the untyped lambda calculus. Did I ever mention it’s a good time …

iPod Spaceman

(With due apologies to the creators of New Math, the writers of 30 Rock and the lovely iPod people.)

Tracking your own context switches

Why I do Time Tracking At one point, I tracked every context switch during my work day. I kept a legal pad next to my mouse and I would write down the time whenever I switched …

On American political insanity

Still crazy after all these years: Politicians should tone down the rhetoric. Protesters should read some history before making Hitler comparisons. Talk-show hosts should stop …

August 2009

Blame the compiler

Remember when you first started programming? Those early days when you'd take some code out of a book or article, type it out, and then try to make it print silly things or draw …

Two cellphones

People with two cellphones worry me. (More six word stories. Also, an article as such in Wired.)

The Technology Behind Tag Better

I promised you the details on how we built Tag Better, so here we go. This is what I used to build the back-end bits. You’ll have to pester Chris or Alex to get the front-end …

Tag Better

Yesterday and today, I worked with Alex Bischoff and Chris Griego on a Rails Rumble project. In less than forty-eight hours, we set out to build a web application, using Ruby, from …

My Why Story

Chris Wanstrath: Now we can all stop obsessing about who we think he was and instead focus on who he actually was – a prolific and inspiring hacker. I met Why The Lucky Stiff for …

Fun

Cannonball Adderley: It's called "Fun". F-U-N, fun. That's something you can do, when everything is mellow. Here’s to mellow times. Seemed appropriate for a Friday.

The mystery of good art

The trick about good art is that it has some mystery, an unknown. The problem is that if you get too close to the art, you risk unraveling the mystery. If you deconstruct it, …

Testify

Two unrelated and great songs, one title. “Testify” by Parliament [youtube=[www.youtube.com/watch](http://www.youtube.com/watch?v=v-OZ-M2y0Ao&hl=en&fs=1&rel=0&hd=1]) “Testify” by …

Working from home, better

Tips for working alone: The other thing I’m doing is bringing back my practice of writing “daily pages”… ~750 words a day to myself, that sort of help me get everything out in the …

Gird your greyscales

Logan Hicks has some really great subterranean photography going on. (Via Infrastructurist) And if you like that, you’d probably also like some Russian submarines, their interiors, …

Getting to know your bookshelf

The Book Stalker - Rands figures you out by your bookshelf: Where’s your bookshelf? It’s this awkward moment whenever I first walk into your home. Where is it? Everyone has one. It …

Free Parking Is Not Free

Free Parking Isn’t Free. Turns out those parking lots, while sometimes handy, are actually pretty gnarly, if your goal is to build a nice place to live: Throughout the 1940s and …

Kill your menubar darlings

The Menubar Challenge - everybody, clear out your menubars! It’s one of my secret productivity weapons, I highly recommend it. Also, read everything on Minimal Mac; it’s the best. …

My setup

Shawn Blanc has been cataloging sweet Mac setups. Last week, he published a description of my own creative den. If you find this sort of thing as intriguing as I do, also check out …

Balmer =~ Tarkin

Steve Ballmer: Evacuate? In our moment of triumph? I think you overestimate their chances. OK, maybe that’s Grand Moff Tarkin. Either way, I’m considering this my birthday present …

Code re-use as technical debt

I have extremely mixed feelings about code re-use. I think it’s largely a red herring, never working out as well as developers would hope. After all, developers are like golfers; …

July 2009

rufus-tokyo goes 1.0.0

rufus-tokyo 1.0.0 - I’ve been tinkering with Tokyo Cabinet and Tyrant lately. It’s great stuff. Grab this gem and start tinkering!

Interviewing to seek values

Adam Wiggins, per usual, is on to something. Values: Sharing values is the most important part of effective collaboration. If you don’t have significant overlap on values between …

Infinite Jest and fanatics

Infinite Jest on patriotism, fanatics, love, attachments, and temples: ‘Your U.S.A. word for fanatic, “fanatic,” do they teach you it comes from the Latin for “temple”? It is …

Software development requires empathy

If You Want to Write Useful Software, You Have to Do Tech Support: It seems so obvious: if you want to develop software that’s useful to people, you’ve got to talk with them. But …

Instapaper is wonderful

I have loved Instapaper ever since I became aware of it. It fits perfectly into my workflow. There’s tons of stuff I want to read, but not just yet. Instapaper gives you a little …

Haskell modulo excess theory

My journey through Haskell is on something of a lull, but John Wiegley’s got you covered. He’s documented his own journey learning Haskell, and it’s very accessible. John starts …

June 2009

When to do test-driven development

I believe that writing code using testing[1] as a design activity yields long-term benefits that make my life easier. Though I’m a strong believer, I’ve struggled with TDD in the …

A slide in the workplace

The Red Bull headquarters in London has a slide going between floors. I want to go to there. Photo credit: Alexander K.

Meaningful work

Going to meaningful work: Just like being awake is more than just having your eyes open, going to work should be more than just being at a workplace trading time for money. It …

Breaking with tradition

For the like-minded aficionados of the non-traditional: A Redis implementation of Twitter, designed for learning about non-relational datastores and Clojure’s creator Rich Hickey …

The joy of enigmas

...thinking about an enigma. There it is before you—smiling, frowning, inviting, grand, mean, insipid, or savage, and always mute with an air of whispering, ‘Come and find out.’ — …

Poisonous people and genius programmers

Brian Fitzpatrick and Ben Collins-Sussman have done a couple great talks on probing the important social aspects of software development, especially in the open source arena. Open …

Meditations on golf

We’re just wrapping up that nice time of the year in Texas. Technically, we get two nice parts of the year: the one after "winter" and the one after SUMMER. It’s nice in that you …

Visualizing language trade-offs

Guillaume Marceau has done some excellent work crafting the data from the venerable Computer Language Benchmark Game into visualizations that quickly show the trade-offs of using …

How did SQL get so popular?

Many developers, especially of the younger generation, dislike relational databases and their business-partner, SQL. It is regarded by some as the new assembly language. With all …

May 2009

Shippin' ain't easy

Shippin’ web apps ain’t easy. The Contrast guys lay it out. Garrett Dimon shows what goes into an iteration on Sifter. My experience with Dash matches what these folks are saying: …

April 2009

Design: it's important

Via Konigi, David Malouf: Great design in the end will give us something to relate to, to feel connected with, and to reinforce our humanity. Tapping that right balance between …

Enjoy some Wu

Ooh, baby, I like it raww… - Some Wu-Tang Clan for you. I’ve been finding Yes Yes Y’all [sic] an excellent source of music that I otherwise wouldn’t come across.

Put your objects in space

Space-based Architecture - on building and scaling your system with a tuple space, the kissing cousin of the messaging queue. I didn’t know that tuple spaces are used much in …

Personal website patterns

I was thinking about the sorts of personal sites I’ve enjoyed on the web. They roughly fall into two sorts, roughly dividing “website”-ish websites from “weblog”-ish websites. h2. …

The State on DVD, finally

It would appear that, after long last, The State DVD is forthcoming. I cannot wait. The State and Daria were probably the two best works of original programming ever on MTV. (Via …

Three sides of language geekery

Ted Leung’s notes on the JVM Language Summit, Dynamic Language Summit and Lang.NET. Great reading for those interested in what makes programming languages tick.

Your Friday Jam

Here is your Friday Jam: The De La Soul Dugout. Quite good. See also: WEFUNK radio.

A console for any Ruby project

I’ve been finding this little snippet extremely useful lately: $ irb -Ilib -rmy_library If your Ruby app or library follows the idiom of requiring all the files for your app in a …

More harmful than harmful

We are lucky to live in a time when 99.9% of programmers will never have a legitimate argument for using GOTO (hi kernel programmers!). But in case you’re feeling nostalgic and/or …

When technical discussions get intense

Pro-tip: trying to unwind contentious technical discussions is a losing game. There are really multiple things going on: people discussing trade-offs in absolutes, personal …

March 2009

Think

The scene in The Blues Brothers where they are recruiting Matt “Guitar” Murphy is quite possibly my favorite of the movie. From the start of “Think” to the first “Freedom!” chorus, …

The economic dashboard

What’s the state of the economy? - a stunningly brilliant visualization of where the economy has been (lagging indicators) and where it’s going (leading indicators). The …

Decoupling newspapers

My wife works for the local newspaper (thankfully, in their less layoff-prone online division). So I’ve been wondering about this whole newspaper business collapse would work out. …

Underwater volcano go boom

I think one of the first things I decided I wanted to “be” when I was a wee lad was a volcanologist. I’d still love to go to an actual volcano, preferably active. Thusly, the …

Pattern matching in Ruby with Case

Pattern matching, ala Erlang or Haskell, is a language feature near and dear to my heart. Dean Wampler has a great explanation of how to use the Omnibus Concurrency Library to play …

The power of not knowing

Christian Neukirchen: It's a programmer's biggest strength when he knows what he doesn't need to know. And gaining (experience) in not knowing isn't as easy as it sounds.

Using Haskell for awesome

I’ve joked that Haskell is all about reading other people’s theses, but you can do practical things with it too. His quick explanation of monads is pretty good too.

Rubinius threads, for mere mortals

A no non-sense, non-academic introduction to how Rubinius’ threading is structured. Having read a few papers on VM implementation lately, this is refreshingly direct and …

This is no former-Parrot

Hey look! Parrot went 1.0. Parrot is an open source virtual machine aimed at making it easy for dynamic languages like Perl, Python, PHP and Ruby to target the same VM. I’m glad to …

On feeds: application posture

EventBox. It’s a great idea - roll all the social/distracting applications in your life into one app so you can close it when it comes time to focus. Yesterday, I decided to give …

Making the pretty docs

When you really need to generate nice technical documentation, you would be wise to walk in Assaf Arkin’s footsteps.

A few promising Ruby libraries

From the hall of promising Ruby libraries: an FFI binding to Lua, Ruby to Lua, a neat framework for building Twitter bots, TwiBot and some sugar over the Cascading library (which …

Congruous capitalism

Here’s some idealism for you: I would like to think that the future of human endeavors is congruity. There is a lot of emotional writing about rational topics. That emotion often …

February 2009

Awesome yak shaves

I was sharing some nefarious plans with Dave Thomas yesterday at the DFW PragProg lunch. He later tipped me off to “tinyrb”:code.macournoyer.com/tinyrb/, which is awesome. It’s a …

On news: The Economist

At the height of the DeLay/Rove movement, I became very disenchanted with news and politics. The propaganda, the lack of reason and the generally grim outlook were causing me too …

What I'm Thinking

Last night at Cohabitat, we did some lightning talks. The prompt was “What I’m Thinking”. I decided to take a cross-section of topics I’ve been immersing myself in lately. And of …

Eye candy for everyone

Scaling and scale models. So much great imagery here, you’re just going to have to click the link and check it out. Sculpture not your thing? Try Round trip with Endeavor, the …

January 2009

Developing fluidly

Here’s a raw idea I’m playing with in my head: Agile development is great. But, if your team doesn’t map well to it, steal ideas from agile relentlessly. You want a fluid …

Classy Web Development with Sinatra

An admission: I didn’t really do as many awesome things during the Bush administration that I would have liked to. So, now that we have a new president, I’m going to start off …

Great Nike ad

Beethoven’s Ninth and skippy video? You’ve got my attention. Nike - The Five from 13thWitness™ on Vimeo.

How you do what you does

Alex Payne has an idiomatic and wonderful way of sharing the interesting parts of his workflow through writing. Bet you can’t read just one. By far, I’ve found al3x’s Rules for …

On news: beginnings

I first started trying to figure out the world, and especially politics, after September 11th. Before that, it was a topic of tangential concern. Afterwards, of course, it seemed …

Thor doing his thing

My wife doing the canine agility: [youtube=[www.youtube.com/watch](http://www.youtube.com/watch?v=shv6LtVNpKo&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999]) Go Thor!

More monads

“While we’re talking about monads”:therealadam.com/archive/2… you should read into the compelling argument that jQuery is, in fact, a DOM monad. It’ll set your mind straight. Also, …

DataMapper + Factory Girl

I’ve been toying with “Factory Girl”:www.thoughtbot.com/projects/… lately. The code I’m currently working on needs to generate lots of data before tests run and Factory Girl is …

Compare and contrast

Compare. “Suburbs built on top of military/industrial complexes”:infranetlab.org/blog/2009… - intriguing yet awful. Quirky and cute - “people re-enacting Far Side …

On Feeds: Tactics

Ask enough people what feeds they read and you will quickly hear “too many” and “I suffer from information overload.” I’ve been there too; at one time I subscribed to more than …

Monads + Ruby = crazy

Guaranteed to boil your brain: do notation in Ruby. You got your monads in my Ruby! He uses ParseTree and Ruby2Ruby to rewrite your code. In other words: heavy. I’d love to point …

On Feeds: My History

Ted Leung recently noted his “blog-aversary”:www.sauria.com/blog/2009… This reminded me that I’ve been reading feeds for 6-7 years. Shifting from reading centralized media like …

Comicus

“Matt McCray’s”:www.mattmccray.com Comicus is a CMS for “web”:www.zoodotcom.com “comics”:www.lilmonstas.com/. You may know Matt better for his excellent “CMS-in-a-Rails-plugin …

Generative Van Halen

I saw this last week (really!), but it appears the “blogger embargo” was broken on Sunday, so here goes. “Microsoft Research released an app”:research.microsoft.com/en-us/um/… that …

Vast social abstractions

We are surrounded by huge institutions we can never penetrate: the City, the banking system, political and advertising conglomerates, vast entertainment empires. They've made …

Regarding the 2009 NFL playoffs

The announcers of the Pittsburgh/San Diego game went on and on about what good condition the field was in. I watched the game largely because there was snow on the ground. I wanted …

I found more awesome on the web

Via Tinker It Now!, I ended up at Live Control of Open Source Animation in Animata. Therein, real-time 2.5D animation is controlled via a likeness of Mickey Mouse laden with …

Guidelines for a life well-lived

Allow me to emphasize that 1001 rules for my unborn son is the best weblog I’ve seen in a long time. I read the entirety of the archives last night and this afternoon. Though I’ve …

Close tabs and remove icons relentlessly

Matt Lyon asks, “What’s the cure for tab-itis”? I’ll share the answer with everyone. Long term, develop a severe aversion to too many tabs. Short term, burn it to the ground. If …

Birdland, Forgetting, Libertarianism, Hoboken

Hello, 2009! Let’s try a slightly different format. Starting it out with ““Birdland” by Weather Report”:www.youtube.com/watch can’t hurt. Shawn Blanc says “the best todo software …

December 2008

Ogres and APIs

Bringing Merb’s provides/display into Rails 3: The symmetry relates to another point in API design that I've been interested in lately: progressive expansion. There should be a …

Whither desktop or web

Lately, I’m finding myself replacing free web-apps with desktop software or commercial web-apps. Some notes on that evolving philosophy herein… Web applications make the most sense …

Change it up

Do something new every three years: I was thinking about the three-year rule while reading about Malcolm Gladwell's observation that it takes 10,000 hours to become truly expert at …

The absurdity of X, Y, R, G and B

The Frustrating Magical Aspect - why the lucky stiff’s great take on the absurdity of the tools we use to put interesting shapes and colors on our screens. Here’s to hoping for …

The Creative Big Bang

That John Gruber, he's good with the words. From Bang: Consider the Big Bang. One moment there was nothing, except for everything condensed into a single infinitely dense point. …

People are making cool stuff

This morning I followed a link that _why shared with us, a lo-fi guitar pedal built around an Arduiono. Kyle McDonald made said pedal; he also made I Eat Beats, a drum machine …

I am going to call Ghostbusters

At the risk of rambling too much about games: DO WANT. [youtube=[www.youtube.com/watch](http://www.youtube.com/watch?v=dD7nw_L4W5M&hl=en&fs=1]) The Ghostbusters video game for the …

Beautifully static

Game trailers are frequently a montage of confusing montage. This trailer stands in stark contrast to the standard: …

November 2008

Gentlemen's Agreements

BMW and Mercedes produce cars in direct competition. Further, everyone else in the auto industry likes to use them as benchmarks. Read a car magazine and count the superlatives …

My notes from RubyConf 2008

This year at RubyConf, I decided to go analog and take hand-written notes. (Someone did this for another conference but I can’t find the link.) I hope you find them amusing and/or …

Dallas' multitudes

The Dallas Myth, Again quotes Molly Ivins: There is a black Dallas, there is a Chicano Dallas, there is a Vietnamese Dallas, there is a gay Dallas, there is even a funky-Bohemian …

Gaming and design

Khoi Vinh’s thoughts on games and their relation to what I aspire to do on the web: ...I’m savvy enough at least to recognize that very interesting things are happening in that …

Modernism in sheds

Prefab Sheds - Modernism in Miniature. Cool looking stuff, and its promising that people are considering better use of their existing space instead of just seeking more space. Now, …

Bruce Springsteen in a nutshell

“Light Of Day”: Things can't get any worse, they gotta get better It’s the deep sadness of his songs, surrounded by undying optimism, that keeps me coming back every time.

One Velociraptor Per Child

The One Velociraptor Per Child project: The project's origins go back more than four decades to the early days of paleontology, when most dinosaurs were still the size of …

Applying CSS

Why Programmers Suck at CSS - a great primer on how to get from mechanical knowledge of how CSS works to actually using it to make nice things.

Getting Around

In the same ilk as Garret Murray’s My Day, Yesterday pool, I propose you make a video of the essential transportation experience in your town. 90 seconds on getting from one place …

October 2008

Stupid Struct Tricks

All About Struct - there’s always more to learn about @Struct@, unless you’re James Edward Gray. Useful and illuminating for all shades of Ruby developers.

Stream of curiosity

Questions going through my head right now: Why is “The Men All Pause” seven minutes long? What was the point of that “heavy breathing” break? Was it really necessary to have six …

Learn You a Haskell

Learn You a Haskell for Great Good! - if you learned Ruby via The Poignant Guide, you’ll like this. Plus, Haskell does cool stuff to your brain.

Garrett's life, yesterday

My Day, Yesterday - a glimpse into the world of Garrett Murray. Best ninety seconds of video I’ve seen all week. If you like it and/or my style of humor, you’ll like his Qwick …

Launch the missiles!

The A-Z of Programming Languages: Haskell - a great interview with the awesome Simon Peyton-Jones on Haskell. I love his use of the “launch the missiles!” metaphor for thinking …

JBox2D equals fun

JBox2D is a port of a C++ physics engine to Java. Being Java means you can use it in Processing. Being Processing means you can use it for fun. And the demos, behold, they are fun!

Mining my Git repositories

Since I started using Git, I’ve been finding myself creating tons of repositories. Anything I think might someday prove interesting or that I work on for more than a few minutes, I …

September 2008

Rich Kilmer speaketh

Ruby’s Best Feature? Rich Kilmer is one of those uncanny developers who can crank out orders of magnitude more good code than your average developer. When he speaks, I always …

Awesome writing

[youtube=[www.youtube.com/watch](http://www.youtube.com/watch?v=Ky5p-L_m6BQ&hl=en&fs=1]) I want to take that video behind the middle school and get it pregnant.

You need more Lyle Lovett

Lyle Lovett is quite possibly one of Texas’ finest exports. If you’re not hip then you’re missing out. Heck, I was missing out; consider a couple of his appearances on the Johnny …

Our trip to Germany in pictures

Here are four of my favorite pictures from our trip to Germany: From top to bottom we’ve got the cool elevator at BMW Welt with glass doors, an old building in Munich with rather …

Vector Prime

Vector Prime. Yeah, I’m that big of a Star Wars nerds, I read these little novels when I need a break from heavier stuff. This one isn’t as good as any in the Thrawn trilogy, but …

I Heart Complexity

Like I said, I think the market for simple applications is probably saturated and now is the time for Ruby and Rails to go up-market and tackle bigger problems. We’re well equipped …

Pretty Parallax

jParallax - a JavaScript gizmo for composing images using a parallax effect. In other words, insanely cool.

Freakonomics

Freakonomics. Its not about economics in the dry, dismal sense that I remember from college. This is more about counterintuitive turns of logic, data showing causations that no one …

August 2008

RailsConf Europe, here I come

RailsConf Europe is next week. I’m so there! I’m giving a talk on complexity and how I heart it. Ruby, and Rails in particular, started out with a very strong statement against …

Guns, Germs and Steel

Guns, Germs and Steel is one of those essential books that makes more sense of the world. Specifically, it address in rational terms, how it came to be that the modern world is …

"with" for Ruby

Use with caution: That said, @with@ is discouraged in JavaScript. If you can, its better to have methods return @self@ so you can chain like so: …

Last.fm's shame aggregator

Most Unwanted Scrobbles - Last.fm aggregates the tracks and artists that people don’t want the internet-at-large to know they listen to. Britney Spears appears twice in the top …

Domain Driven Design

Designing software is a tricky thing. It’s tempting to front-load it on a project. That won’t work because the start of a project is when you know the least about it. So some folks …

Io's intriguing design

I didn’t manage to touch on this in What Has Ruby Done For You Lately, but Io is a really impressive language. Mostly in the minimal number of concepts one needs to grasp in order …

Catch up with 30 Rock

OK, here’s the deal. If you’re not watching 30 Rock, you’re not watching the best show on TV. There I said it. Fortunately, you’ve got time to catch up; the show doesn’t come back …

Google Calendar + iCal + CalDAV = happy

Google Calendar CalDAV support - instructions for setting up Google Calendar accounts with iCal. Makes Google Calendar a lot more useful to me. Conversely, CalDAV accounts don’t …

Sync your TaskPapers

I’m a fan of TaskPaper, the todo-list app that makes sense and doesn’t throw huge amounts of UI at me. Ergo, I’m pleased to see a Ruby library for syncing your TaskPaper documents …

Interview with David Flanagan

Last week I interviewed the author of The Ruby Programming Langauge, David Flanagan. We posted the first part of it today - Five Questions with David Flanagan, Part 1. The second …

Refactoring to more code

Refactor my code is a neat site where you can post your code and watch others refactor it. I saw an interesting bit of code whiz past and thought I’d take a crack at it. Removing …

Program is information.

Its retro, its cool. It’ll come in handy when I need slides on the sameness of code and data in good programming languages. Via Square America.

Realtime challenges

beyond rest - if publishing data in realtime, XMPP, Comet and scaling HTTP services pique your interest, this thread is an excellent read. Lots of smart people disagreeing here.

Some Grieg

Please to enjoy, Grieg’s Piano Concerto in A minor. Brought to you by Artur Rubinstein and the London Symphony. …

Thor and agility

Watching Thor at his agility classes is really interesting. It’s fun to see the dogs constantly looking up to their person to see what jump or obstacle to go to next. Of course, …

July 2008

HTTP wrappers with ease

httparty looks really cool. It’s a little library for making writing tiny REST clients easier. From the examples (edited for length): class Twitter include HTTParty base_uri …

Community anti-patterns

You’ll have to pardon me for linking to Ted Leung twice in short order, but the man is good peoples. This time I’d like to draw your attention to his presentation from OSCON on …

Not your father's IDE

IDE’s and Dynamic Languages. Ted Leung’s got some useful and insightful things to say about dynamic languages, history, IDEs and the people who use them. While I still think many …

Golf fail

My golf game is hurting these days. Since I’ve become so familiar with my shots drifting off to the right, I figured I’d finally figure out the correct term for these sorts of …

Failings of the expert's mind

Why Analytical Applications Fail. Ostensibly, this article is about analytics applications that expect users to know exactly what they want before they start. But to me, the …

Practical language kleptomania

Introducing Functor - another library for implementing multiple dispatch/pattern matching in Ruby. This is a great example of what I talked about at OSCON: stealing ideas and …

git.repo.revs.each(...)

Git Iterator - a neat little gizmo for running code against every revision in your Git repository. Yielded this chart showing the growth of the Rails code.

What Has Ruby Done For You Lately?

When I go to speak about Ruby at non-Ruby groups, my go-to schtick is only mildly subversive. Sure, I tell them that Ruby is a fantastic language that will make them a better …

Manipulating windows from afar

h2. Adam’s 9th Law Of Presenting When you connect the projector to your laptop, the menubar and windows you want to manipulate will always appear on the giant screen behind you, …

More modules, please

Jay Fields’ Thoughts: Ruby: Underuse of Modules. Modules are your best friend, ya’ll. Use ’em.

June 2008

You say simple, I say simple

The Simplest Thing That Could Possibly Work: At first the developer said "this is where we're going to disagree on the simplest thing that could possibly work." He argued that we …

Three new rules on golf

Yesterday I decided to go off and play a little golf. Somehow, I had the most awesomest round of golf in my life. Luckily, Courtney came along and was there to document part of …

Why is oil so damn expensive?

Great article in The Economist on oil prices and what’s causing their painful rise. Double, double, oil and trouble | Economist.com: In the short run, neither demand for nor supply …

The Joy of Science

Put a Little Science in Your Life: Science is a way of life. Science is a perspective. Science is the process that takes us from confusion to understanding in a manner that’s …

Microsoft's spin on memcached

Microsoft cargo cults memcached! , via Simon Willison. Back when I worked in a semi-.NET shop, we needed to cache some pretty expensive operations somewhere. In memory would have …

Fake Rails environment

For testing some bits inside of ActiveRecord proper. module Rails def self.env o = Class.new do def production? true end end o.new end end Evil and fun. Uses Class.new, my favorite …

Oh, The Fail I've Known

Please to enjoy my presentation for RailsConf 2008: Oh, The Fail I’ve Known (PDF). | View | Upload your own Its on the things that aren’t normally covered in books and websites …

May 2008

See me at RailsConf '08

As hordes of Ruby and Rails folks begin the annual migration to Portland for RailsConf, I thought I’d let you know how to find me there this year: I’ll join my FiveRuns compatriots …

Frogged

My current foster-hussy-girlfriend. She’s kind of a spaz, but oh-so adorable. Doubly so when she’s “frogged out” as above.

More fu in your versions

Lazily Announcing version_fu - an update of Rick Olson’s acts_as_versioned that works with dirty attributes. Jordan McKible’s plugin is nascent, but since I have a soft spot in my …

Info viz with JavaScript

Massive kudos to John Resig for his JavaScript Processing port. Take this plus the new-to-me JavaScript Information Visualization Toolkit, and it seems likely that data on the web …

Changing git submodule URLs

Pro-tip: if you’re using submodules with Git to manage dependencies (say Rails plugins), you can get yourself into trouble. Like half-a-day of wasted trouble. The rub comes when …

Ruby for non-Rubyists

Yesterday I spoke to a pleasant mix of Java, .NET, Ruby, Python and PHP developers at Dallas TechFest. My goal when speaking to enthusiast crowds of this sort is to show the light …

Beautiful multi-line blocks in Ruby

“I need a new drug”:http://youtube.com/watch?v=MMSFX1Vb3xQ. One that won’t quit. One that will let me sensibly structure the use of blocks in Ruby such that they can run across …

April 2008

Halo Photography

Joshuadamon’s Halotography is utterly amazing: I’m really impressed with what he’s done with some clever camera manipulation and probably some Photoshop loving. All Halo fans …

Can I send you a message?

@Object#send@ - the joy of Rubyists and the scourge of those who would write refactoring tools. Let’s talk about it. I recently ended up writing some code that would have proven …

Some language twins teach each other

SNL Transcripts: Luke Perry: 02/06/93: Weekend Update with Kevin Nealon: That wasn't English, Keith! I mean, you're talking in Esperanto, or some language twins teach each other! I …

Exploratory hacking in TextMate

My first foray into screencasting: Textmate and xmp from Adam Keys on Vimeo. ‘Tis a little tutorial on a little bit of joy I use regularly. In TextMate, you can add xmp markers …

Reverse shoulder surfing

Rands In Repose: Saving Seconds: This is the presentation I want to see at the next conference: in a room full of people, anyone is welcome to walk up to the mic and plug their …

Aye, ye are a scum!

ScummC: A Scumm Compiler - write your own SCUMM games! Man this takes me back to the first two Monkey Island games. I still think the best examples of the point and click adventure …

Designing with type

Techniques for designing with type characters ~ Authentic Boredom: Typography and typefaces, without a doubt, are two of the most fascinating aspects of visual design. Great …

Interviewed by RubyLearning

Ruby Interview: Adam Keys of FiveRuns - Satish’s ability to find an absurd picture of me from five years ago is impressive. The interview focuses on ideas for buddying Rubyists. So …

I'll see you at Dallas TechFest

For the past couple of months I’ve been -procrastinating- helping to organize the Ruby track for the Dallas TechFest Dallas TechFest. Its is a language and technology agnostic …

Dean Allen on LOST

Dean Allen on LOST: It’s crap. Utter, arbitrary crap. They make it up as they go along. I’m not judging, but he could prove correct. Oddly enough I found this on his colophon page. …

Save it for your iVillage blog

I started playing Halo 3 again this week. I am quite rusty at it now - I think I regressed while others greatly advanced. But, that’s a digression. So I dropped into matchmaking on …

Rails Scenarios

Rails Scenarios - a sane way to specify really complex fixtures in Rails. Lets you write classes to specify data and helpers to operate on that data. There’s a sane way to compose …

Ballmen for Half Life 2

Ballmen Mod - a Half Life 2 mod where you can walk on walls and do all sorts of insane jumping due to weird gravity. Please tell me someone is making a Möbius strip map for this …

Corrupted by cosmic rays

ACID Databases: Fact and Fiction "A final note: There are other things that can go wrong, such as the disk not writing the data properly, a bit in memory being flipped by a cosmic …

LOL License

Boy, do I have a treat for you! And by “treat”, I mean embarrassing for me, hilarious for you. I found the license I got on my eighteenth birthday. Back in the day when I had long …

Say it quickly

Like everyone on the internet, I’m trying this whole Flickr video thing: 90 seconds is tough, but I love the idea. Chris Griego also had a great idea about the coolness of what’s …

Ryan Norbauer's got the right idea

Amy Hoy interviews Ryan Norbauer. This got my attention: "Simplification, unification, and reduction: these are the values of a great craftsperson, whether she's a tradesperson in …

IIS 7, IE 8, Iron Ruby MEGA-MIX

Not only do you get a Mega-MIX, I’ll try it in haiku form. Because, I’m feeling sassy. h2. On IIS Metabase to angle brackets; FastCGI now, Mongrel later on Decoded: they dropped …

Anders Hejlsberg is your new bicycle

Ding Ding Ding! We have a winner. Anders Hejlsberg is quite possibly the most clued-in designer of a mainstream programming language. The work that Anders Hejlsberg is doing with …

March 2008

Two Microsofts

Adactio: Journal—Viva I get the impression that there are really two Microsofts. There’s Ray Ozzie’s Microsoft. He’s a geek. He gets developers. He understands technology and …

Important ideas in ASP.NET MVC

In a former life, I worked in a Microsoft shop. So I’m not completely foreign to the Microsoft development tool landscape. At the time, C# and .NET were just slightly better than …

Open Source and Research at Microsoft

So, as I’ve alluded, I’m at Microsoft Intergalactic Headquarters this week for the Microsoft Technology Summit. The crux of the biscuit here is to invite people from communities …

Warm water makes the world go 'round

I’ve been doing “very detailed” research on the correlation between the time it takes to get hot water in public bathroom sinks and affluence. Signs point to a strong correlation …

My dog misses me

I’m at the Microsoft Technology Summit this week. Of course, Fred misses me (and I miss him!), so he’s sleeping on my pillow to keep it warm.

Tough CS illustrated

Greg, who I don’t think has formal CS training, has been making some great illustrations of some of the harder ideas in operating systems and concurrency. You can find more …

Fix Subversion conflicts

Got a case where you did a svn up and now you have a bunch of conflicts where you just want to overwrite your changes? I’ve got a little bit of Ruby cleverness for you: `svn …

February 2008

Cosmic Class.new

Reading the sources of test/spec inspired me to write a whole post about Class.new on the FiveRuns weblog. Unintentionally, I ended up channelling the style of Err The Blog in …

Teamwork anti-pattern: the edge case

Edge Cases are the Root of all Evil: "I've learned over the years that Edge Cases are not meant to be normal rationale or a casual reminder of some odd circumstance that you've …

I Like Rails 2

Tonight I gave a presentation on Rails 2 at Dallas.rb. Within, I note some of my favorite new things in Rails 2. Some things small, some things large. If you weren’t there, I …

Getting ahead on Git

Git. Soon, you’ll be using it, too. The definition of “soon” probably varies widely depending on what kind of person you are. But, no better time than now to start getting …

What good could come from MicroYahoo?

Microsoft Proposes Acquisition of Yahoo! for $31 per Share: REDMOND, Wash., Feb. 1 -- Microsoft Corp. today announced that it has made a proposal to the Yahoo! Inc. Board of …

January 2008

Whither Prototype or jQuery

The fact and fiction of why I choose Prototype over jQuery FACT: I like Prototype better. It fits the way I program perfectly. I like prototypes, I like programming in a somewhat …

Magnetic Ink

Processing might force one to use for loops, but this bit of generative art is beautiful. The music ain’t too shabby either.

Overcoming "browser tab seventy-three"

So now that NetNewsWire (NNW) is free, everyone should go download it and enjoy the love. It was the first app I ever bought for Mac, and it would seem I will only have to pay for …

Wheaties for programmers

Reflections of an Interface Designer: If you want remarkable results, feed a good programmer a diet of good design. Kevin’s right on here. I’ve been eating up design lately. But …

The barbarism of the for loop

I’ve been reading Programming Erlang and also casually looking into Haskell. So yesterday when I tinkered with Processing just a little bit, code like this just looks barbaric: …

December 2007

Bookstacks, photography and Star Wars

My bookshelf used to make me sad. So I finally dumped everything out and put things back in sane order. Of course, the magic of a cleanly organized bookshelf is all on Flickr. If …

Making sense of the world

I’ve noticed that when I’m walking about, sort of thinking idly, I find myself asking “How?” How was that building constructed? Why is that sewer there, and not somewhere else? OK, …

I want to look at your workspace

Briefly: I enjoy looking at the workspaces of others. One of the uniquely great things about going to conferences is shoulder-surfing other people to see how they work. So when I …

November 2007

Like the sky or the horizon?

Is your knowledge as a programmer tall like they sky or broad like the horizon? Greg Knauss says the programmer is like the sky, the manager is like the horizon. From Wide vs. …

Epic songs, pick a favorite

Prepare to be polled. For the purposes of this survey, we’ll take an “epic song” as one with musically distinct beginnings and ends. Said song shall not be a grouping of songs, …

The rise of the micro-app

A few weeks ago, Dan Cederholm, of Simple Bits fame, launched Foamee. Foamee lets you track to whom you owe beers. The twist? You manage your beer debt via Twitter. Its a small …

Anthropomorphized Gems

I couldn’t make it to RubyConf this year. Big frownie face. But, I’m not letting that stop me from imposing my sense of humor on the world. I present to you this year’s helping of …

October 2007

Rejiggering meets build versus buy

You’re here! That means I’ve managed to convert my site (back) over to WordPress. In the interest of making progress, I had to cut some corners. Currently, that manifests itself as …

Application Design with Garrett Dimon

Did you see Garrett Dimon’s slides from WebJam Session ‘07? You should! What impresses me is what Garrett’s accomplished in designing his issue tracker without much use of intense …

This memory isn't going to manage itself

On a whim, I took a shallow dive into the world of C this weekend. Its been a long time since I delved into C. I ended up spending nearly as much time tweaking a build script with …

Alex the cognitive parrot

Best obituary ever: A shame, then, that he is now, in the words of Monty Python, an ex-parrot. Alex The Parrot was adopted by a scientist who wasn’t, at the time, involved in …

Making the simple complex

Newton’s Third Law of Physics: All forces occur in pairs, and these two forces are equal in magnitude and opposite in direction. Newton’s Third Law, applied to software: To make …

Making sense of Fitts' Law

Particle Tree has an excellent article on Fitts’ Law. That’s the one tells designers to put the Dock and Start Menu on the edges of the screen. You definitely want to check it out, …

August 2007

Check your head

Paul Graham’s latest essay returns to ideas for which I first noticed him. Holding a Program in One’s Head asks what kind of intellectual exercise software development is (spoiler: …