I have updated my app_version Rails plugin to support getting build numbers from Git. This is of necessity a little kludgy. The plugin allows you to specify either ‘git-revcount’ or ‘git-hash’ as the build. ‘git-revcount’ will set the build number to the number of commits on the current Git branch and ‘git-hash’ will set the build number to the first six digits of the Git HEAD hash. Neither method is really equivalent to the Subversion revision number, but either might be useful in certain contexts.
The source code for the plugin is available at http://github.com/toland/app_version.
Tags: git, plugins, rails
Posted in Code | No Comments »
I was curious about QuickLook generators and decided to write a quick generator for previewing Markdown files. QuickLook generators are pretty simple and it didn’t take me long to throw something together. This plugin creates an HTML preview from the Markdown source and renders that in the QuickLook window.
If you are interested you can download a binary or check out the source on Github.
Download: QLMarkdown-1.0.zip
Source: http://github.com/toland/qlmarkdown
Tags: .mac, markdown, quicklook
Posted in Tools | 1 Comment »
One of the points that I’ve been trying to make since I’ve gotten back in to
the languages space is that a lot of what is happening in languages now is
unpausing the nuclear winter that Java imposed on the programming language
space. If you haven’t been following this space for a while, you’d believe that
all this dynamic language stuff was invented in the last 5 or 10 years or so.
— Ted Leung
(Via James Robertson.)
Tags: ide, innovation, java, languages
Posted in Tools | No Comments »
New Yorkers try to swallow calorie sticker shock:
“I was blown away,” said Cara, a 27-year-old homemaker from Forest Hills in
New York City. “I’m not a no-carb type of person, and I usually don’t even
think about it. But you pick up a little muffin with your coffee, and it has
630 calories in it? That’s a bit extreme!”
I found this article incredibly amusing. It is full of mock surprise that fast food has tons of calories. I don’t think that the average person at Starbuck’s is really all that surprised that their favorite treats are loaded with calories. Maybe seeing the actual number of calories is a little surprising at first, but I doubt this will have any long-term affect on New Yorker’s eating habits.
Consider this quote later in the article:
“Some people actually tell us we should take off the labels, because it
discourages them from ordering what they want,” he said. “But I think
honesty is the best policy.”
People are going to do what they enjoy doing. Cigarettes and alcohol have carried health warnings for decades with almost no impact on consumption. Once the new wears off these calorie labels people will ignore them and eat what they want.
Tags: law
Posted in Society | No Comments »
Ars Technica reports on a quirky 9th Circuit decision that has significant implications for privacy in the workplace. According to the Ars story, “the ruling provides an extensive space for workspace privacy,” but I am not so sure. It turns out that the case hinged on a police officer who claimed that the department he worked for invaded his privacy when they reviewed the messages he had been receiving on his text pager. The department had a policy that the usage of the pagers could be audited, but they apparently never followed through on the policy.
From the story:
Employers are allowed to set policies where a given area they provide, either
real or virtual, can be searched. But if that policy is never acted upon, then
employees can legally expect that they can maintain private materials there.
This was precisely the case with the informal overage policy—by handling
payments informally, the department gave Quon the expectation they would not
suddenly examine the contents of texts sent through that account.
Employers have a legitimate concern about the use of communications tools that they provide to employees. It appears that the court has said that in order for employers to maintain the right to audit communications, then they must follow through on regular audits whether they want to or not. I think this will force paranoid businesses to regularly pore through their employees’ email, IM and text messages so that when something bad does happen the employee involved cannot claim that they had an “expectation of privacy.” The end result will be less privacy for employees.
Tags: law, privacy
Posted in Society | No Comments »
The Myth of the Interchangeable Programmer: Can’t We Just Offshore Him?:
The problem here is that the [Software Management Formulas] incorporate
a number of flawed assumptions. The first of these assumptions is that
programmers are fungible. The SMFs assume all programmers will contribute
roughly the same amount to a project and that all programmers are
interchangeable.
I think the root of problem is that upper management types don’t understand what goes into software development. They assume that programming is a rote task, like assembling cars on an assembly line or typists transcribing memos. I used to work for a guy who could not understand why we couldn’t just go faster.
The problem is that software development isn’t a rote task, it is a creative task. Writing software is nothing like putting the wheels on a car, but it is hard for people who aren’t in the trenches to see that.
(Via James Robertson.)
Tags: creativity, programming
Posted in Process | 1 Comment »
I use a Mac Pro for work and I have a black MacBook for everything else. Managing two sets of keychains, calendars and bookmarks can become a giant pain (“I thought I bookmarked that site…oooh, it must be on the other computer”). Thankfully, .Mac sync keeps the important stuff synchronized between both machines. Mostly. Recently both my keychains and bookmarks had not been syncing properly and nothing I tried fixed the problem.
I was about to give up when I found these instructions on Ars Technica for fully resetting your .Mac syncing. The instructions are straightforward and easy to follow. I followed the procedure on both of my Macs and everything seemed to be golden again. Except bookmarks. My bookmarks would not sync at all.
Turns out there is a problem with .Mac syncing and Safari 3.1. I found a solution thanks to a post on DaringFireball that pointed to an Apple support document. The solution is to quit Safari, run the following command and then restart Safari and sync again:
defaults delete com.apple.safari RegisteredSafariSyncClient
Everything seems to be syncing smoothly again. For now.
Tags: .mac, sync
Posted in Misc | No Comments »
I recently changed hosting providers and I am still in the process of moving everything over. One headache that I don’t need is recreating all of the Subversion repositories that I had hosted on the old service. So, I have decided to move the code for my app_version plugin to GitHub.
The plugin’s code is now located at http://github.com/toland/app_version. You can clone the repository using the following command:
git clone git://github.com/toland/app_version.git
Tags: git, github, plugin, rails, ruby
Posted in Code | No Comments »
I occasionally use IRC, and Colloquy is my preferred client. The default theme is OK, but not great. Recently, I stumbled upon a Colloquy theme that is based on 37signals’ Campfire chat application. It makes the Colloquy chat windows much easier to read, in my opinion.

Tags: campfire, colloquy, irc, theme
Posted in Tools | 2 Comments »