QotD: Devan on Programming

<@[kryptos](http://dgoodwin.dangerouslyinc.com)> hey i'm 4500 lines of python spaghetti code! stick some bugs in me! Bonus points for anyone who can guess what he’s talking about. »

system-summary

system-summary is a little dialog window I whipped up (with help from Mr. Goodwin) after talking with Will Woods about how there is no one place you can send someone to give you basic information when they file a bug. The idea is that this will be launched from System/About This Computer. system-summary will probably get folded into smolt, but for now it lives in a git repository on Dangerously Incompetent. »

yq: a stack for package transactions

yq is a little command line program I’ve been coding up over the past week to solve a specific problem I encounter quite regularly. Often I will install a program via yum to try it out, only to decide I don’t like it. The problem occurs when the installed program brings in dependencies; if you want these removed along with the program, you’ll need to remember all of them. So, my frequent testing of programs results in a lot of built-up cruft on my machine. »

Facebook eats babies

I’ve been trying to understand the popularity of facebook over the past week. In particular, why is it seemingly more popular than friendster or orkut (unless you’re Brazilian)? Devan phrased it well (using his elite new irc nick): 12:39 <@jbowes> facebook is way too much like orkut 12:40 <@jbowes> or all them other ones 12:40 <@jbowes> why is it that people seem to like it more? 12:40 < kryptos> it tries to replace everything 12:40 < kryptos> we have email 12:40 < kryptos> we have blogs 12:40 < kryptos> we have flickr 12:41 < kryptos> i wouldnt even be on facebook if i didnt have to check email for plans tonight, and constantly see facebook emails 12:41 < kryptos> maybe i need to filter them to trash Facebook wants become the canonical source for your data. »

Error Handling & Pay Phones

It’s not enough to handle all error cases; you have to respond to them properly as well. While waiting in the Ottawa International Airport, I placed a call to my sister from a pay phone. The number is local, so I entered the seven digits. The phone’s response was to play a recording for me: “To dial this local number, you must enter the area code.” I tried again, entering 1+<area code>+<local number>, what I had assumed to be the only way to dial a number with an area code. »

git bisect: A practical example with yum

I used git bisect to track down a bug in yum last night. It was so easy and practical that I figured I should record it here, so that others might want to give git a try. I was attempting to install mutt, and yum failed (printing a traceback) after the rpms had been downloaded, but before the test transaction finished. So I started git bisect, and marked the current point as bad: $> git bisect start $> git bisect bad The yum 3.1.0 release didn’t have this bug (it was the version I had installed at the time), so I marked it as good: $> git bisect good yum-3-1-0 Bisecting: 15 revisions left to test after this [1d0454af41ef6361604cafa8c7a13d80bc183c63] make it so that we see that the local rpm is present and then don't download Git automatically checks out the next revision for you to test. »

Mercurial Head Scratcher

I’m trying to generate a patch to send to a project that uses Mercurial for their scm. In the middle of some commits, I did an ‘hg pull’ and ‘hg merge’. Since I did not have ‘git rebase’ available, I now have the merged code right in the middle of my commits. If all of my commits were adjacent, I could run ‘hg diff -r a -r b’ to get a patch containing all of the changes. »

On DNS

Late last week, the stalwart soupnazi née jerry crashed hard, taking a lot of data with it. Both Devan and I have since recovered most of our lost data, but the peculiar thing is that some hosts are still resolving dangerouslyinc.com to the old IP (including the Dal CS machines, which run the planet). DNS is such a dark magic to me. I do not know how it works, nor do I wish to know. »

Giving back to git

It must be obvious from previous posts that I love git. Tonight I sent a patch to the mailing list. It’s small and simple; it lets you save options for cvsimport in your config file, rather than supplying them each time you run it. Hopefully it will be of use to others. »