Yesterday was not a good day for me.
First, I spent most of the day struggling with the homework for the control-theory class I’m sitting in on. The course is dual listed as an undergrad and grad course, with shared lectures but different homework and projects. The undergrad part of the homework was straight-forward, and I finished it Monday night, but the two additional problems for the grad students were tough. One of them had a simple “engineering” solution that I got quickly by formal manipulation of the formulæ, but I could not justify some of the steps, since they involved a integral that was not finite. The other problem was not difficult, but involved a rather tedious amount of algebra to linearize the system—the professor had done the linearization in lecture notes, and we were just supposed to check it for the homework, but he’d made an error in algebra, so I had to redo the whole thing.
Late in the afternoon, I decided to take a break and replace the sump pump that had failed sometime in the past couple of weeks. Originally I was going to disassemble the pump and see if the problem was repairable (I think that the switch for the float is not turning on reliably, possibly from corroded contacts), but I decided that I could do that later to have a spare pump, meanwhile getting a working sump pump. (My house is built over a seep where an aquifer comes to the surface, and the water table is about 3 inches below the surface—during wet years, the water table is sometimes right at the surface.)
I put the old pump in my panniers and headed down to hardware store, when my bike seat suddenly failed. I tried riding for a block with the failed seat and gave up and returned home. The failure was right at edge of the block that holds the horizontal crossbar at the front of the seat:
I probably should have had some warning about the imminent failure, as the bike has been creaking a bit more than usual when I pedal for the past several months, but I was never able to track down the creaking. I’m not sure I could have seen the crack that was probably propagating, since it was flush with clamp block.
The seat on my Longbikes Vanguard is not a standard, off-the-shelf component, so I’m probably going to have to custom order a new seat from the manufacturer (who no longer make the Vanguard model, so probably has no spare seats built) and wait weeks or months for one to be built.
I got my old upright bike down from the garage wall, inflated the tires, adjusted one of my panniers to fit the different rack, and headed off to the hardware store, carrying the old pump in the pannier. At the hardware store, I could not find a sump pump with the same outlet size as the old one (they all had bigger outlets). I needed to match, in order to hook the sump pump up to the existing plumbing. Luckily, they did have a reducer that would adjust for the difference.
After buying the pump, I went out to my bike and realized that I couldn’t fit both pumps into one pannier—in fact the new boxed sump pump wouldn’t fit into the pannier even by itself. Normally I carry a bungee cord or two for strapping stuff onto my rear rack, but those were left on the other bike. So I had to go back into the hardware store to buy some new bungee cords—not a big deal, but an irritation.
The bike was a bit wobbly on the way home—I’d forgotten how much difference a high center of gravity makes on an upright bike—and the bike has much twitchier steering than my recumbent anyway—but I got home without incident.
On getting home, I immediately attached the pluming to the new sump pump and lowered it into the sump. Let me correct that—I tried to lower it into the sump, but it wouldn’t fit. The pump was a couple of inches wider than the old pump and though the hole at the top was more than wide enough, it narrowed significantly where the bottom of the foundation for the house spread out, and the remaining hole was simply too small for the new pump. This was particularly frustrating for me, as I was meeting my wife downtown for dinner in less than an hour, and I was going to have to walk rather than bike, so I only had about 10 minutes to come up with a fix.
I then remembered something that should have occurred to me much earlier—I had another one of the small sump pumps in a different sump in the back garden. Quickly pulling it out and attaching the plumbing got the main sump working again (though I still need to recheck the plumbing for leaks). And it turned out that the garden sump was wide enough to accept the new pump—problem solved!
I cleaned up, grabbed a backpack so I could do some shopping after dinner, and walked down to the library to meet my wife. After the stresses of the day, I felt the need for comfort food, so we went to Betty’s Noodles, a hole-in-the-wall Chinese restaurant in the bus station. This restaurant has taken over the niche that Little Shanghai used to fill of providing cheap, tasty Chinese fast food (noodles and rice bowls). I had ma-po tofu over Chow Fun noodles, which went a long way to de-stress me. Going to Mission Hill Creamery for a plum sorbet cone afterwards helped also.
On the walk home, a couple blocks before we got home, I realized that I had not done my shopping! I decided not to go back downtown, but to do without my chocolate soymilk for a couple of days, until I can go shopping again.
This morning I finished the homework and submitted it. I’m still a bit bothered about the inverse Laplace transform problem that can be formally solved but that ends up with a function that doesn’t have a Laplace transform, but I’m pretty sure I did what was expected. After turning in the homework, I realized that there was a possible different interpretation of part of the linearization question than what I did, so I queried the professor about what he really meant. (The homework isn’t due for a week, so if there is a clarification needed, he can get it to the grad students before the homework is due.)
The TA does not grade my homework, since I’m just auditing, but I’m doing the homework using Python instead of Matlab, so I’m sharing it with the TA and professor anyway, so they can see whether it would be worth switching to free tools.
Currently, the scipy.signal package and matplotlib seem as easy to use at Matlab, but there is no equivalent of SIMULINK, which the professor is relying on for students doing simulations. I can do the simulations in Python, but setting them up is all text-based, and requires thinking explicitly about the state vector, rather than having a GUI that does all the setup for you.
I bicycled up to campus today on my old upright, after adjusting my other pannier to fit the rack. I had forgotten how uncomfortable an upright bike is. This evening my neck and shoulders are sore, and I have chafing on the inside of my thigh. I really hope I can get the recumbent seat replaced quickly, so that I can go back to riding comfortably! It might even be worth taking the seat to a local frame-builder and finding out whether they could replace the tube, even if only for a temporary fix. (Although most of the bike is chrome-moly steel, the seat appears to be all aluminum tubing.)