Use ChatGPT to explain anything to your young children

ChatGPT understands the concept of the “Guided Reading Levels” that elementary school teachers can use to select texts of appropriate difficulty levels for K-8 students. The GRL ranges are:

      • Kindergarten: A-C
      • 1st Grade: C-I
      • 2nd Grade: I-M
      • 3rd Grade: M-P
      • 4th Grade: P-S
      • 5th Grade: S-V
      • 6th Grade: V-Y

    ChatGPT cannot read a webpage URL, but if you type into the chat: “Please summarize this text to GRL level K: ” and paste in the text of an article (be careful not to include any ads or unrelated text!), it will give you a summary of that article using words appropriate for the average 2nd grader.

    Screen capture of ChatGPT input dialog, with a command to summarize a pasted block of text from a website

    I selected the main article text from this page about book publishers trying to shut down libraries’ ability to lend digital books, and asked ChatGPT for a GRL Level K summary. It’s result:

    Some big book publishers are trying to stop libraries from lending out digital copies of books, which is called controlled digital lending (CDL). But CDL has already been deemed legal by the courts. The publishers say CDL interferes with their ability to sell books, but that’s not true. The judge in the case asked tough questions of both sides, but it’s not clear what will happen yet.

    I asked for Level Y (a more advanced 6th grader) and it gives this summary:

    Some big book publishers are trying to kill off libraries through a lawsuit against a lending method called controlled digital lending (CDL). CDL is a way for libraries to lend digital copies of books, which has already been deemed legal in copyright law. The publishers claim that CDL interferes with the market for licensed ebooks and that digital scans don’t deteriorate the way physical books do. However, licensed ebooks are generally better than scanned CDL books, and the big publishers have turned licensed ebooks into a scheme to block libraries from lending ebooks. A hearing for the lawsuit challenged both sides, and the judge asked the publishers to prove that the Internet Archive’s Open Library caused them harm while also questioning whether the Internet Archive had the right to make copies. The publishers argued that they should have made even more money during the pandemic, but this argument was challenged by the judge. The case will likely be appealed regardless of the outcome.

    So now you’ve got no excuse not to talk with your younger children (or, say, your neighbor of the opposite political affiliation from you, who you think is the mental equivalent of a 3rd grader!) about anything. “AI” will give you the words!

    Hit-Air vest reset screw

    Don’t overpay for a simple screw!

    My daughter rides horses, and for safety while riding on the cross-country courses, she wears a Hit-Air vest. This is a cool “airbag you wear” device with a lanyard that attaches to the saddle. If you have an “unplanned departure” from the horse, the lanyard pulls out a restraining ball, allowing a spring-loaded plunger to pierce the seal on a CO2 cartridge and rapidly inflate some pillows to protect the neck, spine, and hips/ribs. Motorcyclists use similar technology for a while too, but with hard external surfaces to protect against road rash, destruction of the vest from sliding on the road, etc. The equestrian version is just a soft canvas-type material all around.

    Anyway… at a show a few weeks ago, daughter had an unplanned departure, vest worked as it was supposed to. When I asked where the reset screw was… “I don’t know.”

    Great. Check the Hit-Air accessories page – they want $9 plus almost $8 shipping. Other vendors want as much as $20 + shipping! For a single hex-head screw and an Allen wrench. And with shipping the way it is these days, it would likely take a week or two to receive them.

    One trip to the local hardware store later… After test fitting several screws, I learned that it is a metric M6x30 1.0 pitch (36mm total overall length, threaded part is 30 mm). I bought 3 of them at about $2 each.

    I could not find this information anyplace online, so here it is. Hopefully it helps out someone else in a pinch in the future. I will be telling all our other “barn families” with vest wearers about this too. And I’ve added it as a comment on several of the popular Youtube videos about how to replace the cartridge.

    While I don’t begrudge Hit-Air making money off replacement parts, this seems a little exorbitant. Also, in a pinch, it is comforting to know that you could get the part to reset this important safety item from any local hardware store or “big box” vendor like Lowe’s, Home Depot, etc.

    For now, we’ll be keeping one screw in the tack trunk with the replacement cartridges, one in the truck glovebox, and one at home in my toolbox. It’s too easy to drop something in the grass, etc., and we don’t want our rider to be without the protection of the Hit-Air vest!

    Please don’t “sell out” Memorial Day

    Many will “celebrate” Memorial Day as any other holiday, with barbecues, beer, and commercial sales at local malls. Simply put, they have sold out Memorial Day.

    This weekend, please visit a local cemetery, find a marker for any veteran, and reflect on their service to this great nation.

    “Your silent tents of green
    We deck with fragrant flowers;
    Yours has the suffering been,
    The memory shall be ours.”
    Henry Wadsworth Longfellow

    Closeup of an American flag with the word "Merci" written on it, in front of a white marble cross headstone in the Normandy, France military cemetery. Many other white cross headstones are visible in the blurred background.

    Puppet environments vs Git branches

    Learning Puppet and Git at the same time does make for a lot of confusion most of the time. But a video I watched the other day finally made something “click” in my head about how to manage our multiple environments with Puppet. I had been struggling with the belief that, since we have 3 environments — Dev, Test, Production — we were going to need to maintain 2 long-lived branches (“dev” and “test”) for modules and Puppet code to track changes we’re making, and then deal with using pull requests/etc to migrate the changes from Dev to Test to Production.

    That seemed like it was all wrong. And I think it is.

    Instead, a branch for a module/whatever will be used for testing something, and deployed as a dynamic environment via r10k to target server(s) for testing, and then we will issue a pull request/code review to merge that change back into the “master” branch once testing is complete. So all “real” servers in Dev, Test, and Production will always get “master” code deployed to them, with environment-specific differences managed via Hiera. The deployment will be controlled via something like Jenkins to ensure that once a change has been merged back into “master” it does not go right to Production with the next puppet agent run. Tags or something will need to be used to mark “master” as ready to go to Prod. Or else it would just be changes to the r10k control repository, and set eligibile versions there. Maintaining long-lived separate instances of a single control repo for each environment is not as daunting as maintaining three branches of everything all the time.

    Anyway. Just tracking my current state of mind on this problem. When I think on it for a while, it seems clear in my head, but then I forget it by the next time I need to use it. So I’m leaving this here as a memory jog next time I get stuck.

    dxcmd error “Unable to initialize DClient” caused by config file permissions

    Attempting to run dxcmd was yielding this error on one of our IDM servers:


    DirXML Command Line Utility
    version 4.0.2.1
    Copyright (C) 2003-2011 Novell Inc., All Rights Reserved

    Enter user name: foo.user
    Enter user’s password:
    java.lang.Error: Unable to initialize DClient
    at novell.jclient.JClient.initializeDclient(Native Method)
    at novell.jclient.JClient.initialize(JClient.java:906)
    at com.novell.nds.dirxml.util.DxCommand.commandLine(DxCommand.java:419)
    at com.novell.nds.dirxml.util.DxCommand.main(DxCommand.java:391)

    Using the command

    strace -f dxcmd -user foo.user -password S00perS33cr3t

    turned up a “permission denied” error while trying to open /etc/opt/novell/nici64.cfg. On other servers, that file was world-readable; on the problem server, it was owner- and group-readable only.

    The chosen fix was to remove world-readable attribute on all servers, and use “sudo dxcmd” to eliminate the file permissions problem.

    Fixing Samsung Galaxy S3 after Android 4.4.2 upgrade

    I have a Samsung Galaxy S3 with Virgin Mobile. I updated to Android 4.4.2 yesterday. This afternoon, the LTE network did not work. Symptoms were that the network showed as “Samsung” instead of “Virgin Mobile.” Reboots of the phone, and pulling the battery out/waiting/reinstalling the battery did not work.

    I found some postings online which suggested that a manual PRL Update followed by a Profile Update would fix the problem, but it did not.

    The cure seems to be a phone restart, then enter ##72786# and wait while the phone does some background updates and automatic reboots. Eventually, on the 3rd reboot, the annoying Virgin Mobile “rave dance” wallpaper/music played and my phone connection appears to be working properly (shows that it’s connected to “Virgin Mobile” network now).

    Update June 20, 2014: After doing the above fix, I lost 4G (LTE/CDMA) connection, and could only connect via CDMA. Doing a Profile update, then a PRL update, then another Profile update seems to have restored the LTE/CDMA.

    In addition, the 4.4.2 Android update seems to have brought Bluetooth tethering ability to the phone! More investigation of this to come…