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.

Tag: Rants

And kvetching, too

  • Invisible Asterisk: Except Cops

    The signs at every Dutchess Rail Trail grade crossing and access point seem unambiguous:

    DCRT - No Motor Vehicles
    DCRT – No Motor Vehicles

    More specific signs appear at random intervals along the trail:

    DCRT - All Terrain Vehicles Prohibited
    DCRT – All Terrain Vehicles Prohibited

    You can’t see it, but every sign includes an invisible asterisk introducing the invisible clause “Except Cops”:

    DCRT - Sheriff ATV Convoy
    DCRT – Sheriff ATV Convoy

    Back when the Dutchess County deputy sheriffs rode huge ATVs that occupied nearly the entire paved trail and bulldozed everybody out of their way, I had the temerity to ask why they weren’t riding bikes. The deputy sheriff told me, rather condescendingly, that they had to be prepared for anything and that there had already been incidents.

    These little ATVs aren’t quite so imposing and, more likely, also fit on the new bridges and between the bollards, which may explain everything.

    I’ve seen what might be their best use case, although ambulances can attract your attention without an ATV escort:

    DCRT - Sheriff ATV Leading Ambulance
    DCRT – Sheriff ATV Leading Ambulance

    Straight up, I have no objection to police patrols on the rail trail.

    do object to the official mindset that simply adds an invisible exception to any inconvenient rule.

    As I see it, the root cause of the militarized police and extralegal government activities we’ve seen across the country in recent years boils down to “That law / regulation / rule does not apply to us, because we are the government.”

    I can ride the length of the DCRT and back in about two hours, averaging 12 mph, without getting particularly sweaty in the process; the track in that link shows a three hour ride that includes the HVRT and a Walkway scrum, plus the ride from and to home. A police ATV can’t go much faster than that on the trail, even with lights and sirens, because oblivious pedestrians keep getting in the way.

    If an officer on a bike can’t keep up with me, then something has gone badly wrong with the job requirements for becoming a deputy sheriff.

    As far as “being prepared for anything” goes, the cargo capacity of those little ATVs rules out a bunch of hardware that fit in the big ones: anything seems an elastic concept. A bike can carry enough equipment for many incidents; my tool kit weighs more than some bike frames, the packs have plenty of room to spare, and there’s always the trailer option. I doubt genuine Mil-Spec assault rifles would come in handy on the rail trail.

    It’s also not clear why an officer on a bike can’t call for the same backup as an officer on an ATV: those buggies lack fancy VHF antennas, so they’re using a hand-held radio or phone. The 5 W amateur radio on my bike, through a mobile VHF antenna on a crappy ground system, can easily reach local amateur radio repeaters and APRS nodes. Many pedestrians seem absorbed with their phones, so getting microwaves into and out of the trail doesn’t pose much of a problem.

    Cops-on-bikes present a much less aggressive aspect than cops-on-ATVs who ignore the rules that apply to the rest of us.

    They could do it differently, as the department has both bikes and ATVs.

  • When the Phone Don’t Ring, We Know It’s Carmen

    A few weeks ago we ported our landline number to Ooma’s VOIP service, turned on their Community Blacklist, blacklisted a few pests that crept through, and … the scam calls vanished. For the first week, the only calls we received came from people we know.

    Most of the Caller ID numbers seem faked, so one side effect of blocking them will be to prevent calls from real persons or businesses eventually assigned those numbers. In particular, I’ve set up a blacklist filter that kills calls from numbers that differ from ours in only the last few digits: at least one scammer combined the first several digits of the called number with some random digits at the end.

    Obviously, it’s impossible to kill all the faked numbers. The filters work surprisingly well, though.

    Killing nearly all the scam calls is worth ten bucks a month right there, even though it seems odd to pay a private party to prevent illegal action by somebody else. Used to be the government put our tax dollars to work and dealt with people who performed illegal actions, but … that was then, this is now.

    As an aside, I wonder how the NSA handles all those scam calls. Given that the Feds regard anybody within three or four hops of a Person Of Interest to be a Person of Interest, not only should all the scammers have terrorist tags (they call everybody all the time, right?), we ordinary folks picking up the phones are now within a few hops of a known terrorist affiliate.

    Conversely, if the NSA discards scam calls, then I know precisely how to set up the perfect terrorist communications network.

    Verizon refunded $3.11 from our last bill and didn’t try to convince us to retain our landline service. They’d recently “upgraded” our copper line to fiber, so the basement has a nice Optical Network Terminal that I just unplugged; they don’t seem to want it back. Maybe I’ll harvest the 12 V 8 Ah (!) SLA battery for a project.

    We’re not interested in the FiOS “Triple Play” special offers that hover around $90/month for two years, plus unknown equipment charges, plus a regional sports network surcharge, plus unknown taxes and fees, with or without a $250 gift card kickback, with or without a discounted tablet. The cable company recently boosted what we pay for 15/3 cable to $60/month, so we’re definitely trapped by a duopoly.

    Some things (all, some, or none of which may be true) I learned while chatting with various contestants:

    • Overtalking them with “You may hang up at any time if you agree that you’re a scammer” produces either an immediate hangup (they agree!) or a very interesting discussion.
    • Starting with “You have sixty seconds to prove you’re not a scammer. Go!” generally produces an immediate hangup.
    • Setting up a call center “the size of your garage” costs about 85 kilobucks and provides seats for about a dozen “agents”.
    • It’s the best job you’ve had, if you’ve been unemployed for three years, because it’s minimum wage plus a bonus for every prospect you “qualify”, all without having to work in a retail environment. I was unable to discover when the bonus kicks in, but likely after the Level 2 closer sucks actual money out of the victim’s credit card account.
    • Some contestants sincerely believe they’re doing a Good Thing: helping people get lower interest rates on their credit card debt. Pointing out that I’ve asked my credit card issuer whether that works and getting a firm “No!” in reply doesn’t change their belief in the least.

    It’s sad that getting a dead-end job in a scamming company might be the best thing that’s happened to some of those folks in a long time. Makes me almost regret having some of them break down and cry under interrogation…

  • Sony HDR-AS30V vs. ExFAT vs. Ext2 Times: Total Bafflement

    I’d like to overlay a timestamp on still images extracted from Sony HDR-AS30V camera videos, ideally including the frame number, to record exactly when the incident occurred. Movie players use relative time, with 00:00:00 at the beginning of the file, so we’ll need either the file timestamp or the timestamp recorded in the image’s Exif data, plus the frame number modulo 60 (or, shudder, 59.94 for NTSC).

    The ExFAT format used on 64 GB MicroSD cards stores the file’s creation time, its modification time (writing data), and the most recent access time (reading data). That’s similar to the Linux ext2/3/4 filesystem time and unlike plain old FAT, which omits the access time.

    The various FAT formats store local time, with no regard for time zones, Daylight Saving Time, or anything else. Linux stores times as UTC and converts to local time on the fly. This has catastrophic consequences for getting any of this right.

    It helps to have alias ls='ls -h --color=auto --time-style=long-iso' in your .bashrc file.

    The HDR-AS30V has a year-month-day calendar, a 24-hour clock, a Time Zone value, and a separate DST on/off setting.

    Turning DST on adds 1 hr to the Time Zone value, turning it off subtracts 1 hr. That has the side effect of changing the clock time: not what I expected. You must, therefore, set the TZ first, then DST, then the clock, which does not follow the menu’s natural order of things.

    The camera sets file timestamps as it creates the files, but Linux also meddles with the values while displaying them. Some doc suggests that Linux regards FAT file timestamps as UTC and applies DST correction, which seems to match what I see. There’s a mount option (-o tz=UTC) that seems to have no effect, as well as an undocumented time offset (-o time_offset=60) that also has no effect.

    Setting the TZ to GMT+0 (Sony uses GMT, not UTC) for simplicity, setting the clock to the correct local time, and twiddling DST shows that:

    • Rebooting (remove /insert battery) doesn’t change anything
    • Metadata in file = clock setting – DST setting (-1 on, +0 off)
    • MP4 / THM file create / modify times = always clock +1 hour
    • MP4 / THM file access times = as create / modify until next Linux access

    Under those conditions, with the clock set to (locally accurate) 1908, UTC+1, and DST off, then the Exif timestamp metadata for a movie created at that time look like this:

    exiftool /mnt/part/MP_ROOT/100ANV01/MAH00036.MP4 | grep -i date
    File Modification Date/Time     : 2014:09:01 20:08:09-04:00
    File Access Date/Time           : 2014:09:01 19:10:14-04:00
    File Inode Change Date/Time     : 2014:09:01 20:08:09-04:00
    Create Date                     : 2014:09:01 19:08:03
    Modify Date                     : 2014:09:01 19:08:08
    Track Create Date               : 2014:09:01 19:08:03
    Track Modify Date               : 2014:09:01 19:08:08
    Media Create Date               : 2014:09:01 19:08:03
    Media Modify Date               : 2014:09:01 19:08:08
    

    The corresponding filesystem values:

    ll /mnt/part/MP_ROOT/100ANV01/
    total 146M
    ... snippage ...
    -rwxr-xr-x 1 ed root  14M 2014-09-01 20:08 MAH00036.MP4
    -rwxr-xr-x 1 ed root 8.5K 2014-09-01 20:08 MAH00036.THM
    
    ll -c /mnt/part/MP_ROOT/100ANV01/
    total 146M
    ... snippage ...
    -rwxr-xr-x 1 ed root  14M 2014-09-01 20:08 MAH00036.MP4
    -rwxr-xr-x 1 ed root 8.5K 2014-09-01 20:08 MAH00036.THM
    
    ll -u /mnt/part/MP_ROOT/100ANV01/
    total 146M
    ... snippage ...
    -rwxr-xr-x 1 ed root  14M 2014-09-01 19:10 MAH00036.MP4
    -rwxr-xr-x 1 ed root 8.5K 2014-09-01 20:08 MAH00036.THM
    

    The THM file contains a 160×120 pixel JPG thumbnail image taken from the first frame of the corresponding MP4 file. For longer movies, it’s more obvious that the MP4 file creation date is the start of the movie and its modification date is the end. The maximum 4 GB file size of corresponds to exactly 22:43 of 1920×1080 movie @ 60 frame/sec (the metadata says 59.94).

    The +1 hour offset in the file create / modify times comes from the FAT timestamp being (incorrectly) adjusted by the Linux DST setting. When exiftool reads the MP4 file, that resets its access time to the actual time as seen by Linux, thereby crushing the bogus FAT time.

    Doing the seemingly sensible thing of setting the camera to have the correct local time (roughly 1930), the correct time zone, and the correct DST setting produces this jumble:

    exiftool /mnt/part/MP_ROOT/100ANV01/MAH00037.MP4 | grep -i date
    File Modification Date/Time     : 2014:09:01 20:33:15-04:00
    File Access Date/Time           : 2014:09:01 20:33:14-04:00
    File Inode Change Date/Time     : 2014:09:01 20:33:15-04:00
    Create Date                     : 2014:09:01 23:33:11
    Modify Date                     : 2014:09:01 23:33:14
    Track Create Date               : 2014:09:01 23:33:11
    Track Modify Date               : 2014:09:01 23:33:14
    Media Create Date               : 2014:09:01 23:33:11
    Media Modify Date               : 2014:09:01 23:33:14
    
    ll /mnt/part/MP_ROOT/100ANV01/MAH00037*
    -rwxr-xr-x 1 ed root  11M 2014-09-01 20:33 /mnt/part/MP_ROOT/100ANV01/MAH00037.MP4
    -rwxr-xr-x 1 ed root 8.2K 2014-09-01 20:33 /mnt/part/MP_ROOT/100ANV01/MAH00037.THM
    
    ll -c /mnt/part/MP_ROOT/100ANV01/MAH00037*
    -rwxr-xr-x 1 ed root  11M 2014-09-01 20:33 /mnt/part/MP_ROOT/100ANV01/MAH00037.MP4
    -rwxr-xr-x 1 ed root 8.2K 2014-09-01 20:33 /mnt/part/MP_ROOT/100ANV01/MAH00037.THM
    
    ll -u /mnt/part/MP_ROOT/100ANV01/MAH00037*
    -rwxr-xr-x 1 ed root  11M 2014-09-01 19:34 /mnt/part/MP_ROOT/100ANV01/MAH00037.MP4
    -rwxr-xr-x 1 ed root 8.2K 2014-09-01 20:33 /mnt/part/MP_ROOT/100ANV01/MAH00037.THM
    

    The only correct time in that mess is in the next-to-last line: the access time for the MP4 file. Every other timestamp comes out wrong, with the internal metadata values being off by +4 hours; that suggests the camera sets the internal timestamps to UTC.

    As nearly as I can figure, the only way to make this work requires setting the clock to the local time, TZ to UTC+0, and DST off. That will screw up the filesystem timestamps, but at least the Exif metadata will be correct, for some value of correct.

    The camera’s GPS receiver depends on the clock for its initial synchronization. I don’t know how the TZ and DST settings affect the clock’s correctness for that purpose.

    I do not know if / how / when the displayed times have been altered by the programs that display them.

    I think exiftool can extract the times from the internal metadata and fix up the filesystem times, but that’ll take more tinkering.

    Sheesh & similar remarks…

  • Revlon Tweezers: Bad Spot Welds

    Mary bought a pair of Revlon tweezers a while ago, picking a Name Brand to avoid hassles with bottom-dollar crap:

    Revlon tweezers - bad spot welds
    Revlon tweezers – bad spot welds

    Well, that didn’t work.

    I contend that the only difference between Name Brands and the bottom-dollar crap I tend to buy is a bit of QC and a lot of price. I’ll agree that’s not strictly true, but it does fit a goodly chunk of the observed data.

    Anyhow.

    I milled a recess into the corner of some scrap plastic to locate the handle end, then arranged a step block to capture the business end:

    Revlon tweezers - drilling setup
    Revlon tweezers – drilling setup

    That setup ensures the holes go into the corresponding spots on both pieces, because I couldn’t figure out how to clamp them together and drill them both at once. I drilled the other piece with its good side up to align the holes; doing it bad side up would offset the holes if they’re not exactly along the center line.

    A closer look:

    Revlon tweezers - drilling fixture
    Revlon tweezers – drilling fixture

    Talk about a precarious grip on the workpiece!

    I filed the welds flat before drilling, so the pieces lay flat and didn’t distract the drill.

    Then:

    • Center-drill
    • Drill 2-56 clearance
    • Scuff up mating surfaces with coarse sandpaper
    • Apply epoxy
    • Insert screws
    • Add Loctite
    • Tighten nuts to a snug fit
    • Align jaws
    • Tighten nuts
    • Fine-tune jaw alignment
    • Apply mild clamping force to hold jaws together
    • Wait overnight
    • Saw screws and file flush
    • Done!

    The clamping step:

    Revlon tweezers - epoxy curing
    Revlon tweezers – epoxy curing

    Those nicely aligned and ground-to-fit jaws were the reason Mary bought this thing in the first place.

    The screw heads look OK, in a techie sort of way:

    Revlon tweezers - fixed - front
    Revlon tweezers – fixed – front

    The backside won’t win any awards:

    Revlon tweezers - fixed - rear
    Revlon tweezers – fixed – rear

    But it won’t come apart ever again!

    There’s surely a Revlon warranty covering manufacturing defects, printed on the long-discarded packaging, that requires mailing the parts with the original receipt back to some random address at our own expense.

    Ptui!

  • Another Bike Ride, With Gratuitous Smog

    Large Pickup - Small Brain
    Large Pickup – Small Brain

    He could claim to be accelerating after a stop signal and that’s just how those big Chevy “clean diesel” engines work, even with DEF and DPF in full effect.

    In point of fact, this was deliberate:

    Large Pickup - Small Brain - Penumbra
    Large Pickup – Small Brain – Penumbra

    I wish no ill on any man, but, should the Fates decree that a big pickup must be found wrapped around a tree, I have a recommendation.

    We were northbound on 9W, returning home after an end-of-summer party.

  • Bathroom Sink Drain Pop-Up: The Rot Continues

    Once again, the black bathroom sink drain stopper stopped popping up. Having had this happen once before, I knew what I would find:

    Corroded bathroom sink drain lever
    Corroded bathroom sink drain lever

    The lever arm to the left of the ball should be about twice that long, minus the jagged end.

    I slid the ball rightward to expose more rod, introduced both ends to Mr. Bench Grinder to round them off, scuffed up the short end with sandpaper to improve its griptivity, then slobbered on enough JB KwikWeld to cover the entire length of rod that will live inside the drain:

    Epoxy-coated bathroom sink drain lever
    Epoxy-coated bathroom sink drain lever

    The first failure took 9 years, this one took 4…

    Memo to Self: Next time, replace the rod with something that doesn’t corrode.

     

  • Left Turn on Red

    Coming out of Adams, we’re ready to make a left turn onto Rt 44:

    Left turn on red - 2014-07-24
    Left turn on red – 2014-07-24

    He was one car back in the left-turn storage lane when his light went yellow-to-red, crossed the stop line on the red, and was one car length over the stop line and accelerating when our light changed to green.

    We’re ready to start rolling on green, but we’ve learned to wait a few heartbeats for just such occasions; what counts as a fender-bender for you would be a fatality for us.

    Y’know how motorists get very, very angry at cyclists? I’ve always wondered why they don’t get that angry when motorists do those same stupid things, at higher speeds with much more energy.

    We ride as though we’re thin cars, which is how it’s supposed to be done, and generally don’t get too much hassle.

    One thing that is annoying, though: short-stroke yellow cycles that last maybe two seconds. We can cross the stop line on green, accelerating firmly through the intersection, and still get caught in the middle as the signal changes to green-to-yellow-to-red behind us and red-to-green for opposing traffic. No, we didn’t run the yellow, but that’s what it looks like.