Jul 31, 2011
One of the companies along the Springwater Trail had put up a big fence of yellow caution tape, but one of the tendrils of the fence had come loose and was flapping in the wind. As I sailed on by, this tendril wrapped itself around me, snapped loose from the fence, and tangled itself up in my front fender.
I didn’t want to stop, so I plucked it out of the fender en passant, then wound it up (and up, and up, to the tune of 30 feet of caution tape) and wadded it into my rando bag for later use. After all, who knows when I might need some bilingual caution tape?
A northbound Coast Starlight passes a waiting Yellow Menace freight just south of the Springwater Trail overpass.
Discount has been pushed up to version 18.104.22.168 with one small bugfix that corrects a defect that goes back to the beginning of time.
It turns out that when I first wrote discount, I misread the reference smartypants documentation as saying that 1 dash makes an
&endash; and 2 dashes make an
&emdash; (it’s actually 2 and 3, respectively.) So I coded it up like that and left it like that because it doesn’t trip any of the standard markdown test suites and, obviously, it didn’t trip my incorrect test suite.
John Foerch, on the other hand, actually knows something about typography, and when he read the smartypants section of the discount webpage, he noticed that my implementation was Wrong Wrong Wrong! and dropped me a line pointing it out.
I plunge a dagger into my eye from shame. I die, and my noxious humors drain into the Portland watershed, poisoning the entire Tri-Met area. By an awful coincidence, the executive boards of Apple, Microsoft, and Intel are in town for the weekend and also die. The Open Source®©™ community blame Microsoft for Linus Torvalds' death, Microsoft blames the Open Source®©™ community for death of their executive board. Someone gets the launch codes and nukes Seattle, but not before someone at Amazon is able to break into the Soviet arsenal and launch a strike at Cambridge, MA. In their dying throes, hackers in Boston blame it all on NYC and hack into the Chinese nuclear arsenal for a full-out nuclear assault on Manhattan Island. In revenge for this, the American Imperium launches missiles at Syria, Iran, Iraq, Afghanistan, France, Nova Scotia, Iowa, and California. Radiation blankets the earth, and nuclear winter sets in soon thereafter.
All die. Oh the embarrassment.
But before the clouds of radiation spread over the globe, you might want to grab this New Code! so you can die content in the knowledge that your
--- are converted to – and — like they’re supposed to be doing.
Jul 30, 2011
Two tugboats, old and new.
I rode the Codename:UGB210 loop today, and discovered that if you get headwinds for approximately 70% of the loop (coincidentally the 70% that is moderately flat) it does horrible things to your loop timing. 131 miles (some bonus miles because I was using a untweaked bikeroutetoaster cuesheet, and bikeroutetoaster automatic cuesheets are terrible) in 12h01 (10 hours moving, 2 hours stopped at various coffee shops, bars, or grocery stores while we (Ed Groth rode – on his fixed-gear Bianchi – along with me) wedged food into our gullets so we could proceed to the next control without collapsing from food exhaustion.
The high points of the ride include
- Clackamas River Road and Bakers Ferry Road are much more scenic than the Springwater Trail (though I may be biased from riding on the Springwater Trail approximately 1000 times in the last 3.5 years.)
- If you go south of Upper Highland Road, Ridge Road goes closely by Highland Butte, which is one of the approximately 90 volcanos in the Boring Lava Field, and enough of the woodlands around it have been cleared so you can get nice views as you sail on by.
- Buckner Creek road is much easier to navigate from east to west than it is from west to east. (It is hideously chopped up on the descent down into the Buckner Creek watershed (I never noticed this going west to east, because 3mph is not fast enough to make the contents of your handlebar bag want to try and hurl themselves to the ground) so I can’t just take my hands off the brakes and let gravity have it’s rough way with me, though :-( )
- Sutton Road in Newberg is gravel!
- There’s a flock of Ibex at a farm along Flett Road.
- If you ignore the increasingly steep grades on Helvetia Road, going north from Cornelius to North Plains, then winding your way east towards Old Cornelius Pass Road, makes a much nicer loop than Evergreen Road.
- Saltzman Road is really nice if you ride through it when it’s still light. And it’s gravel as well.
The low points of the ride include
- Headwinds from Canby to the junction of Ribbon Ridge Road and North Valley Road
- Headwinds from the junction of Ribbon Ridge Road and North Valley Road to the turn onto Geiger Road
- Headwinds from Cornelius to North Plains
- Headwinds from North Plains to Old Cornelius Pass Road
- And the sneaking suspicion that the spiffy new Sram Apex cranks on the MLCM are too wide (147mm tread vs. 140mm on the old Sugino crankset that I replaced) and I may have to swap the cranks/bottom bracket from the Trek to the MLCM and visa-versa.
I’m going to have to tweak the loop a little bit before submitting it to RUSA as a permanent; I’m not getting rid of the gravel sections, of course, but I’m going to
need to arrange a descent down Germantown Road as an alternative approach to Portland for riders who don’t make it to Skyline Blvd until dusk. And I’m going to make the ride into Portland be via St. Helens Road instead of crossing over to the waterfront and taking Front Ave through the industrial park there (because there’s a metric buttload of traffic along highway 30 and it’s much easier to turn right onto St. Helens instead of left onto Kittridge.)
I didn’t get very many pictures, alas, but here are the ones I took. And now I will eat a snack and hope that I will be able to move in the morning.
Jul 29, 2011
Mavis and Dust Mite glare at the photographer.
To get my second 200k for the month in, I’m going out tomorrow to do a checkride of another 200k I’m building up as a permanent. I’ve not actually named it yet, but it sort of roughly follows the route of Michael Wolfe’s UGB200 (with the notable exceptions of not touching the MUP that follows what used to be Portland Traction’s Springwater line, bypassing Spangler in favor of Buckner Creek Road, and giving Hillsboro a miss in favor of jumping up to North Plains and zigging through the foothills on the north edge of Helvetia) so I’ve given it the codename “UGB 210” until I think of a more clever name.
Two info controls (Oregon City, the top of the Ridge Road ramp) and 3 stamped controls (Barton, Newberg, North Plains) with maybe additional controls at Gaston and/or Rock Creek if the permanents coordinator thinks that they are needed.
It should be a < 10 hour loop if I don’t tarry at controls (I rode most of the UGB200 at the start of the month, spent close to 2 hours gossiping at one control or another, but still did 200.5km in 10h40 (and this includes the long slow crawl I took across Hillsboro and Beaverton to get from Evergreen & Brookfield down to the ex-Red Electric route into Portland after I peeled off to get home by 5:30pm); this one is a little bit longer and a little bit steeper, but if I do my chatting at speed I should be able to make up for it.)
A pair of mismatched, but very colo(u)rful, socks from Sock It To Me. Alas, they are cotton, so they are not really well suited for long rides when it’s cold, but maybe they’ll be fine for kicking around town during the cooler fall months before it starts to rain.
Discount has been shoved up to version 22.214.171.124 with a couple of tiny enhancements that I discovered when prototyping a complete rewrite of the list processing code (again); When I was using the markdown dingus to see how nested lists are supposed to work, I realized that text blocks absorb adjacent code lines no matter where they are, not just inside list items.
Whoops. At least that’s a fairly small fix (which, thankfully, does not break any of the reference test suites and only broke three of my test cases that were expecting that nonstandard behavior.) And, when I was correcting those test cases, I finally snapped and redid the failed test case logger so that the output it produces is first the source that failed, then the differences between the expected and generated output, and finally the name of the
.t (a funny thing about the
.t files is that github tries to identify the programming language of the files you mirror there, and instead of doing the sensible thing and checking the file contents they just check the extension. A lot of perl test suites use
.t for their test cases, so the people at github decided that if the extension is
.t, it’s got to be perl. So if you’re looking at the discount mirror@github and see a claim that 20% of the code is in that TDVL, be aware that github is lying to you) file and how many cases succeeded/failed.
But, anyway, unless you regularly use constructs like
text text text
this New Code! will, hopefully, not cause male-pattern baldness, tremors, or faintness of breath (That is waiting for the rewrite/cleanup of the increasingly baroque list processing code) and you should scamper on out and help me debug it right now!
This loop is approximately the route my family took to get from Portland to Bend and back this last weekend. Some of the particulars have been tweaked – we drove out to Bend on highway 26, and didn’t take Marmot Road, the Barlow Road, Still Creek Road, or wind down into the desert on 217, the cross Warm Springs territory on BIA 3 – but it’s still the same sort of spectacularly scenic loop that I didn’t get nearly enough pictures of when I was wedged into the back seat of the car alongside two increasingly tired bears.
This loop carries the “long distance between controls or services” theme about as far as I’d comfortably want to carry them; it’s a long way between Zigzag and Warm Springs, and it’s almost as far between Sisters and Detroit (though there are probably some services in the form of a water tap at Santiam Junction.) And (assuming that Still Creek Road is actually passable) there’s a 7(8?) mile climb up Mount Hood on a gravel road, for people who thought that the narsty gravel ramp on the Oregon Coast 600 is just the thing for a nice day out.
If I can claw out enough time, I’d ride it as part of a short vacation; do Portland->Bend as one leg, rest a day, then come back over the mountain with freshly recharged camera and GPS, clean laundry, and fresh food. If not, well, next year is coming soon and I’ll be wanting to ride a 600 a couple of weeks after the spring series is finished.
Jul 28, 2011
I rode it last year, with poor results, so I tweaked it and, after a long delay, rerode it last month, and then, after fixing a couple of routing misfeatures (like a 5-mile or so steep gravel descent on unmarked trails) I submitted it to RUSA as a nice little 300km permanent.
When I was in Bend on Sunday, I got mail that the route was approved, so the next time I ride the thing I can walk away with a little entry in the RUSA database of miles they approve of.
The executive summary for this loop is that you start out in the city, wind your way up
to the top of the plateau between mounts Hood & Jefferson, and then after a considerable time sailing into and climbing out of various river valleys, you descend like a rock down into the Sandy River Valley, only interrupting the plunge to climb up Devil’s Backbone and then up the side of the Sandy River gorge before you work your way back into the city and back down to Sellwood (with a run up the shoulder of Mount Tabor as a last Hello, Sailor! before the loop is done.)
The features of this loop are a considerable amount of climbing (12,000 feet? 14,000? Only the GPS knows for sure, and it’s not telling,) primarily during the first half of the loop, and a really long stretch (from Ripplebrook to Government Camp) with no services except for water at Clackamas Lake Ranger Station (a good reason to plunk an info control there – after climbing up to High Rock your water bottles may be making gasping noises.) But you get excellent views from up on top of the hill; the road from High Rock across to Oregon Skyline Road gives you, if the weather is good, some spectacular views across the mountains towards Mount Jefferson, and when you reach NFD 48, almost every curve you make around a spur of the mountain gives you a larger and more spectacular view of the top of Mount Hood. And if you’re fast and can make it out of Government Camp before the freezing cold night winds start, it’s a shriekingly fast and spectacularly scenic descent down to Zigzag and the jog off to the Barlow Road for the run into Troutdale. There are pictures of it, too – 2010’s ride and 2011’s ride – so you can see some of what you’d be in for if you’re riding it.
And the route starts and stops in Westmoreland, instead of out in the middle of Washington County (I’ve already done the 26 mile shuttle out to the start of a R300 a couple of times, and it’s gotten really old. Riding around the corner to Marsee Baking to start the loop is a much more civilized distance.)
If you’re interested in riding it for RUSA credit, drop me a line; if you’re planning on riding when I’m around, I might be able to act as either an opening/closing control or, if I’m feeling fit and you’re feeling sociable, as a ride companion.
Jul 26, 2011
Black Butte and a companion lenticular cloud.
Jul 25, 2011
There’s an elderly Canadian Lynx at the High Desert Museum in Bend (it’s a horrifying story; this poor lynx was someone’s pet, but was dumped in a national forest when it became inconvenient. That’s awful, but it’s not the worst of it. The worst is that the despicable excuses for human beings who owned this lynx removed the canines and front claws from the poor cat, so it couldn’t actually hunt (assuming it knew how) after being dumped in the national forest. Fortunately some forest rangers came across the poor thing before it starved to death, and it found a new, if somewhat small, home at the High Desert Museum.)
Russell saw the lynx,immediately fell in love with it, and had to almost be dragged away to see the rest of the museum.
Jul 23, 2011
My grand plan for today was that I would wake up early in the morning, ride out to Ripplebrook, and figure out a good way to add the 4 miles I’d need to make it into an actual 200k loop. Unfortunately, I had trouble sleeping last night, and the alarm clock ended up magically being reset to 9am, and then I staggered around like a clubbed ox for the next three hours before heading out the door.
Leaving at noon is not a particularly good plan for riding a R200 if the idea is to get home before the sun sets. So I needed to do something else, and I realized that it had been a month since I last visited Zigzag. It’s 100 miles instead of 124, so it should be easier to do and get back before the sun went down, right?
Well, I did get back juuuuust barely before the sun went down, because the one feature of riding up to Zigzag that slows me way down is the tiny topological feature known as Devil’s Backbone, which tops out at over 1500 feet after 800 or so feet of climbing on Marmot Road. And if you run out of spare calories going up that ramp, it’s even slower (I hit one steep pitch and my speed dropped to nil. I stopped, took a swig of water, hopped back on the bike, and my speed dropped to nil again after about 75 feet, even though the grade had moderated considerably in that distance. A longish pause to cram mango slices down my gullet had amazing restorative powers, though not enough to get my climbing speed up to my traditional slug-like creep.)
The route is pretty simple; Springwater Trail out to Rugg Road, then Stone Ave out to Orient, then Bluff Road out to Pleasant Home, then south to Orient (again), east along
Kelso Road to Bluff Road (again) and into Sandy and the traditional lengthy pause for soda and a dozen donuts (these days the staff at Joe’s Donuts sees me arrive outside and start loading up the dozen before I even get into the door) before plunging down Ten Eyck into the gorge, and then clawing my way up Marmot to the Barlow Road, and then into Zigzag. And for the return I detour off on Shipley for a rattly chipseal descent down to the area of Roslyn Fen, onward to Dodge Park where I can stop to refill water bottles, then up Lusted to Dodge Park Blvd, Orient, Burnside, Market/Mill/Harrison, and taking the Springwater Trail on a circuitous loop back into Sellwood which places me back at my front door almost exactly 100 miles (and 9 hours, ugh) after I staggered out the door at the crack of noon.
A little more than a mile of climbing (5400-ish feet), including some stupidly relentless sections of Marmot Road. Climbing is a lot easier when I go down to
the bottom end of the alpine ring (34:32, which means I can s-l-o-w-l-y work my
way up 20% pitches without needing to stand up and push) but it takes effing forever to work my way up a ramp when I don’t have the energy to push myself.
So why do I do this? The donuts are a big part of it, but being able to work my way towards Mount Hood and see the peak growing larger and more solid every step of the way (at least until I drop down into the Sandy River gorge, which does a very good job of hiding the local stratovolcano) is not to be sneered at, particularly on a day like today when the only clouds in the sky were a line of hazy heat clouds above the Columbia River gorge. (And I’m also sticking to the delusion that if I climb a lot of mountains I might be able to keep up with my randonneuring friends who can climb steep ramps approximately twice as fast as I can.)
And it’s really pretty once you get on the unpopulated side of the urban growth boundary, and very quiet. In Portland there are the usual swarms of bicyclists, but once I got past Orient I didn’t see anyone except for a fellow in a Team Beer jersey up on Marmot Road just this side of the signpost and a fit young couple who were riding their heavily loaded touring bikes up and down the Barlow Road (I presume as practice for a somewhat more ambitious loop; I encountered them at the west end of the Barlow Road when I was stopping to use a pit toilet just as they were leaving, and again at the east end when they were turning around and I was zipping on by to get into Zigzag for a little something before heading back into town.) But other than those three, the only road bikes I saw out there were dozens and dozens of motorcycles (there were a considerable collection of Mountain Bikes at the lower end of the Sandy Ridge road, but they were being loaded into cars) and one fellow crossing 26 on a BMX bike in Zigzag. Maybe all the long-distance bikey people are in Bend for some cyclocross event this weekend?
Jul 22, 2011
Dust Mite and Buckley peer out the window.
A honeybee muscles in on the photo I’m taking of the tiny flowers out front of the house.
Jul 21, 2011
When I was riding out to the store this afternoon I reached the railroad crossing at Harrison Street (in Milwaukie) just before the northbound Coast Starlight did. Fortunately there’s a nice long tangent running SE through Milwaukie, so I could see the headlight at enough of a distance so I could pull across the road to a good viewing position, get the camera out, and get it fired up and ready to go before the lead Twinkie popped out from behind a conveniently placed (for photography) tree.
10 miles to the store if I take a direct route. 22 miles back if I take an indirect route :-)
Jul 20, 2011
Discount has been pushed up to version 126.96.36.199 with the addition of one new feature (and a bunch of internal optimizations to make that feature not suck lots of extra CPU time) in the form of PHP markdown extra-style fenced code block, where you can use marker strings to set off a chunk of code instead of indenting the offending block 4 spaces.
So where you’d normally do
# this is code that's indented 4 spaces, like John Gruber intended
You can instead do
# A line with 3 or more tildes starts a code block
# which ends with another line of 3 or more tildes
which gives you the following output:
A line with 3 or more tildes starts a code block
which ends with another line of 3 or more tildes
This code is moderately experimental, and there may be edge cases that will cause it to cheerfully dump core all over your machine, but where’s the sport in New Code! that doesn’t have the possibility of self-immolation? You should download it and see!
Jul 19, 2011
Silas walks along the shore of the Clackamas River.
OPR 1202 sits on the McBrod Ave lead. It’s nice and shiny today, because it’s been raining off and on in Portland for the past 4 days.
Jul 18, 2011
Russell and Silas at Alder Flats this afternoon.
Fauna in the Mount Hood National Forest.
Old-growth timber on the path down to the Alder Flats campground.
Jul 15, 2011
Jul 14, 2011
A neighbor’s cat sits in their front yard.
Another day, another Eng!
Jul 13, 2011
A sadly incomplete coffee cup at Laughing Planet.
Discount is now up to version 2.1.0 with a small collection of minor bugfixes and feature enhancements, to the tune of;
- modifications to
configure.sh so that it generates all
the test scripts in the build directory (not in
/tmp, which can be mounted with funky options on some commercial systems.)
- more MacOS support in
configure.sh; check to see if
folders are created when a test script is compiled, and, if so,
don’t forget to delete them when they’re cleaned up.
makepage now accepts markdown option flags a'la the
-fname, or in the
- strip bitfields out of
opts – I can’t initialize a bitfield
on plan9 cc.
- add a
-E flag to
theme to disable context-sensitivity on
None of these changes actually modify the markdown compiler itself; instead they just make it easier to build and pass options into various accessory programs. So it’s actually not very likely that you will make your computer explode if you install it, so if you rush right on out and install this New Code! it is not likely to do much other than make your markdowning life easier.
Jul 12, 2011
A cozy little steel & aluminum cathouse.
Jul 10, 2011
Silas at Sellwood Park this afternoon.
Jul 09, 2011
A few weeks ago Clackamas County had a referendum on whether to contribute a few piddly dollars to the Sellwood Bridge replacement project. It failed, because the selfish parasites in Clackamas County (74% of the trips over the Sellwood Bridge originate or terminate in Clackamas County) would rather continue getting their roadways for free.
Since then, I’ve noticed that whenever I cross the existing Sellwood bridge (in the lane, of course, because there are no dedicated bicycle lanes like there would be on the replacement) that I get a steady stream of idiots in trucks and other small-penis compensation devices shrieking obscenities at me when previously people would just silently share the bridge with me. It’s as if the selfish parasites actually thought that by voting against the bridge they’d make the bicyclists go away.
The Multnomah County commissioners might be spineless jellyfish that will roll over in the face of suburban idiots who feel that cities should spend all their money so that said idiots can waddle from suburb to suburb without tainting their beautiful subdivisions with permanent works, but I’m not. I’ve got right of way on that bridge, and I live in Portland. *kiss, kiss*, jerks; if you want respect, don’t be parasites, and be thankful Multnomah County isn’t slapping toll booths on the west approach to the bridge.
Even though it should.
Jul 08, 2011
Photo credit: NASA/Bill Ingalls,July 8, 2011
Perhaps some time in the future, after the parasitic classes have been aggressively pruned away, the United States (or some successor state) will send humans into orbit again. As for right now, there’s always Russia to keep lifting the torch out of our atmosphere.
I needed to oil my Pfaff 130 sewing machine, and thought I would look around on the net to see if there were instructions for how to do that task. Alas, there was no luck (someone had scanned a copy of the thing into scribd, but that’s one of those “YOU MUST HAVE AN ACCOUNT TO GET THIS FILE” websites) so I had to scrounge around my office and workshop to find my copy of the manual.
Eventually I found it, but it was enough of a time sink that I wanted to get a copy into a place where it would be easier to look for the next time I needed to oil the machine. So I sat down for a hour this afternoon between passes of sewing handlebar bag components and transcribed the instructions into a markdown document for future reference.
Whew. That’s a lot of typing. And the scanned figures aren’t high enough resolution yet, so I’ll have to rescan the lot of them (and put the
FIG X captions on, since html doesn’t have a good way to do that aside from table trickery.) But at least it’s on the web now, in a form that I can look at without fuss, muss, or bother.
Dust Mite and Mavis nap.
Jul 06, 2011
A trolley crosses in front of us during our trip back from the sushi joint this evening.
Jul 05, 2011
When I left the Big Big Big Store this evening, I walked around the corner and saw these two other xtracycles sitting locked up while their owners shopped. So I just had to drag the trek around to pose with them.
Russell rides his new(ish) bicycle.
Jul 04, 2011
Dorrie tries to sneak behind the furniture to get to the bathroom.
Jul 03, 2011
A pair of cars come off the mainline for the run down to Clackamas Towne Center™.
Jul 02, 2011
About 2 years after buying it, I finally installed the dynamo taillight on my trek. The install was moderately kludgy; I had to fabricate a mounting bracket for the taillight, then strap the bell wire (I used bell wire to carry the current from the head tube back to the rear of the bicycle) into place with a huge stack of zip ties, and then for attaching the taillight to the taillight connectors on my headlight I took a LED cable from an old junked motherboard, snipped the LED off the end, crimped the spade lugs onto the ex-LED connectors, then wrapped the cable around the head-tube and plugged the bare wire ends from the bell wire into the motherboard connector plug.
This is not exactly what you’d call elegant, but it does carry current to my taillight.
Jul 01, 2011
Dust Mite tries out the rando junk I found when I was riding around yesterday trying to get myself over 1000 miles for the month of June. Not actually having a nose makes it difficult for a dust mite to actually wear sunglasses, let alone sunglasses at night.
A pair of Clackamas-bound cars are about to zip under the Market St bridge.