Monthly Archives: January 2005

Do not listen to Waltz For Debby

I heard a piece about a week ago called “Waltz for Debby” by Bill Evans on a flash movie from Newgrounds. Do not listen to this piece, lest it shall stick in your head for the next week, and lest you not be able to listen to any other song without playing it in between! The Kronos Quartet also has a beautiful recording, which, for the same reason, you should not listen to.

It is possible that I am now addicted to Bill Evans’s pianistic style. I haven’t had a chance to listen to much other music by him, but doubtless I will.

Latest Progress

Four measures after the previous concerto update, I slammed against a major writer’s block. I had just written four brilliant measures, the brightest and most multitextured of the whole song, and then, well, I just stopped. I went a couple of weeks without any music translatable from my head to the page.

Fortunately, I got past it today. I only have about forty seconds more than the last update, but I thought I’d post since it has been so long.

And now I’m at a fork in the road. The first movement could very well be over right now. The listener is ready for something different; something slower, more melancholy. It might be time to start the second movement. Then again, I never got to do some of the things that I’ve been wanting to do in this movement, like develop the second theme, or come to a big climax. I think the listener would be just fine with going for another couple minutes in this movement—as long as it doesn’t take a break here. If I keep the notes and the ritardando the way they are now, I have to go to the second movement. So I need some way to keep the song moving, and still transition to the slower second theme.

Anyway, here are the files: MIDI | MP3.

Bus Problems

There are two mathematical problems of interest that came to mind the other day while I was waiting for the bus to school. One is of my own curiosity, the other belongs to my friend. They were not difficult to solve, but the results were fun. I think they would make excellent problems for a college algebra class, once the students are familiar with the concept of “expectation”.

Problem 1: Let’s say there’s a bus that comes every T minutes
(but you don’t know the schedule), and it takes λ minutes to get to get to school once you get on the bus. Also assume that it takes β time to go to the bathroom. You would like to minimize your expectation to go to the bathroom and get to school; that is, if you were to do this a million times, you want to minimize the sum of all the times you did it. The question is: do you go to the bathroom before or after the bus ride?

Problem 2: Again, the bus comes every T minutes, and it takes λ minutes to get to your destination riding the bus. It takes w minutes to walk to your destination from the bus stop. The problem as phrased to me was: once you get to the bus stop, how long do you wait before you start walking?

Solutions follow (you might try to work at least the first one out by yourself, for fun).

Continue reading Bus Problems

Awesome Efficient MMD

I’m currently implementing Class::Abstract, which will become my Perl 6 multimethod proposal. I pounded my head against a wall for a couple hours, and I came up with a really awesome multimethod dispatch algorithm. It isn’t Manhattan distance, of course, because I hate Manhattan distance. Actually, it’s more general: it’s an algorithm for quickly finding all possible candidates, without using any algorithm to disambiguate which ones. It is Θ(a m t) (where a is arity, m is number of methods, and t is number of types) in space, which beats the hell out of Parrot’s current Θ(t a), especially since t is usually much larger than the other parameters. It’s also fast-O(a+m) in time, where fast-O is technically O(a+m), but the bounding constant is quite small relative to most asymptotic measures. That is, it can be implemented in a really tight, CPU register-only loop, on top of the fact that a and m are generally small.

Continue reading Awesome Efficient MMD