Tuesday, March 18, 2008

Now Using Greylite

In this old post, I spilled the beans on my new and improved spam filtering triple play: dspam, qgreylist and RBL checking. Overall, the system has worked well over the last four months, though I have noticed the increasing volume of spam showing up in my spam folder.

I suspected that the very simple form of greylisting implemented in qgreylist was the culprit, and after a bit of investigation, I found out that this indeed was the case. So, I set out to see if there was another greylisting implementation which could be used in my qmail installation.

Using my google-fu, I quickly zeroed in on Greylite. After reading up on it, I found that it held several advantages over qgreylist:
  1. Written in C instead of perl, so it should perform a bit snappier and be less of a burden on the mail server.
  2. Instead of only considering the IP address of the sender as qgreylist does, greylite considers the complete triplet of {IP address, from, to} before validating an IP address.
  3. All data is stored in a single sqlite3 database, whereas qgreylist stored the verified IP addresses as files in a single directory, which clutters the filesystem and increases access time in that directory as more IPs are validated.
  4. Greylite appears to have some enhanced functionality called `tuning suspicion' which allows you to customize how it behaves in certain circumstances.
To install it on my debian box, I first had to install sqlite3 (and the associated development libraries). Then, I downloaded the source code and followed the simple directions that came with it.

Less than 5 mintues later, and the server was up and running with its new greylisting implementation up and working perfectly. Flawless victory!

Thursday, March 13, 2008

Baseball Season Update

So, here we are over two weeks into our little league baseball season - how is our team doing? Well, we have 0 wins and 4 losses, so one could make the argument that we are not doing too well. I would have to agree.

The kids seem to be having a good time, however. So long as they continue to enjoy the game and improve over the course of the season, I'll be content. Wish us luck!

Tuesday, February 26, 2008

By Request - My dspam Training Script

In a post I made about one year ago, I mentioned a script which I created which trains dspam to recognize missed spam email, and corrects it when it falsely identifies a good ( or "ham") email as spam. Someone has requested that I post that script, so here it is. Please note that my qmail installation uses the maildir format!

--- start file: train-spam.sh ---
#!/bin/sh

# train-spam.sh
#
# Description: Checks each user's /home/Maildir/.Spam.Missed
# directories to see if the user placed any "missed" spam
# messages which got through SpamAssassin to their INBOX.
# If there are messages in this directory, then the script
# invokes sa-learn to update the site-wide tokens to try
# and improve the defenses for next time...
#

# learn_spam - Function which takes a directory and a user as
# arguments, and then feeds that directory to our anti-spam
# applications for further SPAM training.
#
# Arguments:
# $1 - Directory name containing SPAM emails. Required
# $2 - User name. If it is not provided, $USER will be used.
#
# Example:
# learn_spam /home/alank/Maildir/.Spam.Missed/cur alank
#
function learn_spam {

# loop through all emails in given directory
for email in $(ls $1); do

# process SPAM email using DSPAM
/usr/local/bin/dspam --mode=teft --source=error --class=spam --feature=chained,noise --user $2 < $1/$email
echo -n "."

# delete SPAM email
rm $1/$email

done # end of email loop

} # end function learn_spam

# learn_ham - Function which takes a directory and a user as
# arguments, and then feeds that directory to our anti-spam
# applications for further HAM training.
#
# Arguments:
# $1 - Directory name containing HAM emails. Required
# $2 - User name. If it is not provided, $USER will be used.
#
# Example:
# learn_ham /home/alank/Maildir/.Spam.NotSpam/cur alank
#
function learn_ham {

# loop through all emails in given directory
for email in $(ls $1); do

# process HAM email using DSPAM
/usr/local/bin/dspam --mode=teft --source=error --class=innocent --feature=chained,noise --user $2 < $1/$email
echo -n "."

# delete HAM
rm $1/$email

done # end of email loop

} # end function learn_ham

#
# Script starts here!
#

# loop through all user home directories
for file in $(ls /home); do

# if there is a Spam/Missed maildir
if [ -d /home/$file/Maildir/.Spam.Missed/cur ]; then

# then process any missed SPAM
echo -n "missed spam for $file: "
learn_spam /home/$file/Maildir/.Spam.Missed/cur $file
learn_spam /home/$file/Maildir/.Spam.Missed/new $file
echo ""

fi # end if

# if there is a Spam/NotSpam dir
if [ -d /home/$file/Maildir/.Spam.NotSpam/cur ]; then

# then process any falsely identified spam, i.e. HAM
echo -n "false positives for $file: "
learn_ham /home/$file/Maildir/.Spam.NotSpam/cur $file
learn_ham /home/$file/Maildir/.Spam.NotSpam/new $file
echo ""

fi # end if

done # end for loop

echo "Done!"
--- end file:
train-spam.sh ---

I place the above script in /root and create a cron job to run it every day in the early morning. You will need to edit some parts of the script if your missed spam and not spam directories are named differently. Good luck, and I hope it is helpful in your continuing battle against spam!

Yes, I Am Still Here

A bit dusty, eh?
Wow - it's a little dusty around here, isn't it? I haven't updated the ole' blog in months, and every time I did think about updating it, I said to myself, "but it's been so long!" That is a nice self-perpetuating situation, so now it's time I break free from the shackles of stupidity and update the damn thing.

I am very well aware that I still need to post pictures up from last summer's vacation, but those will have to wait for another day. Instead, I'll try to catch you up with what has happened over the last four months or so.

Little League

As I may have mentioned previously, I am on the board of directors for our local little league. Finding volunteers is always a challenge, as many people are just too busy (or unable) to help out. I have managed my son's team for the last three years, and really enjoyed it and the kids and parents in the community that I have been lucky enough to meet and get to know. Since the league was in dire straits to find a new board, I volunteered as the information officer.

It has been a lot of work, but overall, I think it is worth it. The people on the board are all good people, doing their best to make sure that the kids of our community have the opportunity to baseball in a safe and fun environment. I have spent late nights at monthly board meetings, weekends doing sign-ups and field prep work, and time during the day responding to board emails and the like.

I am not managing this year, and am instead, merely coaching. It's sort of driving me nuts not being in control, but I'll get over it.

Christmas

I took my normal two weeks off after Christmas, and promptly got sicker than I was all year. During the coarse of 2008, I took two sick days off from work. While on vacation, I was bed ridden for nearly three days. That'll teach me...

Other than that, we had a very nice Christmas and New Years. No Christmas cards were sent this year, due to the ebola plague that swept through the house. I like to think of it as a minor inconvenience to our friends, and a minor bonus for the tress.

Tech-talk

The day after Thanksgiving, I braved Fry's and purchased parts for a new computer at prices almost too good to be true. Actually, they were too good to be true because of those damn rebates. Here it is, four months later, and I am still waiting on my final rebate to arrive from Abit.

The system is an Intel Core Duo 2.6 Ghz machine with 2 GB ram, and nice Nvidia video card, and a decent SATA hard drive. It plays Team Fortress 2 beautifully, and I haven't really bought any other recent games due to time limitations. It should last me for the next couple of years easily.

So, that is a very brief update of what I've been doing over these last few months. I'll try to update the blog a bit more regularly as time and obligations permit.

Tuesday, November 20, 2007

The War on Spam

It was earlier this year that I last detailed some steps taken in an attempt to thwart the growing junk email (a.k.a. SPAM) epidemic. dspam has continued to work like a champ, with an accuracy rate currently standing at 99.13%.

However, the volume of spam continued to increase, almost as inevitable as the rising tide. I didn't let it bother me too much, as I could simply delete the messages sent to my spam folder, although I had to admit that looking through all of those messages for false positives was getting a bit tiresome.

And then it happened... The event that moved me past the tipping point, and thrust me forcefully back tot he front lines of the war on spam. The event seemed innocent enough: I went to send an email, and our smtp server (qmail) did not respond. wtf?

I shut down qmail, restarted it, and it seemed to work for a while. However, after an hour or so, the same problem arose. wtf?

Looking at the process list, I noticed that there were 40 qmail-smtpd processes running. What were they trying to send? Time to get my hands dirty and learn a bit about qmail's queue. I read a bit on the queue, and installed a tool called qmqtool. By using this new tool, I discovered that I had over 6,000 messages awaiting deliver in my mail queue!

Why so many? Because for every spammer that sends an email to a bogus address, a mail server will craft a bounce message and attempt to send it back to the (usually faked) sender. Gah!

As a first step, I decrease the queue lifetime to 24 hours. After 24 hours, any message still left undelivered in the queue would now be deleted. Then, I cleaned out the queue and restarted qmail. It worked!

...for a while. Ok, so let's do some more furious reading on the subject of spam prevention in the qmail environment. First of all, I needed to increase the maximum number of qmail-smtpd processes which were allowed to run simultaneously by tcpserver. By adding a "-c 400" to the tcpserver command used to execute qmail-smtpd, I increased the maximum number of simultaneous connections from 40 to 400. That ought to be a good start.

Now, how else can I decrease the volume of spam? I had heard of greylisting before, and thought that it might be a good next step. Luckily, there is a simple greylist implementation for qmail called qgreylist. It installs fairly quickly, and does a fairly good job. However, it is written in perl and with all of the spam emails flowing in, it can cause a bit of a performance hit.

So, maybe there is something another check I could do before sending the incoming email to qgreylist? How about an RBL check! When another computer attempts to deliver an email to our mail server, the RBL (Real-time Blackhole List) check sees if the sender's IP address in a list of know spam servers. If it is, then the connection is dropped and the email never even is seen by the greylist app.

With the above changes made to our mail server, I am now receiving about 10% of the spam volume that I was before the changes were made. Furthermore, our remote queue sits at a fairly steady level of 400 messages.

Only time will tell for how long this solutions will suffice! Wish me good luck and my email godspeed!

Sunday, November 11, 2007

Upgrading to Ubuntu 7.10 - Gutsy Gibbon

As mentioned in previous postings, I use Ubuntu as a desktop OS both at home and at work. At home, I have had Dapper Drake installed on an older Dell Inspiron laptop with a D-Link DWL-650+ wireless PCMCI networking card, which functions perfectly. The kids will even hop on it to browse the web with Firefox or write a paper using OpenOffice.

At work, I have a dual Opteron Dapper Drake box on which I do any Linux and/or C based development. It has been rock solid for well over a year. I also recently installed the 64-bit version of Feisty Fawn (7.04) on a spare AMD64-3200+ system to test 64-bit development using Free Pascal.

When I heard Ubuntu 7.10 was released, I looked through the notes and thought that it might well be time to upgrade my Dapper boxes, as Firefox was getting rather long in the tooth (the Dapper version being stuck on the 1.5 branch), and I also wanted to investigate mono development (more on this in another post!). Since mono development is still rapidly evolving, I wanted to look at a recent distribution.

The first box I went to upgrade was the AMD64 system. I had little to lose on the system, and so elected to do a clean install, nuking the previous distribution. Everything installed smoothly, so I played around with the distribution for a while to see what was new.

The installer had detected the motherboard's integrated Nvidia video controller, and offered to install the restricted driver for me to increase performance. I accepted, then turned on some of the flashy desktop effects provided by compiz, and was pretty impressed with some of the flash and sizzle. To get finer tuned control over what compiz does and does not do, I installed the compizconfig-settings-manager using synaptic.

Next check - Firefox and the network. The integrated NIC was detected and automatically setup - no work necessary on my part (since I recently switched our work network to providing DHCP addressing). Firefox seemed to work well, and when I visited a page that used Flash, it offered to install the 32-bit flash plugin with all of the necessary wrappers and libraries so it could be used in my 64-bit Firefox. Until Adobe can provide a 64-bit flash plugin, this is the next best thing and it worked flawlessly.

Ok - the box looks and works well, so it was time to test the next system in my parade of installs. Hmm... Let's try the laptop at home. I burned a live cd of Gutsy and took it home. I booted up the laptop with the CD, and wireless networking was dead - frak! This has been a problem with this laptop for the last three ubuntu releases. I decided to come back to the laptop at a later time.

Next stop - the dual opteron development workstation. What to do, what to do? I didn't want to do a clean install this time, being a somewhat lazy sob. I decided to back up my important files to another computer and do an inplace upgrade from Dapper to Edgy, then from Edgy to Fesity, and finally from Feisty to Gutsy. This seemed to me to be somewhat risky, but I wanted to see how Ubuntu fared when doing inplace upgrades. If it came through THREE upgrades, well that's a pretty damn strong endorsement.

So I first upgraded from Dapper to Edgy by following the instructions here. It took a while, I had to confirm a couple of file overwrites, and about 3 hours later it said it was done. Reboot the machine, and all looked well. Did it again for Edgy to Feisty, and one more time for Feisty to Gutsy.

Once the upgrade to Gutsy was done, I took a close look at the system. Compiz was not working, and I found tha I needed to install xserver-xgl for compiz support. Fonts were a bit tweaked, but I managed to get them workig with a couple of corrections to the FontPath section of the file /etc/X11/xorg.conf.

Overall, I was *very* impressed with the three distribution upgrade. This gave me the confidence to try it with the laptop at home, and so I did. To make a long story short, I am now writing this post from the Dell Inspiron upgraded to Gutsy, with wireless networking and flashy desktop effects turned on. It's not super speedy, but once things are loaded into memory, everything runs swimmingly.

I just checked fonts in emacs, and they are fairly screwed at this point in time. I may have to check out my font paths on this system, and if I recall correctly, I had to change the default fonts emacs uses to get non-horrid looking fonts on the dual opteron system.

Friday, September 21, 2007

Mammoth Lakes Vacation - Part 1

Wow, have I been slacking off on the blog lately, or what? I've been very busy at work and at home this last month, so please pardon the virtual dust gathering around here.

For our family summer vacation this year, we decided to rent a trailer and go camping up in the Mammoth Lakes area. There are many of campgrounds in the area, and quite a few activities to keep us busy.

Our trip up was fairly uneventful. We a made a quick stop in Lone Pine to stretch our legs, and take in the beautiful view of Mt. Whitney.



After that brief stop, we grabbed lunch in Bishop and then made our way to Mammoth Lakes and our remote campground. The wilderness up there is just pristine, with jaw-dropping views surprising you around each new bend in the road.



I took the kids fishing for the first time, but we were skunked. From what I understand, it is best to avoid the easy-access lakes, as they are fished heavily. Even though we didn't hook up anything, the kids had a good time trying their hand at it.


It was odd seeing Mammoth Mountain without snow, as I had never been up in this area during the summer. It is a truly beautiful area, and I bet we make our way back up here sometime in the near future.


I'll have parts 2 and 3 coming up in the next week or so. To see more photos from this picture set, click here.

Monday, August 27, 2007

Back in the Saddle Again Surf Report

Well, well, well. Three weeks have flown by since my last post on the trials and tribulations visited upon me by my calf muscle, and I have been lax in my blogging. Or perhaps more important things have pushed it down to the bottom the queue - you make the call.

First of all, my leg is healing up nicely. It was relatively painful and inconvenient for two weeks, and then the pain and swelling subsided to almost nothing. My calf is still very tender if I rest it on the muscle, so I try to avoid doing that.
Patient - "Doctor, it hurts when I do this."
Doctor - "Then don't do it!"

Thankful for the near super-human healing capacity of my body, I decided that today was the day I would tempt fate and go surfing again. I rationalized that the calves don't get too much work while surfing, as it is mostly an upper-body type of activity.

The water was extremely nice, and I surfed well for having been dry docked for the last three weeks. I didn't tweak my leg in the least bit, so I am officially not a lazy slob any more. Or so I claim.

What else has been going on? Well, all three kids are in soccer, which results in six practices per week over four days (we get Fridays off for good behavior, I guess) and three games on Saturday. Yes, my wife and I are very busy. Yes, we enjoy watching the kids practice and play. Yes, it is all good.

We also went on vacation several weeks ago, up to the Mammoth Lakes area. Once again, I know I am derelict in my duties, and will try and get some pictures up sometime in the next week or so.

Monday, August 06, 2007

Torn Calf Muscle Redux

Could it only be just over a year ago when I first tore my right calf muscle? What I find most interesting is that this article has generated the most search hits on my blog - over 35%. Also of interest is that this spring and early summer, I noticed the frequency of these search hits increasing.

I guess this makes quite a bit of sense, as the weather improves and people get outside more frequently and over-do stuff. So, if you are one of those people who arrive here via a search for "torn calf muscle", welcome! Please leave a comment on how you injured yourself (accident, sporting, shark bite, etc.) and what your recuperation and recovery experience was. Especially helpful would be stretches to loosen up the ole' calf muscle to prevent this from happening a third time.

"Did he say third time?", I hear you mumble? Why, yes I did. However, this time it was the left calf muscle. Thus, it seems as if the universe has balanced out my damaged lower leg muscles once and (hopefully) for all.

We were at opening day for the Vista Soccer Club, and all three of our kids are playing this season. Besides team pictures, there are several booths there for the kids and/or adults who still think they are kids (that would be me).

My son ran a timed sprint, and set the record for his age group at that early hour. He encouraged me to give it a try, and I did so, even though my left calf had been bitching at me for several weeks that something just wasn't right. I didn't stretch, warm up, or do anything to remotely warn my calves what I was about to ask of them.

Two steps into the sprint, and I feel a pop in my left calf muscle, and immediately pull up and hop around like a wounded stork. Stupid, stupid, stupid! I applied ice immediately, went home, and applied R.I.C.E. therapy. Rest, Ice, Compression, and Elevation.

Comparing the initial discomfort to my previous injury, I knew that the new tear wasn't as bad as the old one. Instead of feeling as if someone hit the back of my leg with an aluminum baseball bat, the new injury felt as if something just popped loose.

So, as of this Monday morning, I am limping around the office like a goon, but relatively pain free. I will be taking it extremely easy over the next 4 weeks, with a goal of returning to the water and surfing gently at some point after that. Wish me luck!

[ Update: Please see this later post about my calf muscle rehabilitation, and add comments there. ]

Tuesday, July 17, 2007

Tuesday Afternoon Surf Report

The previous week has seen waves more reminiscent of a lake than the mighty Pacific Ocean, so I have taken several days off from surfing. After over a week in dry dock, I was really feeling a salt-water deficiency, an so hit the water today on my lunch hoping for a few good waves.

The water was clear and - even better yet - uncrowded. It seems that if all of the people who invaded my local break before the 4th of July have all packed up and found something else to do. Exxxcellent!

The wave were fairly consistent, and I caught a handful of very fun chest-high rights. All in all, the waves were better than expected and the beach was less crowded than expected. Nice!

Tuesday, July 10, 2007

Rocky Mountain National Park

A few weeks ago, I went on my annual business trip to an industry conference. The last few years, the conference has been located in areas without much to see or do. This year, however, the conference was located between Denver and Boulder, Colorado.

While there, I maneuvered us to a few dining establishments I can heartily recommend. On the higher end, for good steak and a very nice selection of beers made on location, visit the Chophouse in Denver or Boulder. Nearby is the Wynkoop Brewery, Denver's first brew pub (try Patti's chili beer, Railyard ale, and the stout)!

Whereas the eating was good, the highlight of the trip was the extra day spent visiting Rocky Mountain National Park. The main road which traverses the park from one side of the continental divide to the other is called the Trail Ridge Road, and is the highest continuously paved road in the US. At it's highest point, we were well over 12,000 feet and above the treeline in the tundra environment.


While there, we saw a bit of wildlife, including marmots, mule deer, and elk.



We drove to the continental divide, and took the obligatory touristy picture, and then made our way back to the airport.


Upon arrival at the airport, we discovered that our plane was delayed. Once the plane finally arrived, another pilot had to be found, and we ended up arriving back home at around 3:30 AM. Good times! Peter's kindergarten graduation was that same day, so there was no rest for the wicked...

Too see more pictures, please visit the album.

Tuesday, June 26, 2007

The Day from Hell

I know it is cliche, but Mondays can really be hell sometimes. On Sunday, I received an email from the mail/web server at work, notifying me that one of the hard drives in the RAID-1 array (mirrored) had failed. So, I readied myself for some server work on Monday.

I pulled out the faulty HD, and replaced it with a backup drive. I then start up the server, and watch the handy messages go by, until the system freezes at the partition check. Oh... no... Try a few more ideas, and still no go. Both hard drives died at the same time? Come on!

Time for the backup plan. I had prepared a Debian Etch server just for this event, and it was time to press it into service. I got it up and running, accepting email and serving web pages. Unfortunately, the server was not serving its role as a gateway to the regular desktop systems behind it. Frak! Something was (not) going on with the ip masquerading functionality. I installed the ipmasq package, but all packets were being dropped by the server, so no outgoing connections were possible. The server could access both subnets, but no joy for the desktops.

Damn, damn, damn! Now what? 6 hours later, and I am now seriously screwed sideways and upside down. I am sweating profusely, and am almost ready to give up. I call a local "Debian" consultant, but it turns out he's not real familiar with iptables/nat. What to do... what to do?

I finally get the idea to try the hard drive from the additional server in another box, as I kept coming back to the fact that having two hard drives fail simultaneously seemed a bit suspect. I powered up the box, and voila! She booted, and everything looked good! I moved the NIC cards over from the old box, placed the spare hard drive in her, and fired it up. After partitioning the new drive and marking said partitions for linux raid auto-detect, I was able to add the new disk partitions to the existing raid array, and everything seems good so far.

Needless to say, I learned a few lessons:

  1. My backups of the mail from the mail server worked well. However, there was additional information that should have been backed up but wasn't. This has been remedied.
  2. Even if you go to the trouble of making a backup server, you need to test it in exactly the same kind of conditions in which you need it to function. I tested out the services and such, but not the iptables/nat requirement (thinking it would be a breeze - ha!)
  3. I need to find a way to move my OS from one set of hardware to another. I'd rather avoid the reinstall and subsequent system build up if at all possible, but this might be too much to ask. If you have any ideas, lemme know!
  4. I *really* need to buy some new server hardware.
So, things are bck to normal now. I figure I lost at least a year of my life in those eight hours, and it wasn't until T+24 hours that I actually started feeling normal again. Maybe I should look into Google hosting our email...

Friday, June 08, 2007

An Amazing Overview of the WWII Eastern Front

If you are interested in the Eastern Front of World War II, or you are a fan of military history, then do yourself a favor and visit POBEDITELI - Soldiers of the Great War. It is a flash application which takes the viewer from 1941 through the end of the war in Europe in 1945, providing information on battles, historical notes, video clips, and audio (subtitled in English) from those who lived through that time period.

It is very thorough, and extremely interesting. Make sure to click on the boxes with red/green arrows for further detail. You'll need a bit of time to explore it thoroughly, so plan accordingly!

Wednesday, June 06, 2007

Odd GCC Optimization Issue

I am working on a modification to some C code for a customer, and stumbled upon an odd problem with the GNU C Compiler (gcc version 4.0.3-1ubuntu5). The code computes payments and amortization schedules for requested loans, and returns the information in data structures.

I noted the problem when writing a payment stream generator (e.g. "x payments of $a", "y payments of $b", etc.). With optimizations turned off, the payment stream was being output correctly for the loan in questions (2 payments of $47.26 followed by 4 payments of $2530.39).

However, once I turned on optimization (-O2), the payment stream gave me a hiccup and reported: 1 payment of $47.26, 1 payment of $47.26, 4 payments of $2530.39.

Hmmm - odd. Printing out the first two payments to 15 decimal places revealed an extremely slight difference (47.259999999999998 vs. 47.260000000000005), even though the two values are computed using the same factors, rounded in the same manner, etc.

I wish I could reduce the code to something simple for demonstration purposes, but the code is extremely complex and has many dependencies on other units, so it would not be a trivial matter to say the least.
For now, I have replaced the -O2 optimization flag with the following: "-finline-functions -floop-optimize -falign-functions -falign-loops -funroll-loops". With those optimization options turned on, the results are as expected.

I just checked to see if the same issue occurred with an older version of gcc (version 3.3.5 Debian Sarge) and the same problem does appear. Odd.

Thursday, May 31, 2007

New Board! 6' 5" CI MSF Bonzer

It has been a while since my last surfboard purchase, and for good reason - I've been very happy with all of my boards. However, while checking out craigslist.org one day, I came across what sounded like a very good deal.

I called the person offering the board for sale, and after talking with him a bit, it sounded like just what I was looking for: a Channel Islands Merrick Singe Fin (MSF) which had been retrofitted with Bonzer side bites. It was in almost new shape, and was the same dimensions as my MSF.

So, I decided to sell my MSF first, chip in a little bit of extra cash, and then pick this one up. Here she is, in all her beauty:

IMG_3882
Top side with nice slob job resin tint

IMG_3883
Dimensions

IMG_3884
Bottom

IMG_3886
Close up of fin cluster

IMG_3890
Bottom view from the nose

IMG_3891
Translucent fins from Rainbow Fin Co.

Near the end of my photo shoot with the new board, Ace came on out and decided to get in on some of the modeling action. What a ham...

IMG_3892
Ace seems to like it as well

I got her all waxed up this morning and just need a bit of juice to try her out on some "waves of consequence".

Wednesday, May 30, 2007

Baseball Season - Tournament Wrap-up

Turn out the lights, the party's over...

The AA tournament is done, and the Raptors finished in 4th place. We had a tough seeding draw (4th) which saw us face the Iron Birds for our first game. The teams were randomly seeded, and the two teams (out of six) which are seeded first and second have a tremendous advantage, as they get a by in the first round of the double-elimination schedule.

We lost our first game against the Iron Birds, and headed down to the loser's bracket. There, we faced the Storm and won a tight game with a 5-4 score. All 5 of our runs were scored in a single inning, and our pitching proved fairly solid throughout the game.

Our third and final game found us facing the Iron Birds again. Their star pitcher was untouchable, and the Raptors struggled at the plate. We scored a single run off of a single hit, and that was all she wrote.

So, the season is no over and we get to relax a bit until soccer season starts sometime near the end of summer. I was very pleased with the improvements my son made over the course of the season, and he really enjoys just playing ball with me outside. We've scheduled a few Padres games this summer, and both of us are looking forward to them!

Thursday, May 24, 2007

Thursday Afternoon Surf Report

Swamis - March 10, 2005

I've been able to get out in the water these last three days, and the conditions have been pretty decent compared to the lull we've experienced the previous week. On Tuesday , the sky was overcast and the wind was almost nonexistent, dishing out waves that were glassy, peaky and extremely fun. Wednesday and Thursday saw the sun make an appearance - unfortunately the wind also showed up and the waves were not nearly as nice as on Tuesday.

I've been surfing my GH canard quad fish and loving it. We'll see if we get some of an expected southern-hemisphere South swell early next week. If we do, it might be an opportune time to try out my new board (pictures and more information coming soon)!

Wednesday, May 16, 2007

Baseball Season - Regular Season Wrap-up


The Raptors finished up three games over five days, with one win, one loss, and one tie. Our overall season record ended up being 13 wins, 3 losses, and 1 tied - not too shabby!

The Thursday night game was against the Storm, and our offense struggled early. However, we scored a few key runs late in the game, and after 4 & 1/3 innings of play, took the lead 4-3. Time was called due to the 2 hour limit during the regular season, and the team left happy.

Saturday's game against the Bulls was problematic. Alan had a very tough time getting pitches over the plate, and our offense was quite lackluster. We ended up losing 9-4, and hoping for a better performance during our last regular season game and tournament.

Monday night's game found us facing the Iron Birds again - the same team which has beaten us twice the last two games we have been matched up. The Iron Birds have one very good pitcher, whom they pitched for a single 1-2-3 inning. However, their other pitchers are nowhere near as good as the #1. So, after he left the game, the Raptors jumped all over the Iron Birds and put together a nice eight run second inning. The game was called at the two hour time limit with a 10-10 tied score.

The Raptors looked a bit rough defensively during our final game, which worries me. We will face the Iron Birds (again) for our first tournament game, and I am sure that their #1 pitcher will be out in force. I can only hope that the Raptors put the bat on the ball and do their best. Due to pitch counts, I don't think the #1 pitcher will be able to stay out the entire four innings needed for a regulation tournament game, so if we can keep the Iron Birds in check until that time, we may have a chance. It's all about the pitching...

So, wish the Raptors luck tonight as we begin our post-season journey - we could use it!

Score cards for the final three regular season games are found below.

Friday, May 11, 2007

Baseball Season - Week 8 Wrap-up


Week 8 found the Raptors facing first the River Cats on Thursday, and then the River Dogs on Saturday. Did the Raptors continue their torrid winning streak, or would they fall down as the regular season nears its closing? Read on for details...

Our Thursday game against the River Cats saw an explosion of offense, as the Raptors scored 12 runs in 3+ innings. The game was called in the top of the 4th due to the 2 hour time limit on AA games. Our two pitchers did fairly well, and the Raptors ended up only allowing 2 runs to score.

On Saturday, we faced the River Dogs. The River Dogs won the end of year tournament last year, and have some experienced pitchers on their team. I had a feeling that the game would be a closely contested match, and was right. The Raptors scored 7 runs off the River Dogs first pitcher in the first two innings. Our first pitcher allowed 3 runs over the same span of time. The River Dogs' second pitcher only gave up one run over the final 2 innings, with a total of 8 runs for the Raptors.

Alan pitched the final two innings for the Raptors, and pitched extremely well, allowing only two runs. We've been practicing a bit, and it is showing. He is now throwing much more accurately, and there is some definite "pop" to his velocity.

Thus, the Raptors go 2W and 0L for the week, and 12W and 2L for the season so far. Score cards are below for those interested:

Surf Report - "You got NOTHING!"

That's your surf report, folks - "You got NOTHING!".

We had some nice waves last week, but this week has seen the Pacific Ocean transform into Lake Pacific, with waves no more than knee high in most locations. The weather has been beautiful, with clear skies and high temperatures, but the swell is just not cooperating.

Furthermore, it doesn't look like things will not improve in the next week or so! Gah.