I got a "new" bicycle!

Saved from neglect and ultimately being thrown away, this 1990 Miyata 1000LT recently came to be mine.
As you can see from the photo below, all of the rubber (seat, tires, grips, etc.) became rotted a long time ago, the bike is covered in dirt and dust and full of spiders. This bicycle sat unused for a long time before being thrown away.

As it came to me

After a dozen hours of wrenching and some cleaning and lubing it started to look like a real bike again – this picture is from a test-ride where I was deciding if I like it enough to keep. I do enjoy it and have already put over 50km on it.
Most of the parts are the stock Shimano Deore DX grouping. I immediately replaced the brake levers with Tektro’s because I seriously dislike any cabling loops over the top of the bars, and I really like the look and feel of these levers – I have the same on my 1980 Sekine CM-40.

After some TLC

So, I liked the bike enough to start fixing it up as my own ride. Here it is about a week after the above photo. A lot more cleaning, polishing, and lubing have been performed. I replaced the rack with one that has side supports for panniers, it’s a modified Filzer rack that I swapped the arms from a similar rack that fit better on this bike.
There’s a new 7-speed cassette on there, and I replaced the stock pedals with ones I had spare that fit my feet better.
I also put appropriately sized fenders on – the originals where broken and/or mostly missing, and the first ones pictured actually fit on slightly bigger wheels.
Attached to the seat-tube is my portable pump that is at least as old as the bike and has provided reliable service for several decades. I really like the long chainstays the 1000LT has – there’s plenty of room for the pump behind the seat tube, after I added a bit of a spacer to the fender attachment to bring it out closer to the tire. The nearly vertical rear dropouts make it possible to do this with the fender without compromising the ability to remove the wheel.

A week later

Since that photo I have also repositioned the brakes and added a second bottle cage. We’re in the middle of a drought here in Ottawa and it’s been so hot and dry that I usually go through most of a whole bottle of water in an hour of riding.

This is a touring bike, and I have a front rack for it but no panniers small enough to attach to it – yet. My hope is to get myself back in shape for long-distance-riding and do some weekend trips to some of the outlying towns next summer.

Free Linux Antivirus from RPM Repository

Computer viruses are the bane of most system administrator’s existence and an unavoidable facet of modern online life. Most Linux systems however do not have an antivirus included in their repositories.
There are a few reasons why, including the relatively low-level of Linux viruses and the frequent updating of these packages which are generally more agile than the distribution releases. There is a solution I use that I would like to share.

On home systems, like Ubuntu, you can find a great free system called ClamAV through the package manager, however on more stable systems for servers (such as Centos 5) this option is not available.
This does not mean you should forgo the effort to add one – modern viruses are sophisticated vermin that can exploit a users systems and use them to access and propagate on a web server. Script exploits could bring your server to a crawl as they feed viruses to your customers. A good antivirus is a necessity in this modern age.

Thankfully there is an answer – Dag Wieërs maintains an RPM repository supporting several pieces of software, and ClamAV is one of them. There are three steps to making your system secure – first you need to install the ClamAV packages, second you need a custom script to update and scan the system, and thirdly you need to run the script with cron to automate the process. What follows is a step-by-step tutorial for setting this up on a CentOS 5.5 server, however it should work relatively the same for any RedHat Enterprise based distribution.

Part One : Installing ClamAV from Dag’s RPM Repository

The first step is to add the repository entry:

sudo nano /etc/yum.repos.d/rpmforge.repo

In this file add the following code and save the file, then exit the editor:

[rpmforge]
name = Dag Wieers RPM Repository (rpmforge)
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.rpmforge
enabled=0

Next, get the GPG key to ensure you are getting officially signed packages:

sudo wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt -P /etc/pki/rpm-gpg/ -O RPM-GPG-KEY.rpmforge

You should now be ready to install the initial package:

sudo yum --enablerepo=rpmforge install clamd -y

The previous command should also install the ‘clamav‘ and ‘clamav-db‘ dependency packages. If all went well, move on to the next step.

Part Two : Creating a Script to Automate ClamAV

First, lets create a new bash script:

sudo nano /usr/local/bin/clamav-cron

The script should look roughly like the one below, change the notification and alert emails as needed:

#!/bin/bash
#============================================
# Update clam av and initiate a full system
# scan excluding virtual directories
# written by Brian Cantin, 2009-2010
#============================================
# User configuration section
#--------------------------------------------

# Notification e-mail sender (could be fake):
CAV_MAILFROM="support@example.com"

# Notification & Alert e-mail recipients:
CAV_NOTIFY_TO="notify@example.com"
CAV_ALERT_TO="alerts@example.com"

# Log file name and its path:
CAV_LOGFILE="/var/log/clamav-cron"

# Scan target
CAV_TARGET='/'

# Directories to exclude from the scan
CAV_EXCLUDE='/proc|/dev|/sys|/mnt'

#===========================================
# script revision
CAV_VERSION='0.4'

# if the log file already exists - delete it
if [ -e $CAV_LOGFILE ]
then
        /bin/rm $CAV_LOGFILE
fi

# printed on the command line:
echo -e `basename $0` "v"$CAV_VERSION

# to be written to the log file:
echo -e $HOSTNAME - $(date) >> $CAV_LOGFILE
echo -e ------------------------ >> $CAV_LOGFILE
echo -e Script : `basename $0` v$CAV_VERSION  >> $CAV_LOGFILE
echo -e Target : $CAV_TARGET on $HOSTNAME >> $CAV_LOGFILE
echo -e Exclude: $CAV_EXCLUDE >> $CAV_LOGFILE
echo -e ------------------------ >> $CAV_LOGFILE

# update the detection database
echo -e "Update (/usr/bin/freshclam):" >> $CAV_LOGFILE
/usr/bin/freshclam >> $CAV_LOGFILE
echo -e ------------------------ >> $CAV_LOGFILE

# run the scan
echo -e "Scan (/usr/bin/clamscan):" >> $CAV_LOGFILE
/usr/bin/clamscan --infected --recursive $CAV_TARGET --exclude $CAV_EXCLUDE >> $CAV_LOGFILE
CLAMSCAN=$?

# if an error or virus is encountered then send an email to alert address
# otherwise send one to the notify
if [ "$CLAMSCAN" -eq "1" ]
then
        CAV_SUBJECT="[VIRUS] ClamAV ("$HOSTNAME") $(date)"
        /bin/mail -s "$CAV_SUBJECT" $CAV_ALERT_TO -- -f $CAV_MAILFROM < $CAV_LOGFILE
elif [ "$CLAMSCAN" -gt "1" ]
then
        CAV_SUBJECT="[ERROR] ClamAV ("$HOSTNAME") $(date)"
	/bin/mail -s "$CAV_SUBJECT" $CAV_ALERT_TO -- -f $CAV_MAILFROM < $CAV_LOGFILE
else
	CAV_SUBJECT="ClamAV ("$HOSTNAME") $(date)"
	/bin/mail -s "$CAV_SUBJECT" $CAV_NOTIFY_TO -- -f $CAV_MAILFROM < $CAV_LOGFILE
fi

I think this shell script is fairly self explanatory and to the point – it will update the ClamAV software and database, run a full system scan (excluding virtual directories) and email the results to the notification address. To accentuate problems it adds [VIRUS] or [ERROR] to the email subject and sends the email instead to the alert address. You can configure these addresses to be the same, depending on your preferences. Please note you must have /bin/mail configured correctly for the email functionality to work but that is outside the scope of this article.

After creating and saving this new script, make it executable:

sudo chmod +x /usr/local/bin/clamav-cron

You should complete a test-run of your script at this point:

sudo /usr/local/bin/clamav-cron

If all goes well it should complete within a few minutes to a few hours (depending on the size of your file system) and send you an email of the results. If there where any errors, go back and correct them before moving on to part three.

Part Three : Automation

Once everything is working to your satisfaction you can edit the crontab file for a daily activation of the script:

sudo nano /etc/crontab

I added the following line to make the script run daily at 2:30am as root:

30 2 * * * root /usr/local/bin/clamav-cron

Congratulations! Your server is now configured to automatically update your antivirus, scan for threats and notify you in a timely manner, every day.

Same Old Song

I can’t help but wonder how the modern music market is surviving. As long as the Internet has been the de-facto media sharing platform, the industry has been crying foul. They’re losing all their profits so they say.  Profits which I might add that they have been making entirely off the efforts of the artists who get pittance for royalties. Sometimes the artists (Metallica for example) step up and complain as well, and who can blame them? They’re already getting screwed by the record companies and all the free downloading has probably cut into their cash flow. Not that it’s probably hurting Metallica, but it is likely hurting the other artists who aren’t yet millionaires, naturally.

As an aside – I like Metallica – which is to say, I like their music except for the Bob Rock era of pop garbage after the Black album when they stopped being a heavy metal band and sold hard-rock albums to the masses as a Metallica product. Mass appeal isn’t a bad thing on it’s own, but when music is produced solely for that purpose it makes me sick. Artists need to make their living too, but if it degrades the art so severely, what is the point? They might as well get a day job like the rest of us if they’re not going to try anymore – calling modern tracks art is an insult to art itself.

Yet somehow Lady Gaga can put out synth-pop more pretentious than KISS (at least they can actually play their songs live and put on a entertaining show) and produce like sounding tracks for other ‘artists’. How many more of these artificial tracks that the industry is pushing can the general public stand? Sadly, it seems infinite – but every popular music genre has had a time when it reaches critical mass and implodes on itself. I personally hope that time is soon.

It’s happening all over. Rap and hip-hop went from a few pioneers (Dr. Dre, Snoop Dogg, LL Cool J, etc.) and became this huge scene where people pretend to be gangsters (50 Cent, Nelly, etc.) so they can make money rapping about being such thugs – because that was selling really well for NWA, Tupac and Snoop Dogg.
It’s gotten so bad that nearly every song on the pop charts now has the following:

  • a) A rap sequence (if not the whole song)
  • b) Heavily synthesized (ie. digitally pitch corrected) vocals
  • c) Few if any instruments played by a human directly.
  • d) A real song sampled and looped in the background.

I’ll admit, Miss (Mr? There’s so much silly speculation) Gaga’s ‘Poker Face’ has a dancelike beat that you can move to when half intoxicated in a sweaty cluster of also half intoxicated people on a tiny dance floor with speakers so loud the beat is all you can hear/feel. Personally, I used to think Queens of the Stone Age and the White Stripes could save us – but they’ve all formed new bands that are starting to sound the same as the other crap out there… I really hope I’m wrong about this, I really look up to some of these guys as being the last bastions of rock and have paid good money to see them do it live in their old bands.

As long as there’s a ‘new best thing that sounds the same’ situation going on, please excuse me – I’ve just dusted off my record player and ordered a new stylus for it. My cassettes and CD’s are coming out of hiding. I need to spend some time with Mick Jagger, Janis Joplin, Travis Meeks, Kurt Cobain, Billy Corgan, Marylin Manson, and Dave Wyndorf – to name a few – I have a large collection of physical media rivaling my digital collection. I’m doing this to remind myself that music can have passion, creativity and charming minor imperfections which benefit the recordings and make then worthwhile to purchase.

The music industry can rest easy – I won’t be downloading any of their products any time soon. It’s not even worth my time to obtain these over produced tracks for free anymore. If they do manage to scrounge out something listenable – well you know what? Given the crap out there now – I’m not spending a dime on a disc until someone makes an album actually worth my while.

My bottom line to the music industry: Market your product in a format that matches the modern digital era, stop rapping in EVERY damned song, and lose the vocoders that mask bad singers who have the ‘look’ you want to sell… Then I might consider paying for your products again. It’s called market value – obtain some.

Fonyo Jr. Stripped of Order of Canada – When is it Black's Turn?

This story dates back to December 10th, 2009 but has only just now come to my attention. The Governor General of Canada has stripped Mr. Stephen Fonyo Jr. of his Order of Canada due to his criminal convictions.
You can see the notice on the GG’s website here: http://www.gg.ca/document.aspx?id=13497.

I agree that if someone is a recipient of our highest award in the country and they prove themselves morally unfit of that honor they should not have it. However, if Mr. Fonyo Jr.’s award is being stripped due to his criminal convictions, shouldn’t Mr. Conrad Black also be stripped of his Order of Canada? He’s currently halfway through a 6.5 year sentence in a US Federal prison in Florida for millions of dollars of corporate fraud.

From the Governor General’s website:

According to the Article 3 of the Policy and Procedure for Termination of Appointment to the Order Of Canada, a revocation is considered when:

a) the person has been convicted of a criminal offence; or

b) the conduct of the person

(i) constitutes a significant departure from generally-recognized standards of public behaviour which is seen to undermine the credibility, integrity or relevance of the Order, or detracts from the original grounds upon which the appointment was based; or

(ii) has been subject to official sanction, such as a fine or a reprimand, by an adjudicating body, professional association or other organization.

I do believe that being convicted of fraud, paying a $125,000 fine, 78 months in prison, and $6.1million dollars in reparations to Hollinger International (the company he siphoned the money from) counts for all points of consideration listed above. Strip his Order of Canada too!

New YouTube Links

In January this year I hooked up my WebCam and some recording software and made some test videos for YouTube.
The video quality turned out astoundingly bad due to the low-resolution and cheap CCD in my generic camera. I have not made any further videos, pending some hardware purchases to correct the issue.
I do hope to try to do a few more in black and white to see if that will improve the frame-rate for capturing, but ultimately I need a new camera.

In the collection of test videos there are two covers:

The other three videos are original songs I’ve written:

Please check them out, and rate my videos. You can visit my YouTube channel at www.youtube.com/user/standinwater.
For other (audio only) recordings you can visit my streaming audio site on MySpace at www.myspace.com/standingwaterband.