Monthly Archives: November 2003

Famous Perler

So Allison Randall (On the Perl 6 design team) just, she just, well, let me put the body of the message right here:

    From: Allison Randal
    Subject: Retroactive Synopses


    Would you be interested in working on Synopses 2-4? The task would be to
    summarize the Apocalypses with updated content. You might be
    co-authoring with Damian or the sole author, it depends how much time
    everyone has.


Umm, let me think about it. Done. Yes!

This will get me a fair share of publicity outside of the perl6-language community. Wow! I’m so excited!

I figured out Mutt!

So mutt (my mailer) sporadicly is capable or not capable of unicode sending. I would be so perplexed, as I would send a message in French to Dan, and it would work, and then I would use «French quotes» on the Perl list and it would fuck up. And I’d end up looking like an idiot for trusting it.

But I figured it out. Apparently, mutt automatically detects whether the message is in unicode. But it does a very poor job of it. The only character which correctly triggers it so far is LATIN SMALL LETTER A WITH GRAVE (à). So, if I want to send a message in unicode, I have to get an A grave in there somehow. Interesting challenge. Maybe I’ll just make a sig that requires it.

Mathematical Music

Here’s an interesting song I wrote based on math. I wrote a perl script to generate the lot of it. It plays the prime factorization of each number from 2 to 197, where I assigned a pitch to each prime. Many primes I gave the midi note 0, which means “don’t play” (lest it should be way too many notes). It’s a little dissonant, but it holds your attention nonetheless. Go, math!

I plan to write a few more music-generating perl scrips; this was fun!

Programming, Beethoven, and Shostakovich

Damn you Shostakovich! I’m not supposed to like your music! (Piano Concerto no. 2) He’s slowly growing on me, might have to have him removed. I listen to his music because I find myself needing relief of the intensity of Beethoven and Rachmaninoff more and more these days.

Speaking of whom, on 90.1 they played a “brand new” recording of Beethoven’s 9th. You know, I don’t really like that one. It’s, as I said, intense, and it doesn’t change enough to keep my interest. I find myself fading off, and just being bombarded by intensity. Not to say anything about Beethoven’s music in general, which I usually love.

To make it harder to comment (nobody does, anyway), I’m going to cram something completely unrelated in here. I’m continuing the Puck Fighter project (link to a VS.NET project), making this about the longest-lived project I’ve ever started, save for write2. That’s sad.

But it’s coming along nicely. The physics are solid, and it’s a good API. I’ve had to participate in reductionism quite a bit on this one, ingraining into my believes, in addition to my thoughts, that you don’t get it Right the first time. And it can still turn out right in the end, without being perfectly designed. Good for you, Luke, thinking like a modern programmer now.

I fear that this program might actually become large enough to blow my brain cache, which will be another new thing that I’ll get to work through. Cool.


Just checked out Flatland from the library, upon mention by Namaste. It’s about a society in two dimensions instead of three (or rather, three instead of four), in which all people are polygons, and look like lines. I’m about half way through it, and this is a brilliant book. I was expecting it to be a mathematical and conceptual challenge to visualize, and interesting in that respect. No. It’s extremely political, and was written as a satire (or statement) on victorian society. The bit about The Universal Color Bill revolt, and the corresponding re-opression is amazing. Very human. I highly recommend it.

Puck fighter

I’m working away on Puck Fighter, the contest entry for the next gamedev meeting. I’m done implementing the camera motion, collisions between pucks, and ropes. I usually suck at all physics, including computer-simulated physics, but I have to say, this looks awesome. I guess I just got lucky with this stuff — not a bug in sight (yet).

Here’s the idea: Each player is an air hockey puck with arms (arms yet to be implemented, but should look very animated and characterful :-). For controls you can accelerate yourself around, which is hard to do, because it’s an air hockey table. But you also have rope that you can shoot out and attach to things to help you turn (or tie other players up with, or whatever).

Each player has a clock, and there’s a time crystal which is randomly positioned on the board. A player can go pick up the crystal to freeze his clock, and may keep it as long as he doesn’t get whacked by another player, in which case the crystal flys out at some random direction. When a player runs out of time, he loses a life.

There may also be reactors, which, if you have the crystal and move on top of one, you lose the crystal and it does something beneficial to the times. Like, if the reactor is yours, it adds time to your clock, and if it’s someone else’s, it subtracts time from their clock. The crystal is randomly repositioned on the board.

Yeah, just like Blast Chamber, if you’ve ever played it. But instead of people moving around and pushing each other, it’s air hockey pucks flying around and grappling each other. Should turn out to be more fun than the original :-)

Ghod I love OpenGL.

Perl 6 unfolds

So now I don’t have a relationship. But thanks to Victoria, I realized I like blogging. So I presume this is going to turn in to much more a technical blog. Which means I can start attracting my buds from the Perl community who aren’t terribly interested in my personal life.

The more I think about Perl 6’s philosophy, the more I realize how much of a damn genious Larry is. I was reading Kim’s blog about LL3 and thinking maybe the future of programming languages isn’t one (or a few) good general purpose language, but instead many domain-specific languages suited to the task at hand. That’s kind of the way things are going. But there still needs to be a language (currently C) in which those little languages are coded.

Then I thought about Perl 6. I was worried at the beginning because Larry was making the syntax so mutable that the language would become unmaintainable1. Nobody could understand what was going on in anybody else’s code. But now I realize that he’s integrating domain-specific understanding into the very syntax of Perl. Thus, Perl is much like English (or any other natural language): there’s a standard syntax and grammar by which we adhere, but then domain-speak becomes more specialized: new vocabulary is introduced, idioms are created, shorthand is made (for instance, TLA’s).

It comes from the idea, I think, that there will be more and more programmers as computers become more and more pervasive. And the fact that a physicist shouldn’t be maintaining a linguist’s code.

I’m really happy to be a part of this project. It’ll go places.

1 I maintain that Perl is not unmaintainable, just that a vast majority of Perl programmers write unmaintainable code. As Larry says, Perl gives you enough rope to hang yourself with, and a lot of people do.