goingware is currently certified at Master level.

Name: Michael Crawford
Member since: 2000-12-06 00:44:56
Last Login: 2015-08-29 08:19:50

FOAF RDF Share This

Homepage: http://www.warplife.com/


Please note that I just changed my online identity from goingware to MichaelCrawford. I did that here, K5 and Slashdot, as I have felt for some time that I want to be known online for who I am, rather than to be known as my corporation.

I'm a software consultant. I do cross-platform development (Linux, Mac OS, Windows, BeOS). In 2000 I led the beta test of the ZooLib cross-platform application framework in preparation for its recent open-source release under the MIT License.

Now I'm writing a tutorial for it called The ZooLib Cookbook in DocBook XML. I have placed the tutorial under the GNU Free Documentation License.

You'll find ZooLib at http://www.zoolib.org

Check out my resume.

More recently I've been doing embedded systems development.

It seems that increasingly the real contributions that I am making to the community are in the form of writing English text, rather code. One reason for this is that I enjoy writing so much, another is that since the dot-com crash I've had to work really hard at proprietary programming that I haven't really had the energy to write Free code. I've decided that for the time being the only Open Source project I can directly contribute code to is ZooLib (and even at that I've only been making minor contributions).

However, I've got lots of writing available for you to read, and I have plans for more. Some, like use it to draw traffic to my website, but I'm thinking of putting some of that under the GFDL too. I have an opinion piece, Is This the America I Love, which is available for verbatim copying, without allowing modifications.

So here's a bunch of my writing. At the Linux Quality Database are some GFDL articles:

The Open Source Development Lab has translated the two kernel testing docs into Japanese.

I do quite a lot of cross-platform software development; my article Writing Cross-Platform Software - Getting Started is quite popular.

You'll also find me in these other online communities:

One of my overall goals is to improve the quality of free software in general. I feel that Linux and *BSD work well for servers because the people using them are themselves either programmers or expert computer users.

I'm thinking of how folks like my mom would react like Linux - not very positively. Even my ex-wife Bonita, who can get around pretty good on Windows, got upset whenever I left the laptop (which she shared with me) running in Slackware.

One particularly bad example of the kinds of things I'd like to work towards fixing is an error message the author of ZooLib encountered when trying to format an early draft of the ZooLib manual from DocBook into PDF - it overflowed a fixed-size buffer and emitted the helpful message "Find a guru to fix this".

For a good example of what I'd like to see in the way of quality software, see the BeOS. You can download a free-as-in-beer version at http://free.be.com

But to see what I think of proprietary OS vendors as companies (aside from the quality of the products they produce), please read Freeing the Developer from OS Vendor Shackles

I've written a small but slowly growing archive of articles on the business and practice of programming - from becoming a programmer, to marketing, to obscurities in object-oriented programming. You'll even find a fine example of a letter of resignation there. The longest and most detailed so far is Pointers, References and Values. I published a much shorter summary of this at the Kuro5hin community site as Musings on Good C++ Style.

Finally, I'm an artist and photographer and improvisational piano composer. You can find the right side of my brain at http://www.warplife.com/mdc/music


Articles Posted by goingware

Recent blog entries by goingware

Syndication: RSS 2.0
Welcome Back!

I'm very pleased Advogato is back. I've been weblogging at Kuro5hin during the outage. Recent entries are:

  • Two Thousand Spams a Day, most of the spam apparently being an effort to influence the recent elections in Germany. Thankfully that has subsided. But it was followed soon after by:
  • Four Hundred Megabytes of Spam a Day, this being the zafi.b virus. You`ve got 1 VoiceMessage!.
  • Performance Anxiety in which I'm struggling to get myself to practice my piano lessons regularly, with some recent success. I love to play the piano, if I'm playing anything I know well, but I have a really hard time learning to play anything new - the reason I finally decided to take lessons.
  • Happy News in which I received permission to stay in Canada for another six months
  • Dogs Covet in which neither one of a pair of beagles is satisfied with what they have, they each want what the other one's got

Bonita's parents are visiting from Newfoundland. On Canada Day (July 1) we drove to Halifax in the afternoon, had supper down by the harbor, and then attended the Nova Scotia International Tattoo. It was quite an incredible show, worth a trip to Nova Scotia just to see it. There were performers from all over the world, as far away as Australia and Russia.

Afterwards we watched the fireworks over the harbor.

I'm still being barraged with the zafi.b virus, although I am able to eventually receive my email, after I filter it out myself using a procmail script that deletes messages with certain subject lines.

My hosting service had an open source virus scanner called clamav installed for a little while, which works very well to eliminate all the viruses, but unfortunately it required so much CPU time that their mail server wasn't able to handle the load, so they had to disable it. Ironically, I think they were overloaded because they are receiving so many viruses.

Scanning every email message to check if it's got a virus isn't the most efficient thing to do though. One can check for certain attachment types, or certain subject lines, and delete most viruses more efficiently. I just posted a question to the clamav-users mailing list to ask for advice on doing this, maybe you have some tips for me too.

Although I'm now able to eventually receive my email at my usual address, until the virus onslaught is dealt with, I'm asking people to email me instead at spam_me_silly2003@yahoo.com which is, rather ironically, an account I registered so I could sign up at websites that I expected to send me spam.

20 Sep 2002 (updated 21 Jul 2015 at 05:59 UTC) »

I am now the Advogato user


I decided I didn't want to be known online as my corporation anymore. I am a human being, not a state-chartered legal entity!

19 Sep 2002 (updated 21 Jul 2015 at 06:01 UTC) »
Update - Letter to Congress

I just posted the letter I wrote to my two Senators and my House Representative in

my Kuro5hin diary

Another Update

of course I don't support tyrants. I know very well that Iraq would be better off without Saddam. But he's not going to be the one to die if the U.S. invades, it will be a great many innocent Iraqis. And do you harbor any illusions that Iraq would become a democratic country after the U.S. leaves?

I feel it is much more effective to fight tyranny at home. That way I can make more of a difference.

For example, the U.S. has become a place where people disappear without a trace and are held without charge or bail - at the hands of our very own tyrants. Why do you think the
American Civil Liberties Union has been

suing to force the government to reveal the names of those arrested in secret?

Even the Nazis only kept allied prisoners in P.O.W. camps, and did not subject them to punishment for making war against them. But the administration plans unconstitutional "military tribunals" for the Afghani P.O.W.'s. Rather than being returned home when the war ends, many may be subjected to the death penalty! I thought that extrajudicial execution was the hallmark of a repressive dictatorship, not a democracy.

mglazer, please read my essay

Is This the America I Love?
and maybe your eyes will be opened as mine have been.

I Called My Representatives, Why Don't You?

President Bush has submitted to Congress his proposal for a resolution that would authorize him to use force in Iraq. Read about it at
In addition, the Secretary of Defense testified to Congress that they should not wait for a vote on any possible new resolutions by the U.N. Security Council before authorizing force.

Why not? Doesn't the administration want even the pretense of legitimacy?

I called my two Senators and my House Representative just now to urge them to vote against the resolution. If you're a U.S. citizen, I urge you to do the same. You can find your representatives' phone numbers at
www.congress.org - enter your zip code in the search box.

If you're not a U.S. citizen, I urge you to contact your representatives in your own government to ask them to oppose war in Iraq in the U.N.

I am very strongly of the opinion, as are many others (including some in Congress) that Bush is trying to make war in Iraq to deflect the public's attention from the faltering economy - and Bush' duplicity in it.

When George Bush was on the board at a Texas oil company, he took loans from the company under extremely favorable and questionable terms, just like the loans the Rigas family took from Adelphia, which ultimately resulted in Adelphia's bankrupcy and the indictment of several Rigas family members.

He also participated in a scheme to inflate the earnings of the company, and when the Securities and Exchange Commission caught them and forced them to restate their reported profit as a loss, Bush sold his stock just before the resulting plummet in stock price, for which the SEC investigated him for insider trading.

However, Dubya's father was President at the time so no action was taken against him. The White House has forbidden the SEC from releasing its records of the SEC's investigation of his insider trading to Congress.

Vice President Dick Cheney has been sued for similar financial irregularities while he was a senior executive at Halliburton. Try a

Google search for "halliburton cheney lawsuit".

Congress recently passed, and the President signed, a "corporate responsibility act" which makes the kind of behaviour the President and Vice President indulged in illegal. Had this law been passed in 1990, Bush and Cheney wouldn't be sitting in the White House, they'd be sitting in Federal prison.

Ken Lay, the disgraced CEO of Enron, was Bush' best buddy before Enron's bankrupcy, and I believe Bush' most generous contributor.

Bush was elected by a minority of the voters. His approval rating was very low before the September 11th attack, but making war in Afghanistan made him very popular in the U.S. But he's not able to milk Afghanistan for popularity very much anymore, and the mid-term elections are coming up, with Congress very nearly equally divided between the two major parties.

It could take only a small percentage of the voters to install a Congress that will oppose Bush' every move, and he knows he's very unlikely to get re-elected in 2004. That's why Bush needs this war.

My friend Dave Johnson keeps a weblog where he discusses Bush' corporate malfeasance, and has lots of links to other sites that expand on it. Go read it.

There is some hope that Congress will vote down the resolution. In
Bush Sends Iraq Text to Congress, the Associated Press reports:

On Capitol Hill Thursday, a group of House Democrats condemned the move toward military action, with Rep. Dennis Kucinich , D-Ohio, calling it "unjustified, unwarranted and illegal."

Rep. Barbara Lee , D-Calif., said she was introducing a resolution with 20 cosponsors calling on the United States to work with the U.N. to carry out weapons inspections in Iraq. "A preemptive, unilateral first strike would set a terrible international precedent," she said.

If Bush attacks, it's not going to be Saddam who dies. It's going to be tens of thousands, perhaps hundreds of thousands of Iraqi soldiers. Most of these are conscripts. We have no quarrel with them. Also to perish will be many civilians, men, women and children.

Remember, even one Iraqi life is too dear a price to pay to keep Bush in power.

Thank you for your attention.

Now I'm going to follow-up my phone calls with letters to both my Senators and my Representative.

18 Sep 2002 (updated 21 Jul 2015 at 06:08 UTC) »
Bush to Press Congress to Authorize War

According to the United States Constitution, the President is the Commander-in-Chief of the military, but only Congress may declare war. It's never been too clear whether the President had the authority to use military force if war is not actually declared. For a while George W. Bush was considering invading Iraq without asking for Congress' permission, but the resulting outcry caused him to change his mind and promise that he would seek Congress' permission before any invasion.

Well, now he's asking for it. In
Bush to Court Congress on Iraq
, the Associated Press says:

President Bush summoned congressional leaders to a White House breakfast meeting Wednesday as aides worked on legislation allowing him to use "all appropriate means" to force Iraq to dismantle its weapons programs.

Bush previously threatened to invade if Iraq didn't invite back the weapons inspectors unconditionally. When, to his surprise, Iraq conceded, Bush claimed it was just a clever ploy and continued with his plans for war:

President Bush wasn't backing down from his tough speech to the U.N. General Assembly last Thursday threatening action against Iraq if it did not allow the inspectors back. He urged the Security Council not to be "fooled" by Iraq's about-face, and his administration disclosed plans for moving B-2 bombers closer to Baghdad, preparing for possible war to remove President Saddam Hussein.

Why does Bush want war? Because the mid-term congressional elections are coming up soon, and the economy, which looked hopeful for a while, is now in a wreck because of the "accounting irregularities" at such bankrupt companies as Enron, WorldCom and Adelphia, the same kind of accounting irregularities that Bush and Vice President Cheney indulged in at their texas oil companies before they got elected.

In addition, Bush was elected by a minority of the voters due to the strange way Presidential "electoral votes" are allocated among the U.S. States. His approval rating was very low before the September 11th attack, and with the war in Afghanistan winding down and receding from the public consiousness, he needs something new to distract the minds of the peasantry from so he and his cronies can continue to loot the public coffers.

How legitimate is Bush' Presidency? In a dissenting opinion in the Bush vs. Gore case, Judge Stevens wrote:

The endorsement of that position by the majority of this Court can only lend credence to the most cynical appraisal of the work of judges throughout the land. It is confidence in the men and women who administer the judicial system that is the true backbone of the rule of law. Time will one day heal the wound to that confidence that will be inflicted by today's decision. One thing however, is certain. Although we may never know with complete certainty the identity of the winner of this year's Presidential election, the identity of the loser is perfectly clear. It is the Nation's confidence in the judge as an impartial guardian of the rule of law.

I think anyone who claims that the Supreme Court decided the Bush vs. Gore case impartially is deluded.

What's the punch line? We may already be at war! The prevous rules of engagement for the enforcement of the no-fly zone over Iraq only allowed pilots to shoot back if they were attacked first. The Pentagon just announced they had issued new rules of engagement authorizing pilots to attack without provocation. Pilots have been ordered to attack command and communication facilities that are part of Iraq's air defense.

I think that's an obvious provocation to goad Iraq into war. Also attacking the air defenses has been the Pentagon's first step in making war on a country, at least since the first Persian Gulf War.

If you are an American citizen, please write to both your Senators and your House Representative to ask them to oppose the use of military force in Iraq. The life of even one Iraqi is too dear a price to pay to keep President Bush in power. If you don't know who your Congressional representatives are, or you need their addresses, put your zip code into the search box at www.congress.org.

Don't waste your time sending them email or using those convenient web forms. Congress gets spammed so much that they don't pay attention to email. If you're in a hurry, call their offices and speak to a staff member.

If you're not an American citizen, please write to the government officials in your own country and ask them to oppose the U.S. war in Iraq. This is especially important if your country has a seat on the U.N. Security Council, as Bush is attempting to use the Security Council to legitimize his war. Any of the permanent council members - Britain, Russia, China, France or (heh) the U.S. may veto a Security Council resolution. There are also a number of other countries that hold temporary seats on the council and could outvote the permanent members if they agreed to help Bush out.

If you're wondering how a country like America could have gotten to be this way, you haven't read George Orwell's

. Remember:

War is Peace

Slavery is Freedom

Ignorance is Knowledge

If you're afraid to speak out in these troubled times, I urge you to read
Make a Bonfire of Your Reputations.

Thank you for your attention.


Embedded Programming

I'm greatly enjoying my first contract doing embedded systems programming. So far it's everything I hoped it would be, and nothing that I feared.

I'm fortunate that the hardware I'm working with is well documented. I know that's often not the case. Also the existing source code, which I'm modifying, is well written.

I'm sorry but it's very closed-source. I'm not even certain I should say what chip I'm working on, except that it has an embedded ARM core.

It's been a challenge. Nothing worked right to start with. I had a real scare at first that turned out to be a problem with delivering adequate power to the eval board I am working with - the thing sort of worked but was acting really brain-damaged, so I feared I had damaged the hardware somehow.

Then I couldn't get the source to build, and when I could get it to build, the resulting firmware would just hang the chip. But finally I got it to work and I am able to make modifications to the firmware and see the results happen in the behaviour of the thing.

An unfortunate problem is that I have only primitive debugging support. There is a bank of 8 LED's and I can turn each one on and off individually. That's it! The eval board comes with a serial port and the firmware source has an API for sending messages out, but unfortunately that doesn't work.

So that's tonight's project, getting the full debugging support to work. I got the vendor's support guy to send me the datasheet for the UART and now I'm going to be blinking LED's on and off until I figure out what the problem is. There is still some possibility that the board is damaged.

I have an unfortunate problem in that I don't posses any kind of electronic test equipment. The best I could come up with was a simple RS-232 breakout box. I've just been browsing Jameco looking for test equipment to buy. I will probably start with a good multimeter and a logic probe.

I want to get a digital storage oscilloscope ($$$) and a logic analyzer. A logic analyzer is like an oscilloscope but with lots of traces, and it only measures binary logic levels rather than continuous voltages.

The ultimate embedded debugging tool is an In Circuit Emulator (ICE), which plugs into mircroprocessor slot and acts just like a real microprocessor except that you can set all kinds of weird breakpoints, like breaking when a particular value is read or written, and you can get a trace of the data and address values for the last little while.

Unfortunately it wouldn't help me for this job because the microprocessor sits entirely within an I/O chip! The data and address lines of the ARM CPU do not come outside the chip.

My initial project is a very simple modification to the existing code. But my next project will be to write a great deal of new code to have the chip serve a completely different purpose. Likely it will take up so much space in the flash rom that there will be no space for the serial port debug.

What I plan to do for much of it, at least the parts that do not depend on real-time performance, is write simulation testbeds that will run as normal user programs on Linux.

Timely Quotations

My friend Andy sent these to me yesterday...

"Beware the leader who bangs the drums of war in order to whip the citizenry into a patriotic fervor, for patriotism is indeed a double-edged sword. It both emboldens the blood, just as it narrows the mind. And when the drums of war have reached a fever pitch and the blood boils with hate and the mind has closed, the leader will have no need in seizing the rights of the citizenry. Rather, the citizenry, infused with fear and blinded by patriotism, will offer up all of their rights unto the leader and gladly so.

How do I know? For this is what I have done. And I am Caesar."
-- Julius Caesar

People can always be brought to the bidding of the leaders. Tell them they are being attacked and denounce the pacifists for lack of patriotism.
-- Hermann Goering

There ought to be limits to freedom.
-- George W. Bush


we are each one of us responsible for every war because of the aggressiveness of our own lives, because of our nationalism, our selfishness, our gods, our prejudices, our ideals, all of which divide us.
-- J. Krishnamurti, Freedom from the Known

120 older entries...


goingware certified others as follows:

  • goingware certified goingware as Journeyer
  • goingware certified Omnifarious as Journeyer
  • goingware certified mirwin as Apprentice
  • goingware certified hub as Journeyer
  • goingware certified ag as Master
  • goingware certified JasonFilby as Master
  • goingware certified svanegmond as Journeyer
  • goingware certified JesseR as Journeyer

Others have certified goingware as follows:

  • goingware certified goingware as Journeyer
  • pphaneuf certified goingware as Journeyer
  • Raphael certified goingware as Journeyer
  • dneighbors certified goingware as Journeyer
  • Omnifarious certified goingware as Journeyer
  • ErikLevy certified goingware as Journeyer
  • async certified goingware as Journeyer
  • Ilan certified goingware as Master
  • mikeszcz certified goingware as Journeyer
  • hub certified goingware as Journeyer
  • MikeGTN certified goingware as Journeyer
  • welisc certified goingware as Journeyer
  • apgarcia certified goingware as Master
  • dchapes certified goingware as Journeyer
  • jono certified goingware as Journeyer
  • fxn certified goingware as Journeyer
  • baruch certified goingware as Journeyer
  • thraxil certified goingware as Master
  • sye certified goingware as Journeyer
  • LinuxNinja certified goingware as Journeyer
  • bart certified goingware as Master
  • softkid certified goingware as Journeyer
  • nixnut certified goingware as Journeyer
  • LukeyBoy certified goingware as Master
  • kai certified goingware as Master
  • Grit certified goingware as Journeyer
  • bytesplit certified goingware as Journeyer
  • braden certified goingware as Journeyer
  • Nygard certified goingware as Master
  • pusakat certified goingware as Journeyer
  • DarthEvangelusII certified goingware as Master
  • whytheluckystiff certified goingware as Master
  • mpr certified goingware as Journeyer
  • sits certified goingware as Journeyer
  • realblades certified goingware as Journeyer
  • pcburns certified goingware as Journeyer
  • mark85 certified goingware as Master
  • malone certified goingware as Master
  • badvogato certified goingware as Apprentice

[ Certification disabled because you're not logged in. ]

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!

Share this page