random acts of geekdom

Backups are good

Since my backup strategy of throw a tarfile somewhere and pray didn’t work out so well after the TiBook died, I decided it was time to look into something more, um, proper. I discovered that rdiff-backup could do almost exactly what I wanted (nightly backups of most of my homedir onto my local LInux server with incrementals), without all the mess that is trying to do incremental backups with tar. And it supports saving resource forks from OS X, even when the backup machine doesn’t (like, say, my Linux server). Woo! I’m using a combination of rdiff-backup for most of my homedir and Unison for directories like Music that I want synchronized between multiple machines (laptop, linux desktop, and workstation at the lab). Everything happens by cron script, so it should be mostly foolproof. I also made the backup target on the Linux server it’s own LVM partition so that I can remount it read-only as soon as I know I’m going to need to restore from it, avoiding the rm -rf issues that screwed me this time.

Apartment streams

Should you happen to end up in our apartment, you can now stream the giant repository of mp3s from mori (the local linux server) via either iTunes or the TiVo. Yeah for mt-daapd and JavaHMO. Oh, and the printer is now also broadcast as existing by CUPS, so my PowerBook “just finds it”. woot! Unfortunately, Red Hat has this really lame thing with their printer setup where the Info field is set to some magic string that can’t be changed and doesn’t help ID the printer. Which really sucks, as that’s what OS X shows in it’s printer selection box. I think I might disable the autodetection crap in RHAS, setup CUPS’ printers.conf on my own, and set the Info field to something useful. I find this weird, since Fedora Core 1 got it right. Sigh.

You keep using that word. I do not think it means what you think it means.

Objective C is weird

I’ve been spending some time working on making Open MPI utilize Apple’s XGrid technology for process startup and the like. In the end, the difficult parts turned out to be the fact that the XGrid framework is not particularily well documented and that I don’t know Objective C. That’s right – The XGrid interface is in Objective C, so I had to write the xgrid process starter component for Open MPI in Objective C. Which has the nice side-effect of us now being able to say that we have a component written in a language other than C (if only just barely – ObjC is just barely not C). Anyway, very interesting stuff, and I got to learn all about the NSRunLoop. Yippie.

Caps Lock Goodness

In Tiger, Apple added the ability to swap caps lock and cntl keys from the Keyboard and Mouse preferences pane. There’s a button under keyboard labeled Modifier Keys – you can set what modifier is set by which key. Worked like a champ on on my TiBook. As with uControl, however, the light for the caps lock key would still alter for every press of the caps lock key. Not a big deal, but kind of annoying. On Laura’s brand new, shiny AlBook, the light only switches when the key mapped as the caps lock key changes (which doesn’t have to be the caps key, obviously). Finally, Apple fixed the annoying caps lock key on their Power Books.

Somehow “I told you so” just doesn’t quite say it

Welcome back, e-mail fans

I’m 99.98% sure that the e-mail my blog thing is working again. I suppose we’re about to find out.

The pain of software

Am spending today working on merging some fairly significant chunks of code from one branch of OMPI to the trunk. Unfortunately, it’s not going super well, as we kind of made some silly mistakes in how long we let the divergence go (we knew all along that the code would have to be merged). Ah well, such is life on a project without any real project management. Interesting, but sometimes a bit on the painful side. At least it usually goes fast :). I was actually surprised – the merge (while not complete) was not as painful as I originally thought. I managed to get the tree compiling in under three hours. I think there are still some artifacts causing problems, but not as painful as I thought they might have been. I’m hoping a couple of hours with the debugger will be enough to figure out what is going on. And if that fails, I’ll have to ask Tim and Jeff for some debugging help. Ah well, what can you do?

Welcome to Durham

I’ve been in Durham since last Sunday (leaving this evening), hanging out with Laura. Working from Durham seems to go pretty well – some minor slowdowns, but nothing major. All in all, I still managed to have a fairly productive week. Even managed to get some scale tests running out on odin and thought some about the EuroPVM/MPI paper. Need to get the trunk (see above) settled down so that I can start writing up the framework for the data for that paper. Durham’s warmer than B’ton – there were three or four days I really wished I had my bike out here. Of course, that would probably end up with me getting run over by a redneck in his truck…. But I suppose NC is no worse than the area around B’ton in that regard, so I shouldn’t complain too much.

INIlib lives again

After 3 years of complete neglect, I finally got around to fixing a bunch of outstanding bugs in INIlib. Surprising part was that I actually have users. And they downloaded and tried the new beta. Very frightening to have users of your software. I might start developing it again, if only to add a couple of the features in the feature request tracker. Or maybe not – we’ll have to see. The documentation could really stand to be updated, as it has some rough spots with respect to the code (nothing critical, just doesn’t track the lastest code changes as well as it could).

hehe.. Fooled them all…

My oral qualifier exam was on Friday morning. I passed, so by definition it went well. As soon as I get a couple more signatures, I will be “PhD Candidate Barrett” to you. Now all I need to do is find something that might look something like a thesis topic. Maybe something will just *poof* into my brain… right… Anyway, nothing interesting to report on the exam front. Amr had some interesting comments I need to think about.

Useless hack of the day

Taken from the Common TCSH Completions page, with a little bit of hackery to get a reasonable host list:

set ssh_hostlist=( `cut -f1 -d' ' ~/.ssh/known_hosts | cut -f1 -d',' | xargs`)

complete ssh 'p/1/$ssh_hostlist/' 'p/2/c/'
# rcp and scp allow arguments to be references to either local or remote
# files.  It's impossible to complete remote files, but its useful to assume
# that the remote file structure is similar to the local one.
#
# when you first start typing, it could be any of a username, hostname,
# or filename.  But filename is probably the most useful case, so:
#
# complete arguments as regular filenames, with following exceptions
# if "@" has been typed, complete with a hostname, and append a colon (:)
# if ":" has been typed, complete with a filename relative to home directory
# if ":/" has been typed, complete with a filename relative to root directory
# 
complete scp "c,*:/,F:/," "c,*:,F:$HOME," 'c/*@/$ssh_hostlist/:/'

modules are the best thing since sliced bread

So my shell configuration files finally imploded badly this weekend. I’ve copied around the same set of configuration files for a couple of years now (since starting to work in the LSC at Notre Dame). Over time, they have grown to immense, incomprehendable proportions. Lately, I’ve been working on two different versions of the exact same interface (OMPI and LAM, MPI). Both with the same commands, both with the same library name, etc. In order to keep everything straight, I’ve had a couple of aliases that do evil things to hack up my path so that which ever project I was working on at that time was in my PATH, MANPATH, LD_LIBRARY_PATH, etc. It was evil.

So I ripped it all out and started over this weekend, using the modules package as the core of my configuration. Which has the advantage of making life a hell of a lot easier when I have to use a machine without tcsh as my default shell (and such machines do, unfortunately, exist). Anyway, my shell configuration is now much smaller and much more modular (har, har). The code for setting up my Autotools installation is in one place, the code for initializing Fink (when I’m on OS X) is in another, etc. Oh, and switching between LAM and OMPI is trivial.

Anyway, life is now at least 2.74% better, all at the cost of a weekend of productivity…

Much MPI Goodness

LAM, LAM, LAM

LAM 7.1 escaped from the developers this morning. New in LAM 7.1 is the ability to have dynamic shared objects for SSI components, an InfiniBand RPI, support for the SLURM batch scheduler, and much more. Basically, much goodness all in all. If you use LAM, you should download it right now. Onward with world domination!

Open MPI

A freak meeting of minds over dinner occured about a year ago between a bunch of independent MPI developers. The result was the decision to combine forces and produce the one MPI to bind them all. After numerous discussions, the name Open MPI was forged, and a web page was created. The web page is, of course, http://www.open-mpi.org/.

Somewhere in this building is our talent

Back in B’ton

I have returned to B’ton. It’s a bit hot and a bit humid, which is not something I enjoy. On the other hand, there is green and hills, which are good. So you win some and you lose some. Soon enough I’ll even have a desk I can work at and all that.

Moving Sucks!

So I had a moving company get all my stuff from LA to B’ton. I figrued that my stuff would come out better for it and would lessen the amount of crap I had to deal with. And there was that whole WWDC thing, of course. Well, it turns out that I was completely wrong. Most of my stuff is worse off for the wear. The computer desk is completely destroyed, with the glass top just not making the trip. The TV looks like it spent 4 years in a frat house. Oh, and everything showed up a week later than it was supposed to (it took almost one month to get my stuff from LA to B’ton). So I’m not really happy with the moving company right now. Hopefully, they do better on the reimbursement side of things.

WWDC

Went to Apple’s World Wide Developers Conference the last week of June. It was pretty interesting. They announced some cool features of their next operating system that should make life better. Now they just need to ship the damn thing. Well, and fix some of the bugs I (and I’m sure many others) have found from their prerelease. But it’s all good. It’s Apple – of course the final release is going to work.

Hey everybody, Mr. Nude has an opinion

T-minus 21 days

The countdown to final endex at ISI is 21 days. In that time, I have to help bring a cluster online, get some performance numbers for the mesh router code, finish a paper for I/ITSEC, and actually quit working. Nothing much. 🙂 I’m not sure how I feel about leaving. I really like working with the guys at ISI, but I think getting a PhD is the right choice. So off I go, to WWDC thankfully.

No malloc() for you. Only sbrk().

Apparently there are some failures with LAM and it’s internal ptmalloc code, the Portland Group compilers, and the AMD Opteron platform. Of course, we don’t have one of those and don’t usually test that configuration. Someone lent us some accounts, so that helps. But it’s still a pain. I hope there isn’t something borked in there – that would be a pain in the butt. Something tells me I’m going to have to import ptmalloc2 and see if that makes the problem better. Which would really be a pain, as LAM 7.1 is actually approaching stabilization. Jeff’s getting goodness on gm. Vishal is looking into the remaining IB bug (which seems to be one of those fluttering things that’s hard to find). And I’m doing configuration, build, and documentation bugs. As well as a bunch of little bugfixes that should make everyone’s life easier.

The automobile should be a time-saving device

The Civic decided to be a little brat lately. It’s had a dead battery twice in the last two weeks, which is a major pain. I’m not sure what the deal is – I think the first failure was because I left a light on in the car. Not sure what the cause of the second failure was, but it can’t be good. Oh well, I’ll have them take a look when I take the car in for service next week. In addition, the stupid windshield cost me $250 to replace after shattering from a rock on 580 a couple of weeks ago. That’s just not cool. Ah well, I suppose the car is just in its terrible twos. Not much I can do about that ;).

Because if it isn’t heavy, it isn’t a computer

I was bored during the last trip to San Diego and spent a good day trolling around on ebay while the event progressed without issue (definitely not complaining about the lack of issue – it makes me look good that I can sit there and do nothing). Anyway, I ended up buying a Sun E250 server. It has two 250MHz processors, 512MB ram, and 6 9GB UltraSCSI drives. Because Solaris doesn’t come with a software RAID stack by default, I think it is going to run Linux for a while. Still deciding exactly what to do with it. Definitely going to be a server somewhere, and the RAID setup is going to make it appealing for use as a cvs/svn repository and all that. The silly thing has redundant power supplies and is rack mountable, so it weighs like 100lbs. Glad I don’t have to worry about getting it back to Bloomington.

On the lighter computing side, I need to find a cheap Apple machine that can run OS X for use at the apartment. I want to try to have a media server hooked up for streaming MP3s and the like. I’m thinking a nice Bluetooth presentation mouse and a VGA to TV converter will make for a fun little toy. But this is probably going to take a little while to configure, since I’m going to have to be poor for a little while. I’d rather just buy the TiVo Home Media option or one of the streaming servers, but none of them seem to support Apple’s FairShare encrypted AAC files (the things you buy from the iTunes Music Store). And I want only one set of playlists, if I can do it.