Making a cup of coffee sometimes helps me prepare for the process of solving puzzles with computers. Something about choosing AeroPress, French press, Chemex, or Clever; heating the water to 212F or 200F; medium-fine, medium, or coarse grinding of the beans. The weighing and grinding of the beans, boiling the water, rinsing the filter, pouring the water, waiting, pouring more water, agitating, pressing the coffee, discarding the filter and grinds. Now I’m left with a cup that I made for myself. A minor victory for the day.
All sorts of things require warm-ups. Stretching, air-squatting, or a quick jog lets my body know it’s almost time to exert itself. Word association or playing little games tells my brain it’s time to improvise.
Updating some documentation. A tiny, superficial refactoring or layout change to some code. Drawing a picture in my notebook. Making some coffee. That’s how I know it’s time to solve puzzles.
Courtney regularly drives an hour southwest of Austin, past Dripping Springs, to practice dog agility at a barn her friend rents. It’s amazingly quiet once you get past the city, past the backroads, and out into the hills and trees. It was an overcast evening when I went with her so the sunset was a no-show. Yet, the serenity and variety of it wasn’t lost on me.
That what I’ve read today and greatly enjoyed:
- 1491, on rethinking what America looked like before Europeans arrived. Has a delightful sci-fi twist: large parts of the Amazon rainforest could be a human effort, not simply nature. The notion that what many of us consider wilderness might be due to the human hand has tricky ramifications for the tension between preservation and development.
- The End of the Nation State asks, what if we’re already forming the structures that come after large-scale states?
- Innovation Starvation, Neal Stephenson on the reasons why we aren’t building big, awesome things like we did in the sixties or seventies.
- Presentation Skills Considered Harmful, Kathy Sierra argues that it isn’t a good performer that makes a presentation good, it’s a presenter focused on the skills, needs, and experience of the audience that makes it good.
- The Inferno of Independence, Frank Chimero on the tensions of what it means to be an independent creator of words, music, software, etc. The tensions and misconceptions are worth considering, even if you don’t consider your work “indie”.
- FastImageCache, an iOS open source library for quickly storing and rendering images, has an intriguing explanation of why displaying many images on mobile devices is hard and how they’ve worked around it to deliver a smooth user experience.
We can often, but not always, choose to ignore those on the internet, on TV, and in our lives with different ideas, philosophies, or opinions about the world. Whether intentional or accidental, this is ignorance.
Ignorance is handy because it can keep us sane. We can’t know all the things or have all the experiences. We all value things based on our own experiences and learnings. We cross-reference that with our ego and emotions and come up with our “truths”. Conflicting “truths” can hurt, and so we only let some kinds of them in and trim our lives to exclude the others. This is helpful for reducing stress and making for more happy days.
It’s not great though, because it isolates us from seeing more of the world and understanding it more clearly. Many media fights/beefs/arguments are rooted in conflicting “truths” and collisions of ignorance. You ignore the value of a supportive government, I ignore the value of maximum personal liberty, and boom! we’re arguing. We’re not getting things done.
Personally, that arguing is stressful. I’d rather not get worked up about politics, governance, and technical minutiae if at all possible. Therefore, I selectively engage in ignorance. I try to double check my assumptions and ignorance occasionally; I find ignorance is a useful tactic, not a long-term strategy.
If you could imagine a world where empathy ruled and everyone possessed a superpower for compromise, you might see a world where ignorance isn’t so much of a problem and amazing things can get done. Oh, what a fantastic, science-fiction world!
Ignorance is bliss and that which prevents us from achieving really big things. Use your ignorance carefully and with consideration.
The best thing you’ll read about football today. Peyton Manning is what happens when a guy with the attention to detail of an accountant is also proficient at throwing a football and making snap decisions. Manning also looks like he could give you excellent tips on cutting your hedge or fixing that one toilet.
This is why Peyton is my favorite Manning.
Better Code Design through Pictures:
Looking at a picture like this reveals so much that is missing when only looking at Emacs or Vim. Classes that violate the Single Responsibility Principle may become obvious because they’re related to too many other classes. Cyclical dependencies might be identified. Even class names may be brought into question. These discoveries are not very obvious when writing code, but they were remarkably obvious once we threw the structure up on the whiteboard.
I almost always have some kind of notebook and pen by my side so that I can doodle words and shapes. Having a whiteboard nearby is even better.
How to celebrate the 64th birthday of Bruce Springsteen, “The Boss”, if you’re new to this curious American phenomenon:
You want to listen to at least one of these albums because there is no one who better combines the story of America with its music than Bruce Springsteen. If all you know of his work is “Born in the USA”, you got some educatin’ to do!
This advice is going on a year old, but it’s still some of the best around. If you’ve got ungainly ActiveRecord objects that are doing way more than abstracting your data model, you are missing classes in the design of your application. Chances are, one of the objects Bryan describes here is what you might want to extract.
Naming things is hard. Witness things that developers have named and then struggle to explain because words and people are weird:
- TDD sounds like it’s about testing, but it’s really a design technique.
- BDD sounds like it’s about what code does, but it’s really a communication discipline.
- Outside-in development sounds like a way to discover the design of software, but it’s really a technique for building software using a fractal todo list.
Bonus developer weirdness not about words: If you can’t decompose an idea into a todo list, you’ve got an initiative, not a project. Be afraid, keep digging at the idea until you can make it a todo list.
I like to listen to podcasts and screencasts at two or three times the recorded speed. The application I use (Instacast) does this with pitch correction, a feature that’s probably built into iOS at this juncture. In short, I can listen to a thirty minute podcast in ten to fifteen minutes and they only sound funny when music plays. I do mean funny; listen to Radiohead’s “Creep” at 3x speed and it comes out downright chipper.
Our brains can process speech at these accelerated rates just fine. In fact, when I listen to some of my favorite podcasters in “real” time, they sound like they’re thinking really hard and speaking slowly, or that they’re flat-out drunk. The interesting bit is when an accelerated speaker has an accent or when there is radio interference with the FM transmitter I use in the car. At this point, all bets are off and I have to slow the podcast down or listen when the signal is better.
The bottom line is that, empirically, human speech has built-in redundancy. We tend to speak at a rate that, if you miss some sounds, you can probably still make out the words. Further, the space in-between words is probably filled with our own thoughts anyway; we only listen part of the time we’re listening.
Nifty things, our brains are.