Older blog entries for goingware (starting at number 119)

How to Do Foreign Currencies in GnuCash?

I finally tried out GnuCash (1.6.6, from Debian Woody) today and I must say I think it is very nice. But for the life of me I cannot get foreign currency transactions to work.

If I can do transactions in both Canadian and U.S. currency it would be a lifesaver. Up until now I've been doing my U.S. transactions in Quicken for Windoze and my Canadian transactions in a spreadsheet.

We live in the U.S., but my wife is Canadian and we also have a Canadian checking account and some Canadian bills.

I've tried without success to enter the following two transactions:

  • I wired USD$785 from my U.S. bank to my Canadian bank. When it arrived it was credited to my Canadian account with an exchange rate of 1.5345
  • I withdrew USD$40 in cash from a U.S. ATM machine from my Canadian bank. In their web banking, the Canadian bank said they gave me an exchange rate of 1.584.

I've pored over the instructions in the GnuCash manual many times, but for the life of me I cannot get it to come out right. Always there is some account that is off, sometimes by hundreds of dollars.

I hate Quicken, I really do. I'd like to delete it from my Windoze partition and use PGP to cryptographically scramble the freespace on my drive, then burn the CD.

But before I do, I need to figure out GnuCash. I've posted to a couple mailing lists, but no one has responded so far. Is there a more detailed explanation than the manual anywhere to be found?

Thanks.

Happy Birthday Mom!

It's September 11th. And what does that mean to me? Today is my mother's birthday, and my aunt Peggy's too, as they are identical twins.

Happy birthday Mom, and Happy Birthday Aunt Peggy.

Is there a Search Engine Ranking Monitor?

I am looking for a tool which will allow me to monitor how a bunch of my pages rank in the results at various search engines when the engines are queried with any of the phrases from a given list.

I'd be astounded if such a tool didn't exist but I looked around some and couldn't find one, at least not as Free Software.

What I would like to ultimately do is have a graph that's updated once a week or so with lines for each of the search queries that go up and down on the graph as a page moves back and forth in the rankings. If I can log the rankings to a text file I could make the graph with one of the available data analysis tools.

You could get the ranking either by scraping the HTML output by a search engine or by using Google's API. So if I just monitored Google it should be pretty easy to do this.

In fact the basic components are readily available as you can see if you search Freshmeat for "google", for example the AltaVista and Google Web Parser System which will put the results of a search into an associative array.

If there isn't such a tool I will write one myself but I thought I should ask around first. Either post a response in your diary or tell me at crawford@goingware.com and I'll say what I find in a future diary entry.

Thanks.

8 Sep 2002 (updated 21 Jul 2015 at 06:20 UTC) »
Websites

I asked my favorite hosting service,
Seagull Networks, if they could support database hosting, and it turned out they had just started providing it. So I moved
ByteSwap.net from Hostway to Seagull.

I wasn't actually using Hostway's database services yet but I have plans to.

I have no complaints about Hostway except that it felt pretty corporate and impersonal. Whenever I write to the support address for Seagull, I get a personal response from Paul Celestin, the guy who owns the place, sometimes at unusual hours of the night.

I was looking through my logs just now to see what search terms people were using to find the site. This works because most search engines encode your search terms in the URL for the search result page. This is known the GET method. There is a limit to the amount of text that can be in a URL, larger amounts of form data have to be submitted with the POST method.

Anyway I was very pleased to find that a

Google search for cross-platform programming
turns up

my first article on Byteswap.net in its first page of search results.

How people struggle to get placement at the top of the search results! All you need to do is put up content that's both unique and valuable to the people you want to come to your site! On the average I get 5,000 unique visitors a month to the whole GoingWare.com website, and for the most part it's because I have
these programming tips there. If I post a new article on one of my sites and post the URL in a few places, traffic will double for about a month, and in the long run will increase a significant amount from what the average used to be.

I guess I should get off my butt and write more articles. I have lots of them planned out in my head but it's hard to find the time to write them. I try to write well, it takes me anywhere from three to ten days to write one of the articles that I have done.


I've hosted various websites with seagull for about five years, and he provides free hosting for
www.wordservices.org in return for a small banner. When I get around to it I'm going to advertise seagull from all my websites because I like Paul that much.

Seagull provides secure shell access, allows you to use CGI's you write yourself, even in a compiled language like C or C++, along with having the GNU development tools installed. (Some hosting services only allow shell or perl scripts, and many only allow you to use CGI's they provide, you can't upload your own.)

I'm not sure if he provides java servlet support or not though. The servers all run Slackware. He also offers hosting where you are root on the machine and it's not shared.

Interested in OS X Development?

Some years ago, Paul used to produce CD's of (classic) Mac OS source code and shareware utilities. The CD series was called Apprentice. I first got to know Paul when he put
my screensavers and the Word Services SDK on it.

With Mac OS X generating such interest, Paul has been interested in bringing back the Apprentice CD. He asked me to compile the CD's for him. One difference is that much of the material on the Cd will be developed just for the CD, and written by yours truly. There will also be open source source code that I collect from wherever I can find it, as well as some shareware.

Instead of selling the CD's directly, Paul is proposing to create something he will call the
OS X Developer's Guild, a community site just for OS X programmers. Members will get the CD I compile, there will be a job board, discussion forums, and because Paul has his own hosting service, hosting service will also be included in the membership.

So far Paul is just trying to find out if there is enough interest to pursue the OS X Developer's Guild. If you're interested, fill in the form at the web page I link above. I will get lots of fun and interesting work to do.


Where is the Individual Software Process?

A few months ago I came across a web page that was about something that I'm pretty sure was called the "Individual Software Process".

I didn't have the time to read it, and I thought I bookmarked it, but I can't find it anymore. Neither Google nor Altavista finds the page.

I did find a PDF file that talks about Individual Software Process improvement in Europe, but that's a different thing.

I'm not looking for Watts Humphrey's Personal Software Process. That's a different methodology, although they are both meant for individual programmers to follow.

I have Humphrey's book on PSP, but I didn't get into it when I first tried to read it. I thought this other guy's web page sounded more like something I would want to do in my work.

But I can't find the page. Anyone here know where it might be?

2 Sep 2002 (updated 21 Jul 2015 at 06:25 UTC) »
Do You Have a Word Resume?

I have an HTML resume online, and near the top-left, hilit in a green box is a link to my plain-text resume.

When I email an application for a job or contract, I paste the plain text resume into the body of the email. The top of the plain-text resume gives the URL of my HTML resume in the event they want a formatted version.

But quite often some brainless recruiter responds with a request that I send a Word resume. I always respond by resending my text resume and explaining why I don't use word.

Actually the reason I stopped was that it got to be a pain to always keep three versions updated. The next reason was word macro viruses - I knew that anyone with a clue wouldn't accept word resumes, and in fact many companies will not accept word resumes from unknown people.

Tonight I read RMS' page

We Can Put an End to Word Attachments
. I thought it very well written. So I put a link to it in that green box on my HTML resume. Someone scanning around my resume looking for a link to the .doc version is sure to find it.

Do you know what a "sapper" is?

It's a guy with a shovel who digs at the base of a castle wall. During a siege, a sapper can bring a castle wall crashing down just by digging.

Just one more shovelful.

If everyone did just one little new thing each day to sap microsoft's walls, it would come crashing down in just a couple years.

Ever Faithful,

Mike

1 Sep 2002 (updated 1 Sep 2002 at 08:18 UTC) »

The author of this Usenet post has entirely too much time on his hands.

Massively Multithreaded Spamming

I got the following spam at one of my addresses earlier this year. I use Evolution's filters to sort all the spam into one mailbox in a basic way, but check it from time to time to make sure there's no real mail there. I only noticed this just now:

If you want to send mass Email, you will need some SMTP servers, but now many SMTP servers do not allow you use them , they are not open, then how can we find open SMTP servers?

Speed Smtp Finder will help you!

Speed Smtp Finder can speed search the SMTP servers .It can use hundreds of threads/connections to search,The more connections, the more ip addresses will be verified at the same time. When you put 100 connections, it is the same thing as 100 computers searching ip addresses.

It is very easy to use.You can just click 'start' to start search , click 'save ip' to save good smtp server ip address. Then is all!

The program supports Socks5 proxy protocol, so you can use it within a Local Area Network (LAN), too !

The program can Auto save good ip address( open smtp servers )!

Click Here To Download The Trial Version , The Full Version Only Costs $ 29.90 !

I'd be careful about clicking that link, heaven only knows what will land on your hard drive. Just so you know what you're clicking, the link is:

ftp://emailscan:vw7y3a@emailscan.51.net/public_html/SSF.exe

Now, someone explain to me, I really want to understand. I'm trying hard.

Why is it that the teenage authors of viruses, warez and crackz are put into prison while the purveyors of Speed SMTP Finder so far escape prosecution? Perhaps this is related to the reasons Microsoft has not been found liable for propagating Outlook, Internet Explorer and Internet Information Server, which together have been responsible for tens of billions of dollars in economic damage. Oh I forgot word and excel.

Maybe someone could study the above application (if it's not a r00tk1t) and add support to it in the teergrube?

Here's the full headers to the inquiry I received:

Return-Path: <@mail.qzptt.zj.cn:jack_hunbury@didymaster.net>
Received: from mail.qzptt.zj.cn (mail.qzptt.zj.cn [202.96.113.39]) by
        dragnet.seagull.net (8.12.1) with SMTP id g08ChrFY009687 sender
        <@mail.qzptt.zj.cn:jack_hunbury@didymaster.net> for
        <crawford@goingware.com>; Tue, 8 Jan 2002 04:43:54 -0800
Message-Id: <200201081243.g08ChrFY009687@dragnet.seagull.net>
Received: from html([61.175.53.90]) by mail.qzptt.zj.cn(JetMail 2.5.3.0)
        with SMTP id jm833c3b0e27; Tue,  8 Jan 2002 12:42:23 -0000
From: jack_hunbury@didymaster.net
To: dmcfet@islandnet.com
Subject: Smtp Servers
Date: Tue, 8 Jan 2002 20:43:46
X-Mailer-Version: 20020107
X-From: <@mail.qzptt.zj.cn:jack_hunbury@didymaster.net>
X-Recipient: crawford@goingware.com
Mime-Version: 1.0
Content-Type: text/html; charset="DEFAULT_CHARSET"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
Status:   
31 Aug 2002 (updated 31 Aug 2002 at 08:27 UTC) »
Food for Thought

Zaitcev's and kroah's comments on my efforts to get into embedded systems programming certainly made me wonder if I'm doing the right thing. (Thanks kroah for letting me know who you were!)

I think I'm still doing the right thing, but hopefully I could go into embedded work somewhat less naively than I might otherwise have.

I'm well aware that the nature of the work makes it harder to make one's code free. But I don't think it's hopeless.

For one thing, embedded Linux is booming. There are even some books about it.

There have been some setbacks, though. The Embedded Linux Journal used to be a print publication, but its existence as a separate dead-tree magazine ceased not too long ago, I think a victim of bad economic times. But it's still on the web and I think it now exists as a section within the Linux Journal.

Of course, since Linux was originally developed for desktop and server PC's, it has some limitations that prevent it from being used in some embedded applications. Lots of embedded chips don't have enough memory to run a Linux kernel, let alone any userspace applications. For this one can use eCos. eCos can run in much less memory that Linux, and is architected to make it easy to remove features you don't need from the build so they don't take up space in the ROM image.

There also appear to be some open source Forth implementations.

There are a couple problems with free software being used for embedded systems. One is that one often cannot look at the binary running on an embedded chip, so it is hard to tell that it is running software which should be Free. Likely there are a lot of GPL violations out in the market, running on embedded chips with no one but the manufacturer knowing about it. The best we can hope for is that whistleblowers will leak the secrets, and I expect that will happen from time to time.

The other is that many embedded products don't provide a way for the user to reload the software. They might not be using flash rom, and there may be no I/O ports on the device to load new software onto it. So even if the manufacturer publishes the source, you may not be able to use it.

(I asked RMS about this specifically a while back and he said that the GPL did not require one to be able to load new software on a device that runs a GPL'ed binary. I think this is a real problem. While one could manufacture new compatible hardware, there may not be enough of the hardware spec made public to be able to reproduce it.)

One more problem is that the manufacturer might publish the source but not the hardware specs, so you might be able to write software that does the same thing, but not be able to figure out how to alter it.

Another problem is that a lot of the commercial offerrings in the embedded linux market include proprietary parts. So some firmware may only contain free software, but the tools required to build it may be proprietary. There are also some packages to give Linux real-time support, that don't actually link into the Linux kernel, and some of these packages are proprietary. Both of these are a real problem.

But I don't think it's hopeless. After all, the server software market used to be a completely closed-source proprietary world. Even BSD used to be closed-source because it contained a lot of AT&T Unix code. At some point, U.C. Berkeley started publishing all the parts of BSD that weren't AT&T derived, and then the AT&T parts were rewritten from scratch, so we did eventually end up with an Open Source BSD. (I understand AT&T threatened UCB with a lawsuit over this, which could have been a huge disaster for the University if AT&T won. But AT&T backed down when Berkeley asked AT&T about all the BSD code it was using in Unix.)

In my early career, when I was a sysadmin for the BSD-based SunOS, I was unable to get the source code to SunOS. If I wanted to rebuild the kernel, I had to link together a bunch of .o files that came from Sun - I didn't even have the kernel source. Now, although the license is restrictive, one can at least obtain the Solaris source code. Even the source to the Mac OS X kernel is available (but under a license that the Open Source Initiative has certified but the Free Software Foundation says is incompatible with the GPL.

I think most embedded work is still mostly closed source. I just signed an NDA to get the manufacturer's source code to the chip I'm about to program, and my modifications to it will also be a secret.

But Free Software is not yet at the point where every programmer can make their living writing or even using it.

I think most paid involvement with Free Software still consists of either integrating Free applications or writing extensions to it that are never released either because the license doesn't require it (like BSD) or because the GPL'ed code is only used on a server without actually distributing the binary. (Some have proposed adding a "performance" clause to the GPL which would address this. I brought this up too with RMS, and he said he wanted to address it in the next revision to the GPL, but said "it can't be soon".)

I have heard that RMS feels that if one cannot write Free Software, then one should not write software at all - that is, one should not even take employment as a programmer unless the source one creates is Free. (I don't know for sure that he feels that way, so I won't claim that he really feels this way.)

I don't agree with that. I think that most people with the talent to program well do not have the ability to do as well for themselves and their families in some other occupation. If I could have changed careers these last couple years into some saner job that would still have kept all my bills paid, I certainly would have done it, but even after the dot-com crash, programming is the only work I could find that would pay enough that I can keep me and Bonita housed and fed and our creditors at bay.

I think RMS would likely say one should take a job flipping burgers rather than write closed source, but I don't feel it's right to ask people to be so self-sacrificing. Many advocates of Free Software do not feel as strongly about their principles as RMS does, and even if they do, I think the movement would be better off if we were all in a position of economic advantage.

Finally, I don't think it helps our cause if people aren't allowed to write closed-source software. While the software we write as employees and consultants may not be Free, the skills we sharpen while we write it can be, and usually are, brought to bear on Free Software problems.

I'm certified as a Master here but the fact is that I haven't written that much Free Software at all. I guess I could claim that my skill qualifies me for that certification but I got that skill writing proprietary software - and reading and debugging the proprietary source other employees had written.

Quite often new technologies, techniques and algorithms are developed in a proprietary fashion but openly published so they can be reproduced by Free Software authors. And even patents eventually expire. The RSA patent used to be so onerous but it is expired now, so it benefits all.

I'm not saying that I feel very good about making a living writing proprietary software, but it is not all bad. What gets me down more is when I have difficult clients or clients who don't pay me on time or don't pay me at all. I've yet to have either an employer or a client tell me I can't write Free Software on my own time, and a couple clients have been enthusiastic about me contributing work I've done for them - with pay - back to the community.

kroah comments on the unpleasant nature of embedded programming, like whacky undocumented hardware and size restrictions, and also says:

Typically you are working at a hardware based company, and have to live with design decisions made by people focused on the bottom line of product cost (remember, in production the firmware is free, and no one will recall the 6 months that it took you to get a beeper not to warble, even though they could have solved it with a 5 cent part in the design up front.)

Personally, I would be really thrilled if I could get paid for six months in order to get a beeper not to warble. I've been in that position before, and I loved it. I miss it terribly.

I invented a graphics compression algorithm once that needed to have a fast decompressor because it would be used interactively to browse CDROMs on the old 68020 Macintoshes. I used to lie awake nights thinking of how I could cram a few more bits out of certain file structures, because those structures would grow if I tried to shrink others - it was a balancing act. I would also be unable to sleep because I was thinking about how I could write the decompressor in assembly code. In the end I got the two innermost loops to fit into the 64 BYTE code cache of the 68020, with the result that my overall decompressor was twice as fast as the C version. I'd do anything to go back to those days.

But instead what I have is constant pressure to get feature after feature implemented. Almost always the client doesn't particularly care if the code is error free, easy to understand, maintainable or fast - they want it NOW, and they don't want to pay very much money to have it developed.

Throughout my career I've devoted a great deal of energy to learning new things. Whether I could learn a new skill has almost always been a top consideration when considering a new job. In the last four years in particular I have devoted a tremendous amount of work to improving the quality of my code. By quality I mean the reliability, comprehensibility, maintainability and performance all together. I never agreed with the position that fast code cannot be maintainable and I feel I've proven that in the products I've written.

And the end result is that I have found I've gotten extremely good at delivering something that the clients would rather I not give them. I've never cared to work fast and cheap - it takes time to write the kind of code I do.

For a long time I've struggled to convince clients that they really need and should want quality code. The best I've been able to do is convince individual programmers at my client companies that this is the case - look at my homepage where I quote the Director of Research at the client I've had for a year saying "Your code is by far the best in our codebase".

The problem is that I can't convince the people who write my paychecks of the need for quality.

I think the only answer is to program for a different market. A market where there can be no arguing that poor quality leads to business failure. I have the theory that in such a market the clients will be happy to pay me for the kind of work I like to do.

My ultimate goal is to be working on the kind of software where poor quality would lead to injury or loss of human life. I personally don't agree that software should be employed at all in life-critical applications, but people use it no matter what I say, and sometimes there really is no choice, like in spacecraft. So I think it would be best for that software to be written by someone with an attitude like mine. (I don't pretend that I have the expertise yet to write mission-critical software, but I think if I learned how I would be good at it.)

A number of people have suggested to me that I would do well to go into writing console video games. I don't know that reliability is prized so highly in gaming but performance certainly is. Console games often have pretty severe constraints so it is important to have both compact and fast code.

I think I would do well at writing video games if I learned how to. I'm particularly interested in learning more about 3-D graphics. (I just bought Edward S. Angel's OpenGL: A Primer.) So in the short term I'm going to at least study games programming, and maybe I'll eventually do some work in it. It's a hard field to break into also.

But in the long run I don't think I want to do games. It's important to me that the code I write be socially useful, at least in some small way.

My very first commercial product was Last Resort for the Mac from Working Software. It's a keystroke logger, but it's not the spyware people (like the FBI) try to plant on your computers these days - it's meant to help people recover the text they've typed in the event of a crash or a power failure.

I've had several authors tell me that Last Resort saved the books or papers they were writing. One of the editors of Mac User magazine told me he caught his girlfriend cheating on him because of Last Resort, and he later featured it prominently in a computer novel he wrote. I have mixed feelings about that but I think it's probably best that he found out about it - he seemed happy that he found out. (He changed the names of all the software he mentioned in his book, but it was pretty obvious what the real products were meant to be. Last Resort more or less saved the world because it recovered some really important text.)

I've gotten comments like that for a lot of the code that I've written - from users. I imagine I could write games that lots of people would enjoy playing, but I don't think I could get that kind of gratification from their feedback because I don't think I would feel that I had actually made their lives any better.

At least not until there is some kind of significant change in what video games do. I don't want to write violent video games. Maybe if I could write Sim games. I was a big fan of the original SimCity.

Of course the real answer is for me to write nothing but high-quality Free Software. That's what I really want to do. My strategy to get there is to write enough products that I will either license for royalties or publish myself that I can stop doing regular work. If I didn't have to write code for a living I would write code for Free.

It's that kind of thing that led me to start LinuxQuality. Read what I have to say on its homepage:

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

Well, I have more I'd like to say but this is getting way too long for a diary entry, and it's late. I would enjoy staying up all night but my wife hates to sleep alone.

I value any comments anyone may have.

Good night.

29 Aug 2002 (updated 30 Aug 2002 at 00:22 UTC) »
Embedded note, updated

Well I closed the deal to do some embedded work on an I/O chip that has an ARM core in it. I'm afraid it's very much under nondisclosure, so I can't be very specific about what I will be working on.

The client is sending me his eval board (a development kit built into a large briefcase!) and the chip manufacturer emailed an NDA to sign. An hour after I faxed the signed NDA to them, the manufacturer's support engineer emailed a whole bunch of useful information.

I wanted to have a desktop system to practice ARM programming on so I asked on the debian-arm mailing list. Someone is selling me a used Corel Netwinder for $350. You can also buy new and somewhat fancier ARM Netwinders for $550 to $600 from Netwinder.net. They have Crusoe based systems as well.

Whee!

This first job is quite small, but the client has a lot of other work waiting after this. Having the small job will allow me to get familiar with the chip before I do the other more difficult jobs he wants.

I discussed this on the ACCU list and based on what they said and what I found in their embedded systems book reviews section I'm going to get the following books, the first two right away because that's all I can afford so far:

I have a bunch of linux kernel books and one embedded linux book already.

Also here are some good websites for emedded stuff:

I'm very excited about this. I've been trying to find a way to break into embedded programming for over a year.

Help Me Get Into Embedded Systems Programming

I've had the idea for about a year that I should go into embedded systems programming. One reason for this is that many of the things I strive to achieve in my programming (efficiency and reliability) are valued in the embedded world much more than in the desktop GUI market. Another reason is, at least when I was looking a few months ago, I saw lots of job and contract ads looking for embedded programmers that offerred much higher pay than what I was seeing for GUI work.

Another reason is that I think the efforts the industry giants are putting into moving applications to the server (stuff like .Net and web services) are going to kill the GUI application market.

There are a couple of problems though. The embedded systems market has this whole huge body of knowledge and practice that I'm mostly unfamiliar with.

I have done some kernel-level work (mostly in the Mac OS, but I have tinkered with the Linux and the old BSD-based Sun OS kernels) and I've done a lot of work in 68000 and PowerPC assembly code. I also have a bachelor's degree in Physics and have done a lot of experimental work, and took courses in analog and digital electronics at UC Santa Cruz. But I know I have a lot to learn.

So here's how you can help me: recommend books I can read that can help me get started in embedded programming. I'm interested in both theoretical books (like architectural theory for embedded OSes) and I'm also interested in really practical things (like hands-on project books for hooking up toasters to 8-bit microcontrollers), techniques for day-to-day development and debugging, as well as books on learning electronics.

You can either post your recommendations in your diary here or email them to crawford@goingware.com.

One recommendation I can pass on is that my friend Tom Cumming (who's been doing embedded work since he was a kid) recommended I read Circuit Cellar magazine (I hadn't seen their website until just now - it looks real good). Actually I have read circuit cellar from time to time since it was a Byte magazine column, and I know it to be very good.

The book I used for both my analog and digital classes in school was the first edition of The Art of Electronics. The classes were actually taught by the physics department, and were intended to teach physics students to design and build their own instrumentation. Horowitz and Hill take a very different approach to teaching electronics than is traditional for electrical engineering textbooks. I remember professor dorfan saying that EE profs held a very low opinion of the book, but it was a hit with physicists and physics students.

I actually started reading it again a few months ago when I was interviewing for a job writing electronic cad software, but I got sidetracked. I'll pick it up again.

I also read a book last year that I think is called "embedded linux programming" or something like that, but I can't find my copy just now. But it was very good. It had a particularly clear explanation about what happens when booting an x86 linux system. And I have the books "Linux Device Drivers", "Understanding the Linux Kernel", "Kernel Projects for Linux", and Moshe Bar's "Linux Internals".

Anyway, any suggestions you have are greatly appreciated. Embedded Linux programming of course is a big interest but I'm also interested in other embedded OSes - there are a lot of things Linux can't do, like support multitasking in less than 64k of ram, which I think eCos can do.

Of course, a big problem is finding the time to study all these books, even the ones I already have!

The other problem is breaking into the embedded world. No one wants to hire anyone without paid work experience, and even though I've been working as a programmer for fifteen years, I don't really have anything on my resume yet that I can claim as embedded work.

But I have some happy news. I think I will be getting a small contract very soon writing the software that runs on an embedded ARM processor aboard an I/O chip. This would be very good work for me, and would finally give me a toehold into the industry.

I thought it would be helpful to have an ARM-based desktop machine to learn more about ARM assembly code and OS programming, so I asked around and have found someone who wants to sell me a very-slightly-used Corel Netwinder, an ARM-based Linux box. Debian supports ARM now, so the guy is going to install Woody on it for me.

Wish me luck.

Sandy's Gone

We found out our friend Sandy died when we saw someone bring a large boquet of flowers into The Second Read in Rockland, the bookstore where her partner works.

Sandy found out a year ago she had cancer. She was told she would likely live a year, and the prediction was very close to exactly correct. The original tumour was a kind of cancer that is easily treated if caught early, but it wasn't caught until it was too late and it metastized to her liver. It was the liver cancer that killed her.

We haven't gotten to know that many people since we moved to Maine in January of 2001. But two women we have gotten to be close friends with were Sandy and Yvonne. Now Sandy is gone and Yvonne is left all alone.

My wife Bonita, an art student, enjoys pottery and ceramic sculpture. She invited Sandy to take a pottery class with her a few months ago. Sandy enrolled in the class with the full knowledge that she would die soon. It turned out that Sandy had a college degree in pottery, and was turning out the most amazing work with blazing speed in the class. She really enjoyed herself and was very glad that Bonita had invited her. Sandy hadn't worked with clay for sometime and had thought that she never would again.

We visited Sandy and Yvonne at their apartment last week. Yvonne had called to say that Sandy had gotten suddenly very sick. Before that she had been doing quite well and had even been traveling to visit her children. But quite abrubtly her liver began to fail. Her doctor said she would not last long.

When we visited Sandy couldn't even look up from the bed. She was very weak. Bonita and I each hugged and kissed her.

That was the last we saw her. We meant to return in a day or two, but with things being very busy, we just didn't get it together to do so.

Is there anyone in your life you've been meaning to visit? Go visit them.

Is there anything you've been meaning to say to someone you're close to? Say it. While you still can.

Remember from my earlier diary entries that we made a long visit to Newfoundland in June to visit Bonita's family, and then a bunch of them visited us here when we returned. This was a big strain on us financially. We really couldn't afford it. But Bonita hadn't seen any of her family in a year and a half. One of her nieces is graduating high school next year and this was likely the last opportunity her sister's family would likely have to all take a vacation together. It was more important that we had this visit than that we be able to afford it.

I haven't known Sandy very long but I've been very fortunate to have known her at all. I will miss her.

I can't possibly imagine what it is like to spend a year of one's life knowing that one will almost certainly die soon. That Sandy was courageous enough to relax and take time out to have some fun throwing clay speaks volumes about her.

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