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.

Author: Ed

  • Corelle Sliver

    Mary found a sliver chipped from the outside edge of a Corelle dinner plate, which provides an opportunity to see something that’s normally invisible: the ceramic layer inside its glass coating.

    Overall, the sliver is nearly two inches long and about the same width as the plate is thick.

    Corelle sliver
    Corelle sliver

    Peering through the microscope at the left end, the glass layer is most obvious along the top edge. You can barely see it along the bottom, where the chip thins to a razor edge.

    Corelle sliver - detail
    Corelle sliver – detail

    On the right end the upper and lower glass layers are a bit more obvious, at least with the light arriving nearly horizontally and after some aggressive exposure hackage,

    Corelle sliver - side light
    Corelle sliver – side light

    The ceramic has a slightly higher coefficient of thermal expansion than the glass, so it puts the glass under a tremendous amount of compressive stress as the newly manufactured plate cools. Glass is really strong in compression (and terribly weak in tension), so the plate becomes remarkably hard to break. More details there and there.

    The plate rims do tend to chip, however, if you own them as long as we have. These are the long-discontinued Old Town Blue pattern: over three decades old by now.

    Oddly, they’re still under warranty: back in the day, Corning sold its then-new Corelle with a Lifetime Warranty. Nowadays, you get three years for the mid-grade line, five years for thicker plates, and a mere one year for stoneware (whatever that is). I suppose enough people actually took them up on the warranty to make it economically impractical.

    I ran a fine diamond file over the chipped edge and it’s OK. Eventually, we’ll break down and get new plates, but there’s no sense rushing a decision like that…

  • WWVB Time Code Format Diagram

    This is by-and-large the same diagram of the WWVB Time Code Format that you’ll find there, but with:

    • the PR frame reference pulse identified
    • the last four bits clearly labeled
    • some verbiage chopped out
    WWVB Time Code Format - with PR marker
    WWVB Time Code Format – with PR marker

    Memo to Self: Remember that…

    • The time code applies to the minute that’s currently happening, so …
    • The PR pulse happens before the rest of the time code arrives
    • You must know the end-of-month date to apply the leap second bit, but EOM isn’t part of the data stream
  • Rudy Sunglasses: Back From the Dead

    Clear lens installed
    Clear lens installed

    As expected, the uni-lens on Mary’s Rudy Project sunglasses cracked right up the middle as that stress crack above the nosepiece opened up. The sunglasses came with interchangeable lenses, so I swapped in the clear lens.

    Having used urethane adhesive to mechanically lock the defunct gray lens in place, the broken bits were pretty firmly bonded. I applied a brass hammer and small drift punch to the remaining tabs, pried the debris out of the temples, cleaned the adhesive from the recesses, and snapped the new lens in place. Surprisingly, it popped in and locked securely.

    The nosepiece has never worked satisfactorily: there’s nothing locking the flexible blue-silicone pad to the straight-sided posts that are supposed to hold it. As a result, it tends to pop off at the most inopportune moments.

    Rudy nosepiece
    Rudy nosepiece

    I dotted the posts on one side with cyanoacrylate and the other pair with epoxy to see if either will bond well enough to make a difference. If those fail, I’ll try urethane, although I’m not sure what will happen as the urethane expands in the sockets.

    Anyhow, she now has glasses suitable for biking on cloudy and rainy days… which is much better than a sharp stick (or a bug) in the eye, as we see it.

  • Extracting Text from PDF Documents

    Mary had to extract an extensive table from a PDF (think financial statements) and found that a simple cut-and-paste failed with mysterious symptoms. I’ve had that happen, too, as PDF documents sometimes have a complete disconnect between the rendered page and the original text; sometimes you can’t even select the text block you want without copying huge chunks of the surrounding document or pasting meaningless junk.

    Easy solution: feed the PDF into pdftotext and extract the table from the ensuing flat text file.

    It’s a command-line thing:

    
    pdftotext -layout whatever.pdf
    
    

    That produces whatever.txt with the ASCII characters bearing more-or-less the same spatial arrangement as the original PDF, minus all the font and graphic frippery. It tends to insert a ton of blanks in an attempt to make the formatting come out right, which may not be quite what you want.

    Omitting the -layout option gives you something vaguely resembling the PDF, although precisely arranged tables tend to fare poorly.

    If you have a bazillion-page PDF document and need the text from just a page or two, feed it into the pdftk brush chipper, extract the appropriate pages, and then run those files through pdftotext. You can probably get similar results using just pdftk, but pdftotext seems to work better on the files I’ve had to deal with.

    This is a GNU/Linux thing; the programs are likely part of your favorite distribution; follow the links if not. If you’re still using Windows, maybe they’ll work for you, but maybe it’d be easier to just go buy something similar.

  • Chili Powder Beetles

    Mary cleaned out the kitchen cabinets, which entailed sorting out all the various spice jars. She thought the Chili Powder looked a bit odd and, indeed, it did: a whole colony of beetles and their larvae was a-squirm in there!

    The label states:

    All Natural

    non irradiated — no preservatives

    Frankly, I don’t see any particular problem with food irradiation.

    If you’re the sort of person who cooks your meals, as we are, then you’re eating plenty of denatured proteins and broken DNA anyway. In this case, snuggling that jar up to a nice warm Cobalt-60 slug for a few minutes would have been a great improvement.

    The main ingredient, of course, is “chili peppers”. The remainder doesn’t sound particularly life-sustaining, though: oregano, cumin, garlic, sea salt, and spices. Anything that can live off that brew must have a bad attitude, the way I see it.

    Being that sort of bear, I’d written the date on the label: 19 Aug 08. So, in round numbers, we use two ounces of Chili Powder a year. Obviously, we shouldn’t buy that stuff in bulk…

    Those are millimeters on the scale it’s crawling on, so these are little bitty bugs.

    [Update: Useful advice from the UC IPM folks.]

  • WWVB Reception Quality: Time From Last Synch

    It occurred to me that a better measure of the WWVB reception quality is the time since the last synch, because that measures the number of consecutive glitch-free minutes, which is a number that’s very difficult to pick out of the Glitchiness vs Time plots.

    A synch occurs only after four consecutive glitch-free frames, with the last three differing only by having properly incrementing minutes based on the first synch. That eliminates successive frames that span hours, as the minutes don’t increment properly from 59 to 00.

    This is the number of minutes since the most recent synch, versus the number of elapsed minutes, for a 24-hour period starting at UTC 0257 on 25 Dec 2009 (9:57 EST Christmas Eve 2009).

    Synch Age - 24 hrs - 2009-12-24
    Synch Age – 24 hrs – 2009-12-24

    Here’s the spline-smoothed Glitchiness graph I put up yesterday for comparison:

    Glitchiness - splines - 24 hrs - 2009-12-24
    Glitchiness – splines – 24 hrs – 2009-12-24

    An eyeballometric comparison shows my conclusion that synchs happen at the downward spikes in that plot is totally bogus.

    Memo to Self: If you haven’t graphed it, it’s not science yet.

    Useful Bash command:

    grep Age WWVB_2009-12-24a.log | cut -d '=' -f 3 > Age.txt
  • WWVB Reception Quality

    Here on the East Coast of the US, WWVB reception is iffy during the day, due to low signal strength and high ambient noise. Actual data seems hard to come by, so here’s a small contribution.

    This is a plot of the number of glitches per minute, where a glitch is any pulse that’s not within ±60 ms of the expected pulse durations (200, 500, and 800 ms), for a 24-hour period starting at UTC 0257 on 25 Dec 2009 (9:57 EST Christmas Eve 2009). There are 1448 data points, each representing the glitches during the previous minute; each minute starts within 2 seconds of the WWVB on-time frame marker.

    Here’s the raw data, log-scaled on the Y axis to cover the dynamic range. Log scaling can’t handle 0-valued points, so I forced counts of 0 to 0.1 to make them visible.

    Glitchiness - raw - 24 hrs - 2009-12-24
    Glitchiness – raw – 24 hrs – 2009-12-24

    Here’s the same data, Bezier smoothed to make the trends more obvious;  all the points below 1.0 are approximations of a trend toward counts of 0.

    Glitchiness - smoothed - 24 hrs - 2009-12-24
    Glitchiness – smoothed – 24 hrs – 2009-12-24

    Even better, splines show the glitch-free minutes without forcing the data points.

    Glitchiness - splines - 24 hrs - 2009-12-24
    Glitchiness – splines – 24 hrs – 2009-12-24

    My firmware requires four successive glitch-free minutes of reception (plus some additional verification) before synching its local time to WWVB, so it’s exceedingly fussy. Despite that, it still synched 17 times during those 24 hours. The longest free-running time between synchs was 6.8 hours.

    Note that there are 17 downward peaks below 1.0 in that last graph.

    Winter is, of course, the time of best ground-wave propagation from WWVB, so this is about as good as it’s ever going to get.

    Memo to Self: useful Bash and Gnuplot commands…

    
    grep Glitch WWVB_2009-12-24a.log | cut -d H -f 1 > Glitches.txt
    
    set logscale y
    
    set samples 250
    
    plot 'Glitches.txt' using ($2<1?0.1:$2) with points lt 3 pt 2
    
    plot 'Glitches.txt' using 2 smooth csplines with linespoints lt 3 pt 0
    
    
    log-scaled on the Y axis to cover the dynamic range. Log scaling can’t handle 0-valued points, so I forced them to 0.1;