Older blog entries for MichaelCrawford (starting at number 210)


My humble contribution to peace to the Middle East:

It has a Creative Commons Attribution-Sharealike 2.5 license. It also has a print-specific CSS stylesheet so it makes really nice hardcopies. Please copy and distribute

It still needs some work on the screen display CSS. I'll be doing that next.


The crowd loved me at the Tulip Festival Open Mic.

There were about two hundred people in the audience. It was the biggest crowd I have ever performed for.

As an experiment I passed out a handbill offerring my music downloads:

(I printed my logo in monochrome because I was out of color ink, and Nova Scotia outlaws Sunday shopping!)

I passed out about five hundred copies, starting late in the morning, but I am dismayed to find that the effect on my website's traffic is barely visible in my log files. I get a "clickthru rate" of just a few percent. However the boost in my traffic was still visible last night, five days later, so maybe it will continue for a while.

I'm going to give it another try though. Sometime this week I'm going to pass them out on Spring Garden Road, a busy shopping district in Halifax. If log file analysis shows it to be worth my effort, I can lower the cost of printing them by having a commercial printer print and cut them for me, as long as I have a large number printed.

Many of the people who took my handbill didn't seem to be the sort who had ever downloaded music before, but who liked the idea of getting piano music for free. I think it would help if I wrote a page with basic instructions for how to download and play a music file, and where to get Free players.


If you're in town Sunday for the Truro Tulip Festival, drop by the big white tent downtown for the Open Mic starting at 8 PM. I'll be playing selections from Geometric Visions as well as some jazz pieces by Christopher Norton.

This was unexpected. Usually the Open Mic is at the Fair Trade Country Cafe, but tomorrow night's band canceled and we were asked to fill in.

I played tonight at the cafe. All of this weekend's Open Mic performances are being recorded for an upcoming "Best of the Open Mic" CD. It's too early to tell if I'll actually be on the CD, as dozens of performers will be recorded.

C#, ASP.Net and Mono

I've been learning C# because that's what all the Canadian consulting clients want. For practice and to demonstrate my abilities, I'm going to use the Mono Open Source .Net runtime to operate a web application on Linux.

I registered a domain name and have started working on the site. So far it's just static HTML pages; to give it some initial content I moved some of my web design articles over from their original locations at goingware.com:

I'll be releasing at least some of the code as Free Software. You might not be surprised to hear that my survey of existing Free and Open Source C# source code didn't turn up a whole lot.

Most of the services I plan to offer are already available in one form or another, but either aren't accessible to non-technical people, or aren't amenable to managing a whole website with. I don't want to say too much about what software I'm going to write as it all remains to be written.


I made my first delivery to my new consulting client on Friday. It's the Mac GUI for a program that's being ported from Windows. I implemented in Objective-C with Apple's Cocoa application framework, which is based on NeXTStep and is largely source code-compatible with GNUStep.

This first milestone was largely to demonstrate I was capable of writing quality GUI code. I feel I did a good job, but I'm anxiously awaiting word from the client as to what he thinks of it.

It could work out real well, as the client expressed interest in having me work for him in a long-term way. He seems to be a real nice guy.


My last couple diaries announced I was looking for a software consulting contract. I'm happy to announce I found one, writing the GUI for a Mac program that's being ported from Windows. The client has expressed a lot of enthusiasm for me, and said there could be lots more work for me if I do well on this first job.

I also wrote about how I've been learning C# because that's what all the clients want in the area where I live. During my search, I found a post asking for a volunteer C# programmer to update a Windows Forms application for a charity. I told them I would do the work for free if they would agree to give me a job reference afterwards. I explained that I was new to C#, but was otherwise experienced. They have agreed to have me do the work, with the help of someone who is experienced with C#. That could work out well, as I would have someone to ask questions of.


My compact disc went on sale at CD Baby today:

If you don't have the cash, you can download it free, as it has the Creative Commons Attribution-Sharealike license.

If you live in Nova Scotia, you can hear me play live. I play each weekend at an open mic in Truro, and expect to start playing open mics in Halifax soon as well.

Looking for a Programming Contract

Things seem to be very different than they were a few years ago. The Dice and Craig's List job boards allow one to search for telecommute jobs. I'm finding quite a few that I'm both interested and qualify for.

I'm even finding perm jobs that say telecommuting is OK, and not just a couple days a week, but in which the job description specifically says one can work remotely from anywhere.

That's how I've been working for eight years now, but I've always had to find clients on my own. Neither the agencies nor any of the job boards were ever any help in finding telecommute jobs. I think the difference is that high-tech industries are now prosperous in the way they weren't back in 2002, so employers are casting a wider net.

I've learned enough C# to start some prototype coding for a web application that I'm developing both to help me learn the language (and .Net), and to provide evidence of my qualifications to potential employers. But it's feeling less urgent now after having mailed off a few dozen resumes, all to telecommute jobs, many for C++, which I'm an expert at. I'll keep working on my .Net website though. One never knows when one will be looking for work again.

When I get C# .Net mastered, I'm also going to learn Ruby on Rails and Ajax. I'm seeing increasing numbers of advertisements for Ruby on Rails work, and I imagine it would be more fun than ASP.Net. Perhaps you could recommend some books to me - there weren't many reviews at the Association of C and C++ Users site.

Looking for a programming contract

atai, you're right, I was out in the Bay Area last fall looking for work, and the whole place was a hive of high-tech activity.

But what I didn't realize until I found the right job boards is that there is a lot of software work to be found in Canada. One thing that works to my advantage is that many Canadian programmers take work in the US because they can get higher pay there.

I'm married to a Canadian, but I'm still on a work permit, I don't yet have my landed immigrant card. So if I left the country for a contract, there is a small but real chance I could be denied reentry when my contract was done. Americans can travel freely to Canada, but when one has applied to immigrate, there is a presumption that one's application might be denied. I was allowed back in last Fall, as I was fortunate that the customs agent was happy I brought consulting work back with me - that is, I was bringing money into Canada.

I'm certain I can find a contract within Canada. What is not so certain is finding one close to home. There is very little software development anywhere in Atlantic Canada, and most of that is in C#, so that's what I'm learning.

There is a good chance I have found a contract that I can do from home. It's not through an agency, and ironically doesn't seem to have resulted from my plastering the country with my resume. Someone who needed an embedded software consultant just stumbled across my resume in a Google search. It will be in C and C++. I should know by early next week if I've got the job.

Yesterday I was reminded of why I stopped working with headhunters many years ago. I have been applying to the agencies this time around. I got a call from a recruiter wanting me to work in Oregon, and I said "I'm only willing to take onsite work within Canada". And she just hung up the phone. Just "Click". Not even so much as "goodbye". The two recruiters I've spoken to here in Canada were much nicer than that though.

Test Driven Development in C#

Or actually any of the .Net languages. Visual Studio 2005 has integrated unit testing, but that ties one to both Visual Studio and Windows. I'm working on an ASP.Net app that will run on Mono and Linux.

For both platforms, there is NUnit, which works well (it comes with a full suite of tests for itself, to be run on installation). The API is similar to CPPUnit's, which I've used with great success.


My web hosting service is OK with installing Mono for me to use. I imagine they'll want to see how it works out before making it one of their regular services, but I expect they'll want to in the long run. There aren't many hosting services that support it.

I'm Looking for Work

If you could use a seasoned software consultant who takes pride in his work, have a look at my resume and cover letter. I am available immediately, and will take onsite work anywhere in Canada, or offsite work from my own fully-equipped office.

C#, ASP.Net and Mono

I bought Jesse Liberty's Programming C# after a recruiter in Halifax told me that the only way I'd get a contract anywhere in Atlantic Canada was to put C# on my resume. I chose it after reading its favorable review at the Association of C and C++ Users website. I'm very pleased with my purchase, and recommend it highly - I'm confident that I'll be able to code C# .Net productively within a week. The only other book I think I'll need anytime soon is the C# Cookbook by Teilhet and Hilyard. I'm also liking what I see of C# so far.

I am not at all happy that I might have to work for The Dark Side of the Force. But as Kuro5hin's V said, "Ideals don't pay the bills". May is going to be really tight and June is projected to be about $1400 short of what I need to get by, so last Sunday I sent my resume to every body shop in the Dominion of Canada. There's lots of C++ work starting from Montreal on to the west, but in Nova Scotia, Prince Edward Island, New Brunswick and Newfoundland, there is nothing for me unless I learn C# well enough to convince a client I'm good at it. I'm willing to relocate for the duration of a contract but it sure would be nice not to have to.

But maybe there's a better way: Mono. It is an Open Source .Net runtime for *nix. I'd like to know if Mono is mature enough to drive a high-traffic web application. One writes Windows C# applications in ASP.Net; it seems Mono supports ASP.Net as well. How well does it work?

Since I can't claim to have ever been paid to write C#, I had intended to write a simple but useful sample program while I studied Liberty's book. I would then place its source code and installer on a CD, and a hardcopy of its source code in a binder to give potential clients. But then I thought, what could be a better calling card than to send them the URL to a commercial website that runs a C# ASP.Net application that I wrote myself?

I'll be damned if I host it on a Windows box though. I've been with the same web hosting service for nine years. I'm completely happy with Seagull Networks, and they run Slackware. I don't know yet it they'll be OK with installing Mono for me. I'm still waiting to hear back from them about it.

I guess I'll need an ASP.Net book too - Programming C# just has one chapter on it. Jesse Liberty also wrote Programming ASP.Net. The third edition covers ASP.Net 2.0, but the second edition covers 1.1, the version that Mono presently supports. There don't seem to be any books about ASP.Net in the ACCU book reviews yet.

I'm not ready to tell you what my website will do, but it will offer web-based services that would be useful to many businesses. I'm going to offer some of them for free, with some more complex and valuable ones for a modest subscription fee. So I also need to know how to process credit card transactions in a secure and automated way - for all my nineteen years as a software engineer, I've never coded so much as a shopping cart. I'm different that way. When I asked in my Kuro5hin diary, the recommendations included WorldPay, Authorize.net, 2Checkout.com and PayPal.

I won't use PayPal for the reasons given at PayPalWarning.com - it's not just them; PayPal seized the funds belonging to a merchant I do business with myself, and wouldn't give them back. WorldPay looks like the best, but the $399 signup fee they quoted me is going to be tough to come up with unless I get a good contract first. 2Checkout.com only costs $45 to sign up, and someone at K5 said it was "nice and easy", so maybe I'll go with them until my website gets more users. I don't expect it would be hard to change credit card processors down the road a bit.

(It is a sign of the times that 2Checkout.com's list of ineligible websites includes those offerring "IT Certification Test Exams and Study Aids".)

And don't worry, I will eventually release at least some of my site's source code as Free Software.

Looking for a Job in the Great White North?

Here are all the Canadian job boards I've been able to find so far. Links to any others are greatly appreciated:

Dice is a US board but has a few Canadian jobs and allows one to specify Canadian provinces in postal addresses. Jobboom is mostly for Quebec, and Career Beacon mostly for Atlantic Canada. Workopolis is the easiest to use, and seems to live up to its claim to be Canada's biggest job board.

Craig's List requires you to select just one city to search in - each Craig's List city has its own subdomain. There doesn't seem to be a way to search an entire country all at once. Also, one can only post resumes to specific cities, there is no way to make one's resume show up everywhere. I don't understand this, as the most common reason people relocate is because they've found a new job somewhere far away.

Craig's List does have the advantage that it allows on to search specifically for telecommute and contract jobs. Dice allows that too - it has the most fine-grained search facility. A very common problem most job boards have is that there's no way to limit searches to perm or contract, or telecommute or onsite. The best most can offer is to use the word "contract" in one's search query, which always turns up some bogus hits.

That's all for now. I'm sorry to have gone on for so long. I hope you found some of the links helpful.

Long Time No See

I haven't been able to log in for quite some time, not since Advogato's hard drive filled up and screwed up the database. Raph just reset my password for me.

I'm glad it was an innocent error though, as I discovered my account here had been deleted just minutes after I was booted from Webmasterworld for putting a Creative Commons license on my last post there. Their copyright forum is chiefly concerned with how to use the DMCA to take out websites that copy one's content; my argument that there could be a better way did not meet with an enthusiastic response.

One bit of news is that I am now completely devoted to writing both Free Software and Free Documentation. I'm able to make my living through advertising published with some of my articles. I'm now working to expand that in a copyleft kinda way.

I'll be back soon.

LinuxQuality or, The Best Laid Plans of Mice and Men

My original plan for The Linux Quality Database was originally to create a featureful bug database for the Linux kernel developers. I had a grand vision but not much of a clue as to how to implement it. I knew about bugzilla, but bugzilla didn't do what I want, so I planned to write a whole bug database from scratch that would put bugzilla to shame.

Well, the dot-com crash intervened and I found I had very little time to contribute to any Free Software projects. Finally someone set up a bugzilla for the kernel that, while it doesn't do all the cool things I envisioned, it isn't vaporware, thereby proving once again that Worse Is Better.

But something did come of my dream. My objective was not simply to improve the quality of the kernel but to improve the quality of Free Software in general. It's record is mixed: for every Free Software project of stellar quality that anyone can name, I can name ten whose quality is... less than stellar.

That's why so many years ago I wrote on the homepage of The Linux Quality Database:

I feel that software must not just be Free, it must be Good.

I felt that The Linux Quality Database must also have a mission of education, to help developers write better software, and to help users both to test it better and to write better bug reports.

This led me to write several articles on software quality that have turned out to be both useful and popular. So far they are:

They used to have the GNU Free Documentation License but the Debian developers have concluded it is not compliant with the Debian Free Software Guidelines, as I wrote in Which License for Free Documentation?.

Once Debian Sarge became stable, Debian started removing such GFDL documents as the Emacs and GCC manuals from main and moving them to non-free. To encourage Debian and other distros to include the LinuxQuality articles, just tonight I relicensed them to have the Creative Commons Attribution-Sharealike 2.5 License.

In late August I'm going to revisit all the articles to bring them current, fix broken links and add any new material that seems appropriate.

I also updated the markup to XHTML 1.0 Strict. My HTML/CSS coding skills have come a long way since 2000 with the help of my wife the web designer. I'll seek her advice in creating a new design to replace the current appallingly primitive one.

I always intended The Linux Quality Database to be a community just like Advogato or Kuro5hin where anyone could contribute articles, but focussed on educating the Free Software community about quality. The Dotsrc.org Open Source hosting service (formerly SunSITE.dk) offers MySQL hosting, so I expect I could set up some kind of message board to allow anyone to publish articles more easily than via FTP as I do now.

If you'd like to be involved, there is a mailing list with instructions at the bottom of the homepage. I'm not completely sure it still works, it's been years since anyone posted to it. I just sent a query to ask if anyone is still subscribed... and recieved my post, so it still works!

Thank you for your attention.

Writing but not my own:

My friend CheeseburgerBrown (Matthew Frederick Davis Hemming in real life) is writing a serialized science fiction novel in blog form:

He shares my dream of making it as a writer. There is quite a lot of his writing to be found online.


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