Your leaking thatched hut during the restoration of a pre-Enlightenment state.

 

Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").



links

decay & ruin
Biosphere II
Chernobyl
dead malls
Detroit
Irving housing

got that wrong
Paleofuture.com

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff


Like asecular.com
(nobody does!)

Like my brownhouse:
   knot illiteracy
Wednesday, December 11 2024
This morning Gretchen and Charlotte went on a walk with our neighbor A and her dog Henry, and, because it was a walk with A, Neville came too. About fifteen minutes after they all set off, I decided to try out the PitPat tracker Charlotte was wearing. So I clicked on the "find my dog" button, and within a few minutes, it showed an icon of a dog about a mile down the Stick Trail near the place where it turns west and heads to the vincinity of the farm at the end of the Farm Road. Because Charlotte is extremely active on walks and darts off-trail numerous times, her position from there was a chaotic blur centered around the Stick Trail and the Farm Road (which was apparently how Gretchen, A, and the dogs were heading back homeward). When the icon representing Charlotte got to within a couple hundred feet of our house, I looked out through the windows for her to appear. She did, but only for a few fleeting seconds as she charged up and over the crest of the rocky bluff just south of the house. A minute or so later, the tracker showed her go out to the end of the Farm Road and then briefly walk along Dug Hill Road and come in our driveway. So naughty! When she finally appeared, she was wet from having been out in the rain, a rain that continued for the rest of the day and fell quite hard at times.

Without any particular motivational goals in mind, I took a recreational 150 mg dose of pseudoephedrine this morning. This apparently was what I needed to solve a challenging (but fun) software development challenge: making the command and command_type editors in my ESP8266 Remote Control system easier to use. As initially implemented, these two editors were created automatically from the table schema, so the means of entering data for all the columns was the same: an input box where one can type a couple dozen characters. More tailored editors have different sized boxes depending on the expectations of the size of the data, and also provide checkboxes for boolean values and dropdowns for foreign keys, so that one doesn't have to look up the ID of a value being referenced in another table. All of that is easy to create by editing a configuration for the genericForm() function that produces the HTML via PHP. But for the command and command_type editors, I needed some unusual interactions between form inputs as the data is entered. For example, in the command_type editor, there needed to be a dropdown providing a list of tables in the database. Based on what was selected in that dropdown, another dropdown had to list the columns. I'd aready created forms that did this elsewhere in this system (in a tool that allows someone to interactively build management_rule conditions). So to get that working, the main thing I needed to add to genericForm was the ability to specify an onchange Javascript event for a form item. Once I had that in place, making the command_type editor work the way I wanted it to was straightforward.
Things got more complicated in the Javascript I needed for the command editor. This is because, depending on what command_type has been selected, the command_value needs to be either an integer to be processed as-is by the ESP8266 targeted by the command, or it needs to be a foreign key to another table in the database that, when the command is issued, is looked up to send the value of a specified column to the ESP8266. (If this is confusing, the example here is that if I want to send an infrared sequence to be flashed on an infrared diode attached to a targeted ESP8266, I don't want to have to actually include the specific data of the pattern in the command. Instead, I just include a reference to that sequence in the command, and that reference is looked up and the sequence then sent to the ESP8266.) To get the command editor to work as desired, I had to create a backend function that, given a command_type_id, looks up the command_type, finds whether or not it has an associated table, and if so, produces a JSON object of all the items in that table belonging to the tenant to be rendered as a <SELECT> dropdown. If that function comes back with no associated table, the frontend needs to remove the <SELECT> from the form if it is there and replace it with a conventional input so that the user can specify what the actual data (instead of a reference to other data) is. With a little help from ChatGPT, I managed to get all of this working correctly without junking up (or, technically, further junking up) my genericForm() function at all. The key was a couple fairly complicated Javascript functions referenced in the configurations.

At around dusk, I wanted to go work a little on the stone wall at the bottom of the Woodshed Path, which I hadn't worked on in over a week. It was raining at the time, though not very hard. Earlier, heavier rains had reinvigorated all the little streams and brooks that had dried up during recent droughts. The Chamomile itself was a raging torrent of whitewater. At one point I went to the edge of the escarpment of the terrace that the Stick Trail resides on and looked out over the ravine to the east, the land through which Crazy Dave hikes with his dogs (and where he has a built a number of decorative stone structures). I saw that the Chamomile bifurcated in a few places around islands as big as a thousand square feet in size. (But I've still yet to see any bifurcation as dramatic as the one in the Woodworth Lake outflow creek.)

Back in the house, I proceeded with my plans to make a pizza. This one featured a topping of onions, crimini mushrooms, pan-seared tofu, and sliced tomatoes. Though I salted the sautéd with soy sauce, they didn't end up being as salty as I would've preferred. But the pizza was plenty good enough anyway. Gretchen and I ate it while watching Jeopardy! of course, and then we watched the second episode of A Man on the Inside.

I ended up staying up late drinking kratom tea and enjoying the mixed effects of pseudoephedrine and diphenhydramine as I watched episodes of season 8 of Alone. Watching that show has impressed on me the fact that the key to building most things in the bush is lashing things together with cordage and knots, since there are no other convenient and reliable fasteners available. As I considered this, I realized that I've gotten to the age I am now without ever learning how to tie more than three different kinds of knots. The three knots I know are likely ones I stumbled upon by accident or instinct, and they've worked well enough. I didn't know what these knots are called, so I proceeded to go down a rather deep Wikipedia rabbit hole to learn more about knots and try to find mine. The simplest knot I use is, it turned out, an overhand knot, which is good when you just need a stop in a string or a rope so it can't fit through a hole. It holds okay but isn't useful for lashing a rope to an object. The most functional knot I use turned out to be a granny knot, and it's worked fine for household lashing tasks and securing things to a roof rack (an application where it is technically "two half hitches" and not regarded as particularly amateurish). I make it by simply tying one overhand knot atop another in the same direction, a sequence of actions I don't even have to think about. The only other knot I use is the overhand loop, which is basically just an overhand knot made in the middle of a rope using a folded-over section to produce a solid loop, one I often then use to make a strangling lasso to lash onto something. A variation on this is the "overhand bend," where an overhand knot is formed with the ends of two different ropes instead of a loop of the same rope, and that's the way, caveman though it is, that I normally splice two ropes together. Finally, I have a knot that I execute when tying my shoes, but the way I do it just produces a granny knot. (It's possible I was originally taught to tie them with a square knot and my technique quietly degraded over the years, something I never noticed because granny knots work well enough for almost all use cases). But my knot game is easily improved; I can tie square (or "reef") knots if I just remember to reverse the direction of the second overhand knot when I am tying my go-to knot. And the square knot is the gold standard for simple knots.


For linking purposes this article's URL is:
http://asecular.com/blog.php?241211

feedback
previous | next