James Bowes

Purveyor of Pre-eminent Programmes

Archive for January 2007


leave a comment »

The Fedora Users and Developers Conference is on Friday. Weather permitting, I’ll be flying up to Boston to attend tomorrow night.

In no particular order, here are the parts of FUDCon I am looking forward to:

  • Cold Boston weather means I can wear my parka.
  • Riding the subway.
  • Meeting Mr. Katz and Mr. Vidal in person.
  • The yum hackfest.
  • Getting a free t-shirt.

I plan to take lots of photos, but I usually forget my camera whenever I go anywhere, so we’ll see.


Written by jbowes

January 31, 2007 at 7:31 pm

Posted in life, tech

Tagged with , , ,

Gratuitous kitty photo

leave a comment »

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }

Spook in her box tunnel, originally uploaded by James Bowes.

I’m still playing around with the new hotness that is wordpress. This is me using the ‘blog this’ feature in flickr.

Above is our girl cat, spook, playing in a tunnel made from free cardboard boxes, sent to us from eBay and the USPS. The boxes are now long gone, after being filled with various nerd accoutrements. The cat remains.

Written by jbowes

January 28, 2007 at 7:30 pm

Posted in life

Tagged with , , , ,

git rebase: keeping your branches current

with 7 comments

update: This post is now on my new blog.

Where possible, I use git for my scm now. All software on dangerously incompetent is stored in git, and I do my personal yum work with git-cvsimport. One of the reasons I like git so much is git-rebase. Here’s an example of how it works:

There is some upstream project that you wish to work on. You clone this upstream project when it is in state A, and make some changes. Your personal branch is now in state Ab, that is, A plus some set of changes b.

upstream ==========A

you                +=====Ab

Now, while you’ve been writing b, more changes have occurred upstream. These changes may or may not also be contained in b. Upstream is now in state A’

upstream ==========A==========A'

you                +=====Ab

Now, how do you get the differences between A and A’ into your branch? With many distributed scms, you would perform a merge. The merge will take the differences between A and A’ and apply them on top of Ab (this is a greatly simplified explaination, of course). Over time, you end up with a history in your branch that interleaves changes from upstream with your own changes. Merge is an option with git, but you can also perform a rebase.

With a rebase, the changes between A and Ab are taken and reapplied at A’:

upstream ==========A==========A'

you                           +=====A'b

So your own changes are always the most recent. In practice, I find this to be a very elegant approach. git-rebase makes it easy to see and manipulate your own set of changes against the upstream codebase.

Written by jbowes

January 26, 2007 at 7:29 pm

Posted in SCM, tech

How much did wuja cost?

leave a comment »

I heard about SLOCCount the other day from Caolan McNamara’s post on Fedora People.

Besides just counting source lines of code, SLOCCount also outputs some quick COCOMO calculations. According to these figures, wuja cost would around $55,265 to produce if it were written by paid programmers. Pretty neat.

Written by jbowes

January 25, 2007 at 9:40 pm

Seperated at birth?

leave a comment »

Linspire announced Click N’ Run support for distributions beyond their own the other day. What I find interesting is the logo for Freespire shown on the cnr page, conveniently adjacent to the Fedora logo:


Obviously, the logos are on the wrong sides of each other. Freespire should be the left, or sinister twin.

Written by jbowes

January 24, 2007 at 7:26 pm

Posted in wtf

The Bash shell and why you’re already using it

with one comment

This is, of course, a reply to Devan’s post about the Z shell, as I was one of the curious folks always bugging him about why he used it.

First, the one advantage I know of that zsh has over bash: It lets me say “The Zed Shell” which is great fun down here in North Carolina.

The default keybinding for interactive command history search is ctrl-r (search backward through the history). This command prompts for input, rather than using what has already been typed. You can set up history search like zsh has with:

$ bind ctrl-p:history-search-backward
$ bind ctrl-n:history-search-forward

Intelligent tab completion is enabled by default in most linux distributions, if not, you probably just have to comment out a line in your bashrc, or install a bash-completion package.

Devan’s right; bash has all of the directory stack features that he listed for zsh.

alias -g and alias -s do seem to be unique to zsh. You’ve won this round, Zed Shell.

In bash, you can also use the ! to recall command history with find and replace.

vim **/file.py will open the first file named file.py in your directory tree in bash, too.

zsh does have a few more features than bash. I have yet to see anything revolutionary enough to make me switch shells. Unfortunately for zsh, it has an uphill battle against all of the test systems I work with that come pre-installed with bash.

Written by jbowes

January 23, 2007 at 8:24 pm

Posted in tech

New hosting

leave a comment »

I’ve moved my blog and associated pages from Dal CS to the dangerously incompetent data center. Also, I’ve moved it from pybloxsom to wordpress, mainly because of what Marc has written about it. So far I’m very impressed.

The most difficult thing has been setting up redirects from my old cs pages to these new ones, due to the apache configuration at Dal. I’ve had to do silly things like making a directory called “cv.html”, and placing an index.php file in there that will write out redirect headers. I also had to write up a quick python cgi program that translates requests for old blog posts into redirects to their locations on my new blog. Good times.

Written by jbowes

January 23, 2007 at 5:06 pm