Log in

No account? Create an account

First RHOK

This weekend, I drove a U-Haul to Philadelphia, getting keys to and then significantly populating my apartment. I also have far too many books. The moving was pretty exhausting, but it's nice to be set up out there. A semi-surprise addition to the trip was a Random Hacks of Kindness event, which paired a number of programmer-or-technical people with a number of people who had problems they wanted solved. Kep and I, along with a few others, joined a team that imported/munged data from NASA and weather stations in Bolivia and visualised them on a map. None of this was blue-sky by any means, but it took some doing at every step and it was appreciated by the sponsors. We did it with Python-Postgres-Matplotlib as our main tools.

The toughest part, as is often the case, was figuring out what tools to use for some parts of the tasks. There were some data in dBase format (some of which we could not extract), and making the kinds of plots we wanted took a lot of trial-and-error. The project literally came together about half an hour before judging, and we eliminated the last of the major bugs some time after that. I'm not sure what's going to happen to the code after this weekend (are we into the clean-and-document stage? Will there be a use for more features?), but our project's sponsors (from the World Bank) seem to want us to stop by DC to present the results(!). Right now, I think this is at functional-prototype level.

Programming in Python really wasn't too bad. It's not a language I would choose for my projects, but it was reasonable here. I need to get more in-depth knowledge of git; there are things that I don't know how to do (like revert a local commit and revert a subset of its files to versions from the head of a given repo) that required too much fiddling. Matplotlib turned out to be pretty cool and I'd like to find Perl (and C and Java) equivalents.

I enjoyed it. New, practical problems that come with access to domain experts, endless supplies of decent food, and a decent environment for coding: good times. It did feel a bit rushed, particularly as a two-day event where a lot of people were there just for the first day, but we got good results.



I think "git reset --hard goodcommitID" (or "git revert badcommitID" if you want the change logged) and "git checkout branchname filename", respectively, are what you want for your git issues.

Now that I've been using git for 2.5 years, it'd be tough to go back. I even use it in front of subversion-backed projects at work. I think "Pro Git" was the most useful book I found on it; I also collected a bunch of useful links on delicious.

That Random Hacks thing does sound like a cool concept.... sure beats what I've seen around here where business types are always looking for a techie to implement their Big Idea.

Re: git

Those links might prove useful. The trickiest thing is to deal with the conceptual thunking between the version systems; what git considers to be a branch might not be quite the same thing that cvs/svn consider to be. Still, I more-or-less arbitrarily picked git over mercurial several years back and have been using it at a novice level since (I still use svn for anything requiring branches/tags/etc). I think the decentralised-I-can-still-have-version-control-on-the-airplane idea is what sold me on the next generation systems.

Have you looked at mercurial much? If so, how do you like it?

The RHoK seems to be reasonably distributed across the globe, but only in big cities so far. You might be able to pull together something local, but it might also be a lot of work.

I'm hoping that it's accidentally useful for jobhunting; leaving CMU (and moving to PHL) means I need to find a new way to pay the bills (unless I want to coast on savings). So far that seems reasonably likely; there were a few business cards exchanged, and there was at least one headhunter.

Re: git

When I started looking into distributed version control systems, it looked like mercurial might be the way to go, since everyone said it was simpler and easier for subversion users to understand. But most of the attention went to git (especially in the tech circles I was in at the time), so I started learning git and pretty much forgot about mercurial. By that point git had gained more user-friendly interfaces, and I never did get farther than the very basics with mercurial.

I actually used git in front of svn (i.e. git-svn) before really learning git very well. Six months later I realized that I'd accidentally gotten myself onto an anonymous branch near the beginning of that, but that didn't really affect much.

I'm amused that you still use svn for things requiring branches, since git is *SO* much better at branches (especially merging) than svn. I always had to look up the docs when I needed to merge in subversion, but merging in git just feels simple and straightforward. (Not to mention fast!) I still need to look at the docs for git remote branches, but local branches are trivial.