2009
Using Haskell for awesome
I’ve joked that Haskell is all about reading other people’s theses, but you can do practical things with it too. His quick explanation of monads is pretty good too.
Rubinius threads, for mere mortals
A no non-sense, non-academic introduction to how Rubinius' threading is structured. Having read a few papers on VM implementation lately, this is refreshingly direct and easy-to-read.
This is no former-Parrot
Hey look! Parrot went 1.0. Parrot is an open source virtual machine aimed at making it easy for dynamic languages like Perl, Python, PHP and Ruby to target the same VM.
I’m glad to see this is finally out. About six years ago, I thought it had the potential to be a Big Deal™. It’s been a long time in the tooth, but I’m interested to see how this plays out with the resurgent JVM and the general renaissance of language design.
On feeds: application posture
EventBox. It’s a great idea - roll all the social/distracting applications in your life into one app so you can close it when it comes time to focus. Yesterday, I decided to give it a go.
I quickly felt that perhaps it was not for me. I think it comes down to posture - how is the app intended to be used? I’ve been using Twitterific and NetNewsWire for quite some time (5+ years in the case of the latter), so let’s compare with their posture:
- NetNewsWire is meant to scan feeds, collect the interesting stuff, read it, repeat
- Twitterific is (beautifully) optimized for scan tweets, reply to a few, post occasionally
- EventBox seems to encourage scanning things, handling the occasional item in-situ, and sending the interesting stuff to your browser
I’m not saying that EventBox’s posture is wrong; it’s just different. I’m going to stick with it for a few days and see how I feel about it.
Making the pretty docs
When you really need to generate nice technical documentation, you would be wise to walk in Assaf Arkin’s footsteps.
A few promising Ruby libraries
From the hall of promising Ruby libraries: an FFI binding to Lua, Ruby to Lua, a neat framework for building Twitter bots, TwiBot and some sugar over the Cascading library (which is sugar over Hadoop) for processing large data sets, cascading.jruby
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:
![WhatImThinkingSmall.jpg](https://cdn.uploads.micro.blog/wp-content/151691/2009/02/whatimthinkingsmall.jpg)
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.