Archive
Full Post List
Feb 20, 2025: 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 …
Feb 19, 2025: 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 …
Feb 14, 2025: Previously, an iron rule of Aretha Franklin: she could sing anything slower and better than anyone else. Update, a contender has entered the ring: …
Feb 13, 2025: 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 …
Feb 12, 2025: 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 …
Feb 5, 2025: Perfection often manifests as procrastination. But, we imagine our work with more perfection and grandeur than we could hope to achieve in reality. By …
Feb 4, 2025: 🔊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. …
Feb 4, 2025: 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 …
Feb 3, 2025: 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 …
Jan 29, 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 …
Jan 28, 2025: 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 …
Jan 23, 2025: 🧠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 …
Jan 22, 2025: 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 …
Jan 21, 2025: 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.) …
Jan 18, 2025: 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. …
Jan 9, 2025: 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 …
Jan 4, 2025: 📺 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 …
Jan 3, 2025: 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: …
Dec 31, 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 …
Dec 26, 2024: 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 …
Dec 20, 2024: 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 …
Dec 16, 2024: 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 …
Dec 12, 2024: Currently reading 🐙 Van Pelt, Remarkably Bright Creatures: on an octopus and a widow. A recommendation from my sister. I could go with more octopus …
Dec 6, 2024: The Trouble with Tools. Daniel Miller on notes, tasks, projects, and the overlapping tension of using software to manage them. It remains very true …
Nov 28, 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 …
Nov 27, 2024: 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 …
Nov 27, 2024: 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 …
Nov 25, 2024: Managers and coding: “it depends”, but go for it anyway 🌶️ Hot-take: if you’re a manager and find you1 miss building…then build2! On your time: mornings, weekends, national holidays. Whatever you want: …
Nov 20, 2024: We cannot truly know whether we are not at this moment sitting in a madhouse. (Georg Christoph Lichtenberg, The Waste Books) An astounding …
Nov 20, 2024: Granted, House Atreides did miss some milestones A couple of lessons on leadership in Herbert’s Dune: “Give as few orders as possible,” his father had told him…once…long ago. “Once you’ve given …
Nov 19, 2024: 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 …
Nov 18, 2024: Thinking a bit about essays because Room to think and Essays the size of cathedrals.
Nov 12, 2024: 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 …
Nov 9, 2024: 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 …
Nov 9, 2024: 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 …
Nov 6, 2024: Warm up your network before things get spooky As I write this, it’s late-2024 and the job market is tough for jobseekers. If one finds a job within three months, they’re considered lucky. Some …
Nov 4, 2024: 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 …
Nov 2, 2024: 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 …
Oct 31, 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, …
Oct 30, 2024: 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 …
Oct 21, 2024: 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 …
Oct 7, 2024: 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 …
Oct 4, 2024: 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 …
Oct 3, 2024: 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 …
Sep 30, 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 …
Sep 23, 2024: 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 …
Sep 22, 2024: 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, …
Sep 21, 2024: 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 …
Sep 20, 2024: 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 …
Sep 18, 2024: 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 …
Sep 13, 2024: 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 …
Sep 11, 2024: 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 …
Sep 9, 2024: 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 …
Sep 4, 2024: 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 …
Sep 3, 2024: 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 …
Aug 29, 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 …
Aug 27, 2024: 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 …
Aug 19, 2024: 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 …
Aug 17, 2024: 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 …
Aug 11, 2024: 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 …
Aug 5, 2024: 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 …
Jul 30, 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 …
Jul 29, 2024: 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 …
Jul 14, 2024: 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 …
Jul 13, 2024: 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 …
Jul 8, 2024: 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 …
Jul 6, 2024: Constraints generate style Steph Ango, Style is consistent constraint: “Collect constraints you enjoy. Unusual constraints make things more fun. You can always change them …
Jul 6, 2024: I switched notes apps (and back) (again) (and here’s what I learned) Yet again, the grass was not greener. I did learn a little more of simplicity-by-reduction. I asked myself, what Obsidian plugins or idioms am I using …
Jul 4, 2024: Corporate stories Should internal narratives, and the philosophies they generate, be among the guarded proprietary info within a company1? The stories the company tells …
Jun 27, 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 …
Jun 16, 2024: 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 …
Jun 14, 2024: 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 …
Jun 10, 2024: 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 …
May 27, 2024: Everyone wins: document whatever resists simplification The traditional prescription for keeping software easy to work with and amenable to change is “refactoring”. As we’re fixing bugs, adding features, …
May 26, 2024: Pastoral and modern approaches to attention Alan Jacobs, the attention cottage (Via Austin Kleon). I was not expecting to quote an attention metaphor involving the cardiovascular system and …
May 13, 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 …
May 11, 2024: 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 …
May 5, 2024: 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 …
May 1, 2024: 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 …
Apr 29, 2024: The leisure/disconnection/creation circuit Two prolific, internet-known travelers: Craig Mod: writer, walker, photographer, software-adjacent Brock Keen: photographer, car camper, …
Apr 27, 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 …
Apr 26, 2024: Personal websites are corner stores and neighborhood garages Is a personal blog or general-purpose more like a small shop or your local garage? They’re a bit of a calm business. A corner store with a friendly …
Apr 20, 2024: 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 …
Apr 11, 2024: 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 …
Apr 11, 2024: Juniors/seniors and incremental/vision development The ability to focus on one concern at a time is the mark of a senior developer. It takes experience to ignore other factors as noise. It takes time …
Apr 8, 2024: 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 …
Apr 6, 2024: 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 coffee shop? 🙃 …
Mar 31, 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 …
Mar 28, 2024: Avoid the ternary operator, I’m begging you Allow me a bit of a soapbox-rant. A spicy take, as we might say these days. You’re using the ternary operator wrong in Ruby, JavaScript, and almost …
Mar 26, 2024: Psuedoprose Taylor Troesh’s pseudoprose is a notation for writing/note-taking/thinking: How to Write in English, Spanish, whatever. Grammar is optional. …
Mar 20, 2024: 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 …
Mar 13, 2024: 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 …
Feb 29, 2024: “Yes, and” despite pessimistic engineering intuitions As engineers, we often face the consequences of shallow ideas embraced exuberantly. Despite those experiences, we should try to solve future problems …
Feb 28, 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 …
Feb 27, 2024: 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 …
Feb 24, 2024: Use fewer algorithmic feeds, mostly search-based Rob Walker via Austin Kleon, More search, less feed: I’ve been thinking a lot about the search box versus the feed,” he said. “Let’s take Twitter. …
Feb 19, 2024: Shell history is more valuable than shell customization Thorsten Ball, Which command did you run 1731 days ago?: Recipe for living a good life in the shell: Make sure it’s fast. Make sure its history can …
Feb 14, 2024: 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 …
Feb 13, 2024: 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, …
Feb 9, 2024: 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 …
Feb 2, 2024: 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 …
Jan 31, 2024: Sneaker-net’ing URLs to personal devices in the year 2024 Suppose you’re on a computer provisioned by a corporate IT department. They’ve restricted the software you can install. On principle, you’ve decided …
Jan 27, 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 …
Jan 25, 2024: 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 …
Jan 24, 2024: 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 …
Jan 23, 2024: 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 …
Jan 21, 2024: 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 …
Jan 18, 2024: You have more writing material than you think Jim Nielsen, Blogging and Composting: But as a byproduct of whatever you’re building you undoubtedly learned, observed, or cursed at something along …
Jan 13, 2024: 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, …
Jan 12, 2024: 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 …
Jan 12, 2024: 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.
Jan 10, 2024: 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 …
Jan 7, 2024: 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 …
Jan 7, 2024: 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. …
Jan 3, 2024: 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 …
Jan 2, 2024: Software makes you more productive, otherwise it’s (weird) art Rands in Repose, Seven Steps to Fixing Stalled To-Do Tasks: The never-ending question you must ask regarding whatever productivity system you’ve …
Jan 1, 2024: 2023 by the bullets Places visited Marfa, Texas Las Cruces, New Mexico Tucson, Arizona Disney World (Orlando, Florida) Disneyland (Anaheim, California) Prunedale, …
Dec 28, 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 …
Dec 18, 2023: 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 …
Dec 17, 2023: 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 …
Dec 15, 2023: 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 …
Dec 6, 2023: 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: …
Dec 4, 2023: 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. …
Dec 2, 2023: Sidestep process by sharing tangible progress Nat Bennett: Cannot overstate the value of regularly delivering working software. My single most effective software dev habit is to start with a …
Dec 1, 2023: 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 …
Nov 26, 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 …
Nov 25, 2023: 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 …
Nov 23, 2023: 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, …
Nov 17, 2023: You can’t read the whole internet, so put your energy into something that matters to you Oliver Burkeman, Treat your to-read pile like a river: To return to information overload: this means treating your “to read” pile like a river (a …
Nov 16, 2023: Smaller barriers to entry, bigger possibilities James Somer, A Coder Considers the Waning Days of the Craft | The New Yorker: In chess, which for decades now has been dominated by A.I., a player’s …
Nov 9, 2023: 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, …
Nov 4, 2023: Tooling has improved for ambitious software developers Tools for working on software in the large1 have improved a lot over since I last considered them ten years ago. IDEs are better, faster, and have …
Nov 1, 2023: 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 …
Oct 29, 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. …
Oct 26, 2023: 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 …
Oct 24, 2023: 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 …
Oct 24, 2023: 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 …
Oct 23, 2023: 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 …
Oct 13, 2023: The pace you’re reading is the right pace for you to read Ted Gioia, My Lifetime Reading Plan: IT’S OKAY TO READ SLOWLY I tell myself that, because I am not a fast reader. By his accounts, Gioia is a …
Oct 3, 2023: 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 …
Oct 2, 2023: 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 …
Sep 29, 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 …
Sep 28, 2023: The Textual framework Textual is a Rapid Application Development framework for Python, built by Textualize.io. Build sophisticated user interfaces with a simple Python …
Sep 23, 2023: 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 …
Sep 6, 2023: 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 …
Sep 4, 2023: Read papers, work tutorials, the learning will happen (Previously: Building a language model from scratch, from a tutorial) I started to get a little impatient in transcribing linear algebra code from the …
Sep 3, 2023: Building a language model from scratch, from a tutorial I’m working from Brian Kitano’s Llama from scratch (or how to implement a paper without crying). It’s very deep, so I probably won’t make it all the …
Aug 27, 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 …
Aug 27, 2023: Link directly to stations in Apple Music Generate Apple Music URLs via Apple Music Marketing Tools. Query by song, album, basically anything you can search in the Music.app sidebar. e.g. …
Aug 27, 2023: 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 …
Aug 23, 2023: I got better at estimating projects with intentional practice I like the idea of practicing1, in the musical or athletic sense, at professional skills to rapidly improve my performance and reduce my error rate. …
Aug 13, 2023: 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 or …
Aug 11, 2023: 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 creates new …
Aug 5, 2023: “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 …
Aug 4, 2023: 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 …
Aug 3, 2023: 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 pictured: …
Aug 2, 2023: Many parts of Disneyland are ridiculously easy to photograph. Particularly at dusk and night, and for folks (like me) with very rudimentary …
Aug 1, 2023: Wherein favorite franchises are done
Jul 31, 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 the …
Jul 30, 2023: 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 it (if …
Jul 22, 2023: Rauno Freiburg is building attention to design details Sitting down and just thinking hard does not magically produce valuable discoveries either. The essence of the word “interaction” implies a …
Jul 22, 2023: Work side-by-side; the more you can see, the more you can think Wisen Tanasa, Stop flipping around, put them side-by-side: This constant flipping is a self-inflicted cognitive load that reduces our productivity. …
Jul 20, 2023: Magic (AI) is what we don’t (yet) understand It reflects a sound understanding of the nature of AI — as an uncredited and formless modifier of other technologies. One whose presence is marked by …
Jul 15, 2023: Evenings at the Village Gate: John Coltrane (with Eric Dolphy). Five tracks, all excellent. Great bass playing by Reggie Workman and Art Davis. …
Jul 15, 2023: 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 …
Jul 15, 2023: This is nice. Once Over’s back patio annex is excellent.
Jul 8, 2023: 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 …
Jul 8, 2023: 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 …
Jul 8, 2023: 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 …
Jul 7, 2023: 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 …
Jul 4, 2023: 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 …
Jul 4, 2023: 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” …
Jul 4, 2023: 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 …
Jun 20, 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 …
Jun 18, 2023: Fruitless activities and hobbies are important! Anything you do that doesn’t make you money or help others better be something for your own damned amusement. – Austin Kleon
Jun 12, 2023: "If this isn’t nice, I don’t know what is" Kurt Vonnegut: And I urge you to please notice when you are happy, and exclaim or murmur or think at some point, ‘If this isn’t nice, I don’t know …
Jun 11, 2023: Monk and Robot: very enjoyable chill-future vibes Monk and Robot, A Psalm for the Wild-Built, Becky Chambers. An optimistic, non-space/techno sci-fi short novel. For me, it’s a welcome departure from …
Jun 9, 2023: 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 …
Jun 7, 2023: "It sounded like the kick drum was played by a drunk 3-year old, and I was like ‘Are you allowed to do that?’” WONKY – pudding.cool analyzes what makes J Dilla special. Particularly good if Dilla Time (previously) is still in your to-read list.
May 28, 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 …
May 26, 2023: TIL Jenny Lewis covered the Traveling Wilburys’ “Handle With Care”. 👍🏻
May 12, 2023: 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 …
May 10, 2023: 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 …
May 7, 2023: Improving when you can’t rinse and repeat You can’t practice at some things. Putting the cat back in the bag or the toothpaste back in the tube. The undoable, the things that you can’t unsay. …
Apr 26, 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 …
Apr 14, 2023: 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 …
Apr 1, 2023: Writing is a "do it, somehow, every day" game Whenever I find myself wishing I was posting more toots/articles/etc., I remind myself that the first step is to get words out of my head and onto the …
Mar 25, 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. Today is …
Mar 24, 2023: 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 …
Feb 23, 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 …
Feb 22, 2023: Write linked notes so you don’t have to remember Writing linked notes helps engineering makers and managers alike develop the super-powers of augmented memory and the appearance of effective …
Feb 14, 2023: 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 …
Feb 13, 2023: Natasha Lyonne is my generation’s Joe Pesci Poker Face is a gem. Do yourself a favor and start watching it[1]. I didn’t realize I needed a weekly murder mystery kind of show. But I did, in this …
Jan 31, 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: …
Jan 23, 2023: 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 …
Jan 21, 2023: Turn the pages. Read the code. Hear the words. “Turn every page. Never assume anything. Turn every goddamned page.” — Robert Caro, Working So goes the wisdom super-biographer Robert Caro received …
Jan 12, 2023: Remote work skills today look like being online in my youth Checking my emails frequently. Responding to a few group/direct-message chats at a time. Managing to write code, do math, or put together a …
Jan 10, 2023: Songs You Must Listen To At Maximum Safest Volume “Uptight”, Steve Wonder “Summertime Blues”, The Who “Wouldn’t It Be Nice”, The Beach Boys “Good Vibrations”, The Beach Boys “Jungleland”, Bruce …
Jan 8, 2023: 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 …
Jan 8, 2023: Albums You Should Listen To From Start To Finish Born to Run, Bruce Springsteen Blood Sugar Sex Magik, Red Hot Chili Peppers Pet Sounds, The Beach Boys The Blueprint, Jay-Z Songs in the Key of Life, …
Jan 7, 2023: 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 …
Jan 6, 2023: 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, …
Jan 4, 2023: 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”, …
Jan 2, 2023: 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”, …
Dec 31, 2022: Best David Lee Roth Mid-Song Banter “Unchained” “Everybody Wants Some” “Hot for Teacher”
Dec 29, 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 …
Dec 27, 2022: Classical music that is terribly edited in commercials “Also Sprach Zarathustra”, Richard Strauss, the opening “Symphony No. 6”, Beethoven the rest of the Western classical music canon
Dec 27, 2022: 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 …
Dec 21, 2022: Driverless Crocodile, Nostalgia Revisited: Nostalgia: a kind of homesickness for the past. Another way of putting it: the longing you will have in …
Dec 6, 2022: 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 …
Dec 1, 2022: 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, …
Nov 21, 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 …
Nov 15, 2022: 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 …
Nov 13, 2022: 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 …
Nov 10, 2022: Get professional value out of the next Twitter-like thing The Bird hit another inflection point on Friday. Now, many people, myself included, are looking at alternatives or actively decamping1. It was quite a …
Nov 9, 2022: Currently digging Listening: Afrobeat, e.g. Fela Kuti Best musical discovery this week: an excellent Apple Music playlist Shapeshifting, catalogs jazz fusion with …
Nov 7, 2022: 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, …
Nov 7, 2022: 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 …
Nov 6, 2022: 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 …
Oct 30, 2022: Certified Jams “Rhythm Nation”, Janet Jackson “Holding Out For a Hero”, Bonnie Tyler “Footloose”, Kenny Loggins “Partyman”, Prince
Oct 30, 2022: Top of Mind No. 1 Delegating: supporting teammates, delivering the right context, setting good outcomes/goals. Not delegating: managing/mitigating risk, resolving …
Oct 25, 2022: Programming excellence: a small matter of practice The key is deliberative practice: not just doing it again and again, but challenging yourself with a task that is just beyond your current ability, …
Oct 12, 2022: Currently digging Obsession: Ferraris - they’re at a whole other level. Listening: Ramsey Lewis, “Japanese ambient” Watching: Andor, She-Hulk Reading: Welcome to the …
Oct 8, 2022: Write more, coder inspiration, queryable coding environments Simon Willison on writing about one's work: A tip for writing more: expand your definition of completing a project (any project, no matter how small) …
Oct 2, 2022: 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 …
Sep 22, 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 …
Sep 13, 2022: Onboarding when you don't have access to the team Mitchell Hashimoto, Contributing to Complex Projects: The first step to understanding the internals of any project is to become a user of the project. …
Sep 7, 2022: 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 …
Aug 24, 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 …
Aug 16, 2022: Very handsome task tracking, offline and online About a year ago, I added a curiously pretentious object to my repertoire of productivity hacks. Analog is a) a paper productivity notation not unlike …
Jul 20, 2022: Dad rock is a beautiful tapestry Spooky dad rock - Trent Reznor Sad dad rock - the National, LCD Soundsystem Quirky dad rock - Cake Over-enthusiastic dad rock - Foo Fighters
Jul 18, 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 …
Jul 13, 2022: Notes from the Miles-verse Part 3 and final thoughts This ended up covering late Davis stuff. He’s basically inventing a new genre of jazz every album or two now. On the Corner: Davis invents funk/soul …
Jul 11, 2022: 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 …
May 16, 2022: Managers can code on whatever keeps them off the critical path Should engineering managers write code?: Spending time in meetings and working through complex team relationship issues leaves you feeling more …
May 15, 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 …
May 14, 2022: 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 …
Apr 21, 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 …
Apr 12, 2022: 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 …
Mar 29, 2022: Like caveats? Try writing about leading teams! It's tricky to write about leading software teams. Herein, reflections, not complaints, on pursuing higher software leadership truths. Many of which …
Feb 7, 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 …
Jan 31, 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 …
Jan 26, 2022: Beethoven’s symphonies, visualized and interpreted This is extremely my jam. Beethoven Symphonies Abstracted: To accompany the National Symphony Orchestra’s Beethoven & American Masters concert …
Jan 25, 2022: Cool things to do with your spaceship besides launching billionaires Fancy some near-term imagination on the opportunities the re-commercialization of space presents us? Yes, have some! Science upside for Starship: It …
Jan 24, 2022: 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 …
Dec 31, 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 …
Dec 29, 2021: The Beatles 🤝 Timeless leadership lessons The Economist, The Beatles and the art of teamwork: Take the role of Ringo, for example. When he is not actually playing, the band’s drummer spends …
Dec 28, 2021: 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 …
Nov 29, 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 …
Nov 28, 2021: Great albums: Beethoven Symphonies No. 7 & 8 These are my favorite of Beethoven’s “more approachable” symphonies. Symphony No. 9 is my favorite, but it requires a bit more context to take in. …
Nov 27, 2021: 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 …
Nov 9, 2021: The finest transit system you’ll ever find in a swamp Imagine all the busses, boats, monorails, trains, and gondolas in Disney World as (quasi-public) transit system. Then make a transit-style map of said …
Nov 8, 2021: 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 …
Nov 4, 2021: Very famous white guys from history who were not famous for, but known to bite pianos: Thomas Edison and Ludwig van Beethoven.
Nov 3, 2021: Offloading fast operations in Ruby by data structure Noteflakes: A Compositional Approach to Optimizing the Performance of Ruby Apps — the idea is to offload “inner-loop”-type operations from Ruby to …
Nov 2, 2021: 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 racing …
Nov 1, 2021: 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 …
Sep 13, 2021: Would you pay more for a noisy computer? Computers should expose their internal workings as a 6th sense, Matt Webb: I kinda miss the days when I could hear the hard drive of my computer. If …
Sep 11, 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 …
Aug 23, 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 …
Aug 5, 2021: 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 …
Jul 17, 2021: Following up on recommendations, for the forgetful It’s hard to land music, books, etc. recommendations from friends because timing is everything. The best case is a recommendation for a thing I didn’t …
Jul 8, 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, …
Jun 28, 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 …
Jun 12, 2021: “Rationalize and solve” doesn’t help someone who is venting If you’re doing the whole servant leadership thing, you’re gonna hear some people venting frustrations. Yihwan Kim, When a 1:1 turns into a vent …
Jun 5, 2021: 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. 🧠 …
Jun 1, 2021: 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 …
May 31, 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 …
May 8, 2021: 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 …
May 3, 2021: 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 …
May 1, 2021: 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 …
Apr 29, 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 …
Mar 27, 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 …
Mar 16, 2021: I never thought I'd think this much about wallpaper Daveed Diggs mentioned this awesome wallpaper, Bay Area Toile, in a tour of his house. Amongst the Bay Area celebrities whose likenesses it features …
Mar 10, 2021: Nina Simone, "Mississippi Goddam" 🤘 “This is a showtime, but the show hasn’t been written for it”
Mar 3, 2021: 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 …
Mar 3, 2021: A ripping yarn of hunting bugs in Destiny 2 The Case of the Missing Rewards - Luckily, in my many hours playing Destiny 2 I haven’t been bitten by this bug. Seeing behind the curtains of …
Mar 1, 2021: A good newsletter is an interesting conversation, not a monologue A good email newsletter is like the conversation you may have had over coffee with an interesting pal. A surprising topic, a novel theory, perhaps an …
Feb 21, 2021: Walking through the current customer acquisition hypothesis Paul Ford, The Secret, Essential Geography of the Office: Offices have their own mental maps. “Oh,” they say, “she’s moving to the 17th floor.” And …
Feb 21, 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.
Feb 20, 2021: Notes on the invention of networked video gaming QuakeWorld by John Carmack - the .plan notes (basically a Unix-local blog) written during the development of internet networking (not just LAN-local) …
Jan 29, 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 …
Jan 27, 2021: Hire based on outcomes instead of role descriptions The first time I hired someone, I wish I’d known it’s much better to think about the outcomes you’re hiring for. With that in mind, work backwards to …
Jan 20, 2021: 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 …
Jan 15, 2021: On repeat (which I rarely do, lately): Empyrean Isles by Herbie Hancock. Ron Carter, Freddie Hubbard, heck yeah.
Jan 10, 2021: The unreasonable effectiveness of checklists Checklists are a fantastic tool for thinking. This despite the existence of GTD, Kanban, PARA, and any number of ways to organize projects and figure …
Jan 9, 2021: 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. …
Dec 26, 2020: Sunset or Perlin noise?
Dec 14, 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 …
Nov 11, 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 …
Oct 29, 2020: Annabel Scheme, the New Golden Gate, and the misplaced metropolitan nostalgia Annabel Scheme and the Adventure of the New Golden Gate - a short story by Robin Sloan. Fantastic world building for a short story. Highly …
Oct 28, 2020: Product Hunt’s async work: everyone in their own swimlane How Product Hunt does asynchronous work: everyone in their own swimlane, unblocked. I really dig how they haven’t siloed work between …
Oct 19, 2020: Onboard new teammates with a 90-day plan My new boss had written up a 90-day plan for me the week before I started. This was perfect timing. I was already starting to put a bow on my current …
Oct 5, 2020: Use a tag line that means something I like that Ember's tagline is about ambition. It's easy to write an empty, temporary tagline. "Simple and good". "Only 4 kilobytes." It's harder to …
Oct 4, 2020: A slice of the old way
Sep 17, 2020: Use factories to create jumbo object graphs The entire time I’ve been using FactoryBot, several years at this point, I’ve used it one factory at a time: company = create(:company, name: "Acme, …
Sep 13, 2020: How to succeed at blogging by not even trying too hard “Perfect is the enemy of shipped” - Simon Willison 15 rules for blogging - Matt Webb Lists, emoji, and consistency are totally working for Duncan …
Sep 1, 2020: Austin Kleon’s list of perfect albums: #perfect31. Non-compilation albums, no songs worth skipping. Discovering these albums is one of my favorite …
Aug 30, 2020: Matt Webb on Asimov’s Foundation, and what’s unique about science fiction: Like any scientific endeavour it starts as a phenomenological exercise: …
Aug 22, 2020: 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 …
Aug 19, 2020: 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 …
Aug 17, 2020: iOS feature request: write-only interfaces & "smoke-break" Two iOS wishlist items: Any app that can send & receive messages (emails, direct messages, photos, chats, tweets, etc.) should require a narrow, …
Aug 12, 2020: 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 …
Aug 12, 2020: 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 …
Aug 10, 2020: 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 …
Aug 10, 2020: 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, …
Aug 8, 2020: Do Texans Dream of Summer Days?
Aug 6, 2020: 1992 Lancia Delta Integrale Martini 5 Evoluzione, Bring a Trailer fodder for the day. I can’t resist Martini Stripes. Or bright yellow, extremely 80s …
Aug 2, 2020: 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 …
Jul 29, 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 …
Jul 28, 2020: 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) …
Jul 28, 2020: 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 …
Jul 28, 2020: Bunkerpunk, short sci-fi from sudowriters, “a speculative fiction writing group”. My first foray into collected short science fiction. Recommended for …
Jul 27, 2020: 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 …
Jul 24, 2020: 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 …
Jul 24, 2020: 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 …
Jul 23, 2020: 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. …
Jul 22, 2020: 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 …
Jul 21, 2020: Tom Armitage » Props and Prototypes - props for movies are like prototypes for building technology. A hero’s lightsaber exists as different props for …
Jul 20, 2020: We had a real dinger of a sunset last night
Jul 20, 2020: 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 …
Jul 18, 2020: 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 …
Jul 18, 2020: 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 …
Jul 17, 2020: 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 …
Jul 17, 2020: 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 …
Jul 16, 2020: Writing Better, Type-safe Code with Sorbet. Hot take: gradual typing of large Rails codebases is going to make developers more productive than …
Jul 16, 2020: How “Starship Troopers” Aligns with Our Moment of American Defeat For most of “Starship Troopers,” humanity, in every possible facet, gets its ass …
Jul 15, 2020: 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 …
Jul 15, 2020: 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 …
Jul 14, 2020: Periodic reminder that we are worse off for letting folks run Kathy Sierra off the social parts of the internet.
Jul 13, 2020: 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 …
Jun 6, 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 …
Jun 1, 2020: The project management corollary to Hofstadter's Law Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law. Corollary: It always takes more …
May 31, 2020: Never give up on reading the whole internet
May 30, 2020: 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 …
May 29, 2020: 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 …
May 29, 2020: The possibility of software through the ages The gestalt of what's new in software and how it's changing our world has evolved over the decades. In the ‘90s, it was “don’t make me think!”. User …
May 27, 2020: 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 …
May 27, 2020: Dear Apple Music algorithms, The center item is not at all like the others.
May 27, 2020: 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, …
May 26, 2020: Bonus quote from Revenge of the Intuitive: Years ago I realized that the recording studio was becoming a musical instrument. I even lectured about …
May 25, 2020: The Revenge of the Intuitive and developer tools in 2020 The Revenge of the Intuitive - Brian Eno lamented the downsides of a modern, computer-based recording console. Twenty years ago! The trade-offs for …
May 25, 2020: The Revenge of the Intuitive and developer tools in 2020
May 24, 2020: They say never let a good crisis go to waste We should use the pandemic to reevaluate how we value service, child care, and education labor. It’s apparent we undervalued them. Their value is now …
May 21, 2020: “Building quality things of substance takes time.” - Rands in Repose, One Thing
May 20, 2020: Why NetNewsWire Is Fast - I love it when Brent Simmons writes about system design and principles.
May 17, 2020: One strong center and two senses stimulated I rented a 12-year old Porsche Boxster via Turo this weekend. Good app, great car. I’m shopping older German convertibles for my next car. Paying a …
May 12, 2020: 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, …
Apr 26, 2020: No way through but together
Apr 24, 2020: 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. …
Apr 22, 2020: The second best sunset of the week (Monday)
Apr 20, 2020: 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 …
Apr 19, 2020: 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 …
Apr 19, 2020: 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 …
Apr 19, 2020: Machine Supply: Knowing what books someone loves is to know their perspective and their journey, to have something special in common, to share a …
Apr 13, 2020: The CWC Mellor-72 - I love the overall shape, but especially the arrow icon above the 6.
Apr 12, 2020: My law of music: there is no song that Aretha Franklin could not perform slower and therefore better than everyone else. Newly discovered corollary: …
Apr 11, 2020: 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. …
Apr 11, 2020: 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 …
Apr 10, 2020: 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 …
Apr 9, 2020: The Majestic Monolith can become The Citadel - when a function of the monolith becomes unwieldy, split off an Outpost to service that need …
Apr 8, 2020: 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 …
Apr 5, 2020: Ever forward, eventually, to the new way
Apr 5, 2020: I’m no good at photography, but Texas sunsets make it easy.
Apr 5, 2020: 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 …
Mar 28, 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 …
Mar 26, 2020: Whiteboard, even if you're a distributed team A lot of us are out here, amongst all the strangeness of the world, trying to figure out how to help our teams adjust to collaborating remotely. It’s …
Mar 24, 2020: Wherein the “good old days” are revisited Remember secretaries and drinking at work? And land-line telephones? And smoking inside? Blech! And an even more unequal society with even more thumbs …
Mar 24, 2020: 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 …
Mar 24, 2020: Use as few rules as possible, mostly guidelines Rules won’t solve your problems, but thinking about them might. To paraphrase a couple well-known quotes: “Rules are useless, but thinking about rules …
Mar 22, 2020: 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. …
Mar 22, 2020: 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 …
Mar 22, 2020: The jazz icon Sonny Rollins knows life is a solo trip. Seems like a surprisingly wise, grounded performer.
Feb 22, 2020: Keep in touch with friends, the littlest CRM that could This year, I’m trying to better keep in touch with friends, family, and former co-workers. It came to my attention that this is, in many ways, a thing …
Feb 21, 2020: Enforce system consistency at the boundaries & meditations on run-time type systems (…continuing a Twitter thread) io-ts caught my attention a while back and I finally had the chance to read through it. I’m glad folks are …
Feb 12, 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 …
Feb 9, 2020: 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 …
Feb 4, 2020: 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 …
Feb 2, 2020: 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 …
Jan 30, 2020: Unblocking oneself Succeeding and thriving at remote work is largely about getting very good at asynchronous (Slack, discussion threads, email, etc.) and …
Jan 27, 2020: 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 …
Jan 25, 2020: 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, …
Jan 20, 2020: Little victories amongst the bigger vision A couple of my favorite Ruby friends mentioned that they’re trying to keep their side projects small. Despite that very practical aspiration, the …
Jan 15, 2020: 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.” …
Jan 13, 2020: Three (increasingly wild) bits about Prince As unreleased material trickles out of the Prince estate, some fantastic stories have emerged. I haven’t yet read The Beautiful Ones, but even the …
Jan 9, 2020: 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 …
Jan 6, 2020: 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 …
Jan 3, 2020: 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 …
Jan 2, 2020: 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 …
Dec 24, 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 …
Dec 23, 2019: 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 …
Dec 19, 2019: 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 …
Dec 18, 2019: Sometimes you have to compile a list of known issues and ship “’tis better to have known a software bug than to have never had a software at all” Lord Alfred Tennyson, except not Software that never ships never …
Dec 17, 2019: Supporting remote work when you're co-located Dave Rupert, Everything I Know About Remote Work. Me, everything I know about working with remote workers when you're co-located: Every single meeting …
Dec 14, 2019: 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 …
Dec 14, 2019: 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 …
Nov 17, 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 …
Nov 16, 2019: The Longines Heritage Military 1938 The deep-black, serene face on this watch is a real winner. The numbering and proportions are also ace.
Nov 16, 2019: I guess Brian Wilson didn't recede into his pocket dimension after all Who sang lead the most on each Beach Boys album? - Brian Wilson is way more active after Pet Sounds than I would have imagined.
Nov 16, 2019: 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 …
Nov 14, 2019: 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 …
Nov 14, 2019: 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 …
Nov 13, 2019: I don’t often have the need for a tiny spreadsheet on my phone, but I love everything about Tinysheet by Postlight.
Nov 13, 2019: 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, …
Nov 11, 2019: 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 …
Nov 10, 2019: I just wrote ‘Automotive form, Eddie Murphy, DC, the Goodfellas/My Blue Heaven connection’. buttondown.email/therealad…
Nov 10, 2019: The full-text search future we were promised I’ve been reorganizing some notes and considering moving specific topics/tags out of Bear. Turns out I can search across Bear, OmniOutliner, Ulysses, …
Nov 9, 2019: 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 …
Nov 9, 2019: 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 …
Nov 5, 2019: 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 …
Nov 3, 2019: 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, …
Aug 26, 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 …
Aug 17, 2019: 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 …
Aug 16, 2019: Self-directed rabbit holes (rather than reading All The Topics) Tyler Cowen: go down self-directed rabbit holes rather than reading the “definitive tomes” on broad-ish topics you’re curious about: Let’s say you …
Aug 13, 2019: 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, …
Aug 13, 2019: Current obsession: the Porsche 962 racecar. A spacecar GT/LeMans design. Bubble-esque cockpit, ground-effect body. It won some races. A great shape …
Jul 18, 2019: Personal choices outperform technology choices This dinger at the end of Mattt’s WWDC wrap-up is everything: Taking care of yourself — sleeping enough, eating right, exercising regularly — will do …
Jul 17, 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 …
Jul 10, 2019: Problem solvers We could be problem-solving technologists. We could avoid getting wrapped up in programmer elitism and tribal competition. We might solve more …
Jul 3, 2019: 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 …
Jun 29, 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; …
Jun 23, 2019: 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 …
Jun 21, 2019: 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 …
Jun 21, 2019: 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 …
Jun 19, 2019: Jessica Kerr - the future of software: complexity: “Complexity: Fight it, or fight through it, or embrace it? Yes.” On leverage, the intellectually …
Jun 15, 2019: 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 …
Jun 12, 2019: Thea Flowers - From API keys to tamper-proof encryption I didn’t expect Thea Flowers’ Building a stateless API proxy to end up explaining public-key cryptography and motivating JSON Web Tokens (JWT) from …
Jun 12, 2019: 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 …
Jun 1, 2019: 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 …
May 28, 2019: If time is money, investing time in your tests can save money Sam Saffron - Tests that sometimes fail. Fantastic advice on maintaining a test suite over time. A test suite is either an albatross or an asset, …
May 28, 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. …
May 28, 2019: “I don’t know everything, but I can learn anything.” Rachel McQuater, On Becoming a Wizard: Strategies for Keeping Up as a New Developer: The difference was that wizard developers perceived problems as …
May 27, 2019: 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 …
May 25, 2019: 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 …
May 24, 2019: 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 …
May 24, 2019: Web assembly + browser editor + CDN edge = wow I’m still impressed that the web platform has progressed to the point we can build web apps entirely in the browser with Glitch, Code Sandbox, and …
May 23, 2019: 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 …
May 21, 2019: 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 …
May 16, 2019: 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 …
May 13, 2019: Gorillaz & Moby & Van Vaudeville & Soulection Gorillaz, Demon Days - this one holds up, still a solid album. News to me, Moby has been making extended ambient tracks in some manner of partnership …
May 8, 2019: 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. …
May 7, 2019: 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 …
May 6, 2019: 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 …
Apr 22, 2019: Possibly the biggest upsight I’ve had on software estimation in a while - the blowup factor: erikbern.com/2019/04/1…
Apr 21, 2019: What makes Into the Wide Open such a great album? Into the Great Wide Open strikes me as a singular album. Perhaps it’s not even the best Tom Petty album, but it stands out from the rest in some kind …
Apr 9, 2019: Typo’d GraphQL as “GraphSQL” and was like “that’s a little on the nose there, fingers”
Apr 8, 2019: A nice reminder that our work is often more about storytelling than we think - Name It, and They Will Come — Overreacted
Apr 4, 2019: TIL, Vim hybrid absolute + relative line numbering: jeffkreeftmeijer.com/vim-numbe…
Apr 3, 2019: 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?
Apr 1, 2019: Sometimes software rewrites don’t fail - if you focus on escaping a local maximum for the product and customers.
Mar 31, 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! …
Mar 31, 2019: Stephen Anderson on The Future of Design: Computation & Complexity. Like everything else, its going to get more weird. But, the large-scale outcome …
Mar 29, 2019: 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 …
Mar 29, 2019: 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 …
Mar 27, 2019: Coding without a computer, designing without a design A thing I want to try is coding offline, per se. Without a functional computer (like a tablet). Think first. Outline and sketch a solution. Maybe …
Mar 27, 2019: 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 …
Mar 21, 2019: 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 …
Mar 17, 2019: In the world where data-privacy and GDPR compliance matter, owned/onsite analytics stacks like this seem promising bostata.com/post/clie…
Mar 12, 2019: 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 …
Mar 11, 2019: A thing people don’t like is hearing that a foundational component of their project is mathematically impossible. Corollary: never tell people about …
Mar 11, 2019: Programming languages > frameworks > libraries > domain languages > domain modeling (Things on the left are higher leverage than things on the right. …
Mar 11, 2019: Markets Are Eating The World. A non-obnoxious meditation on how blockchains could reduce coordination costs and makes large, corporate-like entities …
Feb 18, 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 …
Feb 2, 2019: 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 …
Jan 15, 2019: Was way more into this playlist when I thought it was “Eels!”
Jan 13, 2019: 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 …
Jan 13, 2019: 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. …
Jan 13, 2019: 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 …
Jan 13, 2019: Gil! Scott! Heron! man crush on LCD Soundsystem intensifies itunes.apple.com/us/album/…
Jan 12, 2019: Why blogs are still lovely, part fourteen: shawnblanc.net/2019/01/s…
Jan 8, 2019: Corollaries to “new languages won’t achieve career-sustaining critical mass": 1) frameworks become the important point of leverage 2) …
Jan 7, 2019: 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 …
Jan 3, 2019: Increasingly convinced houses only exist in two states: brand new and invisibly needing repair, lived in and visibly needing multiple repairs. This …
Jan 3, 2019: 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 …
Jan 1, 2019: It's 2019 and I'm signing my jokes like its 2019 A stranger walks into an elevator. I say “how about this weather?!” They smirk, or let out a small laugh. It’s easy to think, “I am funny guy!” But: …
Dec 27, 2018: Who has two thumbs and is pretty excited for Enumerable#to_h and the proc composition/chaining stuff in Ruby 2.6! 👍👍 …
Dec 26, 2018: 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 …
Dec 13, 2018: In honor of Ms. Jackson’s imminent induction into the Rock Hall of Fame: is Rhythm Nation 1814 a concept album? 🤔 ✋🖐️✋
Dec 5, 2018: 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 …
Dec 4, 2018: 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 …
Dec 1, 2018: 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 …
Nov 25, 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 …
Nov 18, 2018: 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 …
Nov 14, 2018: Our evil corgi, national champion Fran is now an evil corgi cover girl 😃😃😃
Nov 14, 2018: 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 …
Nov 14, 2018: 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/…
Nov 12, 2018: 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 …
Nov 11, 2018: Its never a bad time to educate the kids about their rock and roll heritage Speaking of rowdy Springsteen: found this anachronistic and slightly surprising performance of “Ramrod" from the 2002 MTV Video Music Awards. …
Nov 11, 2018: "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 …
Nov 11, 2018: Elvis Costello is a jewel unstuck in time, simultaneously timeless and of his time. His most recent album, no exception. pitchfork.com/reviews/a…
Nov 10, 2018: Wherein writing the dang memo is the easy part Seth Godin, Get your memo read: The unanticipated but important memo has a difficult road. It will likely be ignored. I find this is one of the …
Nov 10, 2018: Now I am the one who microblogs.
Aug 6, 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 …
Aug 5, 2018: Pick prolific: quantity, quality, and Chidi's Dilemma Prolific is better than perfect, Jared Dees: “Perfect” is a mirage that no one knows how to reach. I’m fond of restating this in terms of the …
Jul 30, 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 …
Jul 29, 2018: 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 when …
Jul 22, 2018: How I focus more and worry less about the internet As a long time Rands fan, I highly recommend you partake of the Rands Information Practices and Rands Slack Protocol. Allow me to add some of my …
Jul 17, 2018: 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 …
Jul 15, 2018: 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. …
Jul 6, 2018: The systemic sublime makes our world more legible My new favorite category on Kottke.org is the systemic sublime, wherein our networked, often inscrutable world is made more legible. The connections …
Apr 22, 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 …
Apr 17, 2018: It's dangerous to go alone, take dotfiles Yesterday I was handed a fresh, nifty new laptop. This is, for me, mildly terrifying. Last time I did a clean operating system install was seven years …
Apr 15, 2018: 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 …
Apr 15, 2018: 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 …
Oct 23, 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 …
Oct 19, 2017: You must be this tall to ride the services If I were trying to convince myself to extract a (micro)service, today, I’d do it like this. First I’d have a conversation with myself: you are …
Oct 18, 2017: How methodical and quality might keep up with fast and loose I’ve previously thought that a developer moving fast and coding loose will always outpace a developer moving methodically and intentionally. Cynically …
Oct 17, 2017: A strange world of mathematical and computational complexity Over the past few weekends, I’ve been reading on two topics which are way out of my technical confidence. I’ve spent the majority of my software …
Oct 16, 2017: 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 …
Oct 10, 2017: One step closer to a good pipeline operator for Ruby I’ve previously yearned for something like Elm and Elixir’s |> operator in Ruby. Turns out, this clever bit of concision is in Ruby 2.5: …
Oct 9, 2017: 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 …
Oct 9, 2017: 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 …
Oct 5, 2017: 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 …
Oct 5, 2017: 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 …
Oct 5, 2017: Generalization and specialization: more of column A, a little less of column B Now, I attempt to write in the style of a tweetstorm. But about code. For my website. Not for tweets. For a long time, we have been embracing …
Oct 4, 2017: 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 …
Oct 4, 2017: 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
Oct 3, 2017: 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, …
Oct 3, 2017: 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 …
Oct 3, 2017: 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 …
Oct 2, 2017: Categorizing and understanding magical code Sometimes, programmers like to disparage “magical code”. They say magical code is causing their bugs, magical code is offensive to use, magical code …
Sep 13, 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 …
Jul 21, 2017: Fewer changes are faster to deploy than fewer changes Itamar Turner-Trauring, Incremental results: how to succeed at large software projects: Faster feedback... Less unnecessary features... Less …
Jul 17, 2017: TIL: divide by 10 with this one weird number Running an application across two physical databases is not a straightforward thing. One of the relatively easier ways to do it involves assigning …
Jul 10, 2017: If I could imagineer Tomorrowland for a moment A little bit of fan reflection on Transportation in Tomorrowland and how to revitalize it: When you visit Disneyland in California, how do you feel …
Jul 6, 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 …
Jul 6, 2017: 👍 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 …
Jun 25, 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” …
Jun 21, 2017: 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 …
Jun 21, 2017: I welcome our future computer assistants... …but they’re going to have to deal with the fact that my wife and I commonly have exchanges like this: Me: can you hand me the thingy from the thing? …
Jun 20, 2017: Computers are coming for more jobs than we think A great video explainer on how computers and creative destruction are different this time. Why Automation is Different this Time. Hint: we need better …
Jun 19, 2017: 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 …
Jun 15, 2017: The emotional rollercoaster of extracting code There’s a moment of despair when extracting functionality from a larger library, framework, or program. The idea grows, a seed at first and then a …
Jun 13, 2017: What I talk about when I talk about cars Human design: what went into deciding how a human-facing thing is made? How did they decide to put the infotainment screen there? Why are BMW …
May 17, 2017: More ideas for framework people A few months ago I wrote aboutFramework and Library people. I had great follow-up conversations with Ben Hamill, Brad Fults, and Nathan Ladd about it. …
May 15, 2017: 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 …
Apr 24, 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 …
Apr 20, 2017: 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 …
Apr 18, 2017: 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 …
Apr 17, 2017: 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 …
Apr 9, 2017: 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 …
Apr 4, 2017: 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 …
Apr 1, 2017: 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 …
Mar 30, 2017: Lessons on software complexity from MS Office I learned a lot of things from Complexity and Strategy by Terry Crowley: In Fred Brooks’ terms, this was essential complexity, not accidental …
Mar 29, 2017: Healthcare is a multiplier, not a consumer good Adam Davidson tells a personal story about a relative who, with health care, could’ve continued his career. Without that healthcare, he ended up …
Mar 27, 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 …
Mar 24, 2017: 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 …
Mar 22, 2017: 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 …
Mar 21, 2017: Universes from which to source test names A silly bit of friction in writing good tests is coming up with consistent, distinctive names for the models or object you may create. Libraries that …
Mar 20, 2017: You should practice preparatory refactoring When your project reaches midlife and tasks start taking noticeably longer, that’s the time to refactor. Not to radically decouple your software or …
Mar 15, 2017: Sometimes it's okay to interrupt a programmer I try really hard to avoid interrupting people. Golden rule: if I don’t want interruptions I shouldn’t impose them on other, right? Not entirely so. …
Mar 15, 2017: Let's not refer to Ruby classes by string I am basically OK with the tradeoffs involved in using autoloading in Rails. I do, however, rankle a little bit at this bit of advice in the Rails …
Mar 13, 2017: 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 …
Mar 10, 2017: A little PeopleMover 💌 I love the Tomorrowland Transit Authority PeopleMover. It’s what a transportation system should be. [caption id=“attachment_4190” align=“alignnone” …
Mar 8, 2017: 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 …
Mar 6, 2017: 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 …
Mar 2, 2017: 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 …
Mar 1, 2017: The occurrence and challenge of ActiveRecord lookup tables I’ve noticed lots of Rails apps end up with database-backed lookup tables. Particularly in systems with some kind of customer or subscription …
Feb 28, 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 …
Feb 27, 2017: 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 …
Feb 23, 2017: 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 …
Feb 22, 2017: 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 …
Feb 21, 2017: 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 …
Feb 20, 2017: 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 …
Feb 16, 2017: 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 …
Feb 15, 2017: 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 …
Feb 14, 2017: 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 …
Feb 13, 2017: 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 …
Feb 9, 2017: 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 …
Feb 8, 2017: 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 …
Feb 7, 2017: 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. …
Feb 6, 2017: 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 …
Feb 2, 2017: 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 …
Feb 1, 2017: Does an unadvertised extension point even exist? There was an extension point, but I missed it. I was adding functionality to a class. I needed to add something that seemed a little different, but …
Jan 26, 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 …
Jan 22, 2017: The TTY demystified. Learn you an arcane computing history, terminals, shells, UNIX, and even more arcanery! Terminal emulators are about the most …
Jan 8, 2017: Clinton Dreisbach: A favorite development tool: direnv. I’ve previously used direnv to manage per-project environment variables. It’s easy to set up …
Jan 7, 2017: Our laws are here, they just aren't equally practiced yet That thing where institutions like the FBI are prohibited by law from meddling with presidential elections, and then the FBI meddled multiple times. …
Jan 4, 2017: 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 …
Jan 3, 2017: 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 …
Jan 2, 2017: 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 …
Jan 1, 2017: Tinkers are a quantity game, not a quality game I spend too much time fretting about what to build my side projects and tinkers with. On the one hand, that’s because side projects and tinkers are …
Dec 31, 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 …
Dec 28, 2016: 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 …
Nov 28, 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 …
Nov 27, 2016: Connective blogging tissue, then and now I miss the blogging scene circa 2001-2006. This was an era of near-peak enthusiasm for me. One of those moments where a random rock was turned over …
Nov 14, 2016: On recent Mercedes-Benz dashboard designs Mercedes (is it ok if I call you MB?), I think we need to talk. You’re doing great in Formula 1, congratulations on that! That said, you’ve gone in a …
Nov 12, 2016: 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 …
Oct 25, 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 …
Oct 20, 2016: 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 …
Oct 17, 2016: 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: …
Oct 9, 2016: 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 …
Oct 8, 2016: 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 the front …
Sep 28, 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 …
Sep 26, 2016: We’re all adults here, but we’re not all mind readers My favorite advice on the topic of method visibility (i.e. public vs. private) comes from Python creator Guido van Rossum. It goes something like …
Sep 24, 2016: 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 …
Sep 17, 2016: 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. …
Aug 20, 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 …
Aug 14, 2016: 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 …
Aug 13, 2016: 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 …
Aug 1, 2016: 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 …
Jul 12, 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 …
Jun 26, 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 …
Jun 19, 2016: 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 …
Jun 18, 2016: 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 …
May 23, 2016: We should make jokes about tech millionaires I try not to respond to the bullshit in this world with “this person is awful and they should feel awful”. Except for politicians. I try not to …
Apr 10, 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 …
Mar 25, 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 …
Mar 23, 2016: 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 …
Mar 17, 2016: 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.
Feb 25, 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, …
Feb 9, 2016: 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 …
Feb 8, 2016: 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 …
Feb 2, 2016: 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 = …
Jan 30, 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 …
Jan 27, 2016: 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)
Jan 27, 2016: 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 …
Jan 23, 2016: The future of programming is design, teaching, and empathy The Future Programming Manifesto starts with this header: Inessential complexity is the root of all evil OK, I’m on board! We should measure …
Jan 22, 2016: 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 …
Jan 22, 2016: 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 …
Jan 21, 2016: Versioning an API is a river delta of pain Slight rant: versioning a (REST) API inflicts upon you a confluence of factors that will lead to pain no matter what you do. You’re going to need to …
Jan 20, 2016: 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 …
Jan 19, 2016: 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 …
Nov 12, 2015: Software design, always on the wrong foot Software design has probably been broken from the start. The earliest business software, machine language encoded to punch cards, was more about …
Nov 5, 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, …
Aug 21, 2015: Easy steps to programming language commitment Feel pressured by other developers telling you that your programming language of choice is old, bad, or that you should feel bad? Apply this …
Aug 15, 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 …
Aug 5, 2015: 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. …
Jul 19, 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 …
Jul 16, 2015: 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 …
Jul 15, 2015: NASA: robots everywhere! Military: nuke the moon! NASA (2014 funding: $17 billion) has sent man to the moon and robots all over the solar system. The military (2015 funding: unfathomable) wanted to …
Jul 15, 2015: 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 …
Jul 14, 2015: 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 …
Jul 13, 2015: Bridging design and development with data Programming and designing with Pure UI: The process involved, among other things, creating a new UI, ditching the dependency on Flash in favor of …
Jul 12, 2015: 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 …
Jun 30, 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 …
May 28, 2015: Word processors, still imitating typewriters Right after we finish ridding the world of “floppy-disk-to-save” icons, I propose we remove this bit of obtuse skeumorphism from the default view in …
May 27, 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 …
May 26, 2015: "Everybody Wants to Rule the World", too much of its time I really dislike “Everybody Wants to Rule the World” by Tears for Fears because it’s a perfectly written song that sounds exactly like the year it was …
May 26, 2015: 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, …
May 9, 2015: 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, …
Apr 25, 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 …
Apr 22, 2015: Missing the big picture for the iterations I. Driving in Italy is totally unlike driving in America. For one thing, there are very often no lane markers. Occasionally a 1.5 lane road is shared …
Mar 2, 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 …
Mar 1, 2015: It's not your fault if your tools confuse you I. Pet Peeve #43: Complaining About Frameworks The whole point of a framework is that you trade one or more axes of freedom in how you structure your …
Feb 26, 2015: Organize your Gemfile by function and coupling Most Gemfiles I see are either unordered (just throw new gems in, wherever!) or alphabetically ordered. A while back, I reordered the Sifter Gemfile, …
Feb 19, 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 …
Feb 11, 2015: 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, …
Jan 31, 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, …
Jan 29, 2015: Teach people to magnify their mind, not write code Coding is not the new literacy: When we say that coding is the new literacy, we're arguing that wielding a pencil and paper is the old one. Coding, …
Jan 26, 2015: 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 …
Jan 25, 2015: 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 …
Dec 25, 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 …
Nov 8, 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 …
Nov 6, 2014: 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 …
Oct 30, 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 …
Oct 29, 2014: 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 …
Oct 27, 2014: 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 …
Oct 21, 2014: 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. …
Oct 7, 2014: 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 …
Oct 3, 2014: 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 …
Sep 29, 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 …
Sep 28, 2014: 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 …
Sep 23, 2014: 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 …
Sep 23, 2014: 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 …
Sep 21, 2014: Commercialeering Things you might hear in commercials/promotions for software and beer: “The first 96-calorie Pilsner” “Invented the smooth-pour top” “Next-generation …
Sep 11, 2014: 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 …
Sep 10, 2014: 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, …
Sep 9, 2014: 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 …
Sep 8, 2014: 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 …
Sep 6, 2014: 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 …
Sep 6, 2014: 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 …
Sep 3, 2014: 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 …
Sep 2, 2014: Microservices for grumpy old men and women Microservices? I’m not entirely sure what they are. The term seems to exist on all parts of the hype cycle simultaneously. It’s on the ascent of …
Sep 1, 2014: Jerry Jones: slightly human, mostly Faustian The best thing you will read about Jerry Jones this year. Slightly humanizing, even. What Jerry Jones wants, he cannot have: I’ve never wanted …
Aug 17, 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 …
Aug 10, 2014: 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 …
Aug 6, 2014: 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 …
Aug 5, 2014: 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 …
Aug 4, 2014: 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 …
May 26, 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 …
May 20, 2014: 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 …
Mar 29, 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 …
Mar 29, 2014: 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, …
Mar 28, 2014: 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 …
Mar 27, 2014: English-like programming languages, like, yuck Glenn Vanderburg on teaching developer how to use Ruby testing APIs: For example: I hate it when APIs (or languages, or whatever) are presented as …
Mar 26, 2014: 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 …
Feb 27, 2014: Find your principles for editing programs Some folks from GitHub sprung the Atom text editor on the internet yesterday. Releasing a product into a market defined by saturation, settling for …
Feb 26, 2014: Counterpoint: Rails and instance variables A great thing about writing is that it focuses and sharpens one’s thoughts. The great thing about writing in public is that your thoughts, when passed …
Feb 9, 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 …
Jan 28, 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 …
Jan 18, 2014: 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 …
Jan 3, 2014: 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 …
Jan 1, 2014: 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 …
Dec 30, 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. …
Dec 29, 2013: 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, …
Dec 26, 2013: 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 …
Dec 24, 2013: 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. …
Dec 23, 2013: 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 …
Dec 19, 2013: This is how you chalkboard vimeo.com/82253916 By pal Brandon Keepers, who I had no idea had that kind of talent. Well done!
Dec 18, 2013: 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 …
Dec 17, 2013: 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 …
Dec 16, 2013: Team superpowers: invest early, reap often Startup Engineering Team Super Powers. You want all of these. Well-considered investments in tooling and conventions can pay out handsomely, and …
Dec 15, 2013: 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 …
Dec 14, 2013: 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 …
Dec 12, 2013: 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 …
Dec 7, 2013: 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, …
Nov 20, 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 …
Nov 19, 2013: 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 …
Nov 9, 2013: Friday at a Mexican restaurant Could be any Mexican restaurant. Could be any Friday. This one seemed special to me.
Nov 3, 2013: 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 …
Nov 1, 2013: 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 …
Oct 31, 2013: A path through Enumerable In Cocoa, you can poke inside object graphs (and more!) using dotted strings: NSDictionary *bestOfBeatles = @{@"paul": @{@"beatles": @"Hey Jude", …
Oct 30, 2013: Football rules: not hard, even for the defense The NFL is going through an awkward transition from laissez-faire bloodsport to something…less bloodsport-y. Players-turned analysts often rush to the …
Oct 29, 2013: 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 …
Oct 29, 2013: 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 …
Oct 24, 2013: 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 …
Oct 21, 2013: 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, …
Oct 20, 2013: 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 …
Oct 19, 2013: 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: …
Oct 12, 2013: 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 …
Oct 4, 2013: Peyton Manning, boringly awesome or awesomely boring? The best thing you’ll read about football today. Peyton Manning is what happens when a guy with the attention to detail of an accountant is also …
Sep 25, 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 …
Sep 24, 2013: 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 …
Sep 22, 2013: Find the classes lurking in your ActiveRecord models This advice is going on a year old, but it’s still some of the best around. If you’ve got ungainly ActiveRecord objects that are doing way more than …
Sep 7, 2013: 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 …
Sep 3, 2013: 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 …
Aug 17, 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 …
Aug 16, 2013: 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 …
Aug 14, 2013: 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 …
Aug 13, 2013: 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, …
Aug 13, 2013: 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 …
Aug 12, 2013: 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, …
Aug 9, 2013: 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 …
Aug 7, 2013: 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: …
Aug 5, 2013: 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 …
Aug 3, 2013: 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 …
Jul 24, 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 …
Jul 16, 2013: 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 …
Jun 28, 2013: Scala and Clojure in terms of city building The Scala folks are building newer, better cities on top of older cities, which is how things really work (e.g. Paris, Rome, Boston, etc.). The …
Jun 28, 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, …
Jun 17, 2013: Less beautiful code, more code that works in production Developers should care and feed for their systems, especially when they’re in production. Alerting, logging, and metrics are the tools you need. …
Jun 13, 2013: Uncertainty, feedback, confidence, a happy ending Yesterday, I wanted to setup a quick feedback loop for writing some production code. But, I wasn’t entirely sure what that code should look like. …
Jun 7, 2013: 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 …
Jun 5, 2013: 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 …
May 29, 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 …
May 29, 2013: 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 …
May 28, 2013: 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 …
May 27, 2013: 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 …
May 22, 2013: 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 …
May 18, 2013: 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 …
May 1, 2013: 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 …
Apr 22, 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 …
Apr 12, 2013: 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 …
Apr 11, 2013: 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 …
Apr 10, 2013: 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 …
Apr 9, 2013: 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 …
Apr 8, 2013: 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 …
Apr 3, 2013: The gift and the curse of green-field projects The "green field" in software is a gift and a curse. On the bright side, you have an opportunity to use the new-shiny. Past wrongs can be righted. You …
Apr 2, 2013: 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 …
Apr 1, 2013: 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 …
Mar 25, 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 …
Mar 15, 2013: 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 …
Mar 14, 2013: TextMate's beautiful and flawed extension mechanism This is about how TextMate’s bundle mechanism was brilliant, but subtly flawed. However, to make that point, I need to drag you through a dichotomy of …
Mar 14, 2013: 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 …
Mar 12, 2013: Senior VP Jean-Luc Picard, of the USS Enterprise (Alpha Quadrant division) If you’re working from the Jean-Luc Picard book of management, a nice little Twitter account of Picard-esque tips on business and life, we can be …
Mar 12, 2013: SoundCloud, micro-services, and software largeness From a monolithic Ruby on Rails app to the JVM, how Soundcloud has transitioned to a hybrid approach with Ruby apps intermingling with Scala and …
Mar 11, 2013: 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 …
Mar 11, 2013: 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 …
Mar 10, 2013: Feynman's mess of jiggling things Richard Feynman, in the process of explaining rubber bands: [youtube https://www.youtube.com/watch?v=baXv_5z7HVY&w=420&h=315] The world is a dynamic …
Mar 4, 2013: 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 …
Mar 2, 2013: 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 …
Feb 24, 2013: Computers do what we tell them to, except when we give up We tell ourselves, “a computer only does what we tell it to.” But, when it comes down to it, if we aren’t getting the result we want out of the …
Feb 11, 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 …
Feb 11, 2013: 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 …
Feb 8, 2013: 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 …
Feb 7, 2013: 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 …
Jan 28, 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 …
Jan 22, 2013: 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 …
Jan 14, 2013: 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 …
Jan 6, 2013: 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 …
Jan 3, 2013: 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! …
Jan 1, 2013: 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. …
Dec 26, 2012: Intermediate variables, organizing OO, meeting Grinders half way I work with Dave Copeland at LivingSocial, but not on the same team. Maybe someday I’ll fix that, but for now I learn a lot from his writings. Herein, …
Dec 22, 2012: Smiling rappers The rap game doesn't have to be all posturing and diss tracks. We need more smiling rappers. OK, maybe one of those is not like the others, but, ya …
Dec 21, 2012: 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 …
Dec 20, 2012: 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 …
Dec 20, 2012: 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 …
Dec 18, 2012: 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 …
Dec 13, 2012: 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 …
Dec 12, 2012: 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 …
Dec 8, 2012: 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 …
Dec 5, 2012: 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 …
Dec 3, 2012: 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 …
Dec 1, 2012: You can't solve technical debt, you can only hope to contain it Staring Down Technical Debt: Technical Debt is an interesting phrase. We all have a sense of what it is instinctively, but we rarely want to think …
Nov 29, 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 …
Nov 28, 2012: 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 …
Nov 27, 2012: 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 …
Nov 26, 2012: 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 …
Nov 20, 2012: 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 …
Nov 10, 2012: Sit on the fence between abstraction and practice Theory and Practice is about a fence. It’s tempting to steer all the way towards the abstract, academic side, or all the way towards cutthroat …
Nov 8, 2012: 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 …
Nov 6, 2012: Dustin Curtis' recipe for doing Do. Your short, sharp inspirational mantras for the week.
Nov 4, 2012: 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”]
Nov 2, 2012: 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 …
Oct 31, 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 …
Oct 30, 2012: 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 …
Oct 27, 2012: 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, …
Oct 26, 2012: A pithy take on development vs. operations The essential, face-palming difference between too many development teams and too many operations teams is thus: Development: “I know how it works, …
Oct 25, 2012: 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 …
Oct 24, 2012: 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 …
Oct 23, 2012: 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 …
Oct 20, 2012: 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 …
Oct 18, 2012: 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 …
Oct 10, 2012: 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 …
Oct 9, 2012: 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 …
Oct 3, 2012: 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 …
Oct 1, 2012: 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 …
Sep 22, 2012: Faster, computer program, kill kill! Making code faster requires insight into the particulars of how computers work. Processor instructions, hardware behavior, data structures, …
Sep 13, 2012: 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 …
Sep 11, 2012: 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 …
Sep 10, 2012: 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 …
Sep 4, 2012: 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 …
Sep 2, 2012: 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. …
Sep 1, 2012: My inner dialog while coding I’m a bit of a sailor when I’m wrangling my own creations.
Aug 31, 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 …
Aug 28, 2012: 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 …
Aug 24, 2012: 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 …
Aug 21, 2012: 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. …
Aug 17, 2012: 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 …
Aug 15, 2012: 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 …
Aug 13, 2012: 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 …
Aug 2, 2012: 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 …
Jul 26, 2012: How to think about organizing folders: don't. Mountain Lion’s New File System: Folders tend to grow deeper and deeper. As soon as we have more than a handful of notions, or (beware!) more than one …
Jul 17, 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 …
Jul 12, 2012: 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 …
Jul 10, 2012: 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 …
Jul 5, 2012: Protect that state: locks, monitors, and atomics You need to protect a piece of data, like a counter or an output stream, from getting garbled by multiple threads. Three choices, hot shot: Explicit …
Jul 2, 2012: 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 …
Jun 27, 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 …
Jun 26, 2012: Gaining traction for businesses new and old People want to see action and progress, no matter how small. They want to hear about milestones and rave reviews. Even if you’re not adding new users …
Jun 26, 2012: "Surround yourself with beautiful software" Building an army of robots, Kyle Kneath on GitHub's internal tools. The closing line of this deck is "Surround yourself with beautiful software". One …
Jun 20, 2012: 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 …
Jun 19, 2012: 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 …
Jun 18, 2012: Getting started with Ruby Concurrency using two simple classes Building a concurrent system isn’t as hard as they say it is. What it boils down to is, you can’t program by coincidence. Here’s a list of qualities …
Jun 17, 2012: 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 …
Jun 15, 2012: 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 …
Jun 14, 2012: 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 …
Jun 12, 2012: 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 …
Jun 10, 2012: The forces of change on the US legislature As of 2012, the major forces operating on the legislation of the US government are, unscientifically speaking: 60% path dependence 20% regulatory …
Jun 5, 2012: Keep your application state out of your queue I’m going to pick on Resque here, since it’s nominally great and widely used. You’re probably using it in your application right now. Unfortunately, I …
Jun 2, 2012: 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 …
May 17, 2012: Tables and lambdas, a cure for smelly cases Lots of folks consider case expressions in Ruby a code smell. I’m not ready to write them off just yet, but I know a good replacement for some uses of …
May 15, 2012: Turns out I was wrong about RSpec subjects I was afraid that David Chelimsky was going to take away my toys! Consider, explicit use of subject in RSpec considered a smell: The problem with …
Apr 28, 2012: Three Easy Essays on Distributed Systems Ryan Smith is pretty good at thinking about distributed systems. Distributed systems, the systems we (sometimes unwittingly) create on a regular basis …
Apr 20, 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 …
Apr 19, 2012: 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 …
Apr 17, 2012: UserVoice's extremely detailed project workflow Some nice people at UserVoice took the time to jot down how they manage their product. Amongst the lessons learned: Have a set amount of time per week …
Apr 14, 2012: 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 …
Mar 30, 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 …
Mar 24, 2012: 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 …
Mar 20, 2012: 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 …
Mar 15, 2012: 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 …
Mar 11, 2012: 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 …
Mar 8, 2012: 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 …
Mar 4, 2012: This silver bullet has happened before and it will happen again Today it's Node. Before it was Rails. Before it was PHP. Before it was Java. Cogs Bad: There’s a whole mindset - a modern movement - that solves …
Mar 1, 2012: Bootstrap, subproject, and document your way to a bigger team Zach Holman's slides on patterns GitHub uses to scale their team Ruby Patterns from GitHub's Codebase: Your company is going to have tons of success, …
Feb 26, 2012: Write more manpages Every program, library, framework, and application needs documentation of some sort; this much is uncontroversial. How much documentation, what kinds …
Feb 21, 2012: How to make a CIA spy, and other anecdotes And the hilariously incompetent, such as the OSS operative whose cover was so far blown that when he dropped into his favorite restaurant, the band …
Feb 20, 2012: Own your development tools, and other cooking metaphors Noel Rappin encourages all of us to use our development tools efficiently. If your editor or workflow aren’t working for you, get a new tool and learn …
Feb 18, 2012: Automated code goodness checking with cane A few nights ago, I added Xavier Shay’s cane to Sifter. It was super simple, and cane runs surprisingly fast. Cane is designed to run as part of CI, …
Feb 17, 2012: 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 …
Feb 14, 2012: On rolling one's own metrics kit On instrumenting Rails, custom aggregators, bespoke dashboards, and reinventing the wheel; 37signals documents their own metrics infrastructure. …
Feb 11, 2012: 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 …
Jan 31, 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 …
Jan 29, 2012: 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, …
Jan 26, 2012: 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, …
Jan 24, 2012: Stand on the shoulders of others' REST mistakes Like all API design, putting a REST API on your app is tricky business that most people learn through lots of mistakes. So stand on the shoulders of …
Jan 19, 2012: 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 …
Dec 30, 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 …
Dec 29, 2011: 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 …
Dec 22, 2011: 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). …
Dec 18, 2011: 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 …
Dec 16, 2011: Crafting lightsabers, uptime the systems, a little Clojure Herein, some great technical writings from the past week or two. Crafting your editor lightsaber Vim: revisited, on how to approach Vim and build your …
Dec 14, 2011: 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. …
Dec 12, 2011: 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 …
Dec 9, 2011: 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 …
Dec 7, 2011: Modern Von Neumann machines, how do they work? Modern Microprocessors - A 90 Minute Guide!. If you didn't find a peculiar joy in computer architecture classes or the canonical tomes on the topic by …
Dec 6, 2011: 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 …
Dec 1, 2011: 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 …
Nov 29, 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 …
Nov 28, 2011: Pass interference: can't live with it, can't live without it. Bill Barnwell on revamping defensive penalties. Pass interference is tough business in the NFL. It's one of the easiest calls to get wrong on the …
Nov 27, 2011: 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. …
Nov 26, 2011: 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 …
Nov 25, 2011: 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" …
Nov 17, 2011: 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 …
Nov 6, 2011: 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 …
Oct 9, 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 …
Aug 31, 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 …
Jul 16, 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 …
Jul 9, 2011: How to listen to Stravinsky's Rite of Spring Igor Stravinsky’s The Rite of Spring is an amazing piece of classical music. It’s one of the rare pieces that was really revolutionary in its time. …
Jul 2, 2011: 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 …
Jun 27, 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 …
Jun 12, 2011: 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 …
May 11, 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. …
May 10, 2011: 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 …
May 9, 2011: Booting your project, no longer a giant pain So your app has a few dependencies. A database here, a queue there, maybe a cache. Running all that stuff before you start coding is a pain. Shutting …
May 8, 2011: 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 …
May 7, 2011: 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 …
May 6, 2011: 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 …
May 4, 2011: Post-hoc career advice for twenty-something Adam No program was ever made better by one developer scoffing at another. Computer science does not move forward with condescending attitudes. Success in …
Apr 13, 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. …
Apr 10, 2011: 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 …
Apr 9, 2011: 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, …
Apr 8, 2011: 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 …
Apr 7, 2011: 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 …
Apr 7, 2011: 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 …
Apr 5, 2011: Linux screenshot nostalgia Anyone else remember uploading screenshots of their super awesome, tweaked out Linux hacker desktops? Sorry, I'm not running WindowMaker, …
Apr 4, 2011: 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 …
Apr 3, 2011: 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 …
Apr 1, 2011: 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.
Mar 31, 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 …
Mar 30, 2011: 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. …
Mar 28, 2011: 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 …
Mar 27, 2011: 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 …
Mar 26, 2011: 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?" …
Feb 26, 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 …
Feb 14, 2011: A conversation between fictional engineers in a fictional world A hypothetical conversation that may have occurred between two non-existent engineers working on the second Death Star in the completely fictional …
Feb 12, 2011: 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 …
Jan 23, 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 …
Jan 17, 2011: Now witness the power of this fully functional domicile! About a year ago, our garage door was not feeling well. It wouldn’t go down on it’s own. To close it required my loving embrace. Specifically, I had …
Jan 6, 2011: 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 …
Dec 21, 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 …
Dec 18, 2010: 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 …
Dec 6, 2010: 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 …
Oct 12, 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 …
Oct 11, 2010: 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 …
Oct 8, 2010: Using Rails 3.0's notification system How to use Rails 3.0's new notification system to inject custom log events. Ever wondered what the notification/subscription stuff in Rails 3 is? …
Sep 19, 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 …
Sep 12, 2010: 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 …
Sep 9, 2010: 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 …
Jul 26, 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 …
Jul 14, 2010: 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 …
Jul 12, 2010: 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 …
Jul 11, 2010: 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 …
Jul 8, 2010: 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 …
Jun 28, 2010: The Cadence and Flow of Editing Programs I figured out why my trists with other editors often end up back at TextMate. It sounds a bit like this: Tap-tap-tap-tap-tap-tap; TAP; …
Jun 22, 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, …
Jun 16, 2010: A rambling, regurgitated thought on process Elevator pitch: I’ve found that if you want to divert a productive team into an hour or two of semi-fruitless banter, ask how the team should use Git, …
Jun 12, 2010: 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 …
Jun 11, 2010: 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 …
May 26, 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 …
May 23, 2010: 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 …
May 12, 2010: A Brief Survey of the History of Editing Programs Software developers spend a lot of time working with code. Over the past half-century of doing so, we’ve invented a lot of mechanisms that make that …
Apr 30, 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 …
Apr 26, 2010: 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 …
Mar 29, 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 …
Mar 2, 2010: 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 …
Feb 18, 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 …
Feb 12, 2010: Warning: politics Embedded within the migraine that is American politics are some very interesting ideas. Economics, markets, ethics, freedom, equality, education, …
Jan 19, 2010: Goodbye, gutbombs Last March my wife and I joined a gym, started working out with a trainer, started trying to eat better, and thusly set out to improve our health. …
Dec 22, 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 …
Dec 8, 2009: 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 …
Nov 29, 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 …
Oct 28, 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 …
Oct 27, 2009: 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 …
Oct 25, 2009: 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 …
Oct 9, 2009: 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 …
Oct 5, 2009: 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. …
Sep 25, 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 …
Sep 24, 2009: 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.
Sep 23, 2009: 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.
Sep 22, 2009: 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. …
Sep 22, 2009: 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 …
Sep 11, 2009: 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 …
Sep 10, 2009: 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 …
Sep 10, 2009: iPod Spaceman (With due apologies to the creators of New Math, the writers of 30 Rock and the lovely iPod people.)
Sep 8, 2009: 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 …
Sep 2, 2009: Fred, in a nutshell Fred in depth.
Sep 1, 2009: 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. …
Aug 31, 2009: It's not NoSQL, it's post-relational Almost five years ago, we were witness to the reinvention of web frameworks. A couple upstarts named Django and Rails appeared at almost the same …
Aug 29, 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 …
Aug 26, 2009: Two cellphones People with two cellphones worry me. (More six word stories. Also, an article as such in Wired.)
Aug 25, 2009: 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 …
Aug 23, 2009: 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 …
Aug 23, 2009: 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 …
Aug 21, 2009: 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 …
Aug 18, 2009: 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 …
Aug 14, 2009: Testify Two unrelated and great songs, one title. “Testify” by Parliament [youtube=http://www.youtube.com/watch?v=v-OZ-M2y0Ao&hl=en&fs=1&rel=0&hd=1] …
Aug 12, 2009: 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 …
Aug 12, 2009: 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 …
Aug 11, 2009: 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. …
Aug 11, 2009: 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 …
Aug 10, 2009: 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 …
Aug 10, 2009: 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 …
Aug 3, 2009: 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 …
Aug 1, 2009: 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, …
Jul 24, 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!
Jul 8, 2009: Disastersploitation DISASTER! Crank that funk.
Jul 7, 2009: Differently hackish keyword arguments for Ruby maca’s arguments - keyword arguments support for Ruby, now. Wickedly clever hack that does reflection on Ruby 1.9 and uses ParseTree for Ruby 1.8. …
Jul 7, 2009: 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 …
Jul 6, 2009: 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 …
Jul 6, 2009: 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, …
Jul 6, 2009: 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. …
Jul 1, 2009: 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 …
Jun 29, 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, …
Jun 29, 2009: 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.
Jun 23, 2009: Super Mario motors Too cool - Super Mario stepper motor music: …
Jun 22, 2009: 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 …
Jun 21, 2009: 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 …
Jun 9, 2009: 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 …
Jun 8, 2009: 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 …
Jun 3, 2009: 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 …
Jun 2, 2009: 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 …
Jun 1, 2009: That's the second biggest monkey head I've ever seen A thousand times yes! The Secret of Monkey Island, revisited. My eleven-year old self is jumping with glee. Awkwardly. See also, ScummC and The Secret …
Jun 1, 2009: 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 …
May 29, 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 …
Apr 28, 2009: The Roots on tour 24 Hours With The Roots - The Roots are totally my new bicycle lately.
Apr 27, 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 …
Apr 25, 2009: 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 …
Apr 24, 2009: 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 …
Apr 23, 2009: The non-existent tension between FP and OOP Is the Supremacy of Object-Oriented Programming Over?: The fact is, for a lot of these applications, it’s just data. The ceremony of object wrappers …
Apr 22, 2009: 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 …
Apr 20, 2009: 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 …
Apr 19, 2009: 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 …
Apr 18, 2009: LOST in-joke DUDE. Other phrases of common occurrence in LOST. (Via Heilemann.)
Apr 17, 2009: Your Friday Jam Here is your Friday Jam: The De La Soul Dugout. Quite good. See also: WEFUNK radio.
Apr 17, 2009: 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 …
Apr 15, 2009: John Mayer, closet software developer “The idea is to run as many concurrent streams of production as we can." - Is John Mayer recording an album or bootstrapping an indie app?
Apr 13, 2009: 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 …
Apr 13, 2009: Elevating the art of language implementation Suppose we can take the following statement as true: Whether you use it or not, the state of the programming craft has been elevated by many of the …
Apr 13, 2009: Postmodern comedy gold The Nietzsche Family Circus - random Nietzsche quote + vintage comics = comedy gold.
Apr 5, 2009: 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 …
Mar 30, 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” …
Mar 29, 2009: 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 …
Mar 25, 2009: Even the Dharma Initiative has to advertise Vintage Dharma Initiative Ads. Very excellent.
Mar 23, 2009: 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 …
Mar 20, 2009: 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, …
Mar 20, 2009: 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 …
Mar 20, 2009: 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 …
Mar 19, 2009: Get excited and make things Yes.
Mar 19, 2009: 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 …
Mar 19, 2009: 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 …
Mar 18, 2009: 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 …
Mar 18, 2009: 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. …
Mar 18, 2009: Making the pretty docs When you really need to generate nice technical documentation, you would be wise to walk in Assaf Arkin’s footsteps.
Mar 17, 2009: 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 …
Mar 8, 2009: 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 …
Feb 18, 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 …
Feb 17, 2009: 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 …
Feb 12, 2009: 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 …
Feb 5, 2009: Recreating that famous opening scene I would do the same thing. Brought to you by Alan Francis.
Feb 3, 2009: The Trading Places solution to the credit crunch Put on your federal government hat. Get the remaining TARP funds out from under the mattress. Note bank share prices Start buying shares in banks …
Feb 2, 2009: 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 …
Jan 28, 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 …
Jan 26, 2009: 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 …
Jan 26, 2009: Great Nike ad Beethoven’s Ninth and skippy video? You’ve got my attention. Nike - The Five from 13thWitness™ on Vimeo.
Jan 22, 2009: 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, …
Jan 21, 2009: Coolest building in downtown Dallas Check out the rest of The Urban Fabric’s stuff, he’s done many great pictures of downtown Dallas.
Jan 20, 2009: Neko Case hearts dogs Post Neko Case’s new single Neko Case donates $5 to dog rescue Done.
Jan 20, 2009: 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. …
Jan 20, 2009: Thor doing his thing My wife doing the canine agility: …
Jan 19, 2009: 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 …
Jan 19, 2009: 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 …
Jan 19, 2009: Compare and contrast Compare. “Suburbs built on top of military/industrial complexes”:infranetlab.org/blog/2009… - intriguing yet awful. Quirky and cute - “people …
Jan 16, 2009: 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 …
Jan 15, 2009: 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 …
Jan 15, 2009: Awesome people, hacker spaces, double basses, dictionary Brian Oberkirch is a big fan of people who are doing awesome stuff on the web. Me too! I’d add to his list: Ryan Tomayko, Greg Borenstein, Garrett …
Jan 15, 2009: Agile on a column Justin Ouellette: When these have all been taken down it's ready to go.
Jan 14, 2009: 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 …
Jan 14, 2009: The Next Generation meets Reading Rainbow Star Trek: The Next Generation was, for all intents and purposes, my jam. I was just the right age to enjoy it when it was on the air. Concurrently, I …
Jan 14, 2009: 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 …
Jan 13, 2009: 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 …
Jan 13, 2009: Vast social abstractions We are surrounded by huge institutions we can never penetrate: the City, the banking system, political and advertising conglomerates, vast …
Jan 13, 2009: 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 …
Jan 12, 2009: Bill Burcham does stuff Where Bill Burcham does what he does.
Jan 12, 2009: 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 …
Jan 10, 2009: 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 …
Jan 9, 2009: 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 …
Jan 9, 2009: Heat dissipation tower Via ffffound.
Jan 9, 2009: Birdland, Forgetting, Libertarianism, Hoboken Hello, 2009! Let’s try a slightly different format. Starting it out with ““Birdland” by Weather …
Dec 26, 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 …
Dec 21, 2008: True Hip-Hop Stories True Hip-Hop Stories: Lords of The Underground from D-Nice on Vimeo.
Dec 18, 2008: Whither desktop or web Lately, I’m finding myself replacing free web-apps with desktop software or commercial web-apps. Allow me to explain my evolving philosophy for you. …
Dec 17, 2008: 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 …
Dec 15, 2008: The absurdity of X, Y, R, G and B The Frustrating Magical Aspect - why’s great take on the absurdity of the tools we use to put interesting shapes and colors on our screens. Here’s to …
Dec 13, 2008: Crazy hair A great. Photo. Of Christopher. Walken.
Dec 12, 2008: 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 …
Dec 5, 2008: 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 …
Dec 4, 2008: I am going to call Ghostbusters At the risk of rambling too much about games: DO WANT. [youtube=http://www.youtube.com/watch?v=dD7nw_L4W5M&hl=en&fs=1] The Ghostbusters video game …
Dec 3, 2008: Military-industrial TV Left to my own devices, I end up watching stuff on TV about fighter jets, submarines, etc. a whole lot. The machines of war. On the one hand, the …
Dec 2, 2008: Beautifully static Game trailers are frequently a montage of confusing montage. This trailer stands in stark contrast to the standard: …
Nov 30, 2008: Fred's business card I made a business card for Fred. For those keeping score at home, this is what happens when I’m trying not to code or surf the web at 11:30 PM.
Nov 20, 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 …
Nov 19, 2008: The hopping doll video game Too cool. [youtube=[www.youtube.com/watch](http://www.youtube.com/watch?v=YVUrqaOvCfQ&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&fs=1]) Brought to you by …
Nov 18, 2008: 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 …
Nov 17, 2008: 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, …
Nov 17, 2008: 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 …
Nov 16, 2008: 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 …
Nov 7, 2008: 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 …
Nov 5, 2008: 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 …
Nov 5, 2008: My Day, Yesterday Made for Garrett Murray’s excellent My Day, Yesterday group.
Nov 4, 2008: 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.
Nov 3, 2008: 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 …
Oct 23, 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 …
Oct 22, 2008: 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 …
Oct 20, 2008: 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.
Oct 19, 2008: Star Wars A-Z Star Wars ABC: Neat!
Oct 15, 2008: Uptown Dallas Great photo by the urban fabric:
Oct 11, 2008: 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 …
Oct 10, 2008: Bell curves Rands In Repose: Horrible: You are a bell curve.
Oct 9, 2008: 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 …
Oct 7, 2008: 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 …
Oct 6, 2008: Awesome desk OneLessDesk™ by Heckler Design - want.
Oct 2, 2008: 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 …
Sep 24, 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. …
Sep 18, 2008: 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 …
Sep 13, 2008: 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 …
Sep 11, 2008: Read slightly less, practice slightly more Chris Wanswrath, a smart and distinguished fellow, advises us to burn our news readers and just “hear it through the grapevine.” But how far can one …
Sep 10, 2008: 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 …
Sep 10, 2008: 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 …
Sep 9, 2008: 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 …
Sep 9, 2008: Pretty Parallax jParallax - a JavaScript gizmo for composing images using a parallax effect. In other words, insanely cool.
Sep 8, 2008: 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 …
Aug 29, 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 …
Aug 27, 2008: 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 …
Aug 26, 2008: "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: …
Aug 20, 2008: Those were the droids (via)
Aug 17, 2008: 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 …
Aug 16, 2008: 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 …
Aug 15, 2008: Interview with David Flanagan, part 2 The second part of my interview with David Flanagan is online. This time around we talk about the craft of programming in general. Its good stuff.
Aug 14, 2008: 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 …
Aug 13, 2008: 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 …
Aug 10, 2008: 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. …
Aug 9, 2008: 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 …
Aug 8, 2008: 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 …
Aug 7, 2008: American demographic inversion Trading Places: In the past three decades, Chicago has undergone changes that are routinely described as gentrification, but are in fact more …
Aug 6, 2008: 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 …
Aug 4, 2008: 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.
Aug 3, 2008: Good Erlang reading Socklabs - lots of interesting Erlang bits here. Not academic at all. :)
Aug 2, 2008: 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 …
Aug 2, 2008: Women working on a plane 1940s and 50s industry is neat, OK? Via ffffound!
Aug 1, 2008: Some Grieg Please to enjoy, Grieg’s Piano Concerto in A minor. Brought to you by Artur Rubinstein and the London Symphony. …
Aug 1, 2008: 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 …
Jul 31, 2008: House on water I wouldn’t mind living on the water like this. Via ffffound!
Jul 30, 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 …
Jul 29, 2008: Agility course made of people Wow. [youtube=[www.youtube.com/watch](http://www.youtube.com/watch?v=bxLX63qqNyg&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999])
Jul 29, 2008: 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 …
Jul 29, 2008: Its a Data. Base. Say it with me. Data. Base. I knew you could! Via Square America.
Jul 29, 2008: 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 …
Jul 28, 2008: 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 …
Jul 28, 2008: 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 …
Jul 27, 2008: 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 …
Jul 26, 2008: 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 …
Jul 25, 2008: 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 …
Jul 25, 2008: 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 …
Jul 25, 2008: More modules, please Jay Fields' Thoughts: Ruby: Underuse of Modules. Modules are your best friend, ya’ll. Use ‘em.
Jun 27, 2008: Congestion and decongestion Two really awesome maps: National Traffic Scorecard and undersea internet cables (via Coudal).
Jun 26, 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 …
Jun 14, 2008: 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 …
Jun 10, 2008: 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 …
Jun 9, 2008: 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 …
Jun 8, 2008: Yurii Rashkovskii's Blog: Top 10 Reasons to Avoid Document Databases FUD Yurii Rashkovskii’s Blog: Top 10 Reasons to Avoid Document Databases FUD: And… you said “relational”? Facebook and others do a lot of …
Jun 7, 2008: 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 …
Jun 6, 2008: 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 …
Jun 5, 2008: 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 …
May 27, 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: …
May 25, 2008: Pinky and the LOLdog
May 22, 2008: I made you a muxtape I hope you enjoy listening to it as much as I enjoyed compiling it.
May 21, 2008: Destructuring assignment in block parameters …which is just a fancy way to say that this works like I think it should: >> [['foo', 1], ['bar', 2], ['honk', 1000]].partition { |str, val| val > …
May 9, 2008: 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.
May 9, 2008: 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 …
May 9, 2008: 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 …
May 8, 2008: 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 …
May 4, 2008: 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 …
May 1, 2008: 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 …
Apr 30, 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 …
Apr 28, 2008: 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 …
Apr 25, 2008: 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 …
Apr 24, 2008: 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 …
Apr 24, 2008: 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 …
Apr 24, 2008: Awesome Star Wars posters Founds this in Michael Heilemann’s Flickr stream: He’s got more where that came from.
Apr 23, 2008: 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 …
Apr 23, 2008: Designing with type Techniques for designing with type characters ~ Authentic Boredom: Typography and typefaces, without a doubt, are two of the most fascinating aspects …
Apr 22, 2008: "Science Machine" from birth to completion How Chad Pugh’s brilliant “Science Machine” came to life: Science Machine from Chad Pugh on Vimeo. This illustration is the inspiration behind the …
Apr 22, 2008: 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 …
Apr 22, 2008: The Greatness of Gossip Girl So true!
Apr 22, 2008: Ecto-1 Replica Ecto-1 from Ghostbusters - too flippin cool. (Via Coudal).
Apr 21, 2008: 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 …
Apr 21, 2008: 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 …
Apr 20, 2008: 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 …
Apr 20, 2008: 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. …
Apr 20, 2008: 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 …
Apr 18, 2008: 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 …
Apr 16, 2008: 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. …
Apr 13, 2008: Its a musical rollercoaster If jazz is more your thing, then you should watch this animation based on “Giant Steps”.
Apr 8, 2008: 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 …
Apr 4, 2008: 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, …
Apr 4, 2008: 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 …
Apr 2, 2008: 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 …
Mar 29, 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 …
Mar 28, 2008: Pretty hiring trends Pretty graphs at Simply Hired: Interesting how Ruby, Python and PHP so closely track each other I would have never guessed how close JS and C# are, …
Mar 28, 2008: 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 …
Mar 27, 2008: DO WANT D'ye need a new T-shirt, brother? Aye. I do.
Mar 27, 2008: 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 …
Mar 26, 2008: 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 …
Mar 26, 2008: 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.
Mar 25, 2008: 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 …
Mar 24, 2008: Write a script in April for Script Frenzy Script Frenzy – wherein one writes a script in the month of April. I’m tempted to take part, though I’m sure it’d would end up in detriment to all the …
Mar 19, 2008: 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 …
Mar 18, 2008: Keep your pants on A teaser of what I’m working on instead of writing: Please, keep your pants on.
Mar 6, 2008: Git is nouns and verbs Git was originally not a version control system; it was designed to be the infrastructure so that someone else could build one on top. And they did; …
Mar 6, 2008: Geek spring break For the fourth time, I’m at the annual geek retreat in Austin. Since I went when it was but 300 people, I’m obliged to marvel at how big the …
Mar 5, 2008: The American Dream, LOL'd loldogs are funny dog pictures!
Mar 5, 2008: You can patent things that don't exist The ear worm things from Star Trek II: The Wrath of Khan are patented. The obvious punchline: RODDENBERRY!!!!!
Mar 5, 2008: SCIENCE All I can say is SCIENCE! – Tom Preston Werner on God’s memory leak
Mar 4, 2008: Summertime Blues [youtube=http://www.youtube.com/watch?v=t5euZ3YWLXQ&rel=0] “Summertime Blues” The Who (originally Eddie Cochran)
Mar 4, 2008: Non-chalantly rocking
Mar 4, 2008: Rands helps you with your presentations Out Loud. Conference season looms, folks. Rands is here to help.
Mar 2, 2008: Life Partners Inspired by Indexed.
Feb 28, 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 …
Feb 13, 2008: 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 …
Feb 12, 2008: Some low-brow erudition I want to write something rambling, like Matt Webb. Hopefully interesting too. So in Webbian style, let’s start someplace completely random. Chaim …
Feb 5, 2008: 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. …
Feb 4, 2008: 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 …
Feb 3, 2008: The Mint logo, geometric beauty Geometry of the Mint logo: Frickin' genius. Ed. revised Feb 15, 2025. No notes.
Feb 1, 2008: 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 …
Jan 31, 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 …
Jan 19, 2008: 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.
Jan 10, 2008: The good news about a long writers strike Apparently, some think that the WGA strike could continue well into 2009, affecting movies as well as TV. No Writers, No Movies? Strike May Hit '09 …
Jan 9, 2008: 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 …
Jan 9, 2008: 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 …
Jan 7, 2008: Something lovely from David Lanham I love this coat-of-arms-esque ditty by David Lanham: Found it by the good word of Bill Burcham.
Jan 6, 2008: 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 …
Dec 3, 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 …
Dec 2, 2007: 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 …
Dec 1, 2007: 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 …
Nov 25, 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 …
Nov 24, 2007: 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 …
Nov 23, 2007: 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 …
Nov 4, 2007: 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 …
Oct 20, 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. …
Oct 16, 2007: 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 …
Oct 12, 2007: 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 …
Oct 10, 2007: 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 …
Oct 9, 2007: 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, …
Oct 8, 2007: 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 …
Aug 26, 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 …