Are you Folding(@Home) on your PS3?

Tags:

All Playstation 3 Models

Today I decided to fire up the Sony Playstation 3 again to get some more Linux hackery done, and noticed there was an OS update on the PS3 side which adds the new Folding@Home Playstation Client to the default GameOS firmware.

In a word: Nice!

As you can see from the statistics, the PS3 is outperforming all of the other systems out there, by several orders of magnitude. I decided to fire it up and see.

The first thing you notice is the very spiffy interface to the Folding@Home client on the PS3 side… it has a real-time 3D globe with all of the active nodes lit up like little dots of light on the map (which you can rotate/zoom with your game controller), and a real-time protein “carbon-chain” configuration zipping and zooming through its calculations.

I’ve only started a few hours ago, but I’m already almost 1/3 of the way through my first work unit. Its beating my AMD64 machines by about 300%. Its very impressive!

Speaking of AMD64 machines, there’s a small problem: Folding@Home doesn’t provide a client for AMD64. They have Intel and Intel SMP clients, which will run on FreeBSD and OpenBSD, but not without a little help.

On AMD64 Linux, you’ll need to install the ia32 libraries (ia32-libs, appropriately enough, on Debian and Ubuntu). If you don’t, you’ll just get a “File not found” error when you try to run the ‘fah5’ binary. This binary lists itself as:

$ file fah5
fah5: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, 
dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped

On AMD64 FreeBSD, you can’t run the SMP Linux client, even in Linux emulation, because it outputs a binary called ‘FahCore_78.exe’, which FreeBSD then cannot parse or execute. That binary lists itself as:

 $ file FahCore_78.exe
FahCore_78.exe: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, 
statically linked, stripped

You’ll need to install the client from the port in ‘/usr/ports/biology/linux-foldingathome’ and run it as “FoldingAtHome”, which (oddly-enough), tries to write to /usr/local/share/foldingathome/. This means if you install this as root from ports (which you probably will), you won’t be able to write to this path as a normal user. You can fix that with some chown(1) mojo, or just run the client as root. Your choice.

But there’s a downside to all of this wonderful Folding@Home CPU crunching… power consumption.

As Carl Nelson details, the PS3 running 24×7 crunching WU for Folding@Home is eating about 138KWh of power. Where I live and work in New London, CT… we’re paying about $0.13 USD for power. If I was to keep this PS3 running 24×7, that’s going to cost me $17.94 extra per-month, just to fold with the PS3. That doesn’t take into account the other power and servers I have running here (several of them also recently added to the team).

But this thing runs VERY hot, especially when folding.

For that problem, there’s a whole new market of PS3 cooling products. This one seems to be the best I’ve seen so far. 4 separate, parallel cooling fans in a mountable bracket that draws the air out of the PS3 and keeps it cool, prolonging its life. It will eat some more KWh, but its probably worth it in the long run.

PS3 Cooling Fan

The irony here, is that you’re not really being eco-friendly by eating 138KWh per-month of the local power grid, but you ARE helping to cure cancer and other ailments… so it can’t be all bad, right?

TrueCrypt on Ubuntu Fiesty Fawn (or later)

Tags:

In a previous blog entry, I described how to get TrueCrypt working on your Linux machine with ext2/ext3 or XFS filesystems.

If you’ve upgraded your kernel, you may run into trouble with the kernel module. You might see an error like the following:

$ sudo truecrypt /dev/sdi1
Enter password for '/dev/sdi1': 
FATAL: Module truecrypt not found.
Failed to load TrueCrypt kernel module

Here’s how to fix it..

If you fetch the latest TrueCrypt source, unpack it, and go into truecrypt-${VERSION}-source-code/Linux (I’m using v4.3 here), and edit ‘build.sh’ in your favorite editor. In this file, you’ll see a check for the kernel source’s .config, that looks like this:

if [ ! -f "$KERNEL_SRC/.config" ]
then
        if [ -f /proc/config.gz -o -f /boot/config-$KERNEL_VER -o -f /boot/config-$(uname -r) ]
        then
                echo -n "Configure kernel source according to the system configuration? [Y/n]: "
                read A
                if [ -z "$A" -o "$A" = "y" -o "$A" = "Y" ]
                then
                        echo -n "Configuring kernel source in $KERNEL_SRC... "
                        
                        if [ -f /proc/config.gz ]
                        then
                                zcat /proc/config.gz >$KERNEL_SRC/.config || exit 1
                        else
                                if [ -f /boot/config-$(uname -r) ]
                                then
                                        cp /boot/config-$(uname -r) $KERNEL_SRC/.config || exit 1
                                else
                                        cp /boot/config-$KERNEL_VER $KERNEL_SRC/.config || exit 1
                                fi
                        fi
              
                        make -C $KERNEL_SRC oldconfig /dev/null || exit 1
                        echo Done.
                fi
        fi

        if [ ! -f "$KERNEL_SRC/.config" ]
        then
                error "Kernel not configured. You should run make -C $KERNEL_SRC config"
                exit 1
        fi
fi

The outermost test is what we need to remove in this file. Simply comment out the first two lines of that block, as follows (unified diff, you can apply this with patch(1) on your Linux system). I’ve bolded the appropriate lines above. Just comment them out, or apply the diff below to patch this file.

--- build.sh.orig       2007-04-15 14:15:10.000000000 -0400
+++ build.sh    2007-04-15 13:25:18.000000000 -0400
@@ -72,8 +72,8 @@
        exit 1
 fi
 
-if [ ! -f "$KERNEL_SRC/.config" ]
-then
+# if [ ! -f "$KERNEL_SRC/.config" ]
+# then
        if [ -f /proc/config.gz -o -f /boot/config-$KERNEL_VER -o -f /boot/config-$(uname -r) ]
        then
                echo -n "Configure kernel source according to the system configuration? [Y/n]: "
@@ -104,7 +104,7 @@
                error "Kernel not configured. You should run make -C $KERNEL_SRC config"
                exit 1
        fi
-fi
+# fi
 
 if [ ! -d "$KERNEL_SRC/include/asm" ] && grep -q modules_prepare $KERNEL_SRC/Makefile
 then

On most machines, you won’t have the full kernel source tree installed… let’s fix that first.

I’m running 2.6.20 here, and the numbers below will reflect that. Replace your running kernel version with that below:

sudo apt-get install linux-source-2.6.20
cd /usr/src/
sudo tar jxvf linux-source-2.6.20.tar.bz2
sudo ln -s linux-source-2.6.20 linux
sudo cp /boot/config-2.6.20-12-386 /usr/src/linux/.config
cd linux
sudo make oldconfig

Now you need to go back into your TrueCrypt source directory and type ‘sudo sh ./build.sh’, and follow the prompts. It may take a long while to build, but let it run and do its work. You should see the following output (your own output may vary, but it should compile the kernel modules and userland tools cleanly.

$ sudo sh ./build.sh 
Checking build requirements...
Configure kernel source according to the system configuration? [Y/n]: 
Configuring kernel source in /usr/src/linux-source-2.6.20... .config:1390:warning: trying to assign nonexistent symbol SATA_INTEL_COMBINED
.config:3548:warning: trying to assign nonexistent symbol RTL818X
Done.
Building internal kernel modules (may take a long time)... Done.
Building kernel module... Done.
Building truecrypt... Done.

Once it builds correctly, you can run the install script:

desrod@purity:/tmp/truecrypt-4.3-source-code/Linux$ sudo sh ./install.sh 
Checking installation requirements...
Testing truecrypt... Done.

Install binaries to [/usr/bin]: 
Install man page to [/usr/share/man]: 
Install user guide and kernel module to [/usr/share/truecrypt]: 
Allow non-admin users to run TrueCrypt [y/N]: y
Installing kernel module... Done.
Installing truecrypt to /usr/bin... Done.
Installing man page to /usr/share/man/man1... Done.
Installing user guide to /usr/share/truecrypt/doc... Done.
Installing backup kernel module to /usr/share/truecrypt/kernel... Done.

That’s it.. you’re done. You should now be able to run TrueCrypt to mount your encrypted drive using my other instructions.

Good luck!

Companies love to ignore copyright law

This morning, I was checking my Google AdSense and Google Analytics statistics, and noticed a bump in the number of hits to my 9/11 Commission Report page.

9/11 Commission Report

I decided to hit the referer logs and look at where the traffic was coming from, which led me to these three company pages.

If you look closely at the first one, they have a copy of the 9/11 Commission Report, nicely annotated, converted to Windows CHM format, available for purchase at $14.95.

Closer examination of a page like this shows that they have some footnote links which link to the footnote index.

Comparing that to my own version, you’ll notice that they are IDENTICAL.

If you compare that to the original 9/11 Commission Report from the .gov site, you’ll notice that these footnotes do not exist at all, and they aren’t in the PDF version either.

Why? Because I created them! I put them there, painstakingly by hand… every… single… one (this is also referenced in my detailed ChangeLog for my HTML version of the report).

I took the PDF version, created a fully semantic, validated version of the content, page-by-page, footnote by footnote, making sure everything met with the highest standards. I then converted it to Plucker format, with the end result that looks very nice on the Palm (I also converted it to iSilo format as well).

They also conveniently used the images I google’d around for, and put in my version. There are quite a few “easter eggs” in the version I have which makes it easy to spot someone who has taken my copy, instead of using the upstream version. I won’t mention what they are, but these three sites are guilty of violating the copyright on the HTML presentation and corrections in my version. They also stripped out the meta tags identifying it as mine, as well as the HTML comment that warns not to steal the work without permission.

They knowingly elected to violate the copyright by taking my work without permission, and are selling it.

One of these companies even went so far as to claim it as their own version, their own creation (and yet, my hidden “corrections” to the original content are mysteriously in their copy).

This morning, I decided to send the three of them a Cease & Desist takedown notice. They have been given 24 hours to remove the unauthorized reproduction of my work, before I begin taking a walk with them through the legal system.

This email is to notify you that you are henceforth forbidden from redistributing, selling or promoting derivative copies of my works, specifically the “9/11 Commission Report” as referenced here:

http://www.[…]

Failure to remove this work from your website and all partner websites within 24 hours will result in direct legal action against your company for copyright violation as well as other applicable laws, and proper financial restitution will be assessed at that time.

As the original author of the HTML work you have stolen my without permission, I take direct issue with your redistribution of my work.

Prior authorization is required by the license which you agreed to when you decided to download, convert and/or sell the work as your own.

Please feel free to contact me to discuss your options.

I have quite a bit of experience chasing down copyright violations.

I am not happy about this, but I will be vindicated, as always…

A 10 year relationship ends quietly

Yes, I’m sad to see her go.

She’s been with me for 10 years.

We’ve been through a lot together.

We moved across the country together, and then we moved back.

She’s supported me through many tough times, and carried a heavy load when I couldn’t do it myself.

I treated her well, and we never had any trouble. When she was feeling ill, I’d take care of her and nurse her back to health.

I’m talking, of course, about my 1987 Jeep Comanche pickup truck (that’s really her in the photo below)…

My faithful 1987 Jeep Comanche Pickup

Not a spot of rust, not a single dent, nothing at all wrong with her, and at 129k miles, she’s still running solid. She’s a bit of a tough starter in the cold, but what 20 year old truck isn’t?

But I had to trade her in. It was time.

The dealership gave me $2,000 for her as a down-payment on a new vehicle. They’ll probably just sell her for scrap, but she deserves more than that. Maybe a collector will scoop her up and keep her alive… I certainly did.

If the funding comes through, I’ll be the proud new owner of a 2003 Chevrolet Avalanche, which looks something like the photo below:

2003 Chevrolet Avalanche

I don’t drive much, but this suits my driving and recreation tastes perfectly. It’s completely reconfigurable, so I can use it as an SUV, or a full-size pickup, or for a quick ride into the woods for camping or mountain biking, or whatever I want. It has enough room for Seryn and her friends, or myself and 6 of my friends, or whatever I want to carry.

It was time to get into this century and get a new vehicle; something safe and reliable.

It was sad to see my old truck go, but this one should last me just as many years.

TrueCrypt on Linux HOWTO with XFS and ext2/ext3 volumes

Encrypted drives with TrueCrypt and Linux

I use encryption.

A lot.

I don’t really have a convenient way to use encryption for the backups I use when I store them offsite at “The Vault“, and my backups have become too large now to fit conveniently on a single or double DVD.

Here’s what I was previously doing:

mkisofs -v -o ${DATE}_backup.iso -RU --joliet-long  \
        -input-charset iso8859-1 -cache-inodes      \
        -hide-joliet-trans-tbl -hide-rr-moved -f .

gpg --encrypt --recipient 'David A. Desrosiers'     \
        ${DATE}_backup.iso

From here, I get a file called 03-02-2007_backup.iso.gpg, which I burn to DVD. The gpg-encrypted file is about 60% of the size of the original. This means if I have a 6gb .iso file, I get a 4gb gpg file I can then burn to DVD for backups.

But now, my backups and my data is too large to fit on a single or multiple DVDs, so I decided to use one of my 500gb PATA drives, TrueCrypt the whole drive, rsync my data to the drive, close the TrueCrypt volume, and transport that to the vault offsite.

Since TrueCrypt works on Windows and Linux, I can use the same drive and volume on both systems. What I can NOT do, is use a FAT filesystem on the encrypted volume, if I want to store my Linux filenames and data on it.

Here’s how that works (all user input is bolded). Note, for a drive of this size (500G), it will take a VERY long time to format (at least 14 hours):

$ sudo truecrypt --create
Volume type:
 1) Normal
 2) Hidden
Select [1]: 1

Enter file or device path for new volume: /dev/sde1
Filesystem:
 1) FAT
 2) None
Select [1]: 2

Hash algorithm:
 1) RIPEMD-160
 2) SHA-1
 3) Whirlpool
Select [1]: 3

Encryption algorithm:
 1) AES
 2) Blowfish
 3) CAST5
 4) Serpent
 5) Triple DES
 6) Twofish
 7) AES-Twofish
 8) AES-Twofish-Serpent
 9) Serpent-AES
10) Serpent-Twofish-AES
11) Twofish-Serpent
Select [1]: 10

Enter password for new volume '/dev/sde1': 
Re-enter password: 

Enter keyfile path [none]: Hit ENTER

TrueCrypt will now collect random data.

Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: y

Please move the mouse randomly until the required amount of data is captured...
Mouse data captured: 100%  

Done: 512.85 GB  Speed: 10.03 MB/s  Left: 0:00:00  
Volume created.

You’ll notice a few key things in here:

So now we have an encrypted 500GB drive, /dev/sde1 in this case, ready to be mounted, formatted, and have data copied to it.

Let’s do that. To do this, we need to mount the volume through truecrypt as follows:

$ sudo truecrypt /dev/sde1
Enter password for '/dev/sde1': 

To check the volume, do the following:

$ sudo truecrypt -vl
/dev/mapper/truecrypt0:
 Volume: /dev/sde1
 Type: Normal
 Size: 501988772864 bytes
 Encryption algorithm: Serpent-Twofish-AES
 Mode of operation: LRW
 Read-only: No
 Hidden volume protected: No

The next step is to format that volume with the fs of choice. Depending on what you plan on putting on it, XFS, ext or ext+journal (ext3) will be fine. I’d recommend staying away from ReiserFS, based on my personal experiences with it. You WILL lose data if you use it.

Now we can mount with truecrypt’s passthrough to mount(1) it and begin formatting it (this example below is for a 100M test file for this blog post, not the 500G drive I am using in production):

$ sudo mke2fs -j -m0 /dev/mapper/truecrypt0 
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
25688 inodes, 102396 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

I usually immediately run a fs check on the drive. To do that, do the following:

$ sudo tune2fs -C400 /dev/mapper/truecrypt0 
tune2fs 1.39 (29-May-2006)
Setting current mount count to 400

Followed by:

$ sudo e2fsck -C -f -y /dev/mapper/truecrypt0  
e2fsck 1.39 (29-May-2006)
/dev/mapper/truecrypt0 has been mounted 400 times without being checked, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure                                           
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/truecrypt0: 11/25688 files (9.1% non-contiguous), 8914/102396 blocks

Now we must unmount the truecrypt volume and remount it with truecrypt again to begin copying data to it, and we’ll use rsync to do that…

$ sudo truecrypt -d /dev/mapper/truecrypt0

We mount it again, which prompts us for our password:

$ sudo truecrypt /dev/sde1 /mnt/external
Enter password for '/dev/sde1': 
cd /
sudo rsync -avSP --delete root etc home var user@localhost:/mnt/external/System\\\ Backups

That last command may look a bit odd, since we’re just doing it on the same physical machine, but there seems to be an issue with stacking local directories that are rsync’d to a mounted local directory, so I add the user@host to make sure its done correctly. Also note that “System Backups” doesn’t exist yet; rsync will create it. The three backslashes are necessary to escape the space. Not two, not four, it must be three.

Once the rsync is done, we can unmount it with standard umount(1):

$ sudo umount /mnt/external

One more check of the drive to be sure the data is intact:

$ sudo e2fsck -C -f -y /dev/mapper/truecrypt0

And now we can unmount it with TrueCrypt:

$ sudo truecrypt -d /dev/mapper/truecrypt0

That’s it. It seems like a lot of steps, but once it is done, it should “Just Work(tm)”

Some final notes: If you want to use XFS, you can use the same device that we used to format it to ext3, but just use the ‘-f’ argument to XFS to force the format.

If you want to use ext2 for raw speed, no journaling on the drive, you can just omit the ‘-j’ option that I used to format it, or you can use ‘mkfs.ext2’. Likewise, if you want to use ext3, you can use ‘mkfs.ext3’. I generally just use the “old-school” method, “mke2fs -j”.

Look up the other options I’m passing here in the requisite manpages to understand what they do (tunefs, mke2fs, etc.)

There’s another site that describes how to make a hidden TrueCrypt volume on Linux in great detail if you’re interested in an alternate approach to TrueCrypt on Linux. Give it a read and use the one which suits your needs best.

Have fun!

Bose Quiet Comfort 3 is less then 2

Tags: , ,

Another post in a series of “De-evolving Technology Products

I used to own a Bose QuietComfort v2 headset. I loved it when I flew back and forth across the country, even without music plugged in. It actually does make me less fatigued when I disembark from the plane after having used them for most of the flight. I don’t have that draining, exhausting airplane engine noise in my head, and my ears don’t have to work harder to try to cancel it out as background noise.

Bose QuietComfort v2 Headphones

But after about 1 year of very careful use, the rubberized cups surrounding the ear pieces, started to “degrade”. It was as if the rubber itself had reached its half-life, and was turning into this flakey ooze that would peel away from the headphones.

Of course, the warrantee from Bose covers every single part of the headphones, EXCEPT the primordial ooze degradation of the rubberized headphone cups. You can’t purchase replacement cups either, even if you wanted to.

So after 1 year of use, your $300.00 Bose QuietComfort noise cancelling headphones are now rendered useless, garbage, and the only resort is to throw them away. They’ve recently updated the design of the v2 version, but it may still suffer from the same problem.

When did expensive technology become so disposable?

Looking for an upgrade, I spied the QuietComfort v3 headphones. The reviews for these are mediocre at best, but they are lighter, smaller and potentially better than v2.

Bose QuietComfort v3 Headphones

Boy is that assumption wrong! Let’s go over the basic features of the v2:

QuietComfort v2 Features

  • Uses an external controller box
  • Around the ear design to help isolate incoming sounds
  • Very light in weight
  • Uses a standard pair of AAA batteries
  • Works without a player attached to the other end
  • When the batteries die, you can still use them as “normal” headphones

And now let’s see why the v3 is WORSE than the v2:

  • Heavier, even though they’re smaller
  • Proprietary, expensive rechargeable battery. No AAAs, and requires purchasing a proprietary international charger to keep it going if you buy a second battery (necessary for long flights)
  • When the battery dies, so does the music
  • On-the-ear design means more sounds get in, and the noise-cancelling drivers must be louderto compensate for ambient noise leaking in.
  • Less comfortable to wear on the ears
  • Noise cancelling feels “artificial” compared to the v2. Not as good as the v2.

I picked the v3 items up from a few reviews I found, including this detailed review. I can only speak for the v2 headphones that I’ve personally owned.

But based on the higher price, lower quality, heavier weight, proprietary battery and lack of flexibility.. I’d stick with my v2’s or some other vendor’s model of NC headphones.

There are plenty of other headphones that will fit the need and some at less than 1/4 the cost of the Bose. Seek them out and stay away from Bose for these two models. Perhaps the v4 or v5 will solve the problems with price and convenience, but one can never be sure.

Linksys is still stuck in 1997

Tags: , , ,

One post in a series about De-Evolving Technology Products.

I’m not sure why, in 2007, we have technology companies producing products that do NOT have a dual-switching power supply with their hardware. Case in point, the Linksys WRT54GX2

Linksys WRT54GX2

This lovely piece of hardware has never powered up for me since I purchased it. The PSU that they ship with it, only works on 120v, and failed to function when I used it in Australia when plugged into my inverter and voltage converters. Everything else I had with me worked flawlessly, except this device.

Examining the PSU case closely, I noticed that it only supports 120v~ 60Hz 220mA.

Is this 2007? Or 1997? The cost difference between a 120v only supply and a dual-switching supply is about 0.03 cents. Why would they scrimp on this, for mere pennies? Very frustrating, and left me without a wireless bridge for my colleagues while I was stuck in a hotel without any Internet access (well, they had Internet access, but it was $2.00 AUD/15 minutes).

I’m going to try to find a replacement PSU for this, and hope that I don’t have to send it back to Linksys for warrantee replacement. The part number is T481210RO3CT from a company called “Leader Electronics, Inc.” (Taiwan, of course)

When flying, please keep your shoes on!

I fly alot. Not as much as some colleagues of mine, but I do fly quite a bit. I like to travel.

I also like to get deplane each flight in good health, rested and ready for the work of the day. I don’t like getting off of a plane sick, stuffy, sneezing and with additional bacteria or viruses floating around in my nasal cavities or my lungs.

Keep your DAMN SHOES ON!

One thing I can’t stand, is when I’m on a flight, of any length, and people just decide to kick off their shoes, stretch out their feet, scrape and scratch them on the armrest in front of them, rub them back and forth on the carpet below your seat or worse… take their socks off and walk up and down the aisle like this.

Seriously, STOP! Leave your shoes and socks on, when you fly!

There is some good evidence that shows what happens when you take your shoes off, cough, sneeze and other things within the confined airspace of an airplane. You and 247 of your closest friends, for multiple hours of confined air, at a time.

It’s not just the air either.

When you’re on a flight and you add the stress of pressure changes on the human body, bad or expired food, and the dehydrating effects of the climate control system, your body can really be compromised. Also, your body can’t digest as well at higher altitudes, so that nice “gourmet” meal isn’t going to get absorbed until you land..

Let’s also not forget that you’re getting ten times LESS air than the pilots get. You can ask the flight attendants to provide you with more fresh air and less recirculated air, if it bothers you.

No new air enters the cabin from the time you leave the runway until the time you enter your destination terminal. If you’re on a 15-hour flight to Australia (as I was recently), that air in the plane is the same air that was in it when you took off from the runway. Lovely.

Did you also know that First Class passengers receive 3 times more air than Economy (“cattle class”) passengers? Is the increased cost worth the extra, clean air? Maybe. You can read all about this and more online on the The Airliner Cabin Environment and the Health of Passengers and Crew book. Some shocking revelations in there.

There’s quite a bit of information on airline and airplane air quality… all without even having the added feature of people’s Athlete’s Foot being scraped off onto the rug and ground in as people track it up and down the aisles.

Airplanes in general, are horribly disgusting and dirty. Did you know that airlines do NOT change or clean the blankets between flights? That’s right.. the blanket you were just sleeping on for 4 hours, is the same one the obese person was drooling on during the last flight, folded back up nicely and put in its plastic bag so you are none the wiser.

The next time I see people with their shoes off on a plane, I’m going to either step on their feet, or spill soda or juice on their socks. I’m getting tired of the health issues as a result of fat, obese, lazy people who insist that the airplane is their livingroom lounge chair.

Proven Stress Reducers

Stress and 52 ways to reduce it

As someone who has a LOT of things going on (where “a lot” is indexed to several hundred separate, unique tasks per-week), I found this list pretty interesting.

52 Proven Stress Reducers has some interesting ideas, including some of the obvious ones:

  1. Get up fifteen minutes earlier in the morning. The inevitable morning mishaps will be less stressful.
  2. Prepare for the morning the evening before. Set the breakfast table. Make lunches. Put out the clothes you plan to wear, etc.

But there are others that aren’t so obvious:

  1. Procrastination is stressful. Whatever you want to do tomorrow, do today; whatever you want to do today, do it now.
  1. Do unpleasant tasks early and enjoy the rest of the day.
  2. Delegate responsibility to capable people.

Overall, a great list.

I’ve loaded it onto my Palm in Plucker format so I’ll always have it with me, on-hand.

The Spam that Failed

I have to laugh… this was a spam that I received a few days ago in my Inbox, and it looked exactly like this:

%TO_CC_DEFAULT_HANDLER
Subject: %SUBJECT
Sender: "%FROM_NAME" <%FROM_EMAIL>
Mime-Version: 1.0 
Content-Type: text/html
Date: %CURRENT_DATE_TIME

%MESSAGE_BODY

The full message source looked like this:

Return-Path: 
Received: from steel1.ntsias.ru (steel1.ntsias.ru [85.119.72.170] (may be
        forged)) by aphrodite.gnu-designs.com (8.13.5/8.13.6-SELinux) with ESMTP id
        l0OAL0ka030186 for ; Wed, 24 Jan 2007 05:22:31 -0500
Date: Wed, 24 Jan 2007 05:22:30 -0500
Received: from 192.168.0.%RND_DIGIT
        (203-219-%DIGSTAT2-%STATDIG.%RND_FROM_DOMAIN [203.219.%DIGSTAT2.%STATDIG])
        by mail%SINGSTAT.%RND_FROM_DOMAIN (envelope-from %FROM_EMAIL)
        (8.13.6/8.13.6) with SMTP id %STATWORD for <%TO_EMAIL>; %CURRENT_DATE_TIME
Message-Id: <%RND_DIGIT[10].%STATWORD@mail%SINGSTAT.%RND_FROM_DOMAIN> 
To: undisclosed-recipients:;
X-gnu-designs.com-MailScanner: Found to be clean
X-MailScanner-From: mahsa_63m@yahoo.com
X-DSPAM-Result: Innocent
X-DSPAM-Processed: Wed Jan 24 05:25:17 2007
X-DSPAM-Confidence: 0.5479
X-DSPAM-Probability: 0.4572
X-DSPAM-Signature: 1,45b7340c303424106420558
X-Evolution-Source: imap://hacker@mail.gnu-designs.com/
From: 
Subject: No Subject
Mime-Version: 1.0

%TO_CC_DEFAULT_HANDLER
Subject: %SUBJECT
Sender: "%FROM_NAME" <%FROM_EMAIL>
Mime-Version: 1.0 
Content-Type: text/html
Date: %CURRENT_DATE_TIME

%MESSAGE_BODY

How funny that it made it through like that, without any attempt at filling in the data. dspam, like the proper anti-spam crimefighting tool that it is, happily passed this straight on to me, because it knew I would be interested in it.

Funny how stupid spammers are these days.

Bad Behavior has blocked 860 access attempts in the last 7 days.