Editing

My friend Brian reminded me today to read his userpage on Wikipedia. The whole thing is interesting, but I most enjoyed the section on his Editing Philosophy. I tend to write long rambling articles without good clear introductions. Over time I might go back and clean up some of what is posted here, keeping his philosophy in mind.

Appliance installers

I just spent30 minutesfixing our dishwasher. This is an almost new dishwasher that we bought and had installed about a year ago.Once in a while the front of the dishwasher would drophalf an inchand the door would no longer open (it would jam on cabinet trim).I would lift it back upto the right height and ignore it for a while.

It happened again yesterday and since this is a long weekend I thought I’d check it out. I pulled off the trim pieces and discovered that the appliance installers had setup the dishwasher’s feet to sit on the edge of the floor. The finish flooring doesn’t go very far under the cabinets and they had setup the dishwasher’s feet to sit right on the edge of what flooring is there.The dishwasher’s feet have 1″ circles, but only about 1/4″ sat on flooring.As you can imagine it won’t take many open and close cycles of the door for the dishwasher to move 1/4″ and drop down to the subflooring.

The fix was simple, I used some scrap wood the same thickness as the finish flooring and put it under the feet to give them better support.

This is not the first fix that I’ve had to do for this dishwasher installation. Right after they finished I redid all of the drainage plumbing because they had set it up in a way that was a disaster waiting to happen. There were about 4 different diameters of tubing all coupled together with hose clamps and weird adapters where it joins up with the garbage disposal. I went to the hardware store and got the right adapter and spent 20 minutes fixing it.

I dislike that themarket’s driveto the cheapest possible prices has brought us to the point where this kind of stuff happens. The installation was “free” but of low quality. I should have just done it myself (or the appliance store should have a real plumber do the job and charge for installation). I’m fearful of what “free” appliance installers might do incorrectly when dealing with gas lines and more dangerous appliances.

alex

The costs of running home servers

Frequently, especially after I have a hardware issue (read http://blogs.phred.org/blogs/alex_wetmore/archive/2005/11/19/69.aspx) I am asked by members of bikelist.org about donations and what it costs me to run the servers.

Donations

I’ll start by talking about donations. I will accept small donations, but don’t like to ask for them. I run these lists and host websites and mail stuff as a hobby, not as a business. As a hobby I want to keep my costs under control, but also don’t want to turn it into a business. So I don’t like to get donations that would come too close to covering my costs and make this profitable. I also think that there are much better causes to give money to than bikelist.org and myself. I make a good salary and hosting this stuff or paying for hardware is not hurting my budget.

So I’ll take donations using PayPal to my email address. Please keep them under $20. Please don’t feel the need to donate anything.

Costs

There are three major costs in running the services. Two are the monthly costs for DSL and power to run these computers. The third is the cost of the machines themselves (more or less a fixed cost, although things do die and need to be upgraded once in a while).

I pay $99.99 plus taxes for my DSL line, which works out to be about $109 per month. This gets me a DSLline with 1.5mbps downlink speed (how fast I can download stuff from the internet) and 768kbps uplink speed (how fast I can upload). Since I’m running a server the second number is more important to me, and most DSL and cable services skimp here. I also need multiple static IP addresses. The IP address is how computers address each other over the internet, you can think of it as a telephone number. Most DSL or cable services give you a dynamic IP address that can change when you reboot your computer or on a regular basis. That is great if you don’t want people connecting back to your computer (most customers don’t), but not useful if you want to run a server. I need multiple static IP addresses because there are multiple computers running web servers in my house (bikelist.org goes to one machine, search.bikelist.org goes to another). Finally my ISP (Speakeasy.net) has great service and understands the issues of running servers and takes care of them very very quickly. Note that I need DSL or Cable anyway, so the incremental cost of having good DSL for running servers is about $50/mo,not the full $110/mo.

Power is an easy cost to forget about because you are not billed per computer turned on in the house. However it does add up quickly. I pay about 9 cents per killowatt hour. A computer takes about 100w when turned on,or 2.4kwh per day. That works out to about $6/month (2.4 * $0.09 * 30) = $6.48. My system has two servers running 24×7, so that is about $13 in power per month. It used to be 3 servers (one extra for backups) and I figured out how to consolidate down to two. I’m looking at solutions to get down to one (using Virtual Server to run both systems on the same hardware).

I tend to find hardware that is pretty cheap but functional. The main server is a Dell 400SC. This is the cheapest server class hardware and cost around $400 in September 2004. I’ve added 1gb of memory to it (roughly $150 back then). It is using two 160gb disks that I bought last week ($60-$100 each depending on how the rebates go through), but it previously ran on two different 160gb disks that were $100 each (I don’t trust those anymore). There is a RAID card ($100ish on eBay a few years back) and 3 80gb disks ($100/ea a few years back) for backup purposes. So that is a cost of roughly $1000-$1200 for a system that should last me 2 to 3 years before being replaced (in this case the main system will probably be replaced in about a year because Exchange 12 requires 64-bit hardware and this is a 32-bit server). My other server runs FreeBSD and hasn’t changed in a few years. It is a AMD Duron running at 900mhz with 256mb of RAM and two 30gb disks with a hardware RAID card. It probably cost me about $600-800 when built and is already 2 or 3 years old and will last another year or two pretty easily.

Time

When nothing goes wrong running all of this stuff takes very little time. When it does go wrong time can quickly be consumed. I’d estimate (remember, this is a hobby, so I don’t keep track of my hours) that I spend about 10 hours per month doing little stuff here and there to run things. A good chunk of this time is just helping people subscribe or unsubscribe from lists or figure out the archive system. Some of it is working on new software — for instance I’m slowly rewriting the archive system to make it better, but this takes time. Occasionally I have big fault (like the disk corruption from last weekend) which consume 20-30 hours of my time in a very short period, and that is less fun.

Conclusion

Running all of this stuff has some costs, but they aren’t huge and are within my budget.

disk corruption and disaster recovery

As anyone who is on a bikelist.org/phred.org mailing list knows the mail server has been down for two days. This same server hosts this blog, my personal email, personal email for most of my family, and nearly a dozen other random websites. This is a Windows 2003 Server and is running Exchange and SQL Server.

On Thursday (11/17/2005) I was doing some routinestuff (installing service packs, etc). After one reboot the system came back up but many key services wouldn’t start and were reporting that important system files were corrupt. I started a full chkdsk (fsck for unix folks) and there were tons of errors, including some in the drivers for the RAID controller. After the chkdsk the system no longer booted.

My first thing was to boot to the recovery console to see if the most important stuff (Exchange and SQL databases) were intact. Sadly by default the Recovery Console only lets you look at the files in the systemdirectory (normally c:windows). There is a KBarticle on changing this, but you need to boot the system to do that.

I tried using the repair installation mode of Windows Server. This half worked, but when it went to reboot the system would blue screen. The error was “INACCESSIBLE_BOOT_DISK”. My boot volume was on a disk controlled by a 3Ware 6410 controller. This is a RAID controller which uses standard IDE (desktop/consumer) disks but can use multiple of them to build a single volume. I ran it in RAID 1 (mirroring) which means that two disks were exact duplicates of each other, so that if one failed the other could keep running. Windows Server doesn’t include drivers for the 3Ware controller and the drivers from 3Ware aren’t signed (so they haven’t been tested by Microsoft) and the repair installation didn’t seem to fix this. So the system couldn’t get very far into the boot process because it couldn’t talk to the disks.

At this point it was about midnight, and I knew I had work tomorrow, so I tried to go to bed. Before going to bed Istarted installinganother copy of Windows Server (this is really handy to have around during disk crashes) so that I could get to my data.

At 1:45am I still hadn’t gone to sleep, so I woke up to look at what was going on. The install had worked and I could see that the important data was in good shape. I tried copying the 3Ware drivers from the new install over the corrupted ones on the original install,but it still wouldn’t boot. I spent about an hour poking around the registry and trying to make it work with no luck and went back to bed (at around 3am).

At 7:15am I woke up (I can’t sleep in for the life of me) and thought about it some more. The 3Ware controller isn’t really that helpful for me since Windows Server can do the mirroring in software just fine. Since the drivers aren’t signed and the logical disk corruption could have been caused by the 3Ware controller drivers (or many other things) I decided to stop using it for my boot volume.I drove into work (bringing the server with me) and once I got there I started to copy the entire volume to a normal drive plugged into one of the motherboard controllers. This took a very long time,mostly because the archives consist of hundreds of thousands of tiny little text files that take a while to copy. I used XXCloneto do the copy because it is supposed to leave the disk in a bootable state when it is done.

When the copy was done Iremoved the RAID controller and tried to boot of the new disk. The computer’s BIOS told me that it couldn’t find a disk to boot from. When I went to check the boot order it said “hard disk (not installed)”, but when I checked the list of devices it did show a hard disk. So I ran Windows Repair mode again to see if this could make the disk bootable. It still didn’t boot and at this point I was starting to think that computer itself was having issues. I was also at work, so I put everything aside and worked for a few hours.

On my way home I was thinking about going to Fry’s to buy a new computer. Luckily for me traffic was horrible and so I took the direct route home instead of going to Fry’s and back which would take me through some of the worst traffic areas around. On my way home I realized that I could just run the server on my wife’s computer and wouldn’t need to buy a new one this weekend. I got home and started heading down that path.

This is when I discovered that the disk still wasn’t bootable. I put the disk from her computer into the server machine it and was bootable, so I knew the server machine was still okay. I installed another fresh copy of Windows onto the disk and finally it became bootable. At this point it was 6pm on Friday and I had been working on this on and off for about 20 hours. I finally booted the machine back into the original Windows installation and everything seemed to be working. Yay!

I spent the next 5 hours fixing some remaining corrupt files, installing service packs, and putting the machine back together. At 11:30pm I put the server back into it’s normal home in my basement, announced to the world that everything was working, and went to bed.

I woke up at 9ish (yay for finally getting some sleep) and things weren’t working. I forgot to set a critical networking variable on the machine before going to bed, the address of my router. The router could sent packets to the server, but the server didn’t know how to send them back out. This meant that I could see it from my FreeBSD box sitting right next to the computer, but nothing else on the network (including computers on a different network in my house) could see the server. I figured this out and got my first piece of spam. Always a good indication that you are back online.

There are still some things to do:

  • We’re running on a single unmirrored disk right now. It is also a couple of years old, so I don’t really trust it. I’m going to buy another disk or two today or tomorrow to mirror with it. This should be my only expense in this huge mess, mostly the whole thing took a lot of time.
  • I need to get backups going again. The disks that I normally back up to are sitting in a pile on the floor and need to be reinstalled.
  • I need to make it so that the Recovery Console lets me get to my whole disk in case I need that in the future.

I’m glad to be back online.

alex

Reviving the blog, and an introduction

I setup this blog back in July and promptly forgot about it mostly because I didn’t tell anyone about it.

Last week the subject of blogs came up on the iBOB listand I remembered that I had this blog.

Kent Peterson, also a new iBOB blogger, just posted a nice intro, and I thought perhaps I should do the same.

I’m a guy with way too many hobbies and not enough time to spend on all of them. On the internet I’m best known for my cycling hobby, where I enjoy riding and working on bikes. I host a bunch of mailing lists at bikelist.organd I’m active on even more of them. I enjoy experimenting with bicycles and have a good memory for obscure parts details, so friends (on and off of the internet) often ask me about weird gearing, brake systems, and stuff along those lines. I own a lot of bicycles but the common theme is that most are lugged steel (all are steel) and can fit fenders and wider tires. These days most of my riding is done on my Bridgestone RB-T, but that could change by the time you read this. Most recently I’ve been spending a lot of time off of the bike due to a knee injury, but I’m currently doing physical therapy to fix these issues.

Professionally I’m a software developer for Microsoft Exchange (an email server). I work on the High Availability group, which as the name implies, figures out how to make your companies email servers stay online as much as possible. I’ve been working in Exchange for 9 years and have worked on many aspects of this product,but most of my time was spent working on the internet protocols (SMTP,POP, IMAP, NNTP).

My list of hobbies changes about as often as my list of bikes, but here is what is keeping me interested right now:

  • Woodworking — We needed some custom radiator covers at home, and the cost of buying even ugly ones was quite high. I’m still getting around to building those, but in the meantime I’ve been doing some smaller practice projects. My most recent one was a end table for our bedroom that holds the bedroom stereo. I’m trying to build projects faster than I buy tools, but I really like tools and this is difficult for me. Recently I’ve been trying to find a cheap used jointer on craigslist, but they all sell before I send email.
  • Photography — I’ve been interested in photography since high school whenmy father and I setup a darkroom and he taught me how to process B&W film. My shooting tends to be on again and off again, with lots of photos being taken on vacations. Perhaps I should start a photo blog to remind myself to take photos. My favorite subjects are landscapes, but recently I’ve been having fun taking some sports photos (cyclocross racing for instance) or photos at concerts (when they’ll let me bring my camera). My camera of choice has been a Pentax SLR (these days it is their Digital SLR, *ist D) for pretty much all of that time, I like their user interfaces and smaller lighter weight than most of the competition. On the other hand I’m a strong believer that the photographer makes the photograph, not the photographer, and don’t think that choice of camera is that important to the final outcome.
  • Beer Brewing — I brew my own beer and make my own mead (honey wine). My beer preferences arefor hoppy or dark (or both) ales. My biggest brewing problem is that I normally brew faster than I want to drink it, so I need to find other people to help out. Currently on tap I have a pale ale, a porter, a hefeweizen (german style, not NW style), a sweet/strong ale that was supposed to be a clone of Mac and Jacks, and some peach/ginger mead. Aging and fermenting I have a light ginger mead and two kegs of a barleywine or strong ale. I mostly brew using all grain and in the last year have been working with my friend Peter to build a new brewing system that can do larger batches (so we can split them) and which is more efficient. There will probably be a post on that later.
  • House Stuff — My wife and I own a 1908 Craftsman house in the Ravenna neighborhood of Seattle. There are always projects to be done. Last year we refinished the dining room (a messy project since it involved removing a layer of plaster and 4 layers of wallpaper), the living room, and the office. This year we are working on the kitchen and pantry and I have some small project ideas for the basement.The basement is always a challenge because it is a little small and fighting for space we have bicycles, woodworking, beer making, computers, and laundry.
  • Computers — I host a tiny army of servers from my basement. They serve up this blog, the mailing lists, and personal websites and email for family members and friends. I use both FreeBSD and Windows Server, but I’ve been moving more things to Windows Server as I’ve had the time (not that there is anything wrong with FreeBSD, I just don’t want to keep on top of security patches for two operating systems). For the last 18 months I’ve also had a machine running Windows Media Center which records TV for us (both HDTV using an over the air antenna and regular cable feeds). I enjoy writing software in my free time, but since I also do this at work it usually gets pushed low down on the priority list and happens very very slowly.
  • Biodiesel — My wife and I own two Volkswagen TDIs and run them on 100% biodiesel. Biodiesel is a diesel alternative fuel which is primarily made from vegetable oil. I’m somewhat active in the biodiesel scene in Seattle and host nwbiodiesel’s websiteand have helped them with organizing meetings and their annual forum. I don’t like cars and think that most americans (probably including myself) use their cars way too much. Using them less and using high fuel efficient cars fueled withrenewable and cleansources is something that I’m very interested in. More on this in another post.
  • Music — I really enjoy listening to music and going to shows. These days I listen to a lot of alt country (think Wilco) or alt pop (think Death Cab for Cutie) but my musical tastes are vast and I’m always learning about new bands. I’m a member and supporter of KEXP(I wish every major city had a station like KEXP) and often listen to them at work. I’m lucky to have a lot of friends and a wife with similar musical tastes who turn me on to new music. As I get older I strive to keep up with new music and never to stagnate and get stuck on my musical tastes from my twenties.

Anyway, there it is, a short snapshot of what makes me tick. A common theme is that I’m technical (perhaps overly so) and like to know what makes things tick and how to make things myself.

alex

What length derailleur cage do I need?

This question comes up a lot on the bicycle lists and just came up again today. I figured I’d save my response in the blog so that I can easily find it and reference it in the future.

On Tue, 19 Jul 2005, John Gruber wrote:
> Correct me if I’m wrong. The cages work for different
> numbers of teeth on the rear cassette. More teeth =
> bigger cage.

This is not accurate. The geometry of the parallelgram defines how large of a cog the rear derailleur can work with.

Cage length determines how much chain the rear derailleur can wrap. You can compute the amount necessary by adding the difference of your large and small chainring along with your large and small cog.

So if you run a typical Shimano crankset with 44/32/22 chainrings and a 12-32 cassette you need a rear derailleur capacity of (44-22) + (32-12) = 22+20 = 42t.

If you replaced your outer chainring with a bashguard you could get away with (32-22)+(32-12) = 30t. That would let you use a GS cage derailleur instead of an SGS cage.

If you are good about not using the smallest cogs with the small chainring you can get away with using a shorter cage rear derailleur. I don’t recommend this practice on mountain bikes (where remembering what gear you are in can be trickier) but I do it all the time on road bikes.

As an example my road bike has 46/31 chainrings with a 12-32 cassette. Doing the math above I would need a (46-31)+(32-12) = 35t capacity. The older GS cage XTR rear derailleur that I use has a 28t maximum capacity. I can use this if I avoid the smallest cogs on my rear cassette. The cassette gearing is 12-14-16-18-21-24-28-32. I need to gain 7t, which is 12+7 or 19. To play it safe I should only use the 31t chainring with the 21-24-28-32 part of the cassette.

If you cheat like this and accidentally shift into the 12 or 14 nothing bad happens, the chain just rattles against the rear derailleur and makes a lot of noise. If you cheat in the other direction (making your chain too short so that you can’t use the large chainring and large cogs) you are likely to trash your rear derailleur or derailleur hanger or both. I’ve been there and have done that and it isn’t much fun.

Shimano only makes the GS (shorter MTB length) cages at the XT and XTR levels. This is too bad because I like using a short cage derailleur on my MTB (where I have a bash guard instead of an outer ring) but would be fine with running a cheaper LX or Deore rear derailleur.

There was this followup discussion about using road GS cage derailleurs (such as a 105 triple) with a wide range mountain bike cassette:

On Wed, 20 Jul 2005, Justin Vander Pol wrote:
> Good write up Alex. A lot of us run the cheaper Shimano 105 road
> rear derailleur in a GS cage to get a mid cage and keep costs down.
> Shimano says it won’t work, but it runs great with a dual ring/bash
> up front and standard 11-32 cassette in back. You can find 105
> derailleur for fairly cheap on ebay since a lot of roadies are
> ashamed to run mid-level gear on their bikes.

I don’t like doing this because it requires a large chain gap in the smaller cogs, which makes the shifting less precise. The only real functional difference between the “road” and “mountain” rear derailleurs is the geometry of the parallelgram. The road ones ones are designed for a tight ratio cassette. If you max out the B-tension
adjustment to use a 105 GS cage derailleur on an 11-32 cassette then you’ll have a small gap between the upper jockey pulley and the 32t cog, but a large gap between it and the 11t cog. For the best shifting you really want a roughly 1″ gap here and you want it to be pretty consistent across the cassette.

For a 12-28 cassette the road GS cage derailleurs work well.

> Also, what raodies call long-cage, we call mid-cage,so make sure
> you look at the model. Like Alex said,SGS is long, GS is mid, and
> SS is short.

Yup. I always go by the cage code instead of the abitrary terms “long, medium, and short”.

A bicycerrific day

Yesterday started witha visit from my friend Tim to work on the headlights of his bicycle. He has one of the cool Schmidt generator hubs and wanted to add a second headlight to it.It already had a single switched headlight. The new headlight was unswitched. We wired the second headlight in series with the first using a DPDT switch from Radio Shack. In one position the switch turned the headlight on. In the other it short circuited across the headlight, allowing the the first headlight to get all of the power from the hub. Normally external switches look pretty out of place on bicycles, but his bike had a cool little front rack.We clamped the headlight and switch to the rack, out of the way under the handlebar bag. In the end it was a pretty cool setup.

In the afternoon my friend David from Missoula came to visit as he passed through town. He brought a nice luggedTrek 400 that was sized too big for him. This bike had a 24″ (61cm) frame when he is about my size and would normally ride a 23″ (58cm) frame. A shorter stem brought the bars closer to the saddle and we put on barend shifters (the normal Suntour Power Ratchet ones) to make shifting a little easier. When checking out the wheels we discovered that the rear wheel had a couple of spokes pulling through (a common problem with the old Matrix-branded rims). I poked around the basement and found a wheel that I inherited almost 10 years ago but which wasn’t tensioned. It looked like a good option, and I started to put it back together. Then I remembered why it was not tensioned — the rim was majorily out of true and had a big flat spot. I spent about 45 minutes on it and got it good enough, but we really need to find him a better wheel. The bike also really needs a triple crank, but we ran out of time.

I can’t ride my bike this week due to hurting my knee, so it was nice to spend some time working on bikes. My bike collection isn’t changing so much anymore, so I need to find other bikes to work on…

alex