Older blog entries for feldspar (starting at number 7)

college thread

OK, my $0.2: I went to college at age 16. Not because I was unnaturally intelligent or anything, but because:
  1. I hated high-school and was ready to drop out.
  2. I found a school called Simon's Rock (in western Massachusetts) that operates under the philosophy that the last two years of high school are essentually wasted, so why not start a four year BA program after 10th grade.
I was a music major (theory and composition). I did work some computer work with Basic on a PDP-11 machine with a paper teletype terminal with paper tape storage (this was 1974, so PC didn't really exist yet). I had the romantic idea that I would be a composer, probably supporting myself through academia.

Anyway, after graduating in 1978 at age 20, I moved to NYC and worked at a succession of shitty, demoralizing jobs in the hi-tech industry, doing music at night. After 3-4 years of thism I had had enough. Having had a decent amount of on-the-job computer experience, I realized that if I became a programmer, I might at least be able to enjoy the work I did, even if it wasn't music.

So I started reading every magazine in existence (there were some great ones then, e.g., Programmer's Journal, Computer Language, Byte, DDJ, etc.), also K&R and other stuff. I also took a two-part night class on C programming at New York University -- this was (and remains) the extent of my formal training as a programmer. But the bulk of my learning has been self-taught and experiential. And that's how I've been making a living since the mid-80's. :-)

What's interesting in the context of this discussion is that while I didn't take time off before college (just the opposite!), that fact that I became a programmer deliberately, after a few years of "real" work experience, meant that I was highly motivated. My music degree was partially based on a rather abstract view of my future, whereas my change of career was based on a more realistic outlook. Fortunately, I quickly found out that, for me, writing code is just as much an aesthetic experience as writing music. (I still write and play music, BTW.)

In conclusion, I guess I could say that I would encourage people to take some time off before launching into their university-level work. Even though I did things somewhat differently, I benefitted from the time I spent in the non-academic world, in the sense that it allowed me to find out what I could do and what I wanted to do, and it gave me the motivation to learn in a very intentional way.

To fatjim: don't you believe it. I'm 41 (gulp), and I did get Legos for Christmas!

Tim just released version 0.3.2 of BEAST as he gets ready to go to Paris. I updated the website, as well as the Gnome applist and freshmeat. However, when I went to the project page on Advogato and clicked on the edit button, it didn't encode the spaces in the URL, so I had to add the %20's manually. I probably shouldn't have used spaces in the name, but if I'm allowed to do that, it should be supported consistently. So Raph, this is a bug report.

Timj just reminded me that I hadn't posted for a while, which is true, so here goes.

Last week was pretty non-productive. The kids were home all week with school vacation, and I had several appointments that ended up clustered together. Also this is the time of year when winter really starts to become tiresome (epecially when you live in a place like New Hampshire). But enough complaining.

I took on a small contract job for a local company, web stuff with PHP and mySQL, so I'm spending some time on that in between work for my company. The nice thing is that all this work uses the same set of technologies, so it's easy to make transitions back and forth.

I need to do some more work on BEAST soon. It's funny that that this is currently the only thing I'm working on these days that where I'm using a compiled language! :-)

Just sent Tim my first few procedures for BEAST. No big deal, they're very small and simple, but hopefully they're useful steps in adding some functionality to the pattern editor. Have to step back now and think about what other procedures a user would expect/want to have. I have several ides for more exotic ones, but I want to get the basics in place first.

I'm giving a talk on PHP at a meeting of the (New Hampshire) Seacoast Linux Uers Group on Tuesday night. I gave it once before for the local group (MLUG), so I don't need to do much, just tweak it a bit, add a couple more examples, stuff like that.

I had lunch with a former co-worker this week, and then went back with him to the office (NuMega/Compuware) to see what his team (BoundsChecker, which I used to work on) was working on. I hadn't been expecting to go see a bunch of people, but it was kinda fun. Everyone kids me about my beard -- I used to keep it trimmed and pretty short, but now that I work at home, it's getting long and shaggy, for the first time in my life. They tell me I'm starting to look like a Unix guy. :-)

Hey, cool, I'm finally writing some actual code for BEAST. I've written a tiny "delete-note" procedure, and I have several others to do that Tim suggested. I'll send them to him once I've got 2-3 more. It feels a little funny, after 3-4 years of C++ (albeit not always very idiomatic C++) to be back in C, but I actually like it better. C++ can be elegant in the right hands, but it tends to hide a lot of behavior. When it comes down to it, if I have to use a compiled language, I'm more comportable in C (the old "baby duck" syndrome, I guess :-).

But right now, it's back to the salt mines (i.e., cleaning up a bunch of HTML files for CulturePort), then tonight, back to BEAST.

Timj has sent me me all the material I lost (thanks, Tim), so I now have the information I need for two things:

  • start coding pattern-editing procedures for BEAST
  • start collecting material for a BEAST "plugin developers guide"

But I can't do that stuff until tonight -- first I need to rewrite the tech section of CulturePort's business plan. (CulturePort is the new company for which I'm the CTO). This will allow me to make it clear that we will be basing the technical side of things on Linux/Apache/PHP/etc. (i.e., as much open source as possible). It's very cool that you no longer have to spend much (if any) energy justifying this, now that open source software is finally out of the closet in the business world. Anyway, there are some important meetings tomorrow in NYC (glad I don't have to go myself) that may finally result in the capital we need to get going....

Time to start using this space for something.

FInally have a little time now to start contributing some code to BEAST. Doing the website was fun and hopefully helpful, but I want to do more. Timj suggested that I work on procedure support. Unfortunately, I just discovered that almost all the emails I saved from him got somehow blown away (ARRRGH!!!), so I have to wait for him to get back to me to tell me what he has in mind. In the meantime, I'm thinking about some things I could implement *using* the procedure interface. Such as, tools to perform various transforms on patterns and note selections: tranposition, inversion, retrograde, retrograde-inversion (uh-oh, my 12-tone roots are showing :-). Also, I want to write some code to generate note sequences algorithmically, based on things like Brownian motion and 1/f noise.

Other semi-random BEAST-related thoughts:

  • I'm used to standard notation, so the current pattern editor interface doesn't really appeal to me. It would be interesting to provide an alternative UI that looks more like notation.
  • Related to the above: how about a tool to export BEAST patterns to the LilyPond format?
  • I'd love to be able to code plugins in Python and/or Perl. Could be fun to work on that.
  • I'm also very interested in Csound. I wonder if would make sense to figure out how to exchange data between BEAST and Csound?

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!