I’m pretty sure that most of my bandwidth goes to making downloads of gallery available to the wild internets. I have transferred about half a terabyte since September 2004 to May of 2005. Wow. That’s a ton of data (if each byte weighs about 1.65015943 micrograms).
Yeah, so the Gallery project recently switched from cvs to subversion, which basically means three things:
- The CVS directory inside of each directory is renamed to .svn
- We now have one canonical number that will tell us exactly the revision of every file in a properly checked out codebase
- The build scripts for gallery2 and the integrations had to be rewritten to use svn instead of cvs
Hooray! It has been hard to get together any energy for coding on Gallery. This last semester I took four CSci classes, two of which were real brain-crushers. The other two had a programming assignment pretty much every week. Add in my actual job and time to canoodle with my special lady friend, and there’s no time for Gallery to get me in its evil clutches. I’m just not spending eight hours a night in front of the computer anymore, and when I do, the old gang isn’t there to draw me in and get me going on work. It’s like working in a vacuum.
So what did I do when rewriting the build scripts? I think that mindless did the initial switch to svn, but then I went after it with the refactoring hammer. I needed to stop getting 62k emails every night that listed every file in gallery1 and gallery2 and then somewhere in the middle or at the very end gave a one-line error message. That error would be very easy to miss. However, by turning off the rest of the output it became difficult to keep track of what was happening at what time, so debugging was tedious and nearly impossible. So, right as I thought that I had everything working, about ten processes hung in a row and the nightlies didn’t get built for over a week. Oops. More debugging and refactoring later everything was working again, and now, when a person downloads a nightly build we will know that revision number which means that we should be able to reproduce their build exactly. Or something.
At last count, the lines that I have written for Gallery2 are down to 600. That’s kind of sad considering that I inflicted the migration module onto the world, and then tricked bharat into letting me make a continuously updating view so that browser sessions wouldn’t time out. After that, it seems like all I have had time for is checking the forums for migration issues and then telling users to read the guide and follow all of the steps. php is kind of fragile when it comes to large tasks, and gallery2 has so many dependencies that there is often one small incompatibility that will hose everything up. php might run out of memory, or gd|netpbm|imagemagick|exif might greatly dislike an image, and then everything explodes. Anyway, in the whole process there isn’t a lot of feedback. If something goes wrong there are only cryptic error messages, so I have to instruct every user with a problem to try a series of steps to diagnose their problem. Usually they don’t respond, or they don’t try all the steps, or their setup is just so weird that they never get it going. I don’t know, I just don’t care any more. My job isn’t to diagnose their gallery1, gallery2, netpbm, imagemagick, gd, mysql, and linux malfunctions — or maybe it is and that’s just the problem. Fuck that. I just don’t care if you haven’t read the docs and thusly don’t know to up your memory allotment and disable gd. I don’t care if the third image blows up your migration process and you never try downloading it and then uploading it through the web interface.