Older blog entries for MichaelCrawford (starting at number 128)

7 Aug 2003 (updated 7 Aug 2003 at 23:25 UTC) »
Help Me Promote Web Browser Standards Compliance

or... !@#$%^&*() Microsoft!

I need your help to encourage visitors to my website to use standards compliant browsers. Read on:

My wife the web designer has created a beautiful new design for my website using valid CSS and XTHML 1.0 strict. You can see her idea for my new homepage and compare it to what I have now, which I designed myself. (She's improved her design based on comments we received, so what she has now actually looks a little better than that.)

The only problem is that she checked it in Internet Explorer 5.0 on Mac OS X, and found that it looked terrible. IE 5 doesn't do CSS very well. It has particular trouble with positioning, in this case the "float" property. The whole page is laid out wrong.

I didn't think that was a big deal, until I checked my web server logs for last month. I used Analog to processor my log file, with the "BROWSERSUM ON" command in the config file to give a browser summary. Note that my site had 67,368 requests, of which 27,439 were requests for pages. This showed that 14% of my visitors were using IE 5 (it looks OK in 5.5 though):

no.:  reqs: pages: browser
---: -----: -----: -------
  1: 36317: 12284: MSIE
   : 27131:  8454:   MSIE/6
   :  9047:  3767:   MSIE/5
   :   134:    60:   MSIE/4
   :     4:     2:   MSIE/3
   :     1:     1:   MSIE/10
  2: 17488:  6155: Mozilla
   : 13824:  4532:   Mozilla/1
   :   109:    38:   Mozilla/0
   :     3:     1:   Mozilla/00000000
  3:  1762:  1762: SKT15SK12001112816018091692007058;18;2;28;130
  4:  1767:  1154: Netscape (compatible)
  5:  2555:   824: Opera
   :  1600:   513:   Opera/7
   :   500:   174:   Opera/6
   :   452:   134:   Opera/5
   :     2:     2:   Opera/3
   :     1:     1:   Opera/4
  6:   650:   608: Googlebot
   :   650:   608:   Googlebot/2
  7:   538:   529: Scooter
   :   538:   529:   Scooter/3
  8:  1030:   445: Netscape
   :   824:   377:   Netscape/4
   :   112:    31:   Netscape/6
   :    51:    20:   Netscape/3
   :     4:     1:   Netscape/7
  9:   444:   442: sitecheck.internetseer.com (For more info see: http:
   :   444:   442:   sitecheck.internetseer.com (For more info see: http://sitecheck
 10:  1106:   370: Galeon
   :  1087:   364:   Galeon/1
 11:   946:   363: Konqueror
   :   900:   351:   Konqueror/3
   :    46:    12:   Konqueror/2

Yes, your eyes do not decieve you - there are still people visiting my site who use IE or Netscape 4, and even 3!

Bonita googled high and low looking for a workaround, and found many other web designers asking the same question, but no solution was to be found. She and I have agreed that we don't want to lay out my site using tables (as my original site does now) but to use CSS for all the presentation markup. I've been careful to support old web browsers on my site for a couple of years since compliant browsers have become readily available, and I feel it's time to move on.

I have made the decision that my website isn't going to support such old, uncompliant browsers as IE 5 and Netscape 4 (I checked, and Netscape 4.7 renders the page about the same way that IE 5 does).

Instead, I'm going to place a link on each of the most popular pages of my site that will take the reader to a page that explains that my site is designed using current W3C standards recommendations, and that the reader is going to need a standards-complient browser to view the site. I'm going to specifically say that Explorer 5.0 and Netscape 4 won't work.

Here's where you can help me: Bonita searched all over the W3C's website looking for an article that would explain what W3C standards compliance means when it comes to browsers, and why users of browser software should care. She wants to find an article that will convince readers to upgrade their broken old browsers. You may find this surprising, but she couldn't find one.

Perhaps one of you know of such an article anywhere on the web, and could tell me the URL? You can post it in your diary, so we'll all see it in the recentlog, or you can email it to crawford@goingware.com

Thanks for your help.

(PS. I thought diablo3d's joke was so funny I emailed it to Bonita.)


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.)

119 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!