The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Category: Recumbent Bicycling

Cruisin’ the streets

  • Sharing the Road on Raymond Avenue: Impatience

    We recently had one of those rare “Get the fuck off the road” incidents on Raymond. To set the stage, we’re on our way for groceries and I’m towing the trailer.

    The rear view shows the second car behind us veering far to the right side of the lane, trying to see around the car ahead of him, with much blowing of horn:

    Raymond Ave - Impatience - 2016-09-27 - 1
    Raymond Ave – Impatience – 2016-09-27 – 1

    The big GMC had been following us at a reasonable distance from the Juliet roundabout as we trundled along Raymond at about 12 mph, riding out of the Door Strike Zone for well and good reason.

    The GMC passed us at the end of the median, which let the impatient driver zoom up next to us. You can’t hear the horn that will blow as he pulls up next to me:

    Raymond Ave - Impatience - 2016-09-27 - 2
    Raymond Ave – Impatience – 2016-09-27 – 2

    Our usual route takes us into Davis St, so Mary’s already leaning into the right turn. I think he intended to go straight on Raymond for at least another block to the arterial, but he made an abrupt right turn into Davis St directly in front of me:

    Raymond Ave - Impatience - 2016-09-27 - 3
    Raymond Ave – Impatience – 2016-09-27 – 3

    Perhaps that’s to Teach Us A Lesson after all the horn-blowing?

    I always ride behind Mary and slightly to her left, so that if / when bad shit goes down, I can bring it down on me, rather than her. In this case, she was safely beyond what was about to happen:

    Raymond Ave - Impatience - 2016-09-27 - 4
    Raymond Ave – Impatience – 2016-09-27 – 4

    The wide-angle lens is deceiving, as I’m less than three feet from the car and closing rapidly; I’m obviously not turning as sharply as he expected and I’m not slowing to avoid a collision. There’s a parked car just ahead of Mary, to her right, and her path is as far to the right as it can get.

    He apparently realized that Teaching Me A Lesson would produce a nasty scuff on the side of his shiny black car and, perhaps having spotted the helmet camera, a nasty loss in the ensuing insurance squabble. He also wasn’t willing to swing wide, head-on into the oncoming lane of Davis, so he stopped dead in the intersection:

    Raymond Ave - Impatience - 2016-09-27 - 5
    Raymond Ave – Impatience – 2016-09-27 – 5

    That’s fine with me.

    I continued wide past the parked car on Davis. He accelerated hard, decided, once again, not to ram me from behind, turned abruptly left into the parking lot, and proceeded to the eastbound arterial:

    Raymond Ave - Impatience - 2016-09-27 - 6
    Raymond Ave – Impatience – 2016-09-27 – 6

    I’m stopped in that picture to aim the helmet camera backwards over my left shoulder. The car behind the white one is parked near the intersection, just to my right in the previous picture.

    As nearly as I could make out, he shouted, in addition to the usual obscenities, “Roads are for automobiles!”, a surprisingly articulate word under the circumstances. Evidently, he hadn’t noticed NYSDOT’s “Share the Road” signage helpfully posted on the far end of Raymond.

    Elapsed time from the Juliet roundabout to the parking lot: 45 seconds.

    Maybe he had a cake in the oven?

  • Too Many Deer, Twice More

    We spotted a classic example of deer damage at the corner gas / repair station:

    Deer-smashed car
    Deer-smashed car

    The undamaged bumper below the smashed grill and hood is diagnostic; the legs bounce off the bumper, while the body punches the grill back through the radiator. The airbags didn’t fire, but I’m pretty sure that car is just as dead as the deer.

    Plenty of deer-colored fur clinches the diagnosis:

    Deer-smashed car - hair detail
    Deer-smashed car – hair detail

    A few days later, a vulture overflew me on Hooker Avenue:

    Vulture - 2016-09-25 - Hooker Ave
    Vulture – 2016-09-25 – Hooker Ave

    It was flapping strongly, powering its way up to cruising altitude, which seemed odd that far into the urban heat island. On the return leg of the ride, I saw what had its attention:

    Deer carcass - 2016-09-25 - Hooker Ave
    Deer carcass – 2016-09-25 – Hooker Ave

    All swoll up, as the saying goes, and ready for the carcass disposal crew…

  • Maloney Road Repaving

    The Wappinger DPW laid asphalt along Maloney Rd, from side to side and end to end (well, to the end of their jurisdiction at the Lagrange town boundary). We passed the crew putting down the first layer on the westbound side:

    Maloney Road Paving - 2016-09-14
    Maloney Road Paving – 2016-09-14

    A few days later, they were doing the final layer on that side as we approached the Rail Trail entrance:

    Maloney Road Paving - 2016-09-17
    Maloney Road Paving – 2016-09-17

    Sometimes, good things happen out there on the roads!

    [Update: Vedran points to a Youtube video of paving:

    Paving Operations

    By the looks of it they are from (almost) your neck of the woods (NYCDOT). They have a mighty impressive machine going but if you watch the lower right corner for about 10 seconds you’ll spot them paving right over a manhole cover :) Guess no matter how smart the tech, users will always find a way.

    I’ve seen that done, too, but a guy should immediately dig out the cover (using the paint marks on the curb to find it) and taper the edges. That way, the paving machine produces a smooth surface along the street and the cover isn’t (shouldn’t be!) too deeply recessed.

    Sometimes they just spraypaint a circle over the buried cover and wait until somebody must go into that hole before digging it out. That makes a nice, smooth paving job, but eventually produces a steep-walled pit in the pavement which enlarges and crumbles into gravel.

    They should add a ring to the manhole to bring the cover flush with the new surface, but nobody (except the WDPW above!) does that around here until after the third or fourth paving job. Until then, it’s just like a pothole with a slick metallic bottom …

    /update]

  • Bulk-renaming Video Snapshots

    For reasons that should be obvious by now, I review the helmet camera video from (some of) our bike rides and extract snapshots of interesting events. VLC auto-names the snapshots along these lines:

    -rw-rw-r-- 1 ed ed  4.0M 2016-09-16 16:15 vlcsnap-2016-09-16-16h15m43s49.png
    -rw-rw-r-- 1 ed ed  3.2M 2016-09-16 16:15 vlcsnap-2016-09-16-16h15m59s181.png
    -rw-rw-r-- 1 ed ed  2.7M 2016-09-16 16:18 vlcsnap-2016-09-16-16h18m58s125.png
    -rw-rw-r-- 1 ed ed  3.7M 2016-09-16 18:40 vlcsnap-2016-09-16-18h40m22s7.png
    -rw-rw-r-- 1 ed ed  3.5M 2016-09-16 18:40 vlcsnap-2016-09-16-18h40m58s132.png
    -rw-rw-r-- 1 ed ed  3.5M 2016-09-16 18:41 vlcsnap-2016-09-16-18h41m29s181.png
    -rw-rw-r-- 1 ed ed  3.9M 2016-09-16 18:41 vlcsnap-2016-09-16-18h41m42s60.png
    -rw-rw-r-- 1 ed ed  3.8M 2016-09-16 18:41 vlcsnap-2016-09-16-18h41m54s146.png
    -rw-rw-r-- 1 ed ed  3.8M 2016-09-16 18:42 vlcsnap-2016-09-16-18h42m22s206.png
    -rw-rw-r-- 1 ed ed  3.7M 2016-09-16 18:42 vlcsnap-2016-09-16-18h42m38s58.png
    

    The gap in the timestamp after the first three files reveals a random errand.

    First, convert to JPG format, place the results in another directory and, en passant, mash them to a reasonable size:

    mkdir /some-useful-directory/Road\ Repair/"Rt 82 and CR 29"
    for f in  vlcsnap-2016-09-16* ; do convert $f -density 300 -define jpeg:extent=200KB /some-useful-directory/Road\ Repair/"Rt 82 and CR 29"/${f%%.*}.jpg ; done
    cd /some-useful-directory/Road\ Repair/"Rt 82 and CR 29"
    

    Replace the first part of the VLC-generated names with relevant identification:

    rename 's/vlcsnap-/Rt 82 - /' vlcsnap-2016-09-16-16*
    rename 's/vlcsnap-/CR 29 - /' vlcsnap*
    

    The directory now contains these files:

    -rw-rw-r-- 1 ed ed 193K 2016-09-19 11:36 CR 29 - 2016-09-16-18h40m22s7.jpg
    -rw-rw-r-- 1 ed ed 192K 2016-09-19 11:36 CR 29 - 2016-09-16-18h40m58s132.jpg
    -rw-rw-r-- 1 ed ed 193K 2016-09-19 11:36 CR 29 - 2016-09-16-18h41m29s181.jpg
    -rw-rw-r-- 1 ed ed 193K 2016-09-19 11:36 CR 29 - 2016-09-16-18h41m42s60.jpg
    -rw-rw-r-- 1 ed ed 194K 2016-09-19 11:36 CR 29 - 2016-09-16-18h41m54s146.jpg
    -rw-rw-r-- 1 ed ed 196K 2016-09-19 11:36 CR 29 - 2016-09-16-18h42m22s206.jpg
    -rw-rw-r-- 1 ed ed 196K 2016-09-19 11:36 CR 29 - 2016-09-16-18h42m38s58.jpg
    -rw-rw-r-- 1 ed ed 195K 2016-09-19 11:36 Rt 82 - 2016-09-16-16h15m43s49.jpg
    -rw-rw-r-- 1 ed ed 194K 2016-09-19 11:36 Rt 82 - 2016-09-16-16h15m59s181.jpg
    -rw-rw-r-- 1 ed ed 194K 2016-09-19 11:36 Rt 82 - 2016-09-16-16h18m58s125.jpg
    
    

    These bursts of Perl regex line noise replace the snapshot timestamp on those files with an ascending sequence number, with separate sequences for each group:

    i=1 ; for f in CR* ; do rename -v "s/-1[68]h..m..s\d{1,3}/ - $(( i++ ))/" "$f" ; done
    i=1 ; for f in Rt* ; do rename -v "s/-1[68]h..m..s\d{1,3}/ - $(( i++ ))/" "$f" ; done
    

    And then the files make sense:

    -rw-rw-r-- 1 ed ed 193K 2016-09-19 13:51 CR 29 - 2016-09-16 - 1.jpg
    -rw-rw-r-- 1 ed ed 192K 2016-09-19 13:51 CR 29 - 2016-09-16 - 2.jpg
    -rw-rw-r-- 1 ed ed 193K 2016-09-19 13:51 CR 29 - 2016-09-16 - 3.jpg
    -rw-rw-r-- 1 ed ed 193K 2016-09-19 13:51 CR 29 - 2016-09-16 - 4.jpg
    -rw-rw-r-- 1 ed ed 194K 2016-09-19 13:51 CR 29 - 2016-09-16 - 5.jpg
    -rw-rw-r-- 1 ed ed 196K 2016-09-19 13:51 CR 29 - 2016-09-16 - 6.jpg
    -rw-rw-r-- 1 ed ed 196K 2016-09-19 13:51 CR 29 - 2016-09-16 - 7.jpg
    -rw-rw-r-- 1 ed ed 195K 2016-09-19 13:51 Rt 82 - 2016-09-16 - 1.jpg
    -rw-rw-r-- 1 ed ed 194K 2016-09-19 13:51 Rt 82 - 2016-09-16 - 2.jpg
    -rw-rw-r-- 1 ed ed 194K 2016-09-19 13:51 Rt 82 - 2016-09-16 - 3.jpg
    

    The hard part, this time around, involved figuring a regex for the timestamp. The trick was to specify a single digit for the milliseconds part, with a repetition count allowing for one-to-three digits.

    The Perl regex cheat sheet helped.

    The double quotes around the rename search parameter allows the shell to expand the $(( i++ )) gibberish. The double quotes around the file name keep the blank-separated parts together.

    At some point I must figure out how to produce leading-zero-filled sequence numbers, which will probably involve a printf.

    The ride covered some roads with “2 to 4 foot” shoulders, which seems overly optimistic:

    Rt 82 - 2016-09-16 - 3
    Rt 82 – 2016-09-16 – 3

    NYSDOT and DCDPW both believe a homeopathic strip of asphalt will cover faults in the travel lane and don’t care that the right side of the strip puts an abrupt ledge along the middle of the minimal and fissured shoulder:

    Rt 82 - 2016-09-16 - 1
    Rt 82 – 2016-09-16 – 1

    Ah, well, it was a lovely day for a ride …

  • APRS iGate KE4ZNU-10: Southern Coverage

    A pleasant Friday morning ride with several stops:

    KE4ZNU-9 - APRS Reception - 2016-09-09
    KE4ZNU-9 – APRS Reception – 2016-09-09

    KE4ZNU-10 handled the spots near Red Oaks Mill, along parts of Vassar Rd that aren’t hidden by that bluff, and along Rt 376 north of the airport.

    The KB2ZE-4 iGate in the upper left corner caught most of the spots; it has a much better antenna in a much better location than the piddly mobile antenna in our attic.

    Several of the spots along the southern edge of the trip went through the K2PUT-15 digipeater high atop Mt. Ninham near Carmel, with coverage of the entire NY-NJ-CT area.

    The APRS-IS database filters out packets received by multiple iGates, so there’s only one entry per spot.

    All in all, KE4ZNU-10 covers the southern part of our usual biking range pretty much the way I wanted.

  • Road Conditions: Rt 376 SB Near Maloney Rd

    NYSDOT seems oddly reluctant to perform routine brush clearing along Rt 376 from Red Oaks Mill to the Hamlet of New Hackensack, despite the obvious hazard presented by the bushes:

    Rt 376 SB shoulder overgrowth - 2016-09
    Rt 376 SB shoulder overgrowth – 2016-09

    I’ve reported this situation several times over the years, but, as you’ve seen in other situations, that has no effect.

    If it were a pleasant back-country lane, rather than our main route to the Dutchess Rail Trail, perhaps having the greenery take over the shoulder wouldn’t matter quite so much:

    Rt 376 SB - semitrailer
    Rt 376 SB – semitrailer

    Turns out the shoulder just north of Maloney has developed lethal cracks as the pavement subsides into the adjoining section of the Mighty Wappinger Creek. A bit more clearance would still be nice.

  • No Turning Back, Vehicular Division

    We were in the Arlington Square exit, waiting to cross Rt 44 into Adams:

    Rt 44 Plaza Exit - 2016-08-02 - 0
    Rt 44 Plaza Exit – 2016-08-02 – 0

    If we both line up on the traffic signal sensor loop, it seems to detect us; Mary’s on the right side of the loop, I’m rolling along the left side. This seems to be an old-school dipole loop, not a quadrupole.

    Despite the fact that the mall entrance lane is to our left, across that substantial median strip and exactly where you’d expect it, a driver turned left from Rt 44 into the mall exit:

    Rt 44 Plaza Exit - 2016-08-02 - 1
    Rt 44 Plaza Exit – 2016-08-02 – 1

    He obviously intended to use the lane we were occupying, because it’s the right-hand lane from his direction (where we were obviously not supposed to be), but veered away at the last moment:

    Rt 44 Plaza Exit - 2016-08-02 - 2
    Rt 44 Plaza Exit – 2016-08-02 – 2

    Which was a good thing for all parties concerned, including the car approaching us in the proper lane:

    Rt 44 Plaza Exit - 2016-08-02 - 3
    Rt 44 Plaza Exit – 2016-08-02 – 3

    Elapsed time: five seconds.

    The driver then turned right, head-on against cars exiting from the parking lot and parallel-broadside with a pickup entering in the proper lane, and somehow didn’t collide with anybody or anything.

    From where we sat, there was absolutely nothing we could do but watch death roll toward us.