Classes haven't killed me yet!

It's eighth week, and time for overdrive. Two take-home finals (one expected to take two weeks!), an ODE lab, an 80 hour final project for Computational Mechanics analyzing the dynamics of our tinkertoy siege engines, and all the regular Japanese and ODE coursework on top of that. Of course, this can only mean one thing: it's time to take harder classes.

Continue reading (323 words)

Winter Term

So stuff here has been busy as heck the last few weeks. Classes are beating me up: Classical Mechanics, Ordinary Differential Equations, and Japanese 205 this term. Aikido hasn't been going at all recently, which is sad. First week I caught whatever cold was going around, then this Monday I knocked my shoulder out of commission on one of the 4th kyu sacrifice throws. It's slowly coming back, but I'm still not up to rolls, or really much of anything with that arm. Realistically speaking, I'm probably not going to test this mid-term: I've just missed too many classes.

This week was full of out-of-town visitors: Des and Bitsy came out here for the weekend, which was full of Aikido, reading, and photography. Bitsy helped me out with the alumni interview for Physics, which was more informative than I had initially expected.

Continue reading (361 words)

Ruby on Rails is much, much, slower than I would like. It takes around .25 seconds to render the index page: about 10 times longer than Ragnar. I've alleviated the problem somewhat by switching to a Mongrel cluster with Apache's mod-balancer, but performance is still slow. I can't add any more foreign key constraints--pretty much every feasible relationship is locked down. I guess it's just down to ActiveRecord tuning, and figuring out how to make ERB run with any semblance of speed. Possibly memcached, too...

Anyway, sorry for the inexplicable downtime. Things are still moving around quite a bit.

Continue reading (104 words)

Working with the D70 is an interesting experience. It's a very different feeling from the 4500, partly due to the camera itself, and also to the RAW workflow. The photographs I've taken with the new camera are more complex, expansive, and subtle. The clear, bold colors that I'm used to with the 4500 don't feel right for the images that I've taken time to work with, even though the levels distribution is even.

I've been working with F-Spot, UFRaw, and the Gimp for my image workflow, which has proven effective, if unfamiliar. It's difficult to predict how a given set of parameters will transform the RAW data, and I expect it will be some time before I become adept at the process. Getting color right is hard.

Continue reading (131 words)

Added ATOM feeds for journals, photographs, and a combined feed. Also added EXIF support to photographs, such that files with EXIF headers (those from about the last year or so) display some shot information as well.

Also, I caught bash programmable completion completing paths on remote servers over SSH. I was copying a file from the laptop to the server, hit tab to complete the directory on the server side... and it worked. That was quite surprising, when I realized that my ordinarily useless request had actually been carried out. Hurrah for bash making my life easier.

Continue reading (182 words)

Rails

I rewrote my old, Perl-based blog engine in Ruby on Rails, which was a remarkably refreshing experience. The old Ragnar database converted over cleanly, and I think journals, comments, and photographs should all be in order. In the next few days, I'll work on bringing up projects, ATOM feeds, and other things the old site used to have.

Continue reading (61 words)

To celebrate the end of the year's training, we did many breakfalls last night. David-sensei informed me that our absolute maximum (read: his) goal was 1500, but people were free to set whatever number they wanted to reach. I conservatively estimated 100, but ended up doing 1007: a mix of of rolls and back-breakfalls, both from throws and in sets. It took roughly five hours, at the end of which I was quite sore, but very happy.

We had a windstorm arrive Thursday night as well, which led to downed trees, hundreds of thousands of homes without power, and terrific rains. That made for an entertaining landscape for the ride home, as I passed trees snapped over concrete soundwalls, and biked over acres of branches floating in 2 inches of water. My map claims these waterways are "streets", but I think they are happier as streams.

Continue reading (150 words)

After the last three months, I've come to the conclusion: Ruby is a wonderful language, and I don't want to write code in Perl any more. I like Perl: it's fast, powerful, and has a terrific community around it. If you wanted to run your television through a LEGO USB IR transceiver, yeah, there's probably something in CPAN for that. However, I'm finding that the rocky syntax of Perl gets in the way of my thinking. I don't want to use $hash_of_hashes->{'key'}->{'key2'} to get at at what should be a simple data structure. Using five special characters on a variable makes my code hard to understand, and makes it easier to cause bugs. It's a good language, but Perl has its limits. After spending months writing clean, joyful code, I think that the Ruby language maps more closely to the domains of the problems I'm trying to solve.

There are a lot of things I like very much about Ragnar: it's quite fast, extensively configurable, and compliant with web standards by design. XSLT transforms keep logic and presentation well separated, and the powerful query engine makes node-level logic simple. I plan to preserve the best aspects of this design, but refactor the code into a Ruby platform, separate node data taipus into a more traditional database schema for efficiency, and define a plugin architecture with callbacks for node lifecycle handling. For now, at least, I'll avoid the temptation to use Rails for this project: I prefer XSLT, and working this way is more fun for me. :-)

Continue reading (273 words)

Last night, the esteemed Lady Mackin invited myself and several other persons of Quality to her family estate, Castle Evans, for an evening of merriment before departure for our respective winter residences. I was one of the earliest to arrive, and had the honor of joining Lady Rose Buckingham as we entered the Castle. She was quite cold, on account of doing some charity work just prior: making a bonfire and chocolate-graham-cracker confections with some young acquaintances.

After all the guests had arrived, I discussed matters of finance with the Viscount Burgandy, and learned of his families misfortune in recent years. I have no doubt, however, that such a venerable family as his will have no difficulty in weathering whatever vagaries of fate may come their way.

Continue reading (689 words)

More Anti-Spam

Spammers have started breaking through the session check, so I've started filtering content for high URL density. If your legitimate message doesn't get through, toss me a line so I can recalibrate the filter.

Update: More spam. They've switched to single-line links, tagged with [url]. There's got to be a better way around this.

Continue reading (77 words)

Here's a fun thing I just discovered.

If you bounce the tip of your tongue against the roof of your mouth (kind of like rolling an R) while forcing air out, it vibrates your skull a little bit. Try it. Go faster. Make that t-t-t-t-t-t faster and faster until it starts sounding like a buzz. Now, look at an LED alarm clock.

Continue reading (179 words)

Last night, I ran into all sorts of strange behavior on my laptop--unable to log in, normal system calls taking forever to complete, and all sorts of network trouble. This morning I backed up my home directory to my work computer's hard drive (discovering, in the process, that NTFS disallows all sorts of common and innocuous characters in filenames) and ran into several IO errors. Checked the hard drive and (despite SMART claiming everything was fine) it failed the read tests almost immediately. I managed to swap in a new drive and restore most of my files to a fresh copy of Ubuntu (with a customized version of tar to overlook the errors in the archive I made), but I still lost a fair bit of data.

Question: Why can't tar take an argument to skip over damaged sections of otherwise useable archives? A few IO errors at the beginning of the archive doesn't mean the remaining gigabytes of data are unrecoverable...

Continue reading (234 words)