Charlie update

Charlie went in for his weekly dip today, and for the first time tested negative for the mites that cause demodectic mange (also called “demodex,” after the mite, demodex canis)  If he tests negative next week, that will be his last dip.  The scabs and bald patches evident in the pictures of July 14 and July 29 are almost completely healed.  There is one small scab on his side that is yet to heal, and the hair on his chest is still a bit thin.  He looks like a completely different dog than the one who wandered into the yard 7 weeks ago.  He’s a healthy and happy dog now.  Three weeks into obedience school, he’s learning how to pay attention, and he’s become much calmer.  He still wants to chase the deer—something we’ve been discouraging since he caught a fawn a few weeks ago.  For exercise he likes to play fetch, and we take him for runs down the block to the stop sign and back (1/2 mile each way)—us on the bicycles and him running beside us.  He’s a very well behaved puppy.  The vet’s age estimate is about 11 months.  Tasha the poodle has learned to get out of his way, and Kameeke the cat has learned to tolerate him.  He’s fully part of the family now, and we’re happy to have him.

Linux from Scratch progress

I had hoped that by this evening I would have a bootable Linux From Scratch system.  Unfortunately, building the system is taking quite a bit longer than I expected.  Saturday I downloaded the LFS software archive (105 MB), and Sunday I started building the system.  In a nutshell, here’s how it works.

  1. Install Linux from one of the widely available distributions, being sure to include the “development” packages (gcc, make, patch, etc.).  When you install the system, be sure to leave some empty (non-partitioned) space (as much as possible) on the hard drive.  On my system, I created an 800 MB partition for SuSE Linux, and a 200 MB swap partition.
  2. Following the instructions from the Linux From Scratch book, create your LFS partition, and download the software to the directory that they recommend.
  3. Here’s where it gets kind of interesting.  You unpack and build the minimum software required to unpack and build a fully working Linux system.  It’s similar to bootstrapping.  The idea is to build a minimal development environment that’s segregated from your “real” Linux system.  They call this the “static” system, because all of the tools have the libraries statically linked, rather than using the dynamic libraries that are more common with Linux systems.  Seethis page for a discussion of why they use static linking.
  4. You then use the chroot command to start the shell using your static system’s partition as the root partition.  This, in effect, gives you a totally new environment in which to work.  All of your commands (ls, gcc, etc.) are being executed from the static binaries that you created in Chapter 3.
  5. Build the software required to create a minimal bootable Linux system.  In this step, you will re-build all of the tools that you created in step 3, but dynamically linked.  You will also build other tools, and the kernel.
  6. Configure some software and make the system bootable.

Right now, I’m about halfway through step 5 above.  Some of those packages take a very long time to build on my old P200.

I can hear it already:  “Why would you want to do that?”  After all, there are plenty of perfectly good Linux distributions available.  Why go through all the work of installing one of them, only to build a bunch of software twice and end up with a system that is less functional than the one I started with?  In my case the answer is simple:  education.  There’s nothing like building something from the ground up if you’re wondering what makes it tick.  It’s better even than taking something apart to figure it out.  Other people like the LFS approach because they end up with a system that has exactly what they want—no more and no less.  There’s something to be said for knowing every little thing that’s installed on your system, especially if that system is critical in some way:  a DNS, HTTP, or mail server, for example.  There’s no chance of some weird package interfering with the server’s operation or causing some security breach.

At any rate, I’ve been taking copious notes, both on my experiences as I install stuff and some thoughts about improvement to the LFS documents.  I’ll summarize those here at some point—after I get the system up and running.

Bicycle training / A hard lesson

What’s so hard about training to ride 100 miles on the bicycle?  You just get on the bike and ride every day, right?  Follow a training program and you’ll be good as gold, right?  Not hardly.  Once you graduate to longer rides you have to start paying a bit more attention.  You have to drink water, or better yet something like Gatorade (have to maintain that sodium level), on a regular basis (but not too much!) while you’re riding, and if you’re going more than 50 miles or so you’d better be eating while you ride.  Otherwise you’re going to “bonk”.  What’s worse is that your diet in the days before the long ride (especially the day right before) makes a huge difference in your performance.

I knew all of that, but got a very painful review lesson during today’s 66 mile ride.  I didn’t pay attention to my diet on Friday and Saturday, and failed to drink enough water during the early part of the ride today.  As a result, I started fading at about mile 50, and it was all I could do to finish those last 10 miles.  I ended up with very sore legs and severe muscle cramps.  I’ll probably have to take it easy the next 3 or 4 days just to let my body recover.  Very dumb move.

If you’re interested in nutrition for cyclists, two good places to start are the Training pages at Ultracycling andBicycling Magazine.

This week’s mileage is below.  I’ve moved my long rides from Saturday to Sunday, because we’re taking Charlie the Slobber Dog to obedience classes at noon on Saturdays.

Monday13 easy
Tuesday17 varied
Wednesday26 fast
Thursdayrest
Friday19 pace (stationary bike)
Saturday24 varied
Sunday66 pace
Total165.5