Older blog entries for MichaelCrawford (starting at number 127)


Life just wouldn't be the same if there weren't some injustice I could rail against.

Recommend an Open Source Weblog Package?

I'd like to install a weblog package so that someone I know can host her weblog at her own domain. I think her hosting service provides MySQL.

She would like to keep a weblog, but has tried out a number of the sites that host weblogs, and hasn't been happy with any of them.

Her primary requirement is that no one be allowed to post comments to her blogs. She wants to be able to publish her thoughts on the web more easily than writing HTML pages from scratch, but doesn't want to risk getting flamed, at least not right on her homepage.

There are weblog hosts that don't allow comments, but her problem is that all the ones she tried were buggy. Either she could not get her login confirmed, or the site would lose track of the fact that she'd logged in, or she could not get her entries to post. I tried to help her out and can confirm the bugginess of the sites she's tried.

She's also not a developer and doesn't feel it would be appropriate to post to a community like Slashdot or Kuro5hin, even if they didn't allow for commentary.

I'm willing to install a package for her that is written in just about any language, as long as the package she uses works well.

One more thing she would like is the ability to post images to her weblog. Many sites do not allow that for obvious reasons.


Several people have certified judge as a a Journeyor, but note that both he and I certified him as a Master. I believe this is correct based on the contribution he makes to iRATE radio. I believe he contributes in other ways as well.

I understand that the criterion for being a Master is that one contributes to Free Software full-time, and based on the progress that iRATE has been making since I first stumbled across it a little while ago, and the proportion of that that's due to judge's work, I think that a Master certification for him is appropriate.

I can understand that you may not feel comfortable certifying him as a Master because he hasn't been on Advogato very long, but he has been lurking at the site for quite some time - that's how I heard about iRATE, he responded to one of my diary entries about digital music.

Perl for Windows

ppol, you need Cygwin. Chock full of Gnuey goodness, runs on Windows.

Cygwin makes Windows almost tolerable. You can quote me on that.

Thanks, Microsoft!

A few days ago, Links to Tens of Thousands of Legal Music Downloads started showing up in the search engines. This just six days after I posted the first draft. I found out when the Analog web server log file analyzer started listing the search queries people used to find the article.

I decided it would be fun to see how my article ranked for all the search queries that had been used. The results are here. You might find it useful to write a page like that yourself, if you care about driving traffic to your website.

The top search query, in terms of the number of people referred by the search engines, is legal music downloads. This suggests to me that lots of people are using the search engines to try to find ways to download music without getting in trouble. Try the search yourself at Google and MSN.

I've seen quite a few different queries, but it's notable that among them are:

  • case law on illegal music downloads
  • civil charge filesharing
  • is monotonik legal?
  • law regarding music downloads
  • laws against music downloads
  • lawsuit music downloads
  • legal kazaa downloads
  • legal music copying
  • legal music sharing programs
  • music download arrest
  • music downloads lawsuits
  • music downloads prosecute
  • safe from prosecution music downloading
  • subpoenas for movie downloads
  • will the average downloader be sued

Finally, while my article is faring well in Google's ranking, Microsoft Network's search engine noticed it before Google did and has consistently ranked my article higher than Google does. I have also received significantly more referrals from MSN than from Google, which has not been my experience with other pages on my site. Usually I get ten times as much traffic from Google as I do from MSN.

I want to take this opportunity to thank our hardworking, forward thinking friends at Microsoft for helping out in my effort to fight the Recording Industry Association of America and to reform copyright law, not only in America, but throughout the world.

(Publication of the article at Kuro5hin is being delayed somewhat to allow a bug in the Windows version of iRATE to be fixed first. We don't want to disappoint our new users.)

Enjoy My Photography

Burning Man is an arts festival held each summer in the Black Rock desert, a playa (mud flat) in the north west corner of the U.S. state of Nevada. A giant wooden sculpture of a man presides over the event. The Man is burned on the final night of the festival.

A new Man is built in a studio in San Francisco each year, at great labor and expense, then trucked to the playa, only to be burned again.

Here is a panoramic photo, composed of 12 35mm photographs, scanned and stitched with Live Picture's Photovista:

Most people use digital cameras to take panoramic photos for presentation as 360 degree scrollable QuickTime VR content in web pages. I prefer to shoot mine with 35 mm slide or print film, then scan them at high resolution with a flatbed scanner or Photo CD. My intention is to eventually print them on a large format printer at a service bureau, frame them and put them on the wall, or possibly get a gallery show someday. One of the women who runs the Burning Man festival requested such a print for their office, but sadly I have never got it together to give her one. I still plan to though.

I have a much higher resolution version of the above image on my website. Please wait patiently while it downloads.

Unfortunately both images are watermarked. I used the PhotoVista Demo to stitch it. Althoug PhotoVista was inexpensive, and I even worked at Live Picture, I never obtained a registered copy of the program, and I believe it to be unavailable now that Live Picture is bankrupt. There is some hope PhotoVista will be revived, as Live Picture's assets ultimately ended up owned by Roxio. I would be quite interested to find out about other panorama stitching applications, especially programs that were Free Software.

I have a number of other panoramic photos waiting to be scanned and stitched. I visited Paris and Rome in November of 1997, and have panoramas of the Notre Dame, the Arc du Triomphe, underneath and on top of the Eiffel Tower, and the Vatican. I also have one taken in the studio of my artist friend Marilyn Churchill showing a couple dozen of her paintings. Unfortunately I have hundreds of slides I would like to scan to Photo CD, but as they cost more than a dollar per image, it is a significant expense.

I do already have about 300 Photo CD scans of my conventional photography. Someday when I have much more free time I will scale and thumbnail many of them to place on my art and music website. I would be interested also to hear about Free Software that can do automated scaling and thumbnailing directly from Photo CD.

Here is The Man himself. I think it is one of my favorite pictures that I have ever taken. I'm sorry I don't have a somewhat larger version online yet:

There are hundreds if not thousands of works of art on display each year at Burning Man. There is music as well - at some of the festivals they have had a 24 hour a day rave taking place about a mile from the main camp. Besides sculptures, there are art cars and live performances. Even some of the people are works of art, being dressed only in elaborate body paint. Here's a sculpture I found intriguing for its pleasing simplicity:

Thank you for your attention.

-- Mike

25 Jul 2003 (updated 25 Jul 2003 at 13:23 UTC) »
Cascading Style Sheets

Look at what my wife the web designer figured out how to do.

Update: movement,We hadn't thought to try out the CSS in other browsers than Mozilla, where the text doesn't overlap. When she designs sites for her clients, she's careful to test with a variety of browsers, but we didn't feel that was necessary here.

However, you don't seem to have caught on to our point in posting my logo in my diary. Perhaps you would find a few minutes of contemplation enlightening.

Wouldn't it be fine for Advogato members to find out what we all look like? Here's a self-portrait I did a few years ago. I don't have the beard anymore though:

Please Critique My New Homepage

Wy wife Bonita, a web designer, has started to redesign my whole consulting business website. This is not just to improve the graphic design (my design was always been very plain), but to make the site consistent, and to have every page be valid XHTML 1.0 Strict with Cascading Style Sheets.

It's a big job. I have a lot of pages on my site, with a mixture of many different HTML versions, only some of them being valid, and a number of distinctly different layouts. There's no coherency to my site as you move from page to page, and it's not possible to find every page in my site from every other page - some pages are accessible only from search engines or other sites!

She's completed her proposal for my homepage, and would like your comments on it. You can find my new home page here. (That's actually an index to each of the revisions that will actually get posted; so far there's just one.)

My original page is here.

Send any comments to crawford@goingware.com

It took quite a lot of courage to let anyone else at all redesign my site. My page has always been a very personal thing to me. Sometimes I get nervous about what she's doing to it. But in the end I think she's doing a good job, and it looks better than anything I could ever have done.

Thanks for your help.

21 Jul 2003 (updated 21 Jul 2003 at 18:47 UTC) »
Please Comment on My Upcoming Kuro5hin Article

I need your help in improving an article that I plan to submit for publication to Kuro5hin in a few days. I want the article to get front page, and the K5 moderators are notoriously picky, so it's important I do the best job I can. Tell me how I can improve:

Send comments to crawford@goingware.com or (if you're a K5 member) post them in my Kuro5hin diary.

The article is more than it seems from the title. While it certainly does tell you where to get more legal music downloads than you could ever possibly hope to listen to, it also aims to raise the consciousness of the average p2p user by exploring some of the legal issues behind copyright, and outlining steps the reader can take to effect political change.

Remember what I said yesterday: Life just wouldn't be the same without some injustice I could rail against.

Updated: Caching

mathieu, I'm sorry that I can't give you the code, as I don't own it, but I once wrote a very effective caching library that was a C++ template.

It was based on a circular buffer, that could store any kind of data, being a template. A wrapper around that presented the appearance of an array, like the STL vector.

If a desired bit of data was already in the circular buffer, it would be immediately returned, but if it wasn't it would be fetched from a database (hence the need for a cache), copied into the buffer and returned.

The circular buffer always contained a contiguous range of database elements, because the access pattern of our application was to move rapidly around in small windows, but occasionally jump somewhere far away. If an element was inserted into the circular buffer that was farther away from the existing elements than the size of the buffer, then the circular buffer pointers would be adjusted to empty it. But if an element was inserted just a little ways away from cached data, then I'd pre-fetch all the elements in between.

It would not be hard to use a method like this to allow different policies that would be suitable for different access patterns, like Least Recently Used. You could still use the two-layer approach like I did where the storage plugs into the access mechanism, and you have a choice of algorithms to suit different access patterns.

If you parameterize your template based on the type of the array index, you can use it like a dictionary:

std::string name;
job_title = job_titles[ name ];

And yes, it took quite a lot of work to get the thing working right. You will want to use a profiler. I did this on Windows with Visual C++, so I used Intel VTune, which made a tremendous difference.

It is an interesting exercise to try to use a profiler to optimize a C++ template across different datatypes, for example the use of both strings and integers as array indices. That's one reason C++ has template specializations.

More Writing

I wrote this several years ago, before I was married, when I lived in Santa Cruz, the dot-coms were still booming, Linux IPOs were all the rage, everyone downloaded from Napster, and AltaVista was still a good search engine:

Life just wouldn't be the same if there weren't some injustice I could rail against.

Bonita thinks my passion for speaking up about things is bad for me. Oddly, she held out Ghandi and Martin Luther King as examples I should emulate. I replied "Look what happened to them."

(Sorry about the broken links in the article. Many of the link destinations have since disappeared.)

The Fish Gets it Right

I just thought to try out the Fish while emailing a friend to explain what Free Software is all about. She just got her very first computer, running the very non-Free Windows XP.

If you ask the Fish to translate "free software" from English to Spanish, it correctly gives "software libre". But I thought to see if I could trip it up, so I tried translating "software gratis" from Spanish to English. It said "software free". Translating "software libre" from Spanish to English gave "free software".

I'm too old to have any appreciation for Open Source. I view its founding principles largely as a way to enable business to take advantage of naive, yet hardworking programmers. I was a Free Software advocate while most of you were still crawling around in diapers. Well, actually not that old, but I first learned GNU Emacs - and read its source code - I think in 1988.

For me, Free Software is all about the creation of a wonderful community for the people who write it and who use it. I don't think IBM invested a billion dollars in Linux because they cared a whit about community values. One doesn't invest that kind of money without making a coldhearted calculating business decision.

So in my email to Yvonne, I went on at some length to explain what Free Software was all about, but I made no mention of Open Source.

One thing I do have to credit the Open Source movement for is that it has been much more effective at publicity. I doubt that Free Software could ever have been explained in terms that would have excited Wall Street the way the Red Hat and VA Linux IPOs did.

However, I feel the real value of the Open Source movement is that it got a lot of people to learn more about the reasons the GNU General Public License says what it does than might otherwise have been the case, so that despite the fact that RMS complains endlessly about Eric Raymond and Linus Torvalds stealing his thunder, I think the Free Software movement has many more real supporters now that would have been the case if the Open Source movement hadn't happened.


I sent this email to Yvonne to explain to her that I wanted to install a particular piece of Free Software called iRATE on her computer, so that she could enjoy easy-to-use downloads of music files, without violating anyone's copyright. From iRATE's page:

iRATE radio is a collaborative filtering client/server mp3 player/downloader. The iRATE server has a large database of music. You rate the tracks and it uses your ratings and other peoples to guess what you'll like. The tracks are downloaded from websites which allow free downloads of their music.

That "large database" has records of 46,000 music files - all of them legal to download.

iRATE is a Java program - it is known to work well on Linux and Windows, and there is a report it works on Mac OS X. I'm going to give it more thorough testing on OS X myself when I get some free time.

It is still a very new program, and although it works well there are some glitches. But I can see that iRATE has the promise of being the killer application that puts the RIAA out of business.

Why would I say that? Because there is so much high-quality music available for free, that's legal to download, that I think most people on the planet could get all the music they ever wanted to listen to off the Net - and they wouldn't be breaking the law.

That would not only devastate the major record labels' sales, but the RIAA would have no grounds to complain about it - the music is all legal to download. The people who would profit would be the indie musicians, who would get more gigs and sell more CDs directly to fans, without the labels getting their greedy cut.

Let me make this clear: the way to get rid the RIAA's threats of lawsuits, and the government's threats of prosecuting the music downloaders, is to get everyone downloading legal music instead. But the RIAA doesn't want you to know that because they will make even less money if people download the legal music, because the RIAA makes no money from the indie musicians. I'm sure the RIAA is well aware that some downloaders do end up buying CDs after downloading a song or two, so despite their bitching they do still make their money.

That's much the same reason that Microsoft views Free Software as a much greater threat than software piracy. Most software pirates are as locked into Windows as legitimate users, and through lawsuits and legislation, Microsoft knows they can eventually the pirates to have to pay for software, software that will be published by Microsoft. That's not the case with Free Software.

The music has been out there for years but it has always been difficult to find it and much of what is available is just not very good. There is the same problem with writing on the web - the record labels do provide a useful function, just as editors do in journalism, by selecting the content that's worth paying attention to.

The solution for web publishing is of course moderation. The articles published at Kuro5hin are mostly well-written. But if you're not a K5 member you'll have no idea of the collosal drivel that's often submitted to the moderation queue there. K5's moderation is done by its members, who take the trouble to moderate well because they care about the site. Similarly the articles at Advogato are mostly well-done because you have to be certified to publish them here. They may not be as well-written as Kuro5hin's, but are almost always well-informed technically, which is appropriate to the purpose of Advogato.

iRATE solves both these problems - finding the content and selecting the good stuff. You only need to access iRATE's server to locate the content anywhere on the web, and iRATE's collaborative filtering system takes care of picking out the kind of music that you're going to like.

I found that iRATE started doing a good job of finding music for me after downloading about a dozen songs. Bonita is much more selective about her music, so she had no success in about a half dozen. I told her that iRATE will probably work, but will take longer to learn her tastes. She's willing to give it a try so she's left it downloading overnight while she's been asleep.

118 older entries...

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!