Thanks for visiting my blog - I have now moved to a new location at Nature Networks. Url: - Please come visit my blog there.

Tuesday, July 28, 2009

Dates and misleading messages.

Here's an entertaining debugging challenge for people.

I was trying to get the history of code changes between April and June, so that I could write up a quick report for a working group at the GSC. I used the following command:
svn log -r {2009-06-31}:{2009-04-01}

and got the following error:
svn: Syntax error in revision argument '{2009-06-31}:{2009-04-01}'

After scratching my head for a while to figure out what the correct syntax was, and going through a ton of different threads on-line to figure out what the correct format should be, I finally figured out the error...

Are you ready for it?

June doesn't have 31 days. Replacing it with the correct date range solved the error. Oops!


Saturday, April 18, 2009

sshfs: another useful Linux tool

Ok, I just had to share this tool - I'm sure anyone who's familiar with Linux already knows it, but just in case there are people out there who are behind me on the Linux learning curve, this one is worth knowing: sshfs

If you've never heard of it before, the full name is the ssh file system. What it does is quite simple: it allows you to mount any ssh accessible directory as a local file system. It's not any faster than ssh access would be, and apparently (from various sources on the web) it doesn't do well under huge stress, but for my purposes, it's been brilliant.

Normally, if I want to do anything with my work account, I have to ssh into the work machines, then download/scp files all over the place, leaving several copies on each of the computers I work on. This inevitably leads to version-ing nightmares.

This is where sshfs steps in. Instead of copying files, I now just mount each of the ssh accessible computers are mount points, and operate directly over the ssh share. It's pure genius.

To use it, you need to install the sshfs package, which is trivially easy on Ubuntu or another debian based system:
sudo apt-get install sshfs

Then you need to create the mount point (which I usually do in /media, just for ease of use), and assign yourself permissions to use that mount point. This is done with your own username on the local machine, and doesn't change the permissions on the server.:
cd /media
sudo mkdir servername
sudo chown username.username servername/

This sets up a point for you to attach the server. All that's left is then to attach the directory on the server to your local mountpoint, using a command eerily similar to scp's:
sshfs /media/servername/

Tada. All that's left is to open your file manager of choice and open up the directory.

If only I'd discovered this tool sooner!


Friday, April 10, 2009

Nifty little trick for debugging frozen applications

This trick is just too cool not to mention.  I was trying to debug an application that was getting stuck in an endless loop, the other day. It was a rather complicated set of changes that was required and I had no idea where the program was getting stuck.'

In the past, I would have just ended the program with a control-c, and then started dropping in print statements until I could isolate exactly where the program was getting stuck.  Instead, I stumbled upon a very nifty little trick: using the kill function to halt the program and dump the thread's core to screen with the command:
kill -3 [pid]

For a java code running from the class files, the core dump shows you exactly which line is being executed in each thread, allowing you to find out precisely where the problem is - making debugging go much more quickly.

Anyhow, I haven't yet tried if this works on a .jar file, or what else you can do with a quick "kill -3", but this certainly broadens my toolkit of debugging utilities, and gives me a whole new respect for the kill signals.  I may have to test out a few of the other ones....

Labels: , ,

Thursday, March 26, 2009

TomTom has no Linux support?

I'm still procrastinating - A plumber is supposed to show up to cut a hole in my ceiling in a few minutes, basically as exploratory surgery on my new house, in order to find a leak that's developed in the pipes leading away from the washer and dryer. So, I thought I'd spend the intervening moments doing something utterly useless. I looked up TomTom's web site and took a look at what they have to offer.

If you don't know TomTom, they're a company that produces GPS units for personal and car use. They've recently shot to fame because Microsoft decided to sue them for a bunch of really pointless patents. The most interesting ones of the bunch are the ones that Microsoft seems to think are being infringed just because TomTom is using Linux.

Anyhow, this post wasn't going to be about the patents, since I already gave my opinion of that. Instead, since I'd been thinking about buying a GPS unit for a while, I thought it might be worth buying one from someone who uses embedded Linux - and I'd like to support TomTom in their fight against the Redmond Monopoly. Unfortunately - and this is the part that boggles my mind - TomTom offers absolutely zero support for people who run Linux as their computer operating system. Like many other companies, they're a Windows/Mac support only shop.

This strikes me as rather silly - all of the open source users out there would probably be interested in buying an open source GPS, and would probably be happy to support TomTom in their fight... but they've completely neglected that market. They've generated a great swelling of goodwill in many communities by standing up to Microsoft's bullying, but then completely shut that same market segment out of purchasing their products.

Well, that's some brilliant strategy right there. I only hope TomTom changes their mind at some point - since otherwise all that goodwill is just going right down the toilet...

And thinking of plumbing, again, it's time to go see about a hole in my ceiling.

Labels: ,

Monday, March 16, 2009

xorg.conf file for vostro 1000 using compiz in Ubuntu 9.04

I'm sure most people aren't interested in this, but I finally got my laptop (a Dell Vostro 1000) to work nicely with Compiz under Ubuntu 9.04 (Jaunty). I think the key steps were removing every fglrx package on the computer (apt-get remove fglrx*), switching to the "ati" driver in the xorg.conf, and getting the BusID right (I tried copying it from my earlier xorg.conf file, but the value seems to have changed.) However, I added a lot of other things along the way, which sees to have helped the performance, so, for those who are interested, this is the Ubuntu 9.04, jaunty alpha 5 xorg.conf file for the vostro 1000:

Section "Device"
Identifier "Configured Video Device"
Driver "ati"
BusID "PCI:1:5:0"
Option "DRI" "true"
Option "ColorTiling" "on"
Option "EnablePageFlip" "true"
Option "AccelMethod" "EXA"
Option "RenderAccel" "true"


Section "Monitor"
Identifier "Configured Monitor"

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
Defaultdepth 24
Option "AddARGBGLXVisuals" "True"
SubSection "Display"
Modes "1280x800"

Section "Module"
Load "glx"
Load "dri"

Section "DRI"
Group "video"
Mode 0660

Section "ServerFlags"
Option "DontZap" "false"

Section "Extensions"
Option "Composite" "Enable"

Labels: , ,

Tuesday, March 10, 2009

Ubuntu Jaunty Alpha

Wow. Really, wow. I upgraded to Jaunty (Ubuntu 9.04 Alpha) over the weekend on my work computer. It wasn't flawless, and I wouldn't recommend anyone else do it yet since it's far from a trivial process, but I'm very impressed with the results. The computer is more responsive, several bugs that were annoying me have disappeared, and the monitor just looks nice.

But, since I had problems, I figured I should leave a trail for those who are following in my footsteps.

I had problems installing the nvidia drivers. My old xorg.conf failed miserably on the new configuration, and no end of tweaking seemed to fix it. In the end, I settled for using the standby:
sudo dpkg-reconfigure -phigh xserver-xorg

You'll note that without using -phigh, the command no longer works. Either way, this fixed several issues (multiple instances of X trying to start, bad configurations, inability to install new nvidia drivers, etc), and left me with a much cleaner xorg.conf file.

Once the new xorg.conf file was installed, I was able to install the new nvidia drivers, which had to be done manually (drop to terminal by pressing "ctl-alt-F1", stop the current gdm with the command "sudo /etc/init.d/gdm stop", and then running the nvidia binary with "sudo sh". Substitute your appropriate version/file name as necessary.)

You'll have to enable the nvidia driver as well, which can be done with the command:
sudo nvidia-xconfig

From that point on, I had to manually add back a couple of things:

To the end of the file, I put the following, to re-enable the control-alt-backspace combination, which is, for no discernable reason, removed from Jaunty.
Section "ServerFlags"
Option "DontZap" "false"

At one point, I also tried adding dontzap from the repositories, which didn't help, but may have been necessary for that code to work:
 sudo apt-get install dontzap

To the Screen section, I had to add back
    Option  "AddARGBGLXVisuals" "true"

in order to use compiz again, which seems to require this flag.

To get my monitor showing the right resolution, I also had to edit the "Modes" line in the Screen section:
Modes      "1920x1200" "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"

as my monitor's native resolution (1920x1200) wasn't included in the list. Putting it to the front makes it the default mode.

Compiz itself required several libraries which weren't installed:
sudo apt-get install compiz compiz-core compiz-fusion-plugins-extra
compiz-fusion-plugins-main compiz-gnome compiz-plugins compiz-wrapper
compizconfig-backend-gconf compizconfig-settings-manager libcompizconfig0

Some of which were present, others weren't, so I asked it to reinstall the whole stack.

Java, for some reason, became really slow - probably because it changed the default away from Sun's version 1.6 to something else. That should be switched back with:
sudo update-alternatives --config java

Firefox was upgraded at one point, to version 3.0.7, which seems not to be backwards compatible. (it was no longer able to go back a page, or remember previous pages or bookmarks.) Blowing away the ~/.mozilla/firefox directory fixed it, but lost all my bookmarks and settings. I also had to remove the lock files, but if you're blowing away the firefox directory, that will be included as part of it.

I'm leaving out several other steps I did that shouldn't be necessary for anyone else: the computer hung midway through the install, and had to be recovered at the command line, several repositories were tested out, as well as multiple rounds of update/upgrade/autoremove from the command line were also used, and a bit of tweaking of other features.

I would also give a couple of points to people who are considering doing this upgrade: backup everything you value. config settings, xorg files, your compiz settings, etc. Several config files were reset back to default or had to be blown away to get things working again, and, although minor, took some time to recover.

Was all that worth the 6 hours of tweaking? So far, I think so!

Labels: ,

Wednesday, February 25, 2009

Microsoft Sues TomTom over patents

I saw a link to Microsoft suing a Linux-based GPS maker, TomTom, which made me wonder what Microsoft is up to. Some people were saying that this is Microsoft's way of attacking Linux, but I thought not. I figured Microsoft probably has something more sly up it's sleeve.

Actually, I was disappointed.

I went into the legal document (the complaint) to find out what patents Microsoft is suing over... and was astounded by how bad the patents are. Given the recent decision in the Bilski ruling, I think this is really Microsoft looking for a soft target in which it's able to test the waters and see how valid it's patents are in the post-Bilski court environment... Of course, I think these are probably some of Microsoft's softest patents. I have a hard time seeing how any of them will stand up in court. (Aka, pass the obviousness test and, simultaneously, the transformative test proposed in Bilski.)

If Microsoft wins this case, it'll be back to claiming Linux violates 200+ patents. If it loses the case, I'm willing to be we won't hear that particular line of FUD again. I can't imagine any of the 200+ patents it says that Linux violates are any better than the crap it's enforcing here.

Anyhow, for your perusal, if you'd like to see what Microsoft engineers have been patenting in the last decade, here are the 8 that Microsoft is trying to enforce. Happy reading:


Summary: Attaching any form of a computer to a car.


Summary: Giving driving instructions from the perspective of the driver.


Summary: having an interface that lets you scroll and pan around, changing the focus of the scroll.


Summary: A computer that interacts or docks with a car stereo.


Summary: A computer in your car... with Internet access!


Summary: File names that aren't all the same length - in one operating system.


Summary: File names that aren't all the same length - in one operating system... again.


Summary: A file system for flash-erasable, programmable, read-only memory (FEProm).

Overwhelmed by the brilliance at Microsoft yet? (-;

Labels: ,

Wednesday, September 24, 2008

The best laid schemes...

"The best laid schemes o’ mice an’ men / Gang aft a-gley.” - Robert Burns

Well, ok, I don't speak 18-th century Scots, but I fully understand the sentiment. I have several major things in the works, and yet, I'm suffering from a bad cold and sore throat. So, the FindPeaks manual is going to be delayed a few days. I guess I'm not the only one working on it, but I defintely have plans for it.

Anyhow, between the FindPeaks manual, some new FindPeaks features, a poster abstract and two papers I'm working on, I have enough on my plate - but just don't have the energy to get it all done. Damn colds! They always get you just as the stress level starts to rise.

Anyhow, Thanks to tcezard (Tim), who's taking on an ever increasing role on the FindPeaks work, FindPeaks 3.2.1 was tagged today. Development is so much faster when people work together!

I thought I'd also go one further today, and add a plug in for a very cool technology that hasn't (to my knowledge) gotten much coverage - ODF@WWW. As a scientist who uses wikis and blogs, this has to be one of the best applications I've seen of extending the wiki concept. This has the ability to change the way scientists communicate data, and allow wikis to be incorporated into environments where they previously were "too complex to be useful." Of course, more people have to adopt ODF before this will really take off, but with applications like this, it's only a matter of time. (Yay open formats for making this possible!)

Labels: , ,

Tuesday, August 5, 2008

Linux and you...

Over the past couple years, I've slowly been moving everyone I know towards Linux. I personally started playing with Linux back in 1997, when I bought my first computer - a 166MHz Pentium. I moved over to it full time (Slackware) in 2002, when I was at grad school, and deleted windows 2000 from my computer about a year and a half later, in 2004. That was a pretty big milestone for me, but I haven't looked back.

In 2005, after the n-th round of virus deletions from my father's computer, I moved him to Fedora, and a year later to Ubuntu - and he loves it. We had a few problems in the beginning, mainly with poor network printing support and some strange modem configurations, but subsequent dist-upgrades have all solved those problems.

I converted my girlfriend's computer in 2006, when I thought Ubuntu was finally ready for her, with a clean interface, programs that met all her needs, and NTFS read/write built into the kernel.

The only computer left in the family is my step-mother's computer, which won't be a hard sell after this week. (40+ viruses in windows, and she's been stuck using my father's computer since last monday, so she's learning her way around the Linux desktop, now.)

Still, the greatest shock for me was my girlfriend's comments this afternoon. She went back to her Windows XP partition so that she could convert some movies to an ipod compatible format and discovered that she hates Windows now! Windows is too slow, takes too long to boot up, has too many windows pop up (and that's just XP!)... the list goes on. I think I've infected someone else with the Linux bug. Better yet, she told me I should convince my step-mother to switch to Linux. I wish I could quote her exactly, because she said it quite eloquently:

"At first, I was skeptical, because I didn't want to have to learn anything complicated, but once I found out how easy it was, it was easy to switch."

Linux is truly ready for the desktop. Now, if only I could convince the IT people at work to upgrade from Red Hat Enterprise Linux 4 (circa 2003).


Saturday, March 29, 2008

Hardy Heron, Ubuntu 8.04 beta

So I took the bait. I can't refuse Beta operating systems. I've always enjoyed living on the bleeding edge when it comes to new and shiny OSes, so I upgraded my laptop just to see what would happen.

Well, no surprise, I broke a few things, though surprisingly, it's a pretty small list. Going from Gutsy Gibbon to Hardy Heron on my Vostro 1000 was very smooth, and required very little effort to get it up and running again, for the most part.

Compiz (3d graphics): Well, no surprise, It was somewhat of a hack to get it going on my laptop, originally, but the only thing that broke during the upgrade was a weird error about gnome-settings-daemon not being able to start. The fix:

sudo apt-get remove xserver-xgl

Unfortunately, I'd tried someone else's fix of blowing away all of the .gconf, .gconf2, etc settings in my home directory, which obviously didn't help, but now has me reconfiguring all of my settings... oh well. Just use the line above, and save yourself some of the pain.

However, removing xserver-xgl will probably kill your ability to run Compiz, and you may need to turn composite on in your xorg.conf file (/etc/X11/xorg.conf). That can be done by finding the lines:

Section "Extensions"
    Option "Composite" "0"

and changing the "0" to "1". Tada, Compiz works again!

Wireless: This one was interesting: there's a new driver for the wireless card, so it tries to install that over what you've already got going. The new driver is much better than the old, so its a good thing, but you still need the (not-open-source) firmware from broadcom. Installing it couldn't be easier.

Follow the first 3 lines here to uninstall ndiswrapper, if you had it running before. (You don't want the new driver running at the same time as the old: this may mean you might want to take the out any lines saying ndiswrapper or bwcml43, or similar from /etc/modules.)

Follow the instructions here, to install the b43 driver firmware, although my simplified version would be:

sudo apt-get install b43-fwcutter
tar xjf broadcom-wl-
cd broadcom-wl-
b43-fwcutter -w /lib/firmware wl_apsta.o

You'll notice I've skipped a few steps compared to what's on the linked page. "b43-fwcutter" can be installed through apt-get, so there's no point in building it yourself, and /lib/firmware is the right place to put the firmware in Ubuntu, so you don't need to be fancy about exporting it and then using a shell variable. And that did it for me.

You may also need to go to System->Administration->Hardware Drivers to tell Ubuntu to use the b43 driver. After that, my FN+F2 key works again, and I was able to connect to my wireless network.

All is good again with my laptop.

Labels: , , , , ,

Friday, January 4, 2008

Dell Windows Refund

Well, I just tried to get my "dell windows tax" refunded on my copy of Microsoft Windows XP that came with my Vostro 1000 Laptop.

Unfortunately, the people were less than helpful. Not only did they insist that Windows was given for free, but that they could only refund me for zero dollars, if I'd like to return the disk.

Somehow, that flies in the face of reports like: this, where a UK linux user got back the full value of microsoft windows.

So, the best I could do down this avenue was to get stopped by a woman named Tracy, who gave me the address of the legal department at Dell Canada. For those of you who are interested, it's available only by snail mail.

Dell Canada Head Office
155 Gordon Baker Road
Suite 501
North York Ontario
M2J 3N5

If they're giving away Microsoft windows XP for free, then I can't imagine Microsoft would have any problems with me passing on the licence key for it - after all, Microsoft's flagship product now has a value approaching zero.

Labels: , ,

Monday, December 17, 2007

Definitive proof that Linux is ready for the masses

Bear with me... this article has a long introduction, which sets the stage for my two conclusions, which are that Linux really is ready for mainstream uses, and that there are still reasons to install Microsoft Windows OSes.

Yes, my preamble goes back a long way... way back to when I was learning to program, when I was 9. It was on a coleco-vision, with an Adam expansion module. The kind that loaded cassette tapes. My older sister was learning to program, and, being an arrogant punk, decided that I had to try it myself. It wasn't that hard, since I never really got past control loops, and the like. Still, it was a good exposure to computers and programming (and it was a skill that got me hired for a job programming in basic, back in the Y2K days.)

When I moved in with my father, 4 years later, he had just purchased a brand spanking new 386/8SX. It was blazing fast, had a 10Mb hard drive and 1Mb of ram. It was my father who showed me how to use DOS, Windows 3.0, and to create batch files as well as use many of the early programs available at the time. I was a big fan of windows, and I was the one who pushed hard for us to upgrade to 3.1, when it became available. Still, my father was the trailblazer, and the one who taught me how to use computers and to tame them when they were misbehaving. For years he was my computer mentor.

Somewhere along the line, however, my father decided to stop following computer technology and forgot most of what he'd learned. So long as I was around to help, that worked out pretty well. He left it to me to install the whopping 4Mb upgrade, the modem, and he didn't even watch when I added the sound card. Help was never more than a phone call away - even after moving 5000km away, long distance is a lot cheaper than professional support (and I'd like to think that the quality difference isn't that great.) (-;

Personally, I switched full time into Linux in 2002 (Slackware), and haven't looked back. Slowly, I became out of touch with the windows world, which made my support somewhat less than ideal. The distance meant that smaller problems were often saved up for months at time, with the occasional bi-monthly crisis phone call, so that my 1 week vacations to visit my parents took 3 days of support work - virus removal, upgrades, staring at odd bugs in programs. The usual windows oddities. (My father used to keep a list of "weird occurrences" by the computer to ask my about on my vacations.)

To stop this flood of annoyances, I moved my father to (Fedora Core) linux (dual boot), in 2004, which stemmed the tide of viruses, and changed the nature of the support calls. (Invariably, it was either a modem or printer problem.) There were weird things happening - substituting random windows errors for random Linux errors. The following year, I upgraded to an Ubuntu distribution (breezy), which had just come out. Touted as a much more friendly distribution, it fit my father's work style pretty well, and had fewer bugs. That OS lasted 2 years - and my father tells me he liked it.

Of course, that translated to fewer support calls. And this year, I just upgraded Breezy Badger to Ubuntu 7.10, Gutsy Gibbon. All of the weird printer bugs appear to be gone, networking was easy to set up, wine was able to run his last Windows program (Quickbooks) in Linux, and the new vista computer was upgraded so that Vista was removed entirely. Both computers boot to Ubuntu Linux by default and my father even asked me to remove the old Win2k partition from the older computer: He claims he doesn't need it now. (I figured we should leave it there for one more year, just in case.)

My father actually started pushing for my step-mother to switch to Ubuntu.

What prompted this story, though, is the support call I got from my father this morning - the first in months, really. Just so you don't think my father is a computer guru or anything, the question from my father went something like: "I'm in windows, and we'd like to attach an URL to an email... after I click on attach, what do I do?" (The solution: copy and paste the link from the email I sent him the other day.)

Anyhow, that brings my to my last point. The value of Windows: Now that I have my father running Linux, I don't hear from him so often. I'm going to leave my step-mother running windows, just to make sure I get a few more phone calls, now and then. (-;

Labels: ,

Sunday, December 2, 2007

New Laptop... with a refund?

Well, I took the plunge today. After struggling to get through grad school without a laptop for the past year, I've decided I can't take it anymore. The computer I use at work is an ancient IBM, which does an admirable job of running Ubuntu, but really just isn't up to the tasks I set it. So, with pending conferences, presentations, committee meetings and some serious programming likely in the next few months, I figured I've got shell out the money for a laptop. In fact, I've purchased a Vostro 1000 for $649 CDN... not too shabby, I think.

My plan A was to buy an Ubuntu laptop from Dell Canada, but after waiting for 8 months for that program to come north of the border, I've realized it's probably not going to happen in a time frame I'm comfortable with. It's only for a few select markets. So, I had to kick into plan B: I've bought the laptop, and I'm going to try to get an O/S refund from Dell.

It's not malicious or trying to get revenge - I just don't want to pay for software that I will be deleting straight away, once I turn on the laptop. I think it's wrong to bundle in an operating system, and force you to pay for it - so I'm going to try to get my money back.

This isn't a wild crusade - I have heard of people getting back money from Dell before, anywhere from $10 - $110, with no real regularity to what's received. Such as these links:

here, here, and here.

The internet is full of personal accounts of this working - so I think it's my turn to try. Besides, as a grad student, getting back $100 is worth about 10 hours of my time - I'm willing to give it a shot. Watch out Dell Service Reps... here I come.

Labels: , , , ,

Sunday, January 21, 2007

LAMPS and lampshades

So here's a weird "bug" that I just have to post. First of all, I didn't see this anywhere on the web while I was searching, second, it's just too funny not to post. (Of course, I really doubt most people will see the humour in this.) There were other posts with the same symptoms, but the fixes just didn't work for me.

I've been slowly working on turning my computer in to a web server, so that I can host my own photo gallery, and so that I'll have some space I can work with to develop web pages. Step by step, I've been reading up on security for apache, and modifying my server to lock it down. The last thing I want is to have my computer hacked.

Unfortunately, when I finally took the step of installing gallery2, the photo gallery software, I discovered nothing was working properly. Oh, pages were showing and my security was working well, but gallery2 just didn't want to start up. For that matter, I couldn't even get the test php scripts working. After hours of searching, I finally discovered the key: I had somehow managed to get both apache (1.3) and apache2 running at the same time. My locked down config belonged to apache, while php4 was installed on apache2. So, every time I browsed into the directory with the test.php script in it, I hit the apache 1.3 configuration, which didn't know what php was - hence, it prompting me to download the php file instead of opening it.

the solution? uninstalling apache 1.3, of course. Fortunately, using ubuntu, this took only a few seconds:
sudo apt-get remove apache

leaving apache2 behind. Unfortunately, I now have to redo all of my security fixes, but everything seems to be working.


Saturday, January 20, 2007

Putting Microsoft on Notice

Ok.. Time for a really geeky rant: I've had enough of the FUD (Fear, Uncertainty and Doubt) that Microsoft has been putting out about Linux. I can't get away from it's effects, or the people who believe it.

Unfortunately, there's pretty much nothing I can do about it. I stopped using Microsoft years ago, to get away from that kind of crap. I haven't had windows on my computer since the laptop I bought in 2001. (Which I subsequently replaced with Linux.) All that, to no avail, Microsoft and it's shills continue to pour out the annoying rhetoric. Today's version comes from Microsoft's CEO, insisting that I'm infringing their patents - they just won't tell me which one(s).

We've had an issue, a problem that we've had to confront, which is because of the way the GPL works, and because open-source Linux does not come from a company -- Linux comes from the community -- the fact that that product uses our patented intellectual property is a problem for our shareholders.
- Steve Balmer

Fortunately there is one thing I can do: I can give Microsoft Notice. Hi Microsoft. I AM using Linux. I will continue to use Linux. And yes, I will continue to distribute Linux to all of my friends. If you believe I'm violating your patents, tell me within the next 5 years, otherwise the statute of limitations will bar you from pressing your claims on me, and ANYONE I give a copy of Linux to. So Microsoft, if you would like to send me a seize and desist letter, with some specifics, I'd be more than happy to comply.

Alright Microsoft, while you mull over whether you really have a patent that you'd like me to stop infringing, I'm going to keep on using and distributing my favorite (non-Microsoft) operating system.