Archive for February, 2005

You know you’re a parent when…

Well, we finally did it. After debating for months about whether or not to get an SUV, a truck, or a minivan, we’ve decided that a minivan makes the most sense right now in our lives with Seryn and our frequent travel and storage needs.

We’ve test-driven many vehicles in our quest, including the Hummer H2, Toyota Sienna, and others. The Hummer H2 is a funny vehicle.. exhorbitantly overpriced, absolutely horrible gas mileage (6mpg, so low in fact, that they can’t even print the mileage on the invoice sticker), and its heavy as a tank. Unfortunately, its about as useless as a tank too. Hummers are really REALLY fragile too. They are so vastly different from the original Hummer, that its funny they chose to use the same name.

The Toyota Sienna was a really nice van too. Smooth ride (though a bit loud in the cabin), lots of power outlets, and an obscene amount of cupholders. I think I counted 18 of them throughout the car. It doesn’t really look like a minivan either, which is a plus, but at $42k for the options we wanted, we might as well just get a full-blown Toyota Sequoia instead.

We also had the pleasure of renting a “Dodge Grand Caravan” for a trip to Buffalo, NY.. land of snow. For the most-part, Erika and I liked it. It was fairly roomy (though we packed it fully of Christmas goodies, luggage, and Seryn’s stuff), and it had the “Stow-n-Go” seats that fold flat under the floorboards. Of course, we got the “baby blue” model. Yuck.

The van handles and drives well, even for a 2-wheel-drive model (AWD is available, but not on the rental we had). There was room to get up and walk around inside, and the captain’s chairs were fairly comfortable. Its still a minivan, but it wasn’t bad.

So today we went down to the local Chrysler dealer and looked at their “Town & Country” minivan.

Note: The Chrysler Town & Country and the Dodge Grand Caravan are exactly the same, except for the company logo on the front grille. Everything inside is identical… seats, dash, floormats, everything!

The vans they had were fairly nice, though we didn’t get to test drive it. We decided that we could save about $12,000 if we went with a 2005 program version, vs. buying a brand new 2005 off of the lot. With the savings, we could also end up trading up for their “Limited” model, with leather, sunroof, and all the extras.

Inside the minivan 1
Inside the minivan 2

Inside the minivan 3

So that’s what we did, and the dealer is trying to find one in our color and style for us as I write this. We put a deposit down to secure the van if he can find it, and if he can, we’ll probably be proud owners of a new 2005 Chrysler Town & Country minivan.

NOT in baby blue, of course.

We Have Shred

I’ve finally broken down and added one much-needed piece of equipment to my office… a commercial quality cross-cut paper shredder.

Our new shredder

Speaking as someone who has had his identity stolen (along with pieces of my mail stolen from my mailbox every day for about 3 years), and being paranoid about security in general, its ironic that I haven’t had one of these before.

I’ve been doing quite a bit of research on the various models, quality, blade lifetime, number of pages they’ll swallow, and everything else about them. I finally decided that any shredder is better than having no shredder at this point, so I trundled down to my local Staples Office Supply, hoping to find something I could use.

Staples, contradictory to most of their inventory, had about 12 shredder models in stock, and ready for my review. I went through each one them, weighing their pros and cons, usability, physical weight and dimensions (after all, it does have to fit in my office), and the rest of the literature.

I finally settled on a “no-name” brand I’d never heard of, because the blades themselves looked really beefy compared to the others, and because it cut the smallest pieces (4mm x 25mm), and cost. There was one other model there that cut slightly smaller pieces, but was twice the height, and twice the price. It wasn’t really worth it. As one of my friends use to say… “paranoia is a deep pit

I’ve already put it through its paces, and about 150 pieces of personal material that was in my “To Be Destroyed” queue, and its faring well. It even ate the stapled document I accidentally put through it (I didn’t see the staple until it was too late). It happily ate some older credit cards and lots of other pretty thick material.

So far, I’m pretty impressed. I just wonder how long these blades will last before they need to be sharpened, or I need to replace the unit. Time will tell, I guess. I’ve bought some “shredder blade oil” also, just to be sure the blades stay nice and lubricated as they do their job.

Now to see if I can’t do something useful with these bags of shreddings.

Ignorant Web Crawlers

I’m very pedantic about maintaining a clean server and working environment, server-side. This means making sure things are running at top-speed, optimized, without anything that could slow down or harm the user experience. After all, I don’t have the bandwidth that Google has at their disposal, so speed and responsiveness is important. With over 50,000 total hits a day to all of the domains we host, it really is important to keep all of the sites quick and snappy.

For example, the Plucker website used to have a little iconic images next to each horizontal menu option. That’s 18 little icons that are sent to the clients when they visit the page. In most cases, these are already in their local cache, so its not a problem, but that’s also 18 extra round-trips to the webserver per-client. Removing those images from being sent increased the response time of the servery by a LARGE amount, and reduced the number of trips the clients have to make to the server to get the full site. It was just a small tweak, and there are more coming in other parts of the sites and domains I host.

But one thing that has been really irritating me, are the overly-abusive spiders, crawlers, harvesters, and robots that slam the site daily, nightly and at all hours. I have scripts set up that parse the logs and find people who are running spiders that don’t read robots.txt, or those which slam me too fast… and I check the logs every single day.

A lot of people think they’re smart by forging their UserAgent string to match that of a “real” browser, but it can clearly be shown that the hits to 20 pages in 3 seconds, proves that they’re not real humans reading that content. For those people, they get a nice big fat firewall rule to block them… only for a few hours/days, until they shape up, or fix their broken spider.

I found another one today, one from Korea apparently, calling itself “W3CRobot/5.4.0 libwww/5.4.0”. Over 3,577 hits in one day from that one beast. Obviously I blocked that entire /24 CIDR also. gone. Plonk!


But two of the biggest “commercial” abusers are Yahoo!’s “Slurp” crawler, and Microsoft’s own “msnbot” crawler.

I specifically restrict Yahoo!’s crawler from reaching many parts of sites I host (such as the online CVS repositories, deep-linking into the mailing list archives, and other places). Of course, it reads, parses, and ignores my robots.txt file for each of these domains. Nice.

msnbot is an even worse abuser. It reads, parses, and follows restricted links in robots.txt. I’ve heard a rumor that they do this so they can get “more pages” than Google has in their index, so they can claim they index “more” of the Web. I have a trap set up in robots.txt specifically to catch them:

# Do NOT visit the following pathname or your host will be
# blocked from this site. This is a trap for mal-configured
# bots which do not follow RFCs.
User-agent: *
Disallow: /cgi-bin/

If they decide to ignore that, and follow that link, they’ll trigger the script to add a “Deny From” rule in .htaccess, and log it with the date and time of the block in the .htaccess file, so I can check it later to see who and what caused the denial rule.

Its pathetic.

Between both of these spiders (and its not just 2 instances, each of these two have several dozen parallel instances hitting the server simultaneously), they hit me about every 2 seconds, 24 hours a day, every day.

Until today…

I blocked them both, at the firewall, the whole /24 CIDR. Now they can’t even get to port 80. I’ll let them stew on that for a couple of weeks, and remove the block. They were hitting me so hard, that they were over 80% of my total traffic… and all of the domains I host get a LOT of hits.

There are over 400,000 posts on msnbot’s abusive behavior, as returned by Google. I fully expect, and get, ineptitude from Microsoft, but I would have thought Yahoo!’s staff was more clued than that… but I guess not. I may just end up throttling both of those back with some UserAgent detection and some sleep() calls on various pages, to keep them from hitting me so fast.

The fun never stops. I hope the users appreciate all of the extra work I go through, to keep their browsing experience fresh, fast, and snappy.

Rusty Solaris

Tags: ,

Recently, I’ve been offered a job working as a Solaris system administrator, answering “tickets” from a queue, writing up documentation, business procedures, and other similar things for a local company about 5 miles away from where we live. The opportunity looks fun, but my Solaris experience is a bit rusty. I’m great with Unix in general, and I’m stellar with Linux, but my Solaris experience is a bit lacking. It isn’t something I can’t pick back up fast, I just haven’t used it in many years.

I haven’t made a decision on the job yet. The initial pass at the salary they offered was a bit lower than I expected, but a few negotiations have brought it around to where I’m comfortable with it. A few more details, and I’ll be able to make a decision.

So I took some time to start re-learning Solaris 10 on x86, so I can refamiliarize myself with it. I installed it in VMware and did the full install. It topped out at about 3.5GiB of disk space, not too bad. The full install took about 3 hours. It really unpacks slow.

Solaris 10 in VMware
(Actual screenshot of my version running within vmware)

The Java Desktop, a new option with Solaris 10, is very slick, very nice, and reasonably fast, even while being emulated without any accellerated video drivers, on my ageing P3/1133MHz laptop (yes, that laptop).

Getting the right pieces working was not as easy as I thought…

First, I had to download the binary X server from this page. Since there is no text-mode browser on Solaris by default (even when installing everything), I had to use a Perl trick… I configured CPAN on the machine, and installed LWP::Simple, so I could use the ‘getstore()’ function to fetch the binary X server over http. While in CPAN, I installed a few other useful modules I will be using later on.

Then I installed the binary X server, and then followed these other instructions to get the right resolution on my laptop’s screen (1400×1050), which required creating a local file that didn’t exist, and reconfiguring XSun with kdmconfig.

After that, I was in business… full 1400×1050 resolution at 65k colors inside VMware, running Solaris 10 x86.

Now off to break it and fix it and break it again. I need a faster laptop..

Useful links:

Seryn’s First Injury

Well, it had to happen… Seryn got hurt. Not just any hurt though, she dislocated her left elbow in a fall.

She’s just at the age where she’s learning to crawl and pull herself up to a kneeling position. She likes to use the bars on her crib to practice this. She also uses the couch when she’s crawling on the floor. She’ll pull herself up to a kneeling position at the front of the couch, so she can see what’s on the seat cushions of the couch.. most of the time the cats napping.

The cats are starting to learn how to tease her too, which gets her going even more. She has a great time with them.

But she doesn’t know how to recognize when balance is required, or is faltering.

She was pulling herself up to a kneeling position at the front of the couch, reached for the cat on the seat cushion, and slid over to one side, falling mostly on her arm and chest. It wasn’t a big fall, probably 10″ or so, but I looked at her and her arm was kind of bent to the side in a very weird, uncomfortable-looking position.

x-ray of a dislocated elbow

You know that gut feeling when you think to yourself.. “Self, that doesn’t look right…”. I got that feeling, and a sort of cold washed over me.

I picked her up fast and sat her on her butt, and she started screaming a scream I hadn’t heard in months. Ear-piercing, glass-shattering screaming. Her arm was just kind of hanging there. I thought she pulled a muscle or something like that, so I put her in her high-chair, and she started screaming more and more. I felt absolutely awful.

What do you do? She’s too young to say “It hurts over here, daddy!”, or to tell me what kind of pain she’s feeling. I couldn’t see anything obvious (and I’ve had a LOT of injuries in my life, including many broken bones), but I’m not a doctor, and I’ve never dislocated an elbow. I can’t even imagine what that must feel like, especially at that age.

After calming her down a bit, I took her clothes off and compared her arms. I was looking for a dislocated shoulder or bruising or something obvious like that. I didn’t see anything.

After she had a nap and some food, she was still not using that arm. Being the paranoid parent I am, I started thinking maybe she hit her head and had a mini stroke or something, and lost the arm function, neurologically. She wasn’t even trying to use the arm, even subconsciously.

So when Erika came home, we went off to the doctor, who immediately diagnosed it as “Nurse Maid Elbow”, and proceeded to set it for her.

Setting a 7-month-old’s dislocated elbow involves a complicated process of holding her hand palm up, and pushing her arm into her sholder, until it pops. Let me tell you, Seryn did not like that.. and the glass panes in the doctors office felt that pain when she let out that scream.

She seems to be a lot better now, and she’s using the arm to crawl with and grab things, so we think its healing.


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