: 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 …

: 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 …

: Rails generators are underrated Every experienced Rails developer should pick up Garrett Dimon’s Frictionless Generators. Generators …

: “Yes, and” despite pessimistic engineering intuitions As engineers, we often face the consequences of shallow ideas embraced exuberantly. Despite those …

: Building software is great

…even if some days working in corporations or under unwanted pressure makes it considerably less …

: Careers are non-linear David Hoang, Should managers be technical?: Career development looks more like unlocking attributes …

: Squeezing ideas

Turning a big idea into a more manageable one has second-order consequences:

Remember, the more …

: Notes on focus and attention Focus and attention are inputs to producing excellent things. All the talent in the world won't get …

: Work in progress I’ve had this sitting prominently in my Muse workspace for a while. Seems like a good time to deploy …

: Journal for work/life/everything Ray Grasso, Long Live the Work Journal: Keep a journal for work, champions. It’s pretty easy to get …

: Notes on strategy and execution

Will Larson, How to Size and Assess Teams From an Eng Lead at Stripe, Uber and Digg. This …

: Organize for Discovery

S-tier programming skill: organize code and behavior such that others can discover and understand …

: Sidestep process by sharing tangible progress Nat Bennett: Cannot overstate the value of regularly delivering working software. My single most …

: Notes on focus

I’ve tried a bunch of things, over the years, to find time and discipline to focus on working the …

: Zawinski's law, updated Every program attempts to expand until it can read email (the original) invite a friend check off …

: My summer at 100 hertz

Is there a lost art to writing code without a text editor, or even a (passable) computer? It sounds …

: 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 …

: Top of Mind No. 6 I’ve been thinking a lot about setting expectations and goals. I have an idea about setting …

: Inside you, there are two or more brains David Hoang, Galaxy Brain, Gravity Brain, and Ecosystem Brain: The Galaxy Brain thinkers are in 3023 …

: 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 …

: 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 …

: When finished isn’t done The work is done, the post is published, the code has shipped, the boxes are all checked. And yet, …

: Notes on narrative for engineering leaders Alex Reeve, 22 Principles for Great Product Managers: You have to own the narrative. When there’s a …

: Three meditations on wins Leaders (and managers) are successful to the extent that their teams and peers notch wins. Former …

: 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 …

: Top of Mind No. 5 Like everyone (it seems), I’m exploring how large language model copilots/assistants might change …

: Err the Blog, revisited

Before there was GitHub, there was Err the Blog. Chris Wanstrath and PJ Hyett wrote one of the …

: Focus in a time of distraction That is, some notes on helping junior developers focus on execution when they are surrounded by the …

: Write linked notes so you don’t have to remember Writing linked notes helps engineering makers and managers alike develop the super-powers of …

: Top of Mind No. 4 The practice of building software/technology is going through a phase shift. We’ve worked from …

: Make code better by writing about it Writing improves thoughts and ideas. Doubly so for thoughts and ideas about code. Writing, about …

: Turn the pages. Read the code. Hear the words. “Turn every page. Never assume anything. Turn every goddamned page.” — Robert Caro, Working So goes …

: 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 …

: Top of Mind No. 3 Working in small increments towards medium-to-large projects or outcomes is tricky. I too frequently …

: Think your thoughts We live in the most amazing time for ideas. They’re all over the place. It’s never been easier to …

: 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 …

: 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 …

: 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 …

: Updating Eisenhower on planning Previously: a long time ago, Dwight Eisenhower probably said something to the effect of: “Plans are …

: Top of Mind No. 1 Delegating: supporting teammates, delivering the right context, setting good outcomes/goals. Not …

: Programming excellence: a small matter of practice The key is deliberative practice: not just doing it again and again, but challenging yourself with a …

: Write more, coder inspiration, queryable coding environments Simon Willison on writing about one's work: A tip for writing more: expand your definition of …

: Onboarding when you don't have access to the team Mitchell Hashimoto, Contributing to Complex Projects: The first step to understanding the internals …

: Perspective, you want it Perspective is the lens we view our world, work, relationships, etc. All the luck, resources, or …

: Leadership keywords My current theory of leading software teams and projects has four keywords: Trust: I assume everyone …

: 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 …

: The paradox of producing process The agency to create the system or process you want to work in (axiomatically?) implies you’ll …

: Like caveats? Try writing about leading teams! It's tricky to write about leading software teams. Herein, reflections, not complaints, on pursuing …

: Benchmarking Rails apps in 5 bullets When in doubt, measure. Twice! For ad-hoc/napkin estimates, I use Benchmark.ms { …the code… } to …

: The Beatles 🤝 Timeless leadership lessons The Economist, The Beatles and the art of teamwork: Take the role of Ringo, for example. When he is …

: Better know a standard library Read your current/new language’s standard library. Highly recommended for developers of all …

: Offloading fast operations in Ruby by data structure Noteflakes: A Compositional Approach to Optimizing the Performance of Ruby Apps — the idea is to …

: Don’t be spooky It’s possibly the best advice for managers I've given so far. When you’re communicating with your …

: 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 …

: Math-y and/or word-y I'm a developer who (formerly) recoiled at math, especially calculus and matrices. Instead, I …

: “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 …

: 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, …

: Planning focuses our ideas Planning is essential. But, not too much. Mostly in the next 90-day window (with apologies to …

: Working, directly & small Omar Rizwan recollects that one of the original selling points of React was that you could …

: Let them go their own way

A mistake many newly minted (and some experienced) engineering managers (EMs) make is listening to …

: 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 …

: The unreasonable effectiveness of checklists

Checklists are a fantastic tool for thinking. This despite the existence of GTD, Kanban, PARA, and …

: 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. …

: Use a tag line that means something

I like that Ember's tagline is about ambition.

: 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 …

: 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, …

: Writing is thinking, so write about code Writing clarifies thinking. Therefore, writing design docs clarifies one’s thinking about …

: Bradford Fults on feedback and human bias A Better Approach to 360° Feedback: Bradford Fults shares ways to route around fallible human memory …

: The project management corollary to Hofstadter's Law Hofstadter's Law: It always takes longer than you expect, even when you take into account …

: Towards smaller JavaScript The JavaScript ecosystem’s gone to a strange place where dense frameworks and complex tooling are …

: 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. …

: 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 …

: 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 …

: Manage for time and mental burden Features in software are answers to questions. How can customers send what they're looking at to …

: Graphs are the new hierarchies In the sense that trees of people (managers and reports, ala Taylorism) are the old guard. Data …

: Top of Mind No. 0 Managing a backend engineering team at Pingboard. Managers can, and should, do deep work. What …

: 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 …

: Wherein the “good old days” are revisited Remember secretaries and drinking at work? And land-line telephones? And smoking inside? Blech! And …

: 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 …

: 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 …

: 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 …

: The Beautiful Ones Prince’s unfinished memoir, The Beautiful Ones is a quick, but awkward, read. The preface is the …

: I watched the various Watchmen I just finished reading the Watchmen graphic novel and it is amazing. I was drawn in by the HBO …

: Get a cute credit card and overtip Highly recommend: get a BB-8 or similarly lovely icon from your favorite mythology on the …

: Keep waterfall out of your agile

An insightful thing my pal Brandon Hays observed is that teams introduce little bits of waterfall …

: Unblocking oneself

Succeeding and thriving at remote work is largely about getting very good at asynchronous (Slack, …

: Sharing context in code review A nice guide on code reviews (unfortunately no author is attributed on the Notion doc) is making the …

: Reading massive tomes: less slog, more joy

I’m drawn to expansive views on a subject. Sprawling narratives are irresistible. Giant books are …

: Little victories amongst the bigger vision A couple of my favorite Ruby friends mentioned that they’re trying to keep their side projects …

: When management clicks As a manager, I hear about things that are interesting and things that probably need changing. “We …

: Three (increasingly wild) bits about Prince As unreleased material trickles out of the Prince estate, some fantastic stories have emerged. I …

: Contracts made older objects better Developers love contracts, i.e. types and type systems. Except, and especially, when they don’t. …

: Training & Learning A thing I’ve learned from weightlifting (also from Destiny, but that’s a whole other thing), is the …

: William Gibson in the New Yorker How William Gibson Keeps His Science Fiction Real - I gotta read more Gibson; just as soon as I …

: Options everywhere Setting roadmaps and key results feel like truthful, strategic work. But the flip side is, if you …

: Taking notes on paper vs. glass in 2019

Software (currently, GoodNotes) and hardware (iPad Pro + Apple Pencil) are finally to a point where …

: How regressions happen

Working with software is frustrating, and working on software doubly so, because things up and …

: 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, …

: 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 …

: Supporting remote work when you're co-located Dave Rupert, Everything I Know About Remote Work. Me, everything I know about working with remote …

: 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 …

: 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 …

: 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 …

: Automotive function determines form

I generally think function should have a strong influence on form, if not determine the form …

: Social media in the morning? Whichever.

Austin Kleon recommends skipping the news/social media/blinky lights in the morning. I’ve found …

: Blogging, like writing, is challenging The thing which makes blogging difficult is not engagement, analytics, finding just the right theme, …

: Currently intriguing: Toby Shorin I'm currently intrigued by, and not entirely sure what to do with, the ideas of Toby Shorin. …

: 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 …

: Reclaim the hacker mindset There was a time when the hacker mindset was about something nice. They’ve adopted a hacking …

: No topic is off-limits My favorite thing about software development is the breadth and depth of the profession. On the one …

: Problem solvers We could be problem-solving technologists. We could avoid getting wrapped up in programmer elitism …

: Postmodernism rules everything around me Greater Los Angeles - Geoff Manaugh. Remember when an iPhone had trouble with cellular reception if …

: 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 …

: Music ranked: the string section Best albums, singles of the years. Who is better, the Beatles or the Rolling Stones. Top 100 smooth …

: A foray into building interface I spent some time this weekend attempting to make front-end code with Tailwind CSS. Tailwind is a …

: Refreshing my Rails: OmniAuth I’m refreshing my understanding of mainstay Rails libraries lately1. This week, it’s OmniAuth. When …

: Gorillaz & Moby & Van Vaudeville & Soulection Gorillaz, Demon Days - this one holds up, still a solid album. News to me, Moby has been making …

: Robocalls. What a concept! They’re on our phones, in our voicemails. Computers or sometimes even humans calling in …

: 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 …

: The notes - May 6, 2018 Unclogging the blog pipes here… Think better I feel seen - Satisfaction and progress in open-ended …

: 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 …

: Why are you building this? At some point in what feels like the very distant past, I bought The Shape of Design by Frank …

: 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 …

: 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 …

: Context buckets Sometimes I ask myself: why did past Adam think this text/link/picture/etc. was important. …

: 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. …

: We are now a two robot vacuum family! One for the cats upstairs, one for the dogs downstairs. …

: It is I, who dwells at coffee shops, who sometimes reads paper books instead of a glass display, who …

: 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 …

: On decision tables and conditionals Over the years, I’ve heard a few times about something like Decision Tables (Hillel Wayne): A …

: My favorite question is “why?” At some point in elementary or junior high school, we were taught all our essays should answer one …

: The systemic sublime makes our world more legible My new favorite category on Kottke.org is the systemic sublime, wherein our networked, often …

: Advocacy = empathy + speaking to someone else’s conceptual framework. When I’m trying to …

: 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 …

: I’m starting a new job tomorrow. I decided to take a week off in-between jobs, mostly to make …

: Scribbling through TensorFlow.js I’ve been trying to wrap my head around machine learning lately. Today I worked through the …

: Code minutiae, October 23, 2017 For some reason, identifier schemes that are global unique, coordination-free, somewhat …

: 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 …

: 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 …

: 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 …

: Just keep writing, October 16, 2017 I watched pal Drew Yeaton work in Ableton briefly and it was pretty incredible. He laid down a …

: 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 …

: Heck yeah, October 09, 2017 Simon Willison returns to blogging, in peak form nonetheless. Heck yeah! Janet Jackson, “Rhythm …

: Strange Loop 2017 I was lucky enough to attend Strange Loop this year. I described the conference to friends as a …

: 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 …

: exa in 30 seconds What is it? exa is ls reimagined for modern times, in Rust. And more colorfully. It is nifty, but …

: 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 …

: The notes, October 04, 2017 I’m intrigued by folks having luck building virtualized development environments for localhost …

: Not-a-Science Science Any field with the word "science" in its name is guaranteed not to be a science. – Gerald …

: Afternoon notes, October 03, 2017 Someone will always have a slicker Git workflow than you. For example,Auto-squashing Git Commits for …

: Morning notes, October 03, 2017 I like Bluebottle’s coffee subscription service a lot. The web app is well done and having …

: The loungification of luxury cars High-end luxury cars are starting to resemble first-class airport lounges and it’s bothering me. The …

: Categorizing and understanding magical code Sometimes, programmers like to disparage “magical code”. They say magical code is causing their …

: On Code Review: Bias to small, digestible review requests. When possible, try to break down your …

: Fewer changes are faster to deploy than fewer changes Itamar Turner-Trauring, Incremental results: how to succeed at large software projects: Faster …

: TIL: divide by 10 with this one weird number Running an application across two physical databases is not a straightforward thing. One of the …

: 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 …

: JavaScript's amazing reach There’s plenty of room to criticize JavaScript as a technology, language, and community(s). …

: 👍 Master of None Season 2 Just finished watching Master of None, season 2. What a great show. It’s hilarious without …

: If I were a producer: DJ Khaled Actually, I probably wouldn’t change much. But I have questions about this marketing photo: …

: If I were a producer: Muse I have feelings about Muse, but let’s talk about this particular song I’m listening to …

: I welcome our future computer assistants... …but they’re going to have to deal with the fact that my wife and I commonly have …

: Computers are coming for more jobs than we think A great video explainer on how computers and creative destruction are different this time. Why …

: OAuth2 🔥-takes Is it too late to do hottakes for something that’s been around for nearly a decade? OAuth2 …

: The emotional rollercoaster of extracting code There’s a moment of despair when extracting functionality from a larger library, framework, or …

: 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 …

: More ideas for framework people A few months ago I wrote aboutFramework and Library people. I had great follow-up conversations with …

: 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 …

: Chaining Ruby enumerators I want to connect two Ruby enumerators. Give me all the values from the first, then the second, and …

: When my brain storms I do my best thinking: In the shower. I love to take long showers, and I love my tankless water …

: Stored Procedure Modern The idea behind Facebook’s Relay is to write declarative queries, put them next to the user …

: 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 …

: Jeremy Johnson, It’s time to get a real watch, and an Apple Watch doesn’t count: ...watches are one …

: Feedback: timing is everything With feedback, like jokes, timing is everything. Good feedback at a bad time won’t do the …

: Practically applying Clojure Fourteen Months with Clojure. Dan McKinley on using Clojure to build AWS automation platform …

: Lessons on software complexity from MS Office I learned a lot of things from Complexity and Strategy by Terry Crowley: In Fred Brooks’ terms, …

: Healthcare is a multiplier, not a consumer good Adam Davidson tells a personal story about a relative who, with health care, could’ve …

: Type tinkering I’m playing with typeful language stuff. Having only done a pinch of Haskell, Scala, and Go …

: 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 …

: Personal city guides I’ve seen lots of sites about how to use software. The Setup and The Sweet Setup are my favorites. …

: Universes from which to source test names A silly bit of friction in writing good tests is coming up with consistent, distinctive names for …

: You should practice preparatory refactoring When your project reaches midlife and tasks start taking noticeably longer, that’s the time to …

: 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 …

: 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 …

: They're okay political opinions The downside to the Republicans proposing a healthcare bill is that it’s a major legislative …

: A little PeopleMover 💌 I love the Tomorrowland Transit Authority PeopleMover. It’s what a transportation system …

: 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, …

: Three Nice Qualities One of my friends has been working on a sort of community software for several years now. Uniquely, …

: I have become an accomplished typist Over the years, many hours in front of a computer have afforded me the gift of keyboarding skills. …

: 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 …

: The annoying browser boundaries Since I started writing web applications in around 1999, there’s been an ever-present boundary …

: Just tackle the problem There’s a moment when a programming problem engulfs me. Perhaps it’s exciting and intriguing, maybe …

: 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 …

: Levels of musical genius I often think about what kind of unique musical talent some performer I enjoy possesses. A few …

: Four parks, one day In January, Courtney and I went to Disney World for her birthday. We bought an annual pass last …

: Protect the beginner's mind Someone joins your team. They have a beginner’s mind about your project and culture. Take a …

: The right way and the practical way Brent Simmons, Reason Number 33,483 to Hate Programming: Or I could have the superclass expose the …

: Contrast NYC and SF Dallas and Austin are the cities I’ve spent my life in. I’ve spent maybe three weeks of …

: Framework and Library people By unscientific survey, I think many developers would prefer to work in a “framework …

: Execution and idea in Frontierland It’s commonly held, and pretty much true, that ideas are shallow and execution is depth. That …

: Empathy Required Nearly fourteen years ago, I graduated college and found my first full-time, non-apprentice-y job …

: Copypasta, you're the worst pasta Copypasta. It’s the worst. “I need something like this code here, I’ll just drop …

: Through mocks and back A problem with double/stub/mock libraries is that they don’t often fail in a total manner. …

: Stevie Wonder, for our times of need Tim Carmody writing for Kottke.org, Stevie Wonder and the radical politics of love: Songs in the …

: How Disney pulls me in Dave Rupert, Disneyland and the Character Machine: In October my family took a trip to Disneyland. …

: 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 …

: Perhaps there’s a benign explanation for Paul Ryan appearing to have cut off his phones. …

: The TTY demystified. Learn you an arcane computing history, terminals, shells, UNIX, and even more …

: Clinton Dreisbach: A favorite development tool: direnv. I’ve previously used direnv to manage …

: 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 …

: Journalism for people, not power Journalism is trying very hard to do better, but still failing America. Media is covering politics …

: I love overproduced music It seems like some folks don’t like music with a lot of studio work. Overproduced, they call it. …

: Turns out Ruby is great for scripting! Earlier last year, I gave myself two challenges: write automation scripts in Ruby (instead of …

: 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 …

: Jobs, not adventures Earlier this year, after working at LivingSocial for four years, I switched things up and started at …

: Fascinating mechanical stories I already wrote about cars as appliances or objects, but I found this earlier germ of the idea in my …

: 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 …

: 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 …

: 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, …

: Mutual Benefit Leaders of business and thought have been putting out statements showing unity or acceptance of …

: The least bad solution Sometimes I look over the options and constraints to choose something suboptimal. I have to pick the …

: Wanted: state machines in the language Our programming languages are often structured around the problem domain of compilers and the …

: Van Halen ranked, atypically Best songs that David Lee Roth talks over: "Hot for Teacher" "Panama" "Everybody Wants Some" …

: Bon Iver discovers the Option key on his Mac [caption id=“attachment_3815” align=“alignnone” …

: My first car. Except not right-hand drive. 1989 Honda Accord. And it was not nearly so clean, or …

: On the albums of The Clash Passing thoughts on the discography of The Clash that is not London Calling: Brian and I had a …

: 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 …

: 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 …

: Here comes GraphQL GraphQL is gaining purchase outside of the JavaScript communities and this seems like a pretty good …

: Weaponized jerks For a long time, the Central Intelligence Agency has had a guide to wrecking an organization by …

: Refactor the cow paths Ron Jeffries, Refactoring – Not on the backlog! Simples! We take the next feature that we are …

: 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 …

: Getting around, together Riding the Rails: Celebrating Trains and Subway Commuter Life: Train time is essential time, and …

: 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 …

: Our current political Trolley Problem As self-driving cars inch closer to a daily reality, the Trolley Problem seems to have entered our …

: A few qualities of mature developers What is technical leadership? Per Mature Developers, it's a lot of things. My favorites: So one of …

: 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 …

: 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 …

: 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 …

: Extra Ruby chaining, not that costly A few folks suggested I try lazy enumerables to make my extremely chained style practical. I was …

: 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 …

: Less fancy Programming is easier when you know how to stop solving 100 problems with 1 fancy thing and solve …

: How does a bomber outlast a JS library? Ember is probably leading the JavaScript framework pack by supporting releases with security patches …

: Code that resists Kellan Elliott-McCrea, on the way towards an understanding of technical debt, catalogs the ways we …

: Tinkering with Kinto Here’s a thing I want to experiment with. Short videos talking about what I’m currently …

: Three part method I find methods/functions decomposed into three parts really satisfying. Consider a typical xUnit …

: 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 …

: Things I’ve noticed San Franciscans deeply despise: housing prices nearby events that aren't …

: Threaded discussions: nope nope nope Pet peeve #73: threaded discussions. You may have seen it in a Usenet reader or perhaps even your …

: The future of programming is design, teaching, and empathy The Future Programming Manifesto starts with this header: Inessential complexity is the root of all …

: BDFLs aren't community builders What if large open source projects appointed a community manager to handle things like codes of …

: One model doesn't fit all There are two kinds of developers in the world: those who realize data models aren’t monolithic and …

: 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 …

: I am a unique snowflake Every software person is as special and unique as they think they are. But things go weird, in my …

: Rails doctrine and Kremlinology Long story short, Rails now has a nicely written Doctrine that delineates the principles that …

: Software design, always on the wrong foot Software design has probably been broken from the start. The earliest business software, machine …

: 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, …

: Easy steps to programming language commitment Feel pressured by other developers telling you that your programming language of choice is old, bad, …

: Code needs boundaries, but not too many Let’s talk about boundaries in programs. I need them, otherwise programs grow increasingly …

: That's a question In a technical conversation, I love to hear this: “that’s a good question!” Now we are going to talk …

: Life's Easy Mode This morning I walked a half mile, not too far, to a neighborhood coffee shop. I had two breakfast …

: Doubt mongering Doubt mongering. It’s a thing that happens because egos are fragile. Some doubts I’ve heard or …

: 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 …

: What about event sourcing? I was chatting about Event Sourced data models with a pal last week. He is really taken by the idea …

: Encapsulation is a tradeoff too Better understand Encapsulation. I can’t 😍 this article enough: An individual programmer has fixed …

: Bridging design and development with data Programming and designing with Pure UI: The process involved, among other things, creating a new …

: Microservices in context An interview with John Allspaw, on Etsy infrastructure and operations: For example, a good friend …

: When we model I’ve observed a few levels of modeling (i.e. thinking about a problem and describing it in concepts …

: Word processors, still imitating typewriters Right after we finish ridding the world of “floppy-disk-to-save” icons, I propose we …

: Ideas for Twittering better When it comes to Twitter, things can get out of hand fast. Setting aside the hostile environment …

: "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 …

: Hype curve superpositions It seems, these days, that technologies can exist in multiple phases of the hype curve, …

: Raising all boats It’s easy to complain about PHP. For instance, why didn’t they choose ☃ as their namespace …

: Functions about nothing The tricky thing about decomposing code into abstractions is you end up with “functions about …

: 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 …

: 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 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 …

: Organize your Gemfile by function and coupling Most Gemfiles I see are either unordered (just throw new gems in, wherever!) or alphabetically …

: Programming advice for a younger me How to get better at programming without even programming: Accept, in your heart and mind, that the …

: Leadership, pick a size Like fast food or coffee at Starbucks, maybe team leadership comes in three sizes. Extra large …

: Pick one novelty per project My pal Brandon Hays and I are fond of noting that projects have a very limited tolerance for the …

: 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 …

: When software loses its hair Software’s Receding Hairline: This is interesting, because the mechanism of growing a …

: New Pro Bowl selection explainer Pro Bowl rosters selected by Michael Irvin and Cris Carter: Last year, the NFL did away with the AFC …

: Sometimes Sometimes you go on a writing slump. Usually, just throwing something at the wall is how you undo …

: 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 …

: Dining at the source code buffet Let me start with a quote from wonderful person James Edward Gray II: One of my favorite techniques …

: Megaprojects: megacool Megaproject. It’s a cool word. It’s an even cooler list-of-pages on Wikipedia. I’ve only worked on …

: Is SNL trending up? Has SNL been getting worse? Viewer ratings say, nope. If anything, it’s becoming more …

: Sam Stephenson, understated and excellent I’ve enjoyed Sam Stephenson’s work for a long time. Even before “sheesh”, the most polite …

: Vacation, disposable, and calm computing 1 Let me talk about vacation computing. The prime directive of vacation computing is that you should …

: Apple, Disney, and obsession People in technology disproportionately like to comment on Apple’s products and business. Outside of …

: Multiplication over management When a developer becomes a manager, It’s not a promotion, it’s a career change: If you …

: How to succeed at Rails by trying I think most teams, probably 90% of them, should start and stick with Rails conventions. …

: The wolf moves fast... The Wolf: The Wolf moves fast because he or she is able to avoid the encumbering necessities of a …

: How waterparks became a thing The Men Who Built the Great American Waterpark, a roaring tale about the fellows who created the …

: Well-tuned judgement Lessons From A Lifetime Of Being A Programmer: Never stop learning, the technology steamroller is …

: Commercialeering Things you might hear in commercials/promotions for software and beer: “The first 96-calorie …

: Sportsball Deciphered (II) It’s Thursday. Sadly enough, this year, that means there’s football on. We’re far from peak …

: 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 …

: Put. The phone. Down. Nick Quaranto has Too many streams: There’s just too many things to pay attention to. I get …

: Conservation of complexity You can’t fight the Law of conservation of complexity: The law of conservation of complexity …

: Executables deciphered What's inside a compiled Hello, World program? Julia Evans is on that. How to read an executable: …

: Sportsball deciphered It’s September and football season is upon us. Thus, I will soon annoy the snot out of people who …

: Make systems from goals Use systems to get where you’re going, not goals: My problem with goals is that they are limiting. …

: 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 …

: Jerry Jones: slightly human, mostly Faustian The best thing you will read about Jerry Jones this year. Slightly humanizing, even. What Jerry …

: Thought + Quality Oliver Reichenstein, Putting Thought Into Things: Quality — as in “fitness for purpose” — lives in …

: When Developers Design I see lots of “should designers code?” articles and introductions to coding for designers. I see far …

: 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 …

: A Ruby hash, Luxury Touring Edition map.rb, quality software by Ara T. Howard: the awesome ruby container you've always wanted: a …

: 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, …

: 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 …

: Unpacking RailsConf 2014 RailsConf 2014 having wrapped up a few weeks ago, now seems like a good time to try and unpack what …

: A chunk of paper So I’m in rehearsals for a comedic musical. I love comedy. I’m very “meh” about …

: Businesses can empathy too Building an Ethical Business: Empathy is sometimes described as a personal trait, but it’s a skill, …

: About version numbers Conjecture: thinking about releasing software versions to users/partners/the public in dotted …

: English-like programming languages, like, yuck Glenn Vanderburg on teaching developer how to use Ruby testing APIs: For example: I hate it when …

: Pancake publishing I’m currently jazzed by the idea of full stack writing: Hi is what we call a “full stack” …

: Find your principles for editing programs Some folks from GitHub sprung the Atom text editor on the internet yesterday. Releasing a product …

: Counterpoint: Rails and instance variables A great thing about writing is that it focuses and sharpens one’s thoughts. The great thing about …

: A tale of two Rails views Why do I prefer to avoid referencing instance variables in view? I needed to clarify this personal …

: Rockets and startups A venture-funded startup is sort of like a space program. Space programs don’t build airplanes …

: Grow and cultivate Adding new functionality to software is really exciting. I love poking around the edges of a system, …

: Currently provoking my thought The worst NFL announcers, by the numbers (via Kottke). Obviously, this is my jam. To my surprise, …

: 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 …

: The joy of finishing Then, the finish. Stain. Wipe. Wait. Stain. Wipe. Wait. Sand. Wipe. Stain. Wipe. Wait. Check. Seal. …

: 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 …

: Not that kind of log First, read all of this excellent distillation of distributed systems by Jay Kreps, The Log: What …

: Dear Sync Diary Brent Simmons is keeping a diary as he works through implementing sync for Vesper, an iOS …

: 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 …

: This is how you chalkboard vimeo.com/82253916 By pal Brandon Keepers, who I had no idea had that kind of talent. Well done!

: 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 …

: Give me all your Blackbird stories The Blackbird had outrun nearly 4,000 missiles, not once taking a scratch from enemy fire. …

: Team superpowers: invest early, reap often Startup Engineering Team Super Powers. You want all of these. Well-considered investments in tooling …

: Aliens ate my program's state So, Adam from a few years ago, you think you can build a distributed system? Designing a concurrent …

: NSHipster rainbow bar My favorite design touch in the Gowalla apps was the rainbow bar. Small wonder that fellow Gowalla …

: Database rivalry in the Valley A couple years ago, Google released an embeddedable key-value database called LevelDB. There was …

: The false bad guy A pet peeve, in writing and thinking: introducing a false antagonist to create tension in a story. …

: Object-oriented relativism When a Method Can Do Nothing, Michael Feathers: If polymorphism means anything at all, it means that …

: Designing technological empowerment Applied Discovery: What future are we building, given that we play a role in such an important …

: Friday at a Mexican restaurant Could be any Mexican restaurant. Could be any Friday. This one seemed special to me.

: Currently intriguing me A channel, a sewer, Alabama, and a sunset walk into a bar: A Lua implementation of Go-style …

: Breakfast cannot wait, Prince rd.io/x/QFWiK0E… Look, Prince, I’m not sure if I can agree with you regarding …

: A path through Enumerable In Cocoa, you can poke inside object graphs (and more!) using dotted strings: NSDictionary …

: Football rules: not hard, even for the defense The NFL is going through an awkward transition from laissez-faire bloodsport to …

: Let me help you, computer DJ I look forward to the day when machine learning can differentiate between “don’t play this …

: Quit your desk Things I’ve quit doing at my desk: Many writers maintain a private writing hut. The hut has …

: It's all made of maths Math: humans mostly have a love/hate relationship with it. And yet, even if you’re challenged …

: Coffee and other warmups Making a cup of coffee sometimes helps me prepare for the process of solving puzzles with computers. …

: Off my grid Courtney regularly drives an hour southwest of Austin, past Dripping Springs, to practice dog …

: Reads for your weekends That what I’ve read today and greatly enjoyed: 1491, on rethinking what America looked like …

: Ignorance: pros and cons We can often, but not always, choose to ignore those on the internet, on TV, and in our lives with …

: Peyton Manning, boringly awesome or awesomely boring? The best thing you’ll read about football today. Peyton Manning is what happens when a guy …

: Draw your software Better Code Design through Pictures: Looking at a picture like this reveals so much that is missing …

: Happy Birthday, Mr. The Boss! How to celebrate the 64th birthday of Bruce Springsteen, “The Boss”, if you’re new to this curious …

: 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 …

: Developers are weird with words Naming things is hard. Witness things that developers have named and then struggle to explain …

: Twice the podcast listening I like to listen to podcasts and screencasts at two or three times the recorded speed. The …

: On music, mostly You know how sometimes, everything is clicking and you've just got it? Some people call it flow. On …

: 20% of programming is duh Sometimes I think 20% of programming is staring at a problem for thirty minutes and thinking there …

: Oh, the complexities you'll know Carried complexity is the bane of your application. When you add something to software, you incur …

: Confidence despite evolving systems Facing risk by instrumenting the hell out of it: Software development is a complex system existing …

: Problems as ever-changing mazes Problems, puzzles, startups as dynamic mazes: just running to the entrance of (say) the …

: Refactor for value over cleanliness Practice Responsible Refactoring: When cleaning up the code enables you to work faster for a task …

: Finishing software ain't easy When I start work on a project, whether for personal or professional purposes, I have a sense that I …

: 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 …

: 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 …

: Technology that's not a startup Here’s a nice story on technology that isn’t startups: Unhappy truckers and other …

: 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. …

: Overtime means your business is hurting Overtime is Morphine, Ernie Miller: A developer who is truly concerned about the health of his or …

: 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 …

: Tools for software in the large When software becomes successful, software often becomes large. More features, more support systems, …

: Less beautiful code, more code that works in production Developers should care and feed for their systems, especially when they’re in production. …

: Uncertainty, feedback, confidence, a happy ending Yesterday, I wanted to setup a quick feedback loop for writing some production code. But, I …

: Use what you got How Shopify scales Rails was one of my favorite talks at Big Ruby. Therein, John Duff talks through …

: When I complain instead of solve Pet peeve 74: whenever I slip and focus on complaining about who and what instead of thinking about …

: My Rite of Spring overfloweth Today’s the hundredth anniversary of premier of hometown favorite Igor Stravinsky’s Rite …

: 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 …

: Sandi's Rules One day, Sandi Metz was pressed by a team she was working with to produce a simple set of rules that …

: Your application is on fire Six easy pieces on thinking about sustainable code Your application is on fire. Something is …

: 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 …

: 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 …

: 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 …

: 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 …

: Look up every once in a while! Sometimes, I feel conditioned never to look beyond the first ten feet of the earth. Watch where …

: Exemplary documentation: size and purpose There’s a lot to say about programmer-focused software documentation. It’s more crucial …

: The Third Shift In the days of industrial labor, many factories ran three shifts per day. Three eight-hour shifts …

: A newsletter So I did this thing where I wrote a newsletter. I’m going to do it again. The first iteration …

: Web design for busy coders Here it is: I'm somewhere between horribly afraid and way-too-smart to seriously attempt front-end …

: 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 …

: Hypermedia chicken, web browser egg A lot of the hypermedia philosophy is centered around the idea that API clients should work a lot …

: 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 …

: Context is data to burst your bubbles Designing with context: Context is a slippery topic that evades attempts to define it too tightly. …

: Hyperthreading illustrated I'm fond of saying hyperthreading is a lie. It's true though; a dual hyperthreaded core is nowhere …

: TextMate's beautiful and flawed extension mechanism This is about how TextMate’s bundle mechanism was brilliant, but subtly flawed. However, to …

: Austin's startup vibe It's different from other towns. What's the Difference between Austin and San Francisco?: …

: 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 …

: SoundCloud, micro-services, and software largeness From a monolithic Ruby on Rails app to the JVM, how Soundcloud has transitioned to a hybrid approach …

: Those Who Make, by hand Those Who Make is a series about people who craft. Physical things, by hand, that don’t come …

: 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 …

: Feynman's mess of jiggling things Richard Feynman, in the process of explaining rubber bands: [youtube …

: The Rite of March INT. OFFICE: A team of enthusiastic young folk rush to get their “game changing” app ready for SXSW. …

: The double-tap I use Alfred because I believe that my computer should be practically unusable to other people who …

: 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 …

: Twitter's optimizations Data point: a few of the infrastructure pieces out of Twitter have been implemented in low-level, …

: Stella by Starlight My latest weekend project, called "Stella by Starlight" after a Charles Mingus recording, was to …

: Don't isolate yourself As a remote developer, it's tempting to create an environment where all you do is focus on churning …

: 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 …

: Thoughts on (Programming) Scala On a whim, I flew through Programming Scala this weekend. I’ve had the book for a while, and …

: Lessons from premature design Lessons from Premature Abstractions Illustrated. I’ve run afoul of all three of these: Make …

: Semantics/Empathy People argue about words all the time. In the past two weeks, I've participated and watched as nerds …

: Reflecting on Ruby releases Ruby 1.8 brought us a couple changes that made many kinds of metaprogramming easier, plus a whole …

: 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. …

: Declaring coupling A lot of discussions on software design end up focusing on dependencies and coupling. In short, hell …

: 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 …

: Smiling rappers

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

: Why I'm down on hypermedia containers In response to my hypermedia opinions, Mike Kelly said: These two seem to conflict: “In my opinion, …

: Hypermedia opinions Through the Gowalla API, and now the Sifter API, I’ve worked with a couple systems one could …

: How to Jerry Seinfeld How Jerry Seinfeld writes a joke: [youtube www.youtube.com/watch Very different from how I approach …

: 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 …

: A decentralized web is hard The Web We Lost, on the web of ad-hoc, bottom-up social networks before the pendulum swung fully …

: Wherein I heart Code Climate We’ve had Sifter’s repo hooked up to Code Climate for a couple months now and I’m …

: Focus-mode considered harmful I have, at times, been a practitioner of turning off notifications, superfluous applications, and …

: Ideas for living and creating differently Try thinking about living and creating a little differently today. Advice for beginners: push …

: Hit it, don't quit How to be good at anything. In short: do it, get feedback, study how to improve, repeat. Something …

: 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 …

: Needs better words How much easier would Haskell be if its vocabulary wasn’t so deeply rooted in abstract …

: The qualities of better code What is 'better' code? Dave Copeland on the qualities readable, changeable code exhibits. …

: Gimme clarity Wise pal Brain Bailey, along the way to writing about Woody Allen, perfectly articulates my …

: The feel of a commented program Opening a nicely documented source file is like opening a well-designed, nicely printed book. The …

: Some productivity winners Three things that are making me more productive lately: Pick a thing and do it. Whatever you want …

: 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, …

: Get in my ears, you dissonant chord Petrushka chord. Two major chords played a half-tone apart. So, it sounds good, except it sounds …

: Dustin Curtis' recipe for doing Do. Your short, sharp inspirational mantras for the week.

: RubyConf 2012 notes My notes, in a somewhat sketch-esque fashion, from RubyConf 2012. I hope they’re useful and/or …

: Pop discovery/rediscovery Programming is like pop culture in the sense that Blondie gets reinvented every decade and every …

: Marginal pennies and dollars The give a penny, take a penny jar is a logical conundrum. It is not, on its surface, a rational …

: Ruthlessness and fighting for it You Are Not Ruthless Enough: Being ruthless to yourself means every time you say “oh, I’ll just open …

: Working with Ruby's GVL Visualising the Ruby Global VM Lock. A nice commit-by-commit look at how extensions for Ruby 1.9 …

: A pithy take on development vs. operations The essential, face-palming difference between too many development teams and too many operations …

: How Ruby IO is formed Ruby's IO Buffering And You! Jesse Storimer screencasts his way through what happens when you …

: Follow the smells It’s handy to know a lot about programming langauges, patterns, “best” practices, …

: A handful of useful project mantras You could do a lot worse than following the heuristics set out by this Software Architecture cheat …

: Know a little hardware Consider: Google's intricate and massive data center operations, wherein Google is not only leading …

: A kingdom of concerns When doing object-oriented programming and following SOLID principles, there is sometimes a concern …

: bitly's nsq has some good ideas bitly/nsq: NSQ is a realtime message processing system designed to operate at bitly's scale, …

: Invent the right thing You have to invent the right thing. Some things you might invent: A solution to a problem. Nothing …

: A better shared space Remote teams are hard. Not impossible hard, but running uphill hard. It’s hard because people …

: I got Clojure stacks Here’s a Sunday afternoon hack. It’s a “stack” machine implemented in …

: Faster, computer program, kill kill! Making code faster requires insight into the particulars of how computers work. Processor …

: When to Sinatra, when to Rails On Rails, Sinatra, and picking the right tool for the job. Pedro Belo, of Heroku fame, finds Rails …

: Common sense code checks Etsy’s Static Analysis for PHP. This isn’t as complicated as you might think. While …

: Designing for Concurrency A lot is made about how difficult it is to write multi-threaded programs. No doubt, it is harder …

: Cardinal sins It is conceivable that a really good machine can learn our hash algorithm really well, but in the …

: Three application growth stories First you grow your application, then you grow your organization, and then you get down to the metal …

: My inner dialog while coding I’m a bit of a sailor when I’m wrangling my own creations.

: 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 …

: One part mechanics, one part science One black-and-white perspective on building software is that part of it is about mechanics and part …

: Know a feedback loop TDD is one way to create a feedback loop for building your application. Spiking code out and then …

: 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 …

: 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 …

: The test-driven astronaut Don't Make Your Code "More Testable", make the design of your program better. Snappy …

: Simplicators for sanity For those rainy days when integrating with a not-entirely sane system is getting you down: A …

: Smelly obsessions Get Rid of That Code Smell - Primitive Obsession: Think about it this way: would you use a string to …

: 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 …

: A romantic comedy: OO and FP My magic ball predicts that OO and FP are going to take something of a “romantic comedy” …

: Rediscovery: OO and FP I’ve noticed some of the sharpest developers I know are doing one or both of these things: …

: Three kinds of distributed systems Little-d distributed systems: the accidental sort. You built a program, it ran on one server. Then …

: 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 …

: Future lies It’s easy to delude yourself when writing software. Do these tests really describe what the …

: Too eager to add code I’m a little too eager to add code. If there’s a mess that needs refurbishing, rather …

: 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 …

: "Surround yourself with beautiful software" Building an army of robots, Kyle Kneath on GitHub's internal tools. The closing line of this deck is …

: Etsy's rules of distributed systems Architecting for change. Complex systems and change: Distributed systems are inherently complex. …

: Thread safety in Rails, explained! Read up on Thread and Queue and ready for more multi-threaded Ruby reading? Aaron Patterson has …

: 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 …

: 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, …

: The Grinder As teams grow and specialize, I’ve noticed people tend to take on characters that I see over …

: AC/DC writes robust songs AC/DC writes songs that are fundamentally very strong. They aren’t the most touching, …

: They can't all be winners My Tuesdays typically look like this: write/hack for my weblog, work, lunch, work, short run, and …

: The forces of change on the US legislature As of 2012, the major forces operating on the legislation of the US government are, unscientifically …

: Keep your application state out of your queue I’m going to pick on Resque here, since it’s nominally great and widely used. …

: Convincing yourself you’re not done Writer’s block gets all the attention. It robs the inspired and stunts the progress of those …

: 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 …

: 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 …

: Three Easy Essays on Distributed Systems Ryan Smith is pretty good at thinking about distributed systems. Distributed systems, the systems we …

: Ruby anthropology with Hopper Zach Holman is doing some interesting code anthropology on the Ruby community. Consider Aggressively …

: A real coding workspace Do you miss the ability to take a bunch of paper, books, and writing utensils and spread them out …

: UserVoice's extremely detailed project workflow Some nice people at UserVoice took the time to jot down how they manage their product. Amongst the …

: Cowboy dependencies So you’ve written a cool open source library. It’s at the point where it’s useful. …

: A Presenter is a signal When someone says “your view or API layer needs presenters”, it’s easy to get …

: Learn Unix the Jesse Storimer way 11 Resources for Learning Unix Programming: I tend to steer clear of the thick reference books and …

: How to approach a database-shaped problem When it comes to caching and primary storage of an application’s data, developers are faced …

: 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 …

: Tool agnosticism is good for you When it comes to programming editors, frameworks, and languages, you’re likely to take one of …

: 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 …

: 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 …

: 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 …

: Write more manpages Every program, library, framework, and application needs documentation of some sort; this much is …

: 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 …

: Own your development tools, and other cooking metaphors Noel Rappin encourages all of us to use our development tools efficiently. If your editor or …

: 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 …

: What kind of HTTP API is that? An API Ontology: if you were curious about what the difference between an RPC, SOAP, REST, and …

: On rolling one's own metrics kit On instrumenting Rails, custom aggregators, bespoke dashboards, and reinventing the wheel; 37signals …

: Whither code review and pairing Jesse Storimer has great thoughts on code review and pairing. You Should be Doing Formal Code …

: 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 …

: Hip-hop for nerds: "Otis" (Ed. Herein, I attempt to break down a current favorite of mine, “Otis” by Jay-Z and …

: 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: …

: 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 …

: Represent dat API Rails is missing an abstraction when it comes to building REST APIs, in my opinion. Requests route …

: When to Class.new In response to Why metaprogram when you can program?, an astute reader asked for an example of when …

: 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 …

: Four essential topics of 2011, in charts The Year In 4 Charts: Planet Money does an excellent job collecting four economic charts (themselves …

: Making a little musical thing After software development, music is probably the thing I know the most about. My brain is full of …

: Crafting lightsabers, uptime the systems, a little Clojure Herein, some great technical writings from the past week or two. Crafting your editor lightsaber …

: A short routine for making awesome things I’ve said all this stuff before, but I came across some nice writing that highlights people …

: Quality in the inner loop Quality in Craftsmanship: In software, this means that every piece of code and UI matters on its …

: 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 …

: Modern Von Neumann machines, how do they work? Modern Microprocessors - A 90 Minute Guide!. If you didn't find a peculiar joy in computer …

: Changing legacy code, made less painful Rescuing Legacy Code by Extracting Pure Functions. Come across strange, pre-existing code. Decide …

: Cassandra at Gowalla Over the past year, I’ve done a lot of work making Cassandra part of Gowalla’s …

: 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 …

: 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 …

: Growing a culture I previously noted that adding people to a team is tricky, doing so quickly doubly so. A nice …

: The pitfalls of growing a team Premature Ramp-up, Martin Fowler on the perils of building up a development team too quickly: loss …

: A food/software change metaphor Are You Changing the Menu or the Food? Incremental change, the food metaphor edition. It's about …

: How do you devop? I’m a sucker for good portmanteau. “Devops” is a precise, but not particularly …

: 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 …

: Your frienemy, the ORM When modeling how our domain objects map to what is stored in a database, an object-relational …

: Relentless Shipping Relentless Quality is a great piece. We should all strive to make really fantastic stuff. But I …

: The guy doing the typing makes the call Everyone brings unique perspective to a team. Each person has learned from successes and failures. …

: 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 …

: Skip the hyperbole Hyperbole is a tricky thing. In a joke, it works great. Its the foundation of a tall tale (TO …

: Practical words on mocking Practical Mock Advice is practical: Coordinator objects like controllers are driven into existence …

: 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. …

: Refactor to modules, for great good Got a class or model that’s getting a little too fat? Refactor to Modules. I’ve done …

: ZeroMQ inproc implies one context I’ve been tinkering with ZeroMQ a bit lately. Abstracting sockets like this is a great idea. …

: 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 …

: Ruby's roots in AWK AWK-ward Ruby. One man Unix wrecking squad Ryan Tomayko reflects on aspects of Ruby that arguably …

: Humankind's genius turned upon itself When We Tested Nuclear Bombs. An absolutely fantastic collection of photos from the nuclear test …

: Burpess and other intense workouts What’s the Best Exercise? But when pressed, he suggested one of the foundations of old-fashioned …

: 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 …

: Don't complain, make things better notes on “an empathetic plan”: Worse is when the the people doing the complaining also …

: Perfection isn't sustainable Perfect vs. interesting: When an interesting person is momentarily not-interesting, I wait …

: Using Conway's Law for the power of good Michael Feathers isn’t so quick to place negative connotations on Conway’s Law. Perhaps …

: Hell is other people's concurrency The first rule of evented programming is, don’t block the event loop! Mathias Meyer’s …

: Bloom, a language with time travel Bloom, a language for disordered (whut!) distributed programming with powerful consistency analysis …

: 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 …

: Linux screenshot nostalgia Anyone else remember uploading screenshots of their super awesome, tweaked out Linux hacker …

: 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 …

: The joy of logs Logs Are Streams, Not Files: But a better conceptual model is to treat logs as time-ordered streams: …

: I'm Corgi-internet famous OCD: Obsessive Corgi Disorder, Kitty putting the moves on my man. Also on Men and their dogs. …

: Noel Rappin's Advice on TDD Testing Advice in Eleven Steps. My favorite: At any given moment, the next test has some chance of …

: Organizing and decoding problems My favorite sort of problem involves the interactions between individuals, groups of people, and …

: 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 …

: Driven to drawing monsters From my notebook: I don't recall what I was working on the time, but it seems that the interaction …

: Clips from unfinished pieces On the crux of America's challenges: Part of the American experiment is answering the question, "how …

: Focus, momentum, and accomplishment Lately, I’m a little fascinated by the interplay between focus, momentum, and accomplishment. …

: A conversation between fictional engineers in a fictional world A hypothetical conversation that may have occurred between two non-existent engineers working on the …

: Simple Ruby pleasures I think I first discovered the joy of take and drop in my journeys through Haskell. But it appears …

: The political empathy gap The structural problems in American political discourse are legion. Polarized interests, corporate …

: 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. …

: 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 …

: Four odes to Amazon Prime twitter.com/therealad… I have a somewhat irrational “thing” for Amazon Prime. So …

: Groove failure and reacquisition Into every creator’s life, a few non-creative events must fall. Sometimes its meetings, maybe …

: A language experiment writ large For the past year, the Java ecosystem has seen interesting evolution. Java the language continues …

: 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 …

: Language and brains, an update Does Your Language Shape How You Think? An update on the current thinking around the Sapir-Whorf …

: 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 …

: Computers should do the boring bits Future-proofing, Uniform Access, and Masquerades: Boring work should be a cardinal sin in …

: An ode to Hashie I was building an API wrapper this weekend. As is common when writing these sorts of things, I found …

: Examining software principles There are too many good things to say about the Design Principles Behind Smalltalk. A few of my …

: Making the complicated seem simple Don Norman, Simplicity Is Not the Answer: We want devices that do a lot, but that do not confuse, …

: Form: follow your influences Now that I've sort of ranted about tinkering with software and how it is less important than …

: 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 …

: Michael Feathers on how code grows Festering Code Bases and Budding Code Bases: Some teams produce what I call a festering code base. …

: 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 …

: 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 …

: Breaking My Habits For Editing Programs I’m a Unix guy, by upbringing. My first formative experiences in software development were on …

: 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 …

: Rails' Next Top Model Of all the new and reimagined code in Rails 3, ActiveModel and ActiveRelation rank amongst what I …

: Make More Awesome Over the past year, I’ve been trying to create more stuff, some of which I’d hope to …

: 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, …

: 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 …

: 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, …

: 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 …

: Those who think with their fingers In the past couple of years, I’ve discovered an interesting way to think about programming problems. …

: Kindly cogs in unpleasant machines Some of the most villified companies are poorly regarded because of the way they treat their own …

: A quick RVM rundown (It so happens I’m presenting this at Dallas.rb tonight. Hopefully it can also be useful to …

: The imperfection of our tools I enjoy a well-crafted application. I place a high value on attention to detail, have opinions on …

: Warning: politics Embedded within the migraine that is American politics are some very interesting ideas. Economics, …

: Goodbye, gutbombs Last March my wife and I joined a gym, started working out with a trainer, started trying to eat …

: Give attribute_mapper a try (For the impatient: skip directly to the `attribute_mapper` gem.) In the past couple months, …

: Just For Fun This year was my fourth RubyConf. I’ve always come away from RubyConf energized and inspired. …

: Curated Awesome, the 2nd The awesome Samson and Delilah, “Emilioooooo!”, Belushi and a skinny tie, contemplating …

: The Kindle's sweet spot Given all the hubbub about Kindles, Nooks and their utility, I thought this bears repeating to a …

: Testing declarative code I’m a little conflicted about how and if one should write test code for declarative code. Let’s say …

: Texas is its own dumb thing Southern American English OK, here’s the deal. Wikipedia has it all wrong. Texas is not part …

: Curated awesome, the 1st A bumpy subway wall, loving things for their Unix-y qualities, Kurt Vonnegut looking dapper, the …

: Chance Encounter Another meme-ish “film” by yours truly. This time, the idea is you do something in five …

: Dallas could get a pedestrian bridge Trinity gift is $10 million for pedestrian bridge. Catering to pedestrians, in Dallas? Surely you …

: Ghostbusters then and now What happens when you take scenes from Ghostbusters and see how New York used to look and how it …

: Birthing Born to Run The birth of Born To Run. On the creation and evolution of the song and album. Great read for …

: Representing time in our programs Time is the New Memory: The time problem is not easy to see in today's mainstream languages because …

: Ain't talkin' 'bout the man Here’s a fun game. “The Government”: Try something. Every time somebody complains …

: Polyglottin' your data Polyglot persistence: I think that many of the NoSQL crowd either fail to either recognize, or to …

: Tons of FP fun A programming language zoo, a week of FP heaven, rewriting PHP with Haskell and a game for kids of …

: iPod Spaceman (With due apologies to the creators of New Math, the writers of 30 Rock and the lovely iPod people.)

: Tracking your own context switches Why I do Time Tracking At one point, I tracked every context switch during my work day. I kept a …

: Fred, in a nutshell Fred in depth.

: On American political insanity Still crazy after all these years: Politicians should tone down the rhetoric. Protesters should …

: 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 …

: Blame the compiler Remember when you first started programming? Those early days when you'd take some code out of a …

: Two cellphones People with two cellphones worry me. (More six word stories. Also, an article as such in Wired.)

: The Technology Behind Tag Better I promised you the details on how we built Tag Better, so here we go. This is what I used to build …

: Tag Better Yesterday and today, I worked with Alex Bischoff and Chris Griego on a Rails Rumble project. In less …

: My Why Story Chris Wanstrath: Now we can all stop obsessing about who we think he was and instead focus on who he …

: Fun Cannonball Adderley: It's called "Fun". F-U-N, fun. That's something you can do, when everything is …

: 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 …

: Testify Two unrelated and great songs, one title. “Testify” by Parliament …

: Working from home, better Tips for working alone: The other thing I’m doing is bringing back my practice of writing …

: Gird your greyscales Logan Hicks has some really great subterranean photography going on. (Via Infrastructurist) And if …

: Getting to know your bookshelf The Book Stalker - Rands figures you out by your bookshelf: Where’s your bookshelf? …

: Free Parking Is Not Free Free Parking Isn’t Free. Turns out those parking lots, while sometimes handy, are actually …

: Kill your menubar darlings The Menubar Challenge - everybody, clear out your menubars! It’s one of my secret productivity …

: My setup Shawn Blanc has been cataloging sweet Mac setups. Last week, he published a description of my own …

: Balmer =~ Tarkin Steve Ballmer: Evacuate? In our moment of triumph? I think you overestimate their chances. OK, maybe …

: Code re-use as technical debt I have extremely mixed feelings about code re-use. I think it’s largely a red herring, never …

: rufus-tokyo goes 1.0.0 rufus-tokyo 1.0.0 - I’ve been tinkering with Tokyo Cabinet and Tyrant lately. It’s great …

: Disastersploitation DISASTER! Crank that funk.

: Differently hackish keyword arguments for Ruby maca’s arguments - keyword arguments support for Ruby, now. Wickedly clever hack that does …

: Interviewing to seek values Adam Wiggins, per usual, is on to something. Values: Sharing values is the most important part of …

: Infinite Jest and fanatics Infinite Jest on patriotism, fanatics, love, attachments, and temples: ‘Your U.S.A. word for …

: Software development requires empathy If You Want to Write Useful Software, You Have to Do Tech Support: It seems so obvious: if you want …

: Instapaper is wonderful I have loved Instapaper ever since I became aware of it. It fits perfectly into my workflow. There’s …

: Haskell modulo excess theory My journey through Haskell is on something of a lull, but John Wiegley’s got you covered. …

: When to do test-driven development I believe that writing code using testing[1] as a design activity yields long-term benefits that …

: A slide in the workplace The Red Bull headquarters in London has a slide going between floors. I want to go to there. Photo …

: Super Mario motors Too cool - Super Mario stepper motor music: …

: Meaningful work Going to meaningful work: Just like being awake is more than just having your eyes open, going to …

: Breaking with tradition For the like-minded aficionados of the non-traditional: A Redis implementation of Twitter, designed …

: The joy of enigmas ...thinking about an enigma. There it is before you—smiling, frowning, inviting, grand, mean, …

: Poisonous people and genius programmers Brian Fitzpatrick and Ben Collins-Sussman have done a couple great talks on probing the important …

: Meditations on golf We’re just wrapping up that nice time of the year in Texas. Technically, we get two nice parts …

: Visualizing language trade-offs Guillaume Marceau has done some excellent work crafting the data from the venerable Computer …

: 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 …

: How did SQL get so popular? Many developers, especially of the younger generation, dislike relational databases and their …

: Shippin' ain't easy Shippin’ web apps ain’t easy. The Contrast guys lay it out. Garrett Dimon shows what …

: The Roots on tour 24 Hours With The Roots - The Roots are totally my new bicycle lately.

: Design: it's important Via Konigi, David Malouf: Great design in the end will give us something to relate to, to feel …

: Enjoy some Wu Ooh, baby, I like it raww… - Some Wu-Tang Clan for you. I’ve been finding Yes Yes …

: Put your objects in space Space-based Architecture - on building and scaling your system with a tuple space, the kissing …

: The non-existent tension between FP and OOP Is the Supremacy of Object-Oriented Programming Over?: The fact is, for a lot of these …

: Personal website patterns I was thinking about the sorts of personal sites I’ve enjoyed on the web. They roughly fall …

: The State on DVD, finally It would appear that, after long last, The State DVD is forthcoming. I cannot wait. The State and …

: Three sides of language geekery Ted Leung’s notes on the JVM Language Summit, Dynamic Language Summit and Lang.NET. Great …

: LOST in-joke DUDE. Other phrases of common occurrence in LOST. (Via Heilemann.)

: Your Friday Jam Here is your Friday Jam: The De La Soul Dugout. Quite good. See also: WEFUNK radio.

: A console for any Ruby project I’ve been finding this little snippet extremely useful lately: $ irb -Ilib -rmy_library If …

: John Mayer, closet software developer “The idea is to run as many concurrent streams of production as we can." - Is John Mayer …

: More harmful than harmful We are lucky to live in a time when 99.9% of programmers will never have a legitimate argument for …

: 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 …

: Postmodern comedy gold The Nietzsche Family Circus - random Nietzsche quote + vintage comics = comedy gold.

: When technical discussions get intense Pro-tip: trying to unwind contentious technical discussions is a losing game. There are really …

: Think The scene in The Blues Brothers where they are recruiting Matt “Guitar” Murphy is quite …

: The economic dashboard What’s the state of the economy? - a stunningly brilliant visualization of where the economy …

: Even the Dharma Initiative has to advertise Vintage Dharma Initiative Ads. Very excellent.

: Decoupling newspapers My wife works for the local newspaper (thankfully, in their less layoff-prone online division). So …

: 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 …

: Pattern matching in Ruby with Case Pattern matching, ala Erlang or Haskell, is a language feature near and dear to my heart. Dean …

: The power of not knowing Christian Neukirchen: It's a programmer's biggest strength when he knows what he doesn't need to …

: Get excited and make things Yes.

: Using Haskell for awesome I’ve joked that Haskell is all about reading other people’s theses, but you can do …

: Rubinius threads, for mere mortals A no non-sense, non-academic introduction to how Rubinius' threading is structured. Having read a …

: This is no former-Parrot Hey look! Parrot went 1.0. Parrot is an open source virtual machine aimed at making it easy for …

: On feeds: application posture EventBox. It’s a great idea - roll all the social/distracting applications in your life into …

: Making the pretty docs When you really need to generate nice technical documentation, you would be wise to walk in Assaf …

: A few promising Ruby libraries From the hall of promising Ruby libraries: an FFI binding to Lua, Ruby to Lua, a neat framework for …

: Congruous capitalism Here’s some idealism for you: I would like to think that the future of human endeavors is …

: Awesome yak shaves I was sharing some nefarious plans with Dave Thomas yesterday at the DFW PragProg lunch. He later …

: On news: The Economist At the height of the DeLay/Rove movement, I became very disenchanted with news and politics. The …

: What I'm Thinking Last night at Cohabitat, we did some lightning talks. The prompt was “What I’m …

: Recreating that famous opening scene I would do the same thing. Brought to you by Alan Francis.

: 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 …

: Eye candy for everyone Scaling and scale models. So much great imagery here, you’re just going to have to click the …

: Developing fluidly Here’s a raw idea I’m playing with in my head: Agile development is great. But, if your …

: Classy Web Development with Sinatra An admission: I didn’t really do as many awesome things during the Bush administration that I …

: Great Nike ad Beethoven’s Ninth and skippy video? You’ve got my attention. Nike - The Five from …

: How you do what you does Alex Payne has an idiomatic and wonderful way of sharing the interesting parts of his workflow …

: Coolest building in downtown Dallas Check out the rest of The Urban Fabric’s stuff, he’s done many great pictures of …

: Neko Case hearts dogs Post Neko Case’s new single Neko Case donates $5 to dog rescue Done.

: On news: beginnings I first started trying to figure out the world, and especially politics, after September 11th. …

: Thor doing his thing My wife doing the canine agility: …

: More monads “While we’re talking about monads”:therealadam.com/archive/2… you should …

: DataMapper + Factory Girl I’ve been toying with “Factory Girl”:www.thoughtbot.com/projects/… lately. …

: Compare and contrast Compare. “Suburbs built on top of military/industrial …

: On Feeds: Tactics Ask enough people what feeds they read and you will quickly hear “too many” and “I …

: Monads + Ruby = crazy Guaranteed to boil your brain: do notation in Ruby. You got your monads in my Ruby! He uses …

: 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 …

: Agile on a column Justin Ouellette: When these have all been taken down it's ready to go.

: On Feeds: My History Ted Leung recently noted his “blog-aversary”:www.sauria.com/blog/2009… This …

: 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 …

: Comicus “Matt McCray’s”:www.mattmccray.com Comicus is a CMS for …

: Generative Van Halen I saw this last week (really!), but it appears the “blogger embargo” was broken on …

: Vast social abstractions We are surrounded by huge institutions we can never penetrate: the City, the banking system, …

: Regarding the 2009 NFL playoffs The announcers of the Pittsburgh/San Diego game went on and on about what good condition the field …

: Bill Burcham does stuff Where Bill Burcham does what he does.

: I found more awesome on the web Via Tinker It Now!, I ended up at Live Control of Open Source Animation in Animata. Therein, …

: 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 …

: Close tabs and remove icons relentlessly Matt Lyon asks, “What’s the cure for tab-itis”? I’ll share the answer with …

: Heat dissipation tower Via ffffound.

: Birdland, Forgetting, Libertarianism, Hoboken Hello, 2009! Let’s try a slightly different format. Starting it out with ““Birdland” by …

: Ogres and APIs Bringing Merb’s provides/display into Rails 3: The symmetry relates to another point in API …

: True Hip-Hop Stories True Hip-Hop Stories: Lords of The Underground from D-Nice on Vimeo.

: Whither desktop or web Lately, I’m finding myself replacing free web-apps with desktop software or commercial …

: Change it up Do something new every three years: I was thinking about the three-year rule while reading about …

: 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 …

: Crazy hair A great. Photo. Of Christopher. Walken.

: The Creative Big Bang That John Gruber, he's good with the words. From Bang: Consider the Big Bang. One moment there was …

: People are making cool stuff This morning I followed a link that _why shared with us, a lo-fi guitar pedal built around an …

: I am going to call Ghostbusters At the risk of rambling too much about games: DO WANT. …

: Military-industrial TV Left to my own devices, I end up watching stuff on TV about fighter jets, submarines, etc. a whole …

: Beautifully static Game trailers are frequently a montage of confusing montage. This trailer stands in stark contrast …

: Fred's business card I made a business card for Fred. For those keeping score at home, this is what happens when …

: Gentlemen's Agreements BMW and Mercedes produce cars in direct competition. Further, everyone else in the auto industry …

: The hopping doll video game Too cool. …

: My notes from RubyConf 2008 This year at RubyConf, I decided to go analog and take hand-written notes. (Someone did this for …

: Dallas' multitudes The Dallas Myth, Again quotes Molly Ivins: There is a black Dallas, there is a Chicano Dallas, there …

: Gaming and design Khoi Vinh’s thoughts on games and their relation to what I aspire to do on the web: …

: Modernism in sheds Prefab Sheds - Modernism in Miniature. Cool looking stuff, and its promising that people are …

: Bruce Springsteen in a nutshell “Light Of Day”: Things can't get any worse, they gotta get better It’s the deep …

: One Velociraptor Per Child The One Velociraptor Per Child project: The project's origins go back more than four decades to the …

: My Day, Yesterday Made for Garrett Murray’s excellent My Day, Yesterday group.

: Applying CSS Why Programmers Suck at CSS - a great primer on how to get from mechanical knowledge of how CSS …

: Getting Around In the same ilk as Garret Murray’s My Day, Yesterday pool, I propose you make a video of the …

: Stupid Struct Tricks All About Struct - there’s always more to learn about @Struct@, unless you’re James …

: Stream of curiosity Questions going through my head right now: Why is “The Men All Pause” seven minutes …

: Learn You a Haskell Learn You a Haskell for Great Good! - if you learned Ruby via The Poignant Guide, you’ll like …

: Star Wars A-Z Star Wars ABC: Neat!

: Uptown Dallas Great photo by the urban fabric:

: Garrett's life, yesterday My Day, Yesterday - a glimpse into the world of Garrett Murray. Best ninety seconds of video …

: Bell curves Rands In Repose: Horrible: You are a bell curve.

: Launch the missiles! The A-Z of Programming Languages: Haskell - a great interview with the awesome Simon Peyton-Jones on …

: JBox2D equals fun JBox2D is a port of a C++ physics engine to Java. Being Java means you can use it in Processing. …

: Awesome desk OneLessDesk™ by Heckler Design - want.

: Mining my Git repositories Since I started using Git, I’ve been finding myself creating tons of repositories. Anything I …

: Rich Kilmer speaketh Ruby’s Best Feature? Rich Kilmer is one of those uncanny developers who can crank out orders …

: Awesome writing [youtube=[www.youtube.com/watch](http://www.youtube.com/watch?v=Ky5p-L_m6BQ&hl=en&fs=1]) I want to …

: You need more Lyle Lovett Lyle Lovett is quite possibly one of Texas' finest exports. If you’re not hip then …

: Read slightly less, practice slightly more Chris Wanswrath, a smart and distinguished fellow, advises us to burn our news readers and just …

: Our trip to Germany in pictures Here are four of my favorite pictures from our trip to Germany: From top to bottom we’ve …

: Vector Prime Vector Prime. Yeah, I’m that big of a Star Wars nerds, I read these little novels when I need …

: I Heart Complexity Like I said, I think the market for simple applications is probably saturated and now is the time …

: Pretty Parallax jParallax - a JavaScript gizmo for composing images using a parallax effect. In other words, …

: Freakonomics Freakonomics. Its not about economics in the dry, dismal sense that I remember from college. This is …

: RailsConf Europe, here I come RailsConf Europe is next week. I’m so there! I’m giving a talk on complexity and how I …

: Guns, Germs and Steel Guns, Germs and Steel is one of those essential books that makes more sense of the world. …

: "with" for Ruby Use with caution: That said, @with@ is discouraged in JavaScript. If you can, its better to have …

: Those were the droids (via)

: Last.fm's shame aggregator Most Unwanted Scrobbles - Last.fm aggregates the tracks and artists that people don’t want the …

: Domain Driven Design Designing software is a tricky thing. It’s tempting to front-load it on a project. That …

: Interview with David Flanagan, part 2 The second part of my interview with David Flanagan is online. This time around we talk about the …

: 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 …

: Catch up with 30 Rock OK, here’s the deal. If you’re not watching 30 Rock, you’re not watching the best …

: Google Calendar + iCal + CalDAV = happy Google Calendar CalDAV support - instructions for setting up Google Calendar accounts with iCal. …

: Sync your TaskPapers I’m a fan of TaskPaper, the todo-list app that makes sense and doesn’t throw huge …

: Interview with David Flanagan Last week I interviewed the author of The Ruby Programming Langauge, David Flanagan. We posted the …

: American demographic inversion Trading Places: In the past three decades, Chicago has undergone changes that are routinely …

: 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 …

: Program is information. Its retro, its cool. It’ll come in handy when I need slides on the sameness of code and data …

: Good Erlang reading Socklabs - lots of interesting Erlang bits here. Not academic at all. :)

: Realtime challenges beyond rest - if publishing data in realtime, XMPP, Comet and scaling HTTP services pique your …

: Women working on a plane 1940s and 50s industry is neat, OK? Via ffffound!

: Some Grieg Please to enjoy, Grieg’s Piano Concerto in A minor. Brought to you by Artur Rubinstein and the …

: Thor and agility Watching Thor at his agility classes is really interesting. It’s fun to see the dogs …

: House on water I wouldn’t mind living on the water like this. Via ffffound!

: HTTP wrappers with ease httparty looks really cool. It’s a little library for making writing tiny REST clients easier. …

: Agility course made of people Wow. …

: Community anti-patterns You’ll have to pardon me for linking to Ted Leung twice in short order, but the man is good …

: Its a Data. Base. Say it with me. Data. Base. I knew you could! Via Square America.

: Not your father's IDE IDE’s and Dynamic Languages. Ted Leung’s got some useful and insightful things to say …

: Golf fail My golf game is hurting these days. Since I’ve become so familiar with my shots drifting off …

: Failings of the expert's mind Why Analytical Applications Fail. Ostensibly, this article is about analytics applications that …

: Practical language kleptomania Introducing Functor - another library for implementing multiple dispatch/pattern matching in Ruby. …

: git.repo.revs.each(...) Git Iterator - a neat little gizmo for running code against every revision in your Git repository. …

: 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, …

: Manipulating windows from afar h2. Adam’s 9th Law Of Presenting When you connect the projector to your laptop, the menubar …

: More modules, please Jay Fields' Thoughts: Ruby: Underuse of Modules. Modules are your best friend, ya’ll. Use …

: Congestion and decongestion Two really awesome maps: National Traffic Scorecard and undersea internet cables (via Coudal).

: You say simple, I say simple The Simplest Thing That Could Possibly Work: At first the developer said "this is where we're going …

: Three new rules on golf Yesterday I decided to go off and play a little golf. Somehow, I had the most awesomest round of …

: Why is oil so damn expensive? Great article in The Economist on oil prices and what’s causing their painful rise. Double, …

: The Joy of Science Put a Little Science in Your Life: Science is a way of life. Science is a perspective. Science is …

: 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 …

: Microsoft's spin on memcached Microsoft cargo cults memcached! , via Simon Willison. Back when I worked in a semi-.NET shop, we …

: Fake Rails environment For testing some bits inside of ActiveRecord proper. module Rails def self.env o = Class.new do def …

: Oh, The Fail I've Known Please to enjoy my presentation for RailsConf 2008: Oh, The Fail I’ve Known (PDF). | View | …

: See me at RailsConf '08 As hordes of Ruby and Rails folks begin the annual migration to Portland for RailsConf, I thought …

: Pinky and the LOLdog

: I made you a muxtape I hope you enjoy listening to it as much as I enjoyed compiling it.

: Destructuring assignment in block parameters …which is just a fancy way to say that this works like I think it should: >> [['foo', …

: Frogged My current foster-hussy-girlfriend. She’s kind of a spaz, but oh-so adorable. Doubly so when …

: More fu in your versions Lazily Announcing version_fu - an update of Rick Olson’s acts_as_versioned that works with …

: Info viz with JavaScript Massive kudos to John Resig for his JavaScript Processing port. Take this plus the new-to-me …

: Changing git submodule URLs Pro-tip: if you’re using submodules with Git to manage dependencies (say Rails plugins), you …

: Ruby for non-Rubyists Yesterday I spoke to a pleasant mix of Java, .NET, Ruby, Python and PHP developers at Dallas …

: Beautiful multi-line blocks in Ruby “I need a new drug”:http://youtube.com/watch?v=MMSFX1Vb3xQ. One that won’t quit. …

: Halo Photography Joshuadamon’s Halotography is utterly amazing: I’m really impressed with what …

: Can I send you a message? @Object#send@ - the joy of Rubyists and the scourge of those who would write refactoring tools. …

: Some language twins teach each other SNL Transcripts: Luke Perry: 02/06/93: Weekend Update with Kevin Nealon: That wasn't English, …

: Exploratory hacking in TextMate My first foray into screencasting: Textmate and xmp from Adam Keys on Vimeo. ‘Tis a little …

: Reverse shoulder surfing Rands In Repose: Saving Seconds: This is the presentation I want to see at the next conference: in …

: Awesome Star Wars posters Founds this in Michael Heilemann’s Flickr stream: He’s got more where that came from.

: Aye, ye are a scum! ScummC: A Scumm Compiler - write your own SCUMM games! Man this takes me back to the first two …

: Designing with type Techniques for designing with type characters ~ Authentic Boredom: Typography and typefaces, …

: "Science Machine" from birth to completion How Chad Pugh’s brilliant “Science Machine” came to life: Science Machine from …

: Interviewed by RubyLearning Ruby Interview: Adam Keys of FiveRuns - Satish’s ability to find an absurd picture of me from …

: The Greatness of Gossip Girl So true!

: Ecto-1 Replica Ecto-1 from Ghostbusters - too flippin cool. (Via Coudal).

: I'll see you at Dallas TechFest For the past couple of months I’ve been -procrastinating- helping to organize the Ruby track …

: Dean Allen on LOST Dean Allen on LOST: It’s crap. Utter, arbitrary crap. They make it up as they go along. …

: 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 …

: Rails Scenarios Rails Scenarios - a sane way to specify really complex fixtures in Rails. Lets you write classes to …

: 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 …

: Corrupted by cosmic rays ACID Databases: Fact and Fiction "A final note: There are other things that can go wrong, such as …

: LOL License Boy, do I have a treat for you! And by “treat”, I mean embarrassing for me, hilarious …

: Its a musical rollercoaster If jazz is more your thing, then you should watch this animation based on “Giant Steps”.

: Say it quickly Like everyone on the internet, I’m trying this whole Flickr video thing: 90 seconds is tough, …

: Ryan Norbauer's got the right idea Amy Hoy interviews Ryan Norbauer. This got my attention: "Simplification, unification, and …

: 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. …

: 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 …

: Two Microsofts Adactio: Journal—Viva I get the impression that there are really two Microsofts. There’s Ray …

: Pretty hiring trends Pretty graphs at Simply Hired: Interesting how Ruby, Python and PHP so closely track each other I …

: 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 …

: DO WANT D'ye need a new T-shirt, brother? Aye. I do.

: Open Source and Research at Microsoft So, as I’ve alluded, I’m at Microsoft Intergalactic Headquarters this week for the …

: Warm water makes the world go 'round I’ve been doing “very detailed” research on the correlation between the time it …

: My dog misses me I’m at the Microsoft Technology Summit this week. Of course, Fred misses me (and I miss …

: Tough CS illustrated Greg, who I don’t think has formal CS training, has been making some great illustrations of …

: 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 …

: 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 …

: Keep your pants on A teaser of what I’m working on instead of writing: Please, keep your pants on.

: Git is nouns and verbs Git was originally not a version control system; it was designed to be the infrastructure so that …

: Geek spring break For the fourth time, I’m at the annual geek retreat in Austin. Since I went when it was but …

: The American Dream, LOL'd loldogs are funny dog pictures!

: 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: …

: SCIENCE All I can say is SCIENCE! – Tom Preston Werner on God’s memory leak

: Summertime Blues [youtube=http://www.youtube.com/watch?v=t5euZ3YWLXQ&rel=0] “Summertime Blues” The …

: Non-chalantly rocking

: Rands helps you with your presentations Out Loud. Conference season looms, folks. Rands is here to help.

: Life Partners Inspired by Indexed.

: Cosmic Class.new Reading the sources of test/spec inspired me to write a whole post about @Class.new@ on the FiveRuns …

: 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 …

: Some low-brow erudition I want to write something rambling, like Matt Webb. Hopefully interesting too. So in Webbian style, …

: I Like Rails 2 Tonight I gave a presentation on Rails 2 at Dallas.rb. Within, I note some of my favorite new things …

: Getting ahead on Git Git. Soon, you’ll be using it, too. The definition of “soon” probably varies …

: The Mint logo, geometric beauty Geometry of the Mint logo: Frickin' genius.

: Magazine covers you will never actually see Doing some structured procrastination here. Its all a Ruby joke, if you’re scratching your …

: What good could come from MicroYahoo? Microsoft Proposes Acquisition of Yahoo! for $31 per Share: REDMOND, Wash., Feb. 1 -- Microsoft …

: Whither Prototype or jQuery The fact and fiction of why I choose Prototype over jQuery FACT: I like Prototype better. It fits …

: Magnetic Ink OK, so Processing might force one to use for loops, but this is just cool: <br /><a …

: Diving for Star Wars nerdery Wookiepedia, as you might expect, has lots of nerdy little details about the Star Wars universe. I …

: Carbon trading and failed MBAs Explain this to me. The White House opposed the notion of global warming and/or the Kyoto Treaty …

: The good news about a long writers strike Apparently, some think that the WGA strike could continue well into 2009, affecting movies as well …

: Overcoming &quot;browser tab seventy-three&quot; So now that NetNewsWire (NNW) is free, everyone should go download it and enjoy the love. It was the …

: Wheaties for programmers Reflections of an Interface Designer: If you want remarkable results, feed a good programmer a diet …

: Nixon in China Your interesting musical tidbit for the evening is “Chairman Dances” from John …

: Something lovely from David Lanham I love this coat-of-arms-esque ditty by David Lanham: Found it by the good word of Mr. Bill …

: The barbarism of the for loop I’ve been reading Programming Erlang and also casually looking into Haskell. So yesterday when …

: Chops Let’s play a game. We’ll call it “What Do Adam’s Mutton Chops Say About …

: Bookstacks, photography and Star Wars My bookshelf used to make me sad. So I finally dumped everything out and put things back in sane …

: Making sense of the world I’ve noticed that when I’m walking about, sort of thinking idly, I find myself asking …

: I want to look at your workspace Briefly: I heart looking at the workspaces of others. One of the uniquely great things about going …

: 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 …

: Epic songs, pick a favorite Prepare to be polled. For the purposes of this survey, we’ll take an “epic song” …

: The rise of the micro-app A few weeks ago, Dan Cederholm, of Simple Bits fame, launched Foamee. Foamee lets you track who you …

: Anthropomorphized Gems OK, I couldn’t make it to RubyConf this year. Big frownie face. But, I’m not letting …

: Your target feature Many a moon ago I twittered: Just had the surreal idea of a "Celebrity Fit Club" for little …

: Rejiggering meets build versus buy

You’re here! That means I’ve managed to convert my site (back) over to WordPress. In …

: Application Design with Garrett Dimon Did you see Garrett Dimon’s slides from WebJam Session ‘07? ZOMG you should! | View | …

: My &#39;hood, then and now Check out Oak Cliff before and after by Justin Cozart: Oak Cliff (my neighborhood of residence), is …

: &quot;Rap&quot; the white guy can &quot;dance&quot; to The Top 10 Rap Songs White People Love | catsandbeer.com: When these songs come on, White People …

: This memory isn&#39;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 …

: Alex the cognitive parrot Best obituary ever: A shame, then, that he is now, in the words of Monty Python, an ex-parrot. If …

: &quot;Business&quot; lunch I had a very important lunch appointment today: Fred’s action items following our discussion …

: Making the simple complex Newton’s Third Law of Physics: All forces occur in pairs, and these two forces are equal in …

: Making sense of Fitts&#39; Law Particle Tree has an excellent article on Fitts' Law. That’s the one that, amongst other …

: Nielsen Symphony No. 4 Still the most difficult orchestral piece I’ve played (though I played it quite poorly at the …

: Syndication is solved “Twitter RSS in XSLT FTW”:ftrain.com/xslt_001…. bq. You know how the Iraq War …

: Lion head scroll Charles Mingus had what must be the coolest double bass on the planet: Photo credit: tm_marcello

: Check your head Paul Graham’s latest essay returns to the ground that first made me notice and hold him in …