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: Photography & Images

Taking & making images.

  • Gulfstream V on Final to KPOU

    This corner on Maloney Rd is almost exactly one mile from the end of Hudson Valley Regional Airport Runway 24:

    Maloney to KPOU map
    Maloney to KPOU map

    So it’s not unusual to ride under a small plane on final approach. Having a Gulfstream V fly directly overhead, however, is a real attention-getter:

    Gulfstream V on final - Maloney Rd - 2018-08-26
    Gulfstream V on final – Maloney Rd – 2018-08-26

    What’s not at all obvious from the picture is how big a GV looks when seen directly overhead through those trees just ahead on the corner where our paths crossed. There’s a 360 ft (above sea level) hill directly on the flight path, so it’s at maybe 600 ft ASL and 400-ish ft AGL.

    Thrust-reversal thunder rolled over us 50 seconds later, as we rode up the rail trail access ramp. Figuring we’re 15 sound-seconds from the strip, the GV was 30 seconds from touchdown.

  • Sinking of the USS President Coolidge: Photo Source

    While staying at the Witherup House in Franklin PA, I found :

    Colliers Photographic History of World War II - cover
    Colliers Photographic History of World War II – cover

    It was published in 1946, when memories were fresh and ISBNs hadn’t yet been invented:

    Colliers Photographic History of World War II - copyright 1946
    Colliers Photographic History of World War II – copyright 1946

    Paging through it, I found a photo similar to one I’d grown up with (clicky for more many dots):

    USS President Coolidge - Abandon Ship - Colliers Photographic History of World War II
    USS President Coolidge – Abandon Ship – Colliers Photographic History of World War II

    None of those guys look like Dad.

    Many of the events in World War II made little sense until the declassification of the Enigma decryptions and the ensuing Ultra / Magic programs showed the value of weaponized math …

  • Burnett Blvd at Rt 55: More Speed On Red

    We’re waiting at the end of Burnett Blvd, with the signal red and the clock at T = -0.17 seconds (photo numbers in 1/60 second frames):

    RedRunner-0194
    RedRunner-0194

    You can’t hear the car (barely visible) approaching on the far left, but we can.

    T = 0.00 – We get a green light and the (more visible) car is accelerating hard:

    RedRunner-0204
    RedRunner-0204

    T = 1.00 – The car reaches the crosswalk:

    RedRunner-0264
    RedRunner-0264

    Note that the driver of the car to our right isn’t moving, either.

    T = 2.03 – Car passes through intersection:

    RedRunner-0326
    RedRunner-0326

    The view from above, showing the distance between those two positions is 100 feet:

    Burnett at Rt 55 - Distance along Rt 55
    Burnett at Rt 55 – Distance along Rt 55

    Do the math: 100 ft / 1.03 s = 97 ft/s = 66 mph.

    There’s a reason we don’t start moving instantly when a traffic signal turns green.

    T = 3.17 – We start moving, as does the car to our right, with our signal still green:

    RedRunner-0394
    RedRunner-0394

    T = 4.88 – Whoops, our signal turns yellow:

    RedRunner-0497
    RedRunner-0497

    T = 9.28 – Our signal turns red:

    RedRunner-0761
    RedRunner-0761

    The signal timing hasn’t changed over the years:

    • Green = 4.88 s
    • Yellow = 4.40 s

    Elapsed time from green to red: 9.28 seconds. No problem if you’re a car, death if you’re a bike.

    T = 10.42 – We’re pedaling hard in the intersection:

    RedRunner-0829
    RedRunner-0829

    The white car to our far right started moving into the intersection about the time we did. If you’re going to say we shouldn’t run the light, you gotta deal with cars first, OK?

    Note the car approaching from the right on the far side of Rt 55. That’s a 40 mph zone, the driver sees a green light, and we’re still in the intersection.

    T = 12.50 – We’ve been moving for 9.33 s, which puts Mary directly in the path of the oncoming car:

    RedRunner-0954
    RedRunner-0954

    T = 14.83 – The oncoming driver having spotted us and slowed down, we’re asymptotically approaching the right-hand lane of Rt 55, passing beyond the steel manhole cover:

    RedRunner-1067
    RedRunner-1067

    If you plunk “burnett signal” into the search box at the upper right, you’ll find plenty of previous incidents along these lines.

    Despite bringing this hazard to their attention many times (“We appreciate and share your interest in making our highway systems safe and functional for all users.“), NYS DOT obviously doesn’t care.

    If any of their employees commuted to their office building (which overlooks this very intersection), perhaps they would care, but they don’t: we have yet to see a bicycle in the DOT’s token bike rack.

    DOT says they’re in favor of Complete Streets, but, seven years on, it’s just another day on the only route between Arlington and the Overocker Trailhead of the Dutchess County Rail Trail.

  • Monthly Image: Belmar Bridge

    About five miles south of Franklin PA along the Allegheny River Trail, the Belmar Bridge carries the Sandy Creek Trail over the Allegheny River:

    Belmar Bridge - Rivets
    Belmar Bridge – Rivets

    The gap in the rivets along the main truss show where someone pried off the bronze plaque surely commemorating the bridge. The scarred surface suggests a bronze-steel battery was in effect for quite some time.

    I’m a sucker for big ironwork:

    Belmar Bridge - Truss Joint
    Belmar Bridge – Truss Joint

    It’s a look at engineering done in the days of slide rules and limited data, when overengineering wasn’t nearly as bad as ensuring the thing never, ever fell down.

    The bolts holding the beams and struts together show considerable confidence:

    Belmar Bridge - Ironwork - bolt detail
    Belmar Bridge – Ironwork – bolt detail

    Each bolt counts as single point of failure, but this one can rust for a long, long time before the risk becomes important.

    Each of those gazillion rivets required a crew to heat white hot, shove into the hole, and hammer tight.

    They don’t make ’em like that any more and I suppose it’s a good thing …

     

     

     

  • Ortlieb Backroller Pack Drop

    Although the pair of Ortlieb Back-Roller packs on Mary’s bike make her look like a long-distance tourist, we’re actually on our way to her garden plot:

    AS30V-0285
    AS30V-0285

    The left-side pack suddenly seemed unusually floppy:

    AS30V-0300
    AS30V-0300

    One second later:

    AS30V-0360
    AS30V-0360

    Another second and it’s visible under my right hand:

    AS30V-0420
    AS30V-0420

    The view from her bike at about the same time:

    Ortlieb-0158
    Ortlieb-0158

    I’m expecting to fall to my right, but it’d have been better if I hadn’t kicked the bag:

    Ortlieb-0169
    Ortlieb-0169

    The pack went under the rear wheel and out the far side:

    Ortlieb-0185
    Ortlieb-0185

    Where it came to rest in the middle of the trail:

    Ortlib pack drop - aftermath
    Ortlib pack drop – aftermath

    Elapsed time from the first picture: just under 5 s.

    Did you notice the other cyclist in the other pictures? She’s why I veered so hard to my right!

    A pair of these latches hold the pack onto the rear rack:

    Ortlieb pack drop - QL latch detail
    Ortlieb pack drop – QL latch detail

    When they’re properly engaged, they look like this:

    Ortlieb pack drop - QL latch - secure
    Ortlieb pack drop – QL latch – secure

    When they’re not, they look like this:

    Ortlieb pack drop - QL latch - whoopsie
    Ortlieb pack drop – QL latch – whoopsie

    Which is obvious in the picture and inconspicuous in real life.

    The strap emerging from the top of the latch serves as both a carrying handle and latch release: pull upward to open the latches and release them from the bar, lift to remove the pack, and carry it away as you go. Installing the pack proceeds in reverse: lower the pack onto the rack bar, release the handle, and the latches engage.

    Unless the pack is empty enough to not quite fully open the latches as you carry it, in which case the closed latches simply rest on the bar. We’ve both made that mistake and I generally give her packs a quick glance to ensure sure they’re latched. In this case, the plastic drawer atop the racks (carrying seedling pots on their way to the garden) completely concealed the pack latches.

    Tree roots have been creasing the asphalt along that section of the rail trail: the bike finally bounced hard enough to lift the drawer and fall off the rack rod.

    Memo to Self: In addition to the visual check, lift the packs using the strap across the middle holding the rolled-down top in place. Remember, don’t check by lifting the carrying handle, because it just releases the latches; another easy mistake to make.

    Whew!

  • Copying Action Camera Video: Now With UUIDs

    Having tired of manually decoding UDEV’s essentially random device names produced for the various USB action cameras and card readers, I put the device UUIDs in /etc/fstab and let the device names fall where they may:

    UUID=B40C6DD40C6D9262	/mnt/video	ntfs	noauto,uid=ed 0 0
    UUID=0FC4-01AB	/mnt/Fly6	vfat	noauto,nodiratime,uid=ed	0	0
    UUID=0000-0001	/mnt/M20	vfat	noauto,nodiratime,uid=ed	0	0
    LABEL=AS30V	/mnt/AS30V	exfat	noauto,nodiratime,uid=ed	0	0
    

    You get those by plugging everything in, running blkid, and sorting out the results.

    The 64 GB MicroSD card from the Sony AS30V camera uses Microsoft’s proprietary exfat file system, which apparently doesn’t associate a UUID/GUID with the entire device, so you must use a partition label. The Official SD Card Formatter doesn’t (let you) set one, so:

    exfatlabel /dev/sdd1 AS30V
    

    It turns out you can include spaces in the partition label, but there’s no way to escape them (that I know of) in /etc/fstab, so being succinct counts for more than being explanatory.

    One could name the partition in the Windows device properties pane, which would make sense if one knew it was necessary while the Token Windows Laptop was booted with the card in place.

    I think this is easier then trying to persuade UDEV to create known device names based on the USB hardware characteristics, because those will depend on which USB card / device / reader I use. I can force the UUIDs to be whatever I want, because they’re just bits in the disk image.

    With all that in place, you plug in All. The. Gadgets. and run the script (as seen below). The general idea is to verify the bulk video drive mounted OK, attempt to mount each memory card and fire off a corresponding rsync copy, wait until they’re all done, tidy the target filenames, then delete all the source files to get ready for the next ride.

    Funneling all three copies to a single USB hard drive probably isn’t the smartest thing, but the overall write ticks along at 18 MB/s, which is Good Enough for my simple needs. If the drive thrashes itself to death, I won’t do it again; I expect it won’t fail until well outside the 1 year limited warranty.

    If any of the rsync copies fail, then nothing gets deleted. I’m a little queasy about automagically deleting files, but it’s really just video with very little value. Should something horrible happen, I’d do the copies by hand, taking great care to not screw up.

    After all, how many pictures like this do we need?

    Ed signalling on Raymond
    Ed signalling on Raymond

    The Bash script as a GitHub Gist:

    UUID=B40C6DD40C6D9262 /mnt/video ntfs noauto,uid=ed 0 0
    UUID=0FC4-01AB /mnt/Fly6 vfat noauto,nodiratime,uid=ed 0 0
    UUID=0000-0001 /mnt/M20 vfat noauto,nodiratime,uid=ed 0 0
    LABEL=AS30V /mnt/AS30V exfat noauto,nodiratime,uid=ed 0 0
    view raw fstab hosted with ❤ by GitHub
    #!/bin/bash
    # This uses too many bashisms for dash
    thisdate=$(date –rfc-3339=date)
    echo Date is $thisdate
    date
    # MicroSD / readers / USB drive defined in fstab
    # … with UUID or PARTID as appropriate
    echo Mounting bulk video drive
    sudo mount /mnt/video
    if [ $? -ne 0 ]; then
    echo '** Cannot mount video storage drive'
    exit
    fi
    # Show starting space available
    df -h /mnt/video
    #– Sony AS30V
    printf "\n— AS30V\n"
    as30v=/mnt/AS30V
    sudo mount $as30v
    if [ $? -eq 0 ]; then
    echo " start AS30V transfer on $as30v"
    mkdir /mnt/video/AS30V/$thisdate
    rsync -ahu –progress –exclude "*THM" $as30v/MP_ROOT/100ANV01/ /mnt/video/AS30V/$thisdate &
    pid1=$!
    echo " PID is $pid1"
    else
    echo " skipping"
    as30v=
    fi
    #– Cycliq Fly6
    printf "\n— Fly6\n"
    fly6=/mnt/Fly6
    sudo mount $fly6
    if [ $? -eq 0 ]; then
    echo " start Fly6 transfer on $fly6"
    rsync -ahu –progress $fly6 /mnt/video &
    pid2=$!
    echo " PID is $pid2"
    else
    echo " skipping"
    fly6=
    fi
    #– SJCAM M20
    printf "\n— M20\n"
    m20=/mnt/M20
    sudo mount $m20
    if [ $? -eq 0 ]; then
    echo " start M20 transfer on $m20"
    mkdir /mnt/video/M20/$thisdate
    # See if any still images exist to avoid error messages
    n=$( ls $m20/DCIM/Photo/* 2> /dev/null | wc -l )
    if [ $n -gt 0 ] ; then
    echo " copy M20 photos first"
    rsync -ahu –progress $m20/DCIM/Photo/ /mnt/video/M20/$thisdate
    fi
    rsync -ahu –progress $m20/DCIM/Movie/ /mnt/video/M20/$thisdate &
    pid3=$!
    echo " PID is $pid3"
    else
    echo " skipping"
    m20=
    fi
    printf "\n—– Waiting for all rsync terminations\n"
    rc=0
    for p in $pid1 $pid2 $pid3 ; do
    wait -n
    rc=$(( rc+$? ))
    echo RC so far: $rc
    done
    date
    if [ $rc -eq 0 ] ; then
    echo '—– Final cleanups'
    echo Fix capitalized extensions
    find /mnt/video -name \*AVI -print0 | xargs -0 rename -v -f 's/AVI/avi/'
    find /mnt/video -name \*MP4 -print0 | xargs -0 rename -v -f 's/MP4/mp4/'
    if [ "$as30v" ]; then
    echo Remove files on $as30v
    rm $as30v/MP_ROOT/100ANV01/*
    sudo umount $as30v
    fi
    if [ "$fly6" ]; then
    echo Remove files on $fly6
    rm -rf $fly6/DCIM/*
    sudo umount $fly6
    fi
    if [ "$m20" ]; then
    echo Remove files on $m20
    rm $m20/DCIM/Movie/* $m20/DCIM/Photo/*
    sudo umount $m20
    fi
    echo '—– Space remaining on video drive'
    df -h /mnt/video
    sudo umount /mnt/video
    echo Done!
    else
    echo Whoopsie! Total RC: $rc
    fi
    view raw savevideo.sh hosted with ❤ by GitHub
  • Monthly Image: Maple Tree Fungus

    Repaving the driveway truncated the roots of a maple tree and, this year, produced a handsome pair of fungii:

    Fungus - top view
    Fungus – top view

    Seen from the side, they’re even more complex:

    Fungus - side view
    Fungus – side view

    They’re firm and perfectly healthy, but the tree is likely doomed.