Congruous capitalism
Here’s some idealism for you: I would like to think that the future of human endeavors is congruity. There is a lot of emotional writing about rational topics. That emotion often colors the writing to the point of irrationality. It seems to me that this is because many of the prominent systems of our lives are incongrous. These inconsistent and seemingly irrational systems drive us to emotion and our logic suffers for it.
I’ve been reading Failed States by Noam Chomsky. I think you could summarize it as “the U.S. government says it is doing something for reason A, but is in fact doing it for reason B”. People really dislike Ticketmaster, who would defend themselves by saying “we’re trying to make access to live music easier” but everyone knows “we’re trying to maintain a monopoly and squeeze the margin as tightly as possible”. You can play this game at home for any institution that is widely reviled.
Some other incongruous systems:
- Politics: ostensibly about the will of the people, but really about the short-term interests of those with the clever lobbyists
- Telecommunications: ostensibly about helping people communicate, but really about maintaining monopolies and minimizing the maintenance cost of those monopolies
- Insurance: ostensibly about helping people put money away for a bad day, but really about minimizing pay-outs to maximize profit
It is my hope that the businesses that emerge from this economic conflagaration are those that connect more directly with their customers. In doing so, they are more transparent. It is harder for their internal and external goals to conflict. In this way, they can profit from aligning their objectives with those of their customers. Sure, they may not make obscene profits, but that’s fine.
Here’s a tag-line for this congrous capitalism: “May greedy capitalism die by a thousand cuts of moderately-profitable honesty.”
Awesome yak shaves
I was sharing some nefarious plans with Dave Thomas yesterday at the DFW PragProg lunch. He later tipped me off to “tinyrb”:code.macournoyer.com/tinyrb/, which is awesome. It’s a minimal implementation of Ruby that uses “Ragel”:www.complang.org/ragel/, “Lemon”:www.hwaci.com/sw/lemon/ and is inspired by “Potion”:github.com/why/potio… I’ve long had a thing for messing with languages and their implementations, so I quickly ended up at this “great Ragel tutorial”:www.devchix.com/2008/01/1… and then reading about “register machines”:http://en.wikipedia.org/wiki/Register_machine, “context-free grammars”:http://en.wikipedia.org/wiki/Context-free_grammar and “LLVM”:llvm.org/.
I accomplished nothing, but diving into a topic is it’s own reward. Here’s what I’ve concluded:
- I’m super green at this stuff. But I want to go to there.
- There’s too much awesome stuff to do out there: tinker with languages, build apps, visualize data, network things, etc.
- “Marc-André Cournoyer”:macournoyer.com is my hero; not only did he implement tinyrb, but he’s also the guy behind “Thin”:code.macournoyer.com/thin/ and “Refactor My Code”:refactormycode.com
Long story short: I need more time.
On news: The Economist
At the height of the DeLay/Rove movement, I became very disenchanted with news and politics. The propaganda, the lack of reason and the generally grim outlook were causing me too much stress. So, I stopped following news. This was good for my well-being, but I felt a little guilty about not understanding what was going on.
Fast forward a few years; the economy is booming and the paint is starting to peel on the Rove master plan. I’m taking light rail to work every day, so I have some quality time for reading on my hands. I don’t remember where I got the hunch, but I went ahead and subscribed to The Economist to read on the train.
I originally let my subscription lapse, as I found it difficult to keep up with the magazine on a weekly basis. However, as the mortgage crisis peaked, I resubscribed. I’ve found it extremely useful in trying to understand what exactly is going on, how it compares to previous downturns and as the basis for a bozo filter.
Regarding my earlier discoveries that everyone has an axe to grind and that the news cycle is often too short, The Economist is well aligned. Their axe to grind is the superiority of free markets and democratic societies. They publish weekly and cover a gamut of topics that forces them to only put ink to topics that are actually meaningful.
In summary: The Economist is a great source of news if you are wary of news sources and I heart it. It’s a fantastic place to start understanding the non-sciences that describe our world.
What I'm Thinking
Last night at Cohabitat, we did some lightning talks. The prompt was “What I’m Thinking”. I decided to take a cross-section of topics I’ve been immersing myself in lately. And of course, every good talk needs a gimmick, so I went with some of the fantastic shows on television right now. Here’s a map of the topic:

And here’s a video of my talk:
It’s a whirlwind tour through software, abstractions, economics, finance, Mad Men, business, the messiness of life, Gossip Girl, indie developers, 30 Rock, sweating the details, product development, LOST, life’s interconnectedness and how awesome it is to try to understand all of this.
I hope you enjoy it. I forgot to take questions after the talk, so please feel free to correct me or inquire in the comments.
The Trading Places solution to the credit crunch
Put on your federal government hat. Get the remaining TARP funds out from under the mattress.
- Note bank share prices
- Start buying shares in banks
- Announce you are going to buy every bank in the country
- Let the price go up a bit, but keep buying shares
- When the old guys get nervous, start selling
- Keep selling until prices drop below the noted price
- Put the TARP funds back under the mattress
- Use the profits to prop-up the already propped-up banks
- Insist they actually lend the money this time
At your discretion, send the SEC on an executive retreat and accidentally disable Blackberry email servers.
Eye candy for everyone
Scaling and scale models. So much great imagery here, you’re just going to have to click the link and check it out. Sculpture not your thing? Try Round trip with Endeavor, the space shuttle hitching a ride on the back of a 747. Then there’s the always great Feltron Annual Report. The paper prototype for Shaun Inman’s homebrew Wii game is also awesome. If you’re still unimpressed, Punch card is pretty clever.
Developing fluidly
Here’s a raw idea I’m playing with in my head:
Agile development is great. But, if your team doesn’t map well to it, steal ideas from agile relentlessly.
You want a fluid environment where developers can solve problems (features, defects, chores) as they see fit.
Don’t use procedures to normalize productivity or as a communication protocol.
Do have a way to communicate things that need to get done or could possibly get done.
You need a safety net. Unless you know better, that safety net is some kind of automated developer test suite.
Enable developers, don’t direct them.
Discuss.
Classy Web Development with Sinatra
An admission: I didn’t really do as many awesome things during the Bush administration that I would have liked to. So, now that we have a new president, I’m going to start off right by showing you something awesome.
While it may seem like I’ve had my head up in the clouds of physical computing, urbanism and monads, I’ve been nose down in something else. I’m super-excited to tell you, I’ve just finished the first two episodes of “Classy Web Development with Sinatra”, a screencast for the Pragmatic Programmers.
h2. The Particulars
Sinatra is a great subject. As I point out in the first episode, I think it’s very special in how it puts the smallest possible language over HTTP. Taken with the fun of building your own framework up from scratch, Sinatra apps are a ton of fun to write. Further, Sinatra really shines when you want to write micro-apps or services. Building an API for your Rails app by standing a Sinatra app up next to it to serve the API is a great approach for many applications.
If you’ve known me for a while, you probably know I had at one point aspired to write a book for the Pragmatic bookshelf. That didn’t work out (for the better, I think), but I still wanted to produce something to get the good word out there. I’ve enjoyed the screencast format from the beginning, and I enjoy teaching people interactively, so the format seemed well suited to me. Plus, I’ve always loved the sound of keys clacking in a screencast. Now you can hear my keys!
h2. Shout-outs
Lately, Ryan Tomayko has been absolutely kicking ass with his contributions to Sinatra and Rack. He was kind enough to review the script before we recorded and even put out a maintenance release so that we wouldn’t have to talk around a couple bugs that snuck into the latest release. The finished product is much better for his feedback and guidance.
From the beginning, Mike Clark has been a great mentor and guide through the process of producing a screencast. He helped me write to the beginner’s perspective and avoid speaking in a monotone. Throughout the process, he’s been more helpful and supportive than I could have ever imagined. Needless to say, he’s the foundation that all the goodness of the Pragmatic Screencasts series is built upon.
h2. I want to go to there
Go give the sampler a look, then buy the episodes! If you have questions, drop a message in the forum. And don’t forget to grab the example app and service off GitHub.
Great Nike ad
Beethoven’s Ninth and skippy video? You’ve got my attention.
How you do what you does
Alex Payne has an idiomatic and wonderful way of sharing the interesting parts of his workflow through writing. Bet you can’t read just one.
By far, I’ve found al3x’s Rules for Computing Happiness the most insightful and closest to my own “aesthetic”, as it were. It’s worth regular review, which is why I’m bringing it up right now.
See also, Workflow Voyeurism.
On news: beginnings
I first started trying to figure out the world, and especially politics, after September 11th. Before that, it was a topic of tangential concern. Afterwards, of course, it seemed critically important. My roommate at the time was a rather strong adherent to Fox News. I started reading weblogs that were pretty much the polar opposite in opinion. Somewhere in the middle, I frequently watched The Daily Show. I say they’re in the middle because, roughly speaking, they are not left or right wing but anti-idiot.
I quickly discovered two things.
First, everyone has an axe to grind. Trying to figure out that person’s axe is an unfortunate necessity to understanding whether they are a good source of news and opinion.
Second, twenty-four hour news and dozens of weblog posts a day are just too twitchy. To support that rate of production, you have to make a big deal about lots of things that are really no big deal at all. A daily news cycle is better but still intolerable. One week is the shortest term over which you can stand back and start to decide which events are meaningful.
Long-story short: I recognize Fox News as propaganda, dismiss CNN and MSNBC as too twitchy, realize that weblogs are too spazzy and that, in general, people are colored by their opinions and vetting them is not interesting to me.
Thor doing his thing
My wife doing the canine agility:
Go Thor!
More monads
“While we’re talking about monads”:therealadam.com/archive/2… you should read into the compelling argument that jQuery is, in fact, a DOM monad. It’ll set your mind straight. Also, give “All About Monads”:http://www.haskell.org/all_about_monads/html/index.html a look - I just started reading it, but it’s making a lot of sense.
DataMapper + Factory Girl
I’ve been toying with “Factory Girl”:www.thoughtbot.com/projects/… lately. The code I’m currently working on needs to generate lots of data before tests run and Factory Girl is handling this well compared to fixtures or coding my own data generators. So, in some unrelated toying with “DataMapper”:datamapper.org/doku.php, I came to wonder if Factory Girl and DataMapper play nicely together.
Turns out they do! The only hitch is you need @dm-validations@ in addition to @dm-core@. Since no one seems to have written this up yet, I thought I’d “share my results”:gist.github.com/49017.
Compare and contrast
Compare. “Suburbs built on top of military/industrial complexes”:infranetlab.org/blog/2009… - intriguing yet awful. Quirky and cute - “people re-enacting Far Side comics”:www.flickr.com/groups/fa…
Contrast. Assaf Arkin notes that the current “recession may bring us more apps that put function over form”:blog.labnotes.org/2009/01/1… Hopefully this means we won’t hear about Rich Internet Apps (blech!) for a while. On the other hand, hopefully we will see more apps that leverage “game mechanics”:bokardo.com/archives/…
On Feeds: Tactics
Ask enough people what feeds they read and you will quickly hear “too many” and “I suffer from information overload.” I’ve been there too; at one time I subscribed to more than five hundred feeds. A lot of people say you can’t really follow more than fifty feeds and do productive things. I’m not the most productive guy, but I’m comfortably following 239 feeds right now. My secrets:
- Man made the “mark all as read” command for a reason. Use it without shame.
- Skim aggressively. If the title grabs you, check out the first few sentences. If it doesn’t, just skim over the content and let the words and images that may jump out grab you. If they don’t, skip to the next item.
- Don’t add feeds out of guilt or peer-pressure. Know what topics you want to read about. Add feeds that align with those topics. If a feed looks really awesome but doesn’t match a topic, subscribe to it and put it in a “Trial” folder. Evaluate your trials every few weeks.
- Unsubscribe if you find yourself consistently skipping all the items in a feed. NNW and Google Reader both have attention readouts that can help you decide what should go. Do this sort of pruning every few months.
After reading feeds for several years, I’m finally starting to feel like I’m doing it right. How do I know I’m doing it right? Because I recently thought, “hey, I haven’t seen enough awesome today.” And then I open NNW and I’ve got awesome all over me.
Monads + Ruby = crazy
Guaranteed to boil your brain: do notation in Ruby. You got your monads in my Ruby! He uses ParseTree and Ruby2Ruby to rewrite your code. In other words: heavy.
I’d love to point you to a good monads tutorial, but the monad fallacy prevents me from doing that. I’ll try again once I fully grok them.