« March 2003 | Main | May 2003 »

April 30, 2003

One Problem with Music Services (in general)

Here's one issue I have with music services in general (Apple's included). I'm online and see a CD I would love to own (The Wallflowers - Red Letter Days). Price is only $9.99 so I buy it, download it, put it on my mp3 player and burn it to a CD.

The problem . . . what about an album cover or liner notes. For a music addict, those can be somewhat important. I like to have the cover where I can grab it and peruse from time to time while listening.

For some CDs the information is available through the artist's web site, but not always the case (and it means taking the time to dig up the information).

Someone needs to come up with a standard method for including meta information about the CD available with the mp3 download. Something that will include images and text, possibly in a format that if you print it out it folds nicely into a CD-size square and can slip into a paper CD-sleeve.

Posted by mike at 8:57 AM

April 29, 2003

Review of Apple's Music Service

I've had a chance to try out Apple's new music service and I'm fairly impressed. I agree with Jeremy about Apple missing an opportunity to customize based on what's currently in your iTunes library.

Besides that I'm quite impressed. Over the past few years I've periodically been pointed at a *legal* music service, which for the most part is filled with indie or small label artists, hard to find anything I'm familiar with. Of course they get some b-side from a few well-known artists and use them for marketing. There have been one or two that with a small fee you can get access to a larger library. Of course this is based only on my experience, I have not been aggressive at searching out these service.

Three things impress me about the Apple iTunes service:
1) Large selection. Of course not everything is there, but there is a lot. I found albums from Spinal Tap, The Boomtown Rats, U2, The Cult, Weezer, Violent Femmes . . . the list seems to go on and on.
2) Ease of purchase. I set up my Apple account and then with one click in iTunes the song is purchased and downloaded. Makes it really easy, my mp3 player essentially has a massive collection of 30-second songs, and with one click I can get the entire song. I have no idea what the billing cycle will be.
3) Price. Probably not very common, but I would prefer to purchase music and know I'm not in violation of copyright (notice I say *prefer*, can't say I always adhere to this). Here I can buy one or two songs, or the whole album for considerably less than at the store. Seemed like many of the albums were $9.99 to purchase the entire collection of songs.

Will be interesting to watch this over then next little bit . . .

Posted by mike at 9:43 AM

April 28, 2003

MySQL Binary Distribution Problem

Today I'm building a package for MySQL 4.0.12 (to upgrade our machines in the next little bit). Typically I prefer to compile MySQL from source, but each time I go to get the source code I am convinced that MySQL doesn't want me to compile, but use a binary.

For maximum stability and performance, we recommend that you use the binaries we provide.

Looking around a little I see that the standard release includes support for InnoDB tables, and decide to heed their warning and use the binary distribution.

I notice on install that there is no libexec dir, however the mysqld_safe script tries to execute mysqld in that dir.

> sudo /etc/init.d/mysql start > The file /usr/local/mysql/libexec/mysqld doesn't exist or is not executable Please do a cd to the mysql installation directory and restart this script from there as follows: ./bin/mysqld_safe. > cd /usr/local/mysql > sudo ./bin/mysqld_safe > The file /usr/local/mysql/libexec/mysqld doesn't exist or is not executable Please do a cd to the mysql installation directory and restart this script from there as follows: ./bin/mysqld_safe

It appears that the mysqld_safe does some checking to see where the execution is being called from and sets the data dir and bin dir. It's somewhat puzzling to me that the distribution has no libexec dir but the mysqld_safe script seems to default to that dir unless you pass in a different directory as a parameter.

So not a big deal, I can pass in --bindir=/usr/local/mysql/bin and override the default.

Posted by mike at 11:19 AM

April 27, 2003

Using 802.11g Card on 802.11b Access Point

Bummed that the airport extreme card in my laptop doesn't work with my 802.11b wireless network at home. Wasn't until after I attempted to get connected that I found that there is a problem with the backward compatibility.

I guess I shouldn't expect much from an incomplete standard.

Got curious about the completion of the 802.11g standard and found this timeline on what appears to be a somewhat official site.

It's no fun going back to a wire at home . . . will keep watching and see if Apple or dLink has updates.

Posted by mike at 10:19 PM

April 22, 2003

Interesting Approach to SPAM

andersja has put together a warning for spammers that I got a chuckle from:

<!-- This page is (C) Copyright Anders Jacobsen -->
<!-- All rights reserved. Email comments to the webmaster. -->
<!-- ----- ----- SPAMMERS WARNING ----- ----- -->
<!-- Unsolicited commercial email to any address in the jacobsen.no -->
<!-- domain will be billed at $500/message. -->
<!-- Having this note present at all webpages and visible in signa- -->
<!-- tures in all newspostings constitutes fair prior legal notice. -->

He's now is attempting to carry out the warning by contacting guilty parties. I am going to be quite suprised if anything comes of it.

It's the first time I've ever chuckled when thinking about SPAM.

Posted by mike at 9:33 PM

Linked Titles Added

It's amazing how important it becomes to fix or change something once it becomes an inconvenience to you. I would have never thought to make the titles of my weblog entries links until I started using the aggregator (I should stop saying that word here shortly). Without linkable titles it's not terribly convenient to get from NetNewsWire into a specific site.

Posted by mike at 9:16 PM

Missing those Productive Days

Invariably through the course of a week I get sidetracked by some fiddling. Might be organizing/cleaning the office, reading up on new technology, figuring out some optimization on a service, trying out some a new application or method for completing a process, fixing someone's X11 forwarding, getting to the bottom of a compiler error . . . (the list goes on and on)

Lately I've been spending altogether too much time being distracted with fiddlings and it's starting to get annoying. Getting the gamma just right on a monitor, tweaking the interface on a web browser, or routing cables under the desk in an organized way just isn't that gratifying. I have dumped quite a bit of time into getting OS X set up to foster productivity, but haven't been able to actually get any productivity out of it yet because I keep finding that one other app or setting that is worth checking out.

I guess I'm hoping that in the next day or two I'll be able to hunker down and make some real progress on one or two of the projects I'm working on, without much distraction (lucky me, I don't have any meetings for the next two days).

How to ensure a productive day? That one still eludes me . . .

Posted by mike at 5:31 PM

Full Text RSS Added

After having used an aggregator for a few days now I realized how much I like having the full text of the article in the aggregator and not having to launch a browser to read entire articles/entries.

So I added a RSS 1.0 Full Text link to my weblog for anyone who is interested in syndicating the full text of my blog entries.

Posted by mike at 12:24 PM

April 21, 2003

Boston Marathon Inspiring

Went and cheered the runners on for the Boston marathon today. The weather was perfect for spectators (not so great for the runners). We found a really nice park somewhere near the halfway point in Wellesley.

This year 20,000 runners were accepted, after the elite runners went by in a small trickling stream the masses came (including Will Ferrell of SNL and Keizo Yamada a 75 year-old who won the marathon in 1953) and for ~2 hours we cheered. It is really quite something to be a part of. Not only was it cool to see the runners and give them support, but it was amazing how many people were lining the street as far as we could see cheering, handing out food, water etc. These aren't official volunteers, just people wanting to come encourage others and give them a boost.

We've attended this event twice now in the 5 years we've been in Boston. As we headed home I commented that I was ashamed that I hadn't made the effort to come and participate every year.

Posted by mike at 9:10 PM

April 19, 2003

News Aggretator Installed

I've been wanting to get a news aggregator set up for some time, today I grabbed NetNewsWire Lite.

I haven't used a news aggregator before, I think this is going to be a really good thing. The biggest challenge right now will be to set up the right feeds so I'm not spending all day sifting through articles of no interest to me.

Review to come after some usage . . .

Posted by mike at 4:20 PM

April 18, 2003

More 64-bit Explorations

One (or two) more comments on my 64-bit exploration.

First, I'm using a Sun E250, with dual 450 UltraSparc II processors and 2 G of memory for the compiling, package building and testing. I'm compiling with gcc 3.2.2 (32-bit) on Solaris 8.

Second, to round out my comments on OpenSSL, I grabbed a current version and compiled it in both 32 and 64-bit. I then ran "speed" with each of the binaries.

Combining all the tests that speed completes, the 64-bit openssl averaged processing 10,708k/second. The 32-bit binary averaged 10,746k/sec. A slight advantage for the 32-bit.

The tests were run on a machine which was doing other things, which no doubt skew the results. Am running them again during a "quiet" period to verify.

Posted by mike at 11:00 PM

64-bit Exploration

I'm building packages for a new Solaris machine over the next few weeks and trying to figure out my position on 64 vs 32-bit binaries. Terry pushes for 64-bit binaries, Tufts' USG sticks with 32-bit. I've flip-flopped between without any real solid foundation. Today I'm in search for arguments in either direction.

I started with a document Sun produces, Solaris 64-bit Developer's Guide. According to Sun there are four reasons to use 64-bit binaries:

  1. Can benefit from more than 4 gigabytes of virtual address space

  2. Are restricted by 32-bit interface limitations

  3. Can benefit from full 64-bit registers to do efficient 64-bit arithmetic

  4. Can benefit from the performance improvement that the 64-bit instruction set provides

So it seems to be that number 4 is the only applicable benefit, although performance improvements from the instruction set seem like a big grey area.

The list of packages we're considering building 64-bit: Apache (mod_perl, mod_ssl), perl, mysql, openssl, libxml2, libxslt. Not a huge list (all of them are built 64-bit in our current system).


Can't find much either way on Apache. Some discussion about how to get it compiled but no comments on performance.


Tim Harsh says on perl.64bit "By my experience only, I'd say 64bit perl can be as much as 1/3 slower." Posts here seem to indicate that the big advantage of 64-bit perl is to get access to larger chunks of memory and larger files, not much about performance.


MySQL's Solaris page indicates:
If you create a 64 bit binary, it's 4 % slower than the 32 bit binary, but mysqld can instead handle more treads and memory.

We typically have ~100 MySQL threads and use ~400 M of physical memory. Don't know if moving back to 32 bit would mean we'd be running into some limits.


A small problem here, we're using USG's 32-bit OpenSSH, which is tied in with OpenSSL (also 32-bit). We can't use 32-bit libraries in our 64-bit Apache/mod_ssl package. Either we have two sets of libraries or we decide that Apache/mod_ssl/mod_perl/Perl must become 32-bit.


Not much either way.

This isn't a terribly large list of packages to build, but it is *so* easy to get existing packages from USG or sunfreeware in 32-bit versions. On the other hand I have compiled all of these put Perl (someone else did it for us) in 64-bit before so for the most part it should be fairly straightforward. I hate getting stuck on some compile problem when working in 64-bit, although it seems now that there are more people trying 64-bit builds than there were just a year ago. Maybe I didn't look in the right places when I last tackled the process.

Posted by mike at 9:22 AM

April 16, 2003

Word of the Day Service

I'm interested in doing some sort of word of the day. I know unless it's forced on me each day there is a slim chance I'll actually do it (ie a book is useless).

So I'm poking around online and stumble into the wordsmith site. The minimum (which I've already done) is to make this a link on my bookmark bar, but I can't be sure that will gaurantee I'll look at it.

Probably better would be to have something in the startup that launches either a browser or a window with a scrape from the site. Will have to toy with this idea some more.

Posted by mike at 10:40 PM

April 15, 2003

Using Prolog for Authorization

We're rewriting some of our underlying libraries and in the planning stages of redoing the authorization engine (now all in Perl), Andy recommended that we consider using a prolog engine (he was quite emphatic about it).

Right now we have a moderately complicated tree of Perl objects that you climb up (each level instantiating a new object to perform checks) until you reach the highest level. The objects are organized from specific to general making a lot of overhead if the user is authorized at a high level.

So we gave Andy this scenario:

user1 is a editor for course1
user2 is a student in course1
user3 is a editor of course2
user3 is a student of course2
course2 is a child of course1

editors can edit and view courses and child courses
students can only view courses (not child courses)

In 15 minutes Andy turned out a prolog definition that was 3 lines long (fairly short lines) that you can run and ask:

or you can ask:
and it will return the list of courses the user can edit.

So far I'm impressed (of course all the tests fed to the engine returned correctly). Prolog provides a concise way to define and query relationships. I'm now asking these kinds of questions:

  1. How do we interact with a prolog engine from our Perl libraries

  2. How does prolog load the data from MySQL

  3. How scalable is the solution

Our next step is to get all the relationships in the current system mapped out in a way that Andy can start looking at how they might be written in prolog. And then begin thinking about how we wrap the engine in something Perl can reliably interact with.

Posted by mike at 4:22 PM

April 14, 2003

Apple running on Intel?

I'm poking around looking for some customization tools for my Mac (weather icon etc) and I stumble into this article from last month (yes, I need to get a aggregator set up).

Apple running on Intel? I'm curious to see how the Mac fanatics will view that switch. When I think about my devotion to Apple, a chunk of pride comes from running on a PPC chip, which somehow I've convinced myself is better than Intel or AMD chipsets. According to the megahertz myth the PowerPC 867 is 58% faster than a 1.7 GHz P4. I admit, I'm more likely when someone asks how fast my processor runs to say "Well, it's a G4" hoping to avoid the numeric representation because people might think less of Apple.

I would have to say one theme in my life is rather than finding the product that everyone seems to be using . . . search out something that I can believe in and be proud it's not the mainstream (even though sometimes the best products happens to be mainstream). Apple switching to Intel makes them one notch less appealing.

Sometimes things just have to change. I think Steve Jobs has done some incredible things with Apple, and I'm sure when he rolls out the first Intel Mac at MacWorld (provided this actually happens) he'll present it in such a charismatic way we'll all be right on board with him.

Posted by mike at 2:03 PM

April 13, 2003

Weather in Dock

I've wanted to have something like this for awhile but never got around to tracking one down. The weather varies somewhat wildly in Boston. It can be 50 in the morning and drop down to 30 in the afternoon. Case in point, last Friday I was wearing my winter coat, tomorrow is going to reach 80 degrees.

I poked around a bit and am trying Son of Weather Grok. I stuck it in the startup so when my machine is on it displays the current temperature outside. I have had problems with the app croaking when I minimize a window to the dock, but it also displays the conditions in the app icon.

I would like to find something that shows tomorrow's weather too, maybe rotating between current conditions and conditions for next day.

Posted by mike at 2:33 PM

April 10, 2003

Javascript Analog Clock

Just noticed that Pete added a DHTML (javascript) clock to his weblog. A search on Google for the author's name turned up Kurt Grigg's site filled with 100+ dhtml scripts.

Not typically one for flashy stuff, but the clock is subtle. If anything it is interesting to poke around at the site and see how much can be done with javascript and an understanding browser.

Posted by mike at 11:07 PM

April 9, 2003

12" PowerBook Arrives

It has taken a long time, but the 12" PowerBook I requested back in early Febuary arrived today. Leave it to university bureaucracy, paperwork etc to take 2 months. Once the order was actually placed, the PB was on my desk within three business days.

Of course, it appears initially that it was well worth the wait. The PowerBook itself is decked out with 640MB ram, 60G HD and SuperDrive, and sleek as ever. While in the spending mood I landed a 19" Viewsonic LCD and 802.11g access point (along with a handful of other accessories). Haven't had time to get the new office set up just yet.

I've already got a few thoughts/comments on the PowerBook, but figure I'd better wait another week or two before I make any firm statements.

Posted by mike at 9:07 PM

April 7, 2003

Forking in mod_perl

Over the years I've written many an application or script that used Perl's forking mechanism to run multiple processes. Never tried to do it within the Apache/mod_perl environment, until today.

Here's the scenario. We store a lot of medical images in our database, and have a set of authoring tools used via the web to upload and manage the images. My most recent project is to redo the upload of images, creating several sizes of the image, including one unaltered copy of the uploaded image. The seven sizes are retrieved via an alias to an Apache handler (written in Perl) with the image size and id specified in the URL.

I decided before moving too far along, I should do some performance testing to determine what kind of processing time is involved in creating seven different image sizes (original, xlarge, large, medium, small, thumbnail, icon). 52 seconds to convert a 3000x1250 image into the seven sizes. An unacceptable wait for a user waiting for the web page to return success.

After some discussion, we decided the quickest way to handle the problem was to attempt a fork. So after uploading the image and processing one size (which is displayed on the success page), the mod_perl process forks. The parent returns the success page while the child continues processing the other six image sizes (and then CORE::exit(0)).

So it works, but I can't help feeling like it's a bad solution. The language in the docs I read seemed to all have a hint of "only try this if there is no other solution." We'll see how much energy (and time) I have tomorrow, I'm supposed to demo this on Wednesday.

Posted by mike at 9:06 PM

April 4, 2003

Repairs to MySQL Tables

After our crash last weekend our MySQL database was left a little mixed up. On top of that we had a table which began reporting:

warning : Datafile is almost full, 4037122808 of 4294967294 used

So this evening was the right time to do some maintenance.

First order of business was upping the Max_data_length on a 4G table used to store images (binary data). After reviewing limitations (I think that is the wrong word) it appears that MySQL max files size for MyISAM tables is 8 million terabytes, but that is governed by the OS files size limits. Solaris 8 is some number of terabytes as well. Needless to say we're not going to get anywhere close to the "limits" in either instance. I updated the Max_data_length to ~280 terabytes, that should take care of it for awhile.

Next on to table marked as crashed with slightly more that 7 million rows. mysqlcheck -r took care of the issues.

Besides the minutes of waiting for commands to execute, pretty simple and straightforward maintenance.

Posted by mike at 11:05 PM

April 2, 2003

Got some Dude Arrested on Subway

So around noon I jump on the subway to head into the office and notice it's just me and one other man in the car. It smells like smoke, sure enough he's puffing on a cig. So I glare at him and go to the opposite end of the car. I'm not much for confrontation, especially when it's just me and one other guy in the car for 5 minutes until the next stop.

At Malden Center I run to the next car. This unruly T operator comes out of the cabin to confront me about why I'm racing between cars. I say "there's some dude smoking in the car." So she goes to confront him (while the train is moving) and comes back saying the man was puffing in her face, drunk and looked like he had been living in the train. She radios ahead to the next station to have the police waiting to arrest him.

Next stop I see the T operator battling with this man to literally throw him off the train, he's grabbing for handrails while she's shoving him out onto the platform (I guess the police hadn't quite gotten there yet).

I've always maintained that the T is lame because it refuses to openly communicate. Not sure I think that anymore. Everyone has a story about how one day they were riding the T and someone got hit by a train or the train was evacuated for a bomb search. Truth be told, I have seen a train pull into the station with a car on fire (smoke billowing from the car, no visible flames), watched the train evacuate and fire fighters arrive on the scene to put out the fire.

After discussing this a bit, it's probably good that the T doesn't openly post about what goes on each day, keeps us less paranoid.

Posted by mike at 1:14 PM