Single-page, with entries dropping off the end, quite possibly never to be seen again. One entry per day, however trivial.
Front page messages get moved here.
Made a couple extra little changes to the track I was working on yesterday. I think it's finished. Tempted to find some B-movie samples and throw a couple over the top, though. Might do it just to see what it sounds like; trouble is that I'm mostly drawing a blank as to what I'd like to put over it.
The track is really quiet, though. Tried compressing it on the OP-1, but it's still just not very loud. I was never able to figure out how to make my tracks as loud as professionally mixed and mastered tracks back when I was in my teens. Might be better suited to figuring it out now. I'll have to try. Was listening to Ether Diver this morning in the car and threw on my new track at the same volume level out of curiosity. It was barely audible!
Grandparents are watching the kid today, so I've got some time to work with clay or fuss over my music if I like. I've got a little bit of housework and planning to do as well, but that shouldn't take up too much time.
Figured it out. One thing I've lost in this second era of my music-making is my fear of clipping. When I mixed my music back as a teenager, I watched the meter like a hawk and did not allow topping out at all. I just compressed and normalized the shit out of this track, and the meter is topping out constantly, but it sounds fine, and now it's nice and loud as well.
Got a few hours to myself yesterday, so I spent it working on a track on my OP-1. First time piping the guitar into it. Working out pretty well so far.
Not much interest in computer-based endeavors lately, so I'm working on music again for the most part. Got to experiment a little last evening with hooking my pocket amp up to my OP-1 to layer in some guitar. I haven't played much lately, so it took a while to get even a simple riff recorded cleanly. Pretty cool getting that extra dimension going, though. Might spend some more time noodling around next chance I get. Should try to get my current track all sewn up first, though. The OP-1 is pretty limited in terms of how many tracks I can have going at one time. (I know I can, in theory, offload some of that onto my laptop and reload it later, but I haven't played enough with that yet to be confident in it.)
Attempted to install a GFCI outlet yesterday, but ran into some unanticipated snags. My OpenBSD router had to be powered down in the process, and now it's not coming up again, so... the work ever compounds.
Not getting much sleep, either, this week. Kid's not been sleeping through the night. Extra clingy, too. Makes it hard to get much done. Relatedly, the kitchen's a disaster again.
Dreamed last night that the squirrels were sympathetic to the DSA and rumored to be joining soon. Odd dream. Might've had something to do with Mamdani's victory in the New York City Democratic mayoral primary.
Began working on a new track yesterday and got my clay aprons cleaned. Found more gnarly looking spiders and a rather large earwig hiding among their folds after I'd already given them a good soaking, so I ran them through the wash as well after I finished getting the clay off them.
I think my intuition that a small-to-large computer-touching break is in the offing was correct. Little to no motivation to touch computers, even knowing there's a pretty easy to fix bug actively breaking one of my wiki pages right now.
Been very productive in the other areas of my life, though. I don't get to decide where my motivation goes, but I do get to decide whether I flow with it and reap rapid progress wherever it takes me, or work against it to purchase marginal progress on something at significant cost. I've structured a lot of my life around this dynamic.
Worked all last evening to get the floors swept and mopped, so today gets to be more laid back.
I began cleaning my clay corner and its tools yesterday. Left my clay aprons to soak in a tub. Will be cleaning those today, and maybe playing a little with clay.
My release of the rough-and-ready admiral quackers track inspired a friend of mine (with an infinitely cooler stage name) to release a short EP of her own, *Small Things Coming Soon*.
I've been reading Wikipedia pages about type theory and totality the past fifteen minutes or so. When I was younger, I preferred the "completeness" side of the "completeness/correctness" dichotomy. Now I prefer the "correctness" side. If I can express a concept correctly in an elegant, strict language, then I can prove equivalence of a more performant function if necessary. Much harder to go the other way.
And "completeness" on a computer is illusory anyway. There are no infinite computers, and never will be. It feels like a leaky abstraction.
Yesterday I got out of the house a bit. Divided on whether to do more computer things or to just do no computer things at all.
Pushed changes to food bot yesterday. Returned to poking around the edges of making some sort of framework in Guile Scheme. I have little exposure to type theory, but on the practical end, I've enjoyed working with things like Purescript and Elm in the past. Idris and SPARK likewise appeal to me, but I have no practical experience with them. I'd like to be able to create something like Guile Scheme's GOOPS, but with the ability to override calls to functions on objects in imported modules. I'd like to be able to define constraints on fields and have them enforced both in the UI and statically. I'm looking to work with pure and total functions, and to write supporting code to make doing so ergonomic.
Tall order for someone without a background in programming language research or anything, but we'll see where I wind up. If all I get is something that derives simple web apps, CLI utilities, and database schemas from data models, I think I'll be pretty happy. I know this has been done elsewhere before, but I'm hoping I've got enough experience with similar frameworks now that I could put together something that feels better than most everything else I've worked with.
Yesterday got more work done on the food bot. Might have something to push to Codeberg by the end of the day, depending on how much time I get.
No particular plans today, aside from the usual.
Got some time yesterday to work on food bot. Played with a friend's synthesizers a bit as well.
Need to clean the kitchen again and find some time to mop.
Need to take a vacation from computers, or at least from programming.
Finally got out to the pottery shop yesterday. Bought a bag of clay and a box of pyrometric bars for the kiln sitter. Visited a secondhand store and got a couple more CDs while I was at it. Found some old Dorling Kindersley edutainment games as well.
Still need to clean out my clay workspace before I can use it.
Found a poem last evening, attributed to Kayla Ancrum, which turned out to mostly be the work of Althea Davis. I've captured that information between those two pages.
A couple weeks ago I cleared off my OP-1 Field . There was one track I liked well enough to finish it up. After spending some time debating whether to release it as part of a set at a later date or on its own, I decided on the latter. It's up on Mirlo and on Bandcamp. (Admittedly I could've spent more time on it, but that was not the order of the day.)
I'll be spending some time playing with an old friend's synthesizers today. Hope to get a little time before that to work on the food bot project as well.
Wound up using most of my free time yesterday to get ahead on the housework. Cleared and wiped down all the counters and the dining room table in anticipation of sweeping and mopping in the near future and took some things to the secondhand store.
Read a little of The Little Prover as I'm thinking about trying to work some static checks into my Guile Scheme code. Really feels like I'm working with the wrong language, though. While it's theoretically possible to do whatever you like in languages as general as Lisp and Scheme, it's usually much more ergonomic to just use a language that has the qualities you're looking for baked-in from the beginning. Pony has really caught my eye on that front, recently.
I'll probably stick with Scheme long enough to put together a web framework and clean up all my little web apps using it, though. I still seem to want to do that, for whatever reason.
I got in a little work on the food bot yesterday as well. Progress continues to be slow despite the simplicity of the tasks ahead, but every day so far this week has at least brought me a little closer. I'll get there when I get there.
Got some time yesterday to work on the food bot. I'd messed up some of the FFI definitions on the Scheme side. Not complicated code, but it's easy to make mistakes when you're programming half-asleep. It's back to working like it had been working. Next is getting a meal plan editing and saving loop going.
Gonna get a good chunk of time today to work on things. Considering making the drive down to get some clay to work with and getting the pottery wheel all set up. Been too long since I've worked with clay.
Tried getting Guix SD running on my MNT Reform's RK3588 module a few days ago. Build, booted, but then hung when it hit the "generating random key" stage. Should probably file an issue or something.
Would be pretty cool to find a way to manage a PostmarketOS instance via Guix as well. I've got a small box of broken phones going to waste at the moment. I've wanted to get them hooked up into a cluster of some sort for the purpose of hosting a tilde for ages now. That'd be a pretty slick setup, IMO.
Headache never really went away yesterday, but I'm feeling better this morning. Found my groove last evening and knocked out a bunch of (untested) code changes in libfoodbot. I've kept the changes simple enough that I don't have any concerns beyond getting the FFI right. I've also knowingly left in a memory leak as I didn't have the energy to learn how to register a cleanup function with Guile Scheme. I might go back over things with a fine-toothed comb to make sure there aren't any other places where I've not cleaned up properly.
Hoping to get a little more time today to work on this. I want to make sure everything works before I push anything to Codeberg.
Weather's been good. Want to get out on the pottery wheel sometime soon. Maybe tomorrow? Housework keeps piling up. We'll see, I guess.
Pretty bad headache today.
Last night I dreamed I was back at the desk in my adolescent-era bedroom. The bookcase backing was missing, but I had my old CRT monitor and CPU box again and was puzzling over how to make something useful of them in the present era.
I've got back into the guile-recipes codebase enough now to realize I might have to make some pretty significant changes to libfoodbot before I can get done what I want to. Shouldn't be too hard, except getting myself to focus on this project right now is like pulling teeth. Conceptually it's not difficult. Getting enough quiet time to think things through is difficult. Getting myself to put energy into it when I do get the time is difficult. Today I've got a little time, right now. But my head's pounding and I'd just about rather be doing anything else.
Alternatively, I could just ignore that the design for libfoodbot is not optimal for what I'm trying to do and just make it do the thing while ignoring the significant drawbacks to blindly plowing ahead like that. I don't think anyone else will ever use it, if I'm honest, and I don't think it'll ever be dealing with large enough datasets here for a suboptimal approach to make much difference. :thinking face:
Didn't get as much time to myself yesterday as I'd hoped to get, and I'm more or less burnt out on the recipes web app codebase, so I didn't get much accomplished. Hopefully today is different.
Need to put in some work on my wiki engine sometime as well, as I've noticed a couple bugs.
Got the kitchen under control, got some cooking done. Nothing complicated: just some pre-marinated tofu with broccoli, garlic, and rice. But between the cooking and cleaning, that was about four hours of my day yesterday spent on kitchen work.
I took a walk with the kid down to the grocery store, too, and discovered a hole in my bag this way. Got that sewn up with some nice thick thread in the evening. Sealed it with Shoe Goo, since the bag has a water resistant lining. Never done that before; hope it works. My brother uses it on his shoes a lot when he goes through his skateboarding phases. He introduced me to it almost two years ago when he noticed the sole of my shoe was becoming detached before it'd had a chance to wear through. I'm still getting use out of those shoes because of that.
Might get a few hours to myself today. Should probably finally try making the small improvements to my food bot web app I've been meaning to make. I don't really have a clean design in mind, but not having anything at all to allow persisting meal plans and interactively modifying them while seeing how it affects its fitness score seems to be a major impediment for me.
Finished Resisting AI and made a page for it yesterday. I wrote that review at the expense of some sleep, and the words were accordingly difficult to find, but it's done.
My kid's been singing "Radio Gaga" lately, so this morning we talked about radios and radiowaves a bit. I know most of it went over his head, but I never let that stop me. I figure that, even if he doesn't understand every part of my explanations, they plant seeds that might help him understand things better later. I hooked the Sanyo RP40 up to a portable speaker to provide a demonstration and that, at least, was enjoyable for him.
I've begun reading a physical copy of "Always Coming Home," by Ursula K. Le Guin. I wanted a bit of fiction to break up my non-fiction reading, and I've been trying to read more physical books for the sake of my kid. DRM-free e-books are great, but reading them just looks like staring at a tablet. I reckon that my kid will be more inclined to read books when he gets old enough to do so if he often sees me doing so.
Cleared out the cable hooks in my closet yesterday. Entered them into inventory, which meant measuring, marking, describing, and finding space in the bins for each one. The hooks had become such a mess that I could never find anything on them, and had plain forgotten I even had certain types. I know I recently bought a USB-B cable because I'd thought I didn't have any; turns out one had been hanging up in my closet the whole time!
Going forward, I'll be keeping nothing more than a couple extension cords on the hooks for easy finding in the event of a power outage. I have an electric vehicle and can power heaters or fans off of its battery in the event of a power outage. The last power outage we had, we were able to keep my kid's room a comfortable temperature because of this. I've even got a small hole cut in the wall of my garage so I can run the cords without leaving the door to the garage open. The only rough spot was remembering, in the dead of night, where I'd put the extension cords. So that's handled now.
Today I'd like to finish Resisting AI, by Dan McQuillan and start a page for it. But I'd also meant to do this yesterday and wound up organizing cables instead, so we'll see.
Did a bit of file organization yesterday. Getting ready to wipe my laptop and start over with a new OS image. Frustrated with Guix SD again after spending a small amount of time trying to get it to work with my MNT Reform's RK3588 module. May spend more time later, but I'd like to have a good process in place for bouncing between Debian and whatever else with minimal disruption.
Need to get back to meal planning and staying on top of the kitchen in general. I'm currently entering a bunch of cables into inventory that were previously hanging from hooks in the closet, all tangled up and unorganized. I should probably get rid of some, but that's always when you wind up needing exactly what you got rid of, right? So I'm measuring, marking, and binning them today instead.
Spent this morning dealing with computer issues. Back to normal now. Cleared my desk yesterday. Now there's another pile of things on it to deal with.
Out of curiosity, I measured my beige box's power draw when turned on and idling yesterday. Right around 41W. My MNT Reform is currently drawing 9W while running a browser and connected to wifi.
Spent more time yesterday evening on my music. Feeling rudderless. It's only morning, though.
Got two more tracks off my OP-1 today. Not "completed" tracks, but done. Now I've got more space to make new tracks and start playing around a bit again.
Tired today. Woken up three times by small creatures last night.
Some of the mess from the closet migrated to my desk for further processing. Kitchen is an absolute disaster again. Almost done with Resisting AI, by Dan McQuillan. I'll make a page for it when I'm done, I think.
Spent all day yesterday on childcare duty, so not much to report otherwise.
Lost motivation to work on the food bot project, or to do any other kind of programming for that matter. Got some small improvements in mind that I might be able to force myself to do before I take an extended break from it again. We'll see.
I think I'm entering a music production phase again. I'd like to get back to working with clay this summer as well, but I don't think I'll get the kind of time I'd need to do that in addition to everything else.
Ran errands most of the day. Got some music scraps wrapped up and off my OP-1. Somewhat slap-dash, but it was their time.
Neglected kitchen cleanup yesterday in favor of getting a bunch of things entered into inventory. Closet's a lot cleaner now, though, and I don't have a bunch of things stacked up on top of my bins anymore.
Began poking at building an app framework in Guile Scheme in the last minutes before bedtime. I've long liked the idea of thinking of programming in terms of transformations from one type of data to another. This is part of why I really like ML languages so much, I think. My thought is to see how far I can get trying to take this approach in Scheme while including a notion of value constraints amenable to static analysis. I like when my compiler catches things for me, and I don't mind having to write a little more code to keep runtime errors from cropping up.
I'd probably like Idris quite a lot, honestly, and have been meaning to learn it for years now.
My desire is to have a way to define types with certain constraints and then define transformations between types, with some types implicitly standing in for persistence strategies or presentation forms. I.e., I might write a value to a database by converting it to its "db-persisted" type, and I might generate an HTML form by converting it to its "html-form" type. I want to be able to define these transformations in separate modules, like Haskell's typeclasses allow.
I'd really like a totality checker, like in Elm. I was very comfortable programming in Elm. I don't know how feasible that would be; I'd probably have to constrain myself to a subset of Guile Scheme or something. I could do without it, of course; I'd rather not, but I don't have any formal education in type theory, and I have a clingy toddler and a house to attend to, so this might be outside my ability to achieve.
A totality checker combined with an Option type and Error type for handling functions that might result in errors would be great, along with higher-order polymorphism. We'll see what I wind up with here, I guess. Might be reaching too far here.
I still need to read The Art of the Metaobject Protocol. I feel like that might be helpful.
Ur/Web looks really cool. Similar goals to what I want here, but more constrained, and apparently done by someone who actually knows what they're doing. I'd like to be able to extend the same approach to, e.g., CLI and GUI applications.
More realistically, if I can cut out most of the repetitive code from my web apps, I'll be pretty happy.
Couldn't help myself yesterday. Went ahead and tried to cut my ISP's router out of the chain. Found and copied some clear examples that matched my exact situation. No luck. The PPPoE interface I set up in OpenBSD won't leave the "initial" state for some reason.
All the network issues from my home network reorganization seem to have been resolved. Despite all the trouble I just went through, I'm considering going ahead and replacing my ISP-provided router with the OpenBSD router downstream of it. Right now all it does is handle static IP assignment and PPPoE. There are only two cables plugged in: one for my media server and one for my downstream router. I've found an example to follow over at Alex Haydock's blog.
No real plans otherwise. I guess I should get back to the food bot soon, but all my interest and motivation right now is angled toward making improvements to my home network. I have two goals remaining there: aside from removing my ISP's router from my network stack, I'd like to get IPv6 going. After that, I think I'd like to work on writing a framework to simplify and expand the web app development I've been doing in Guile Scheme.
Continued ferreting out network issues yesterday, and am continuing with that today. Starting to regret all the firewall rules I put in place at each level of my network. Hopefully I get all this figured out today. This is exactly why I put off switching to those Maxwell routers for so long.
Next time I get a hankering for network shenanigans, I think I'll see if I can replace my ISP's modem with the OpenBSD router as well. But I should probably leave the network alone for a while after this, if only for my own sanity.
Moving yesterday's entry over, I see the 2025-05-29 entry is missing. Not sure what happened. :/
Spent last evening and this morning reconfiguring my home network. Finally got my Maxwell mesh wifi routers installed. Got a pack of three some years ago. One seems to be dead. No time yet to troubleshoot it. The two that are working seem to be giving me good enough coverage, at any rate. I also keep having problems with DNS apparently going away. I had problems with the OpenWRT router I'm replacing as well. I'm starting to suspect OpenWRT might be the problem itself.
The OpenBSD router I built some time ago has been rock solid, on the other hand. Maybe someday I'll work out how to make a couple OpenBSD wifi routers and gang them together in a manner similar to HaasMesh.
Hard time sleeping last night. Got a burst of energy and motivation just before bed.
This morning the kid realized that the universality of death means that his parents will also one day die, so he had a good cry about that, followed by a nap. Now he's having a snack with his momma while I get ready to head out.
I think I'm going to limp along with approximations of complete meal plans while I flesh out a web framework of sorts in Guile Scheme in order to simplify my codebases. I'm very not excited about adding new features to my food bot web interface at the moment, so I think this step may be necessary to get over that hump.
Made good progress on tidying and organizing my office space yesterday. Almost done there at this point. Will be moving on to going through my inventory for things I can get rid of in order to make more space soon. I'd like to someday start bunching inventory items up into "sets" that relate to different pursuits, interests, and/or activities, but that's going to take a back seat to the food bot, at the very least.
I hope to spend a good chunk of time on meal planning and preparation today, as we're out of quite a few staples and getting low on others.
Would be nice if I could start using our garden to grow more of our own food, but our yard is so heavily shaded, that might be a wee bit on the difficult side.
Cleared some things from inventory and did some cooking and shopping. Back on top of the housework for now. Need to finally get that OpenWRT mesh set up; maybe I'll tackle that task this week.
Began reading Resisting AI, by Dan McQuillan today. Not very far in yet.
Back from traveling and visiting with friends. Read a little of a paper titled Optimizing Datalog for the GPU yesterday, but I'm mostly unfamiliar with the concepts discussed within, and I didn't have much time to spend on it. This is a direction I want to spend more time investigating, though. I've enjoyed my work with Prolog and SQL, and Datalog is in that same vein. Very curious about what a Datalog implementation of food bot might look like, and how much employing the GPU in my media server might speed things up.
Errands to run and housework to do today. Looks like there won't be much time for my goals.
Went to a park yesterday for a bit. Will be mostly AFK again today.
Managed to find and fix the bug I'd been hitting periodically in guile-recipes and make a few extra improvements yesterday.
No plans today. Just taking it as it comes.
Visiting with old friends the next few days. Traveled yesterday.
They have ducks. The kid had lots of fun chasing them around.
Not much to say of yesterday. Not much planned today. Headed into a long weekend. I expect to be making trivial entries here through Monday.
Yesterday I designed and printed a replacement battery door for the Sanyo RP40 I've had since I was a kid. Files and details are the page just linked, as well as Printables.
Made the Grimgrains houjicha overnight oats with steel cut oats rather than rolled oats, which are apparently twice as dense. Made for a very chewy breakfast.
Not bad, though.
Will be eating a meal plan generated by the food bot today. Still unstable; the error I'm getting relates to a C function being called from Guile Scheme, so the error message Guile gives only shows the memory address in the function pointer, which doesn't help at all.
Finished rebuilding my CD rack last night. Works a lot better with the tweaks I made. I thought of another improvement I could make to the design, though, so I might delay the release until I either make them or give up on that task ever floating up to the top of the stack.
Not really something that can be made without having three spare 2020 aluminum extrusions of equal length lying about anyway. Unsure it'd be very useful to anyone else. Still, would like to release it if only on principle.
Got the home office very nearly tidy again. The next bit of the tidying task involves designing a replacement battery door for my Sanyo RP40 radio so I can finally move it somewhere else. I suspect that may take some time...
Got the kitchen under control and spent some time adding an audio track to an MKV file with FFmpeg yesterday; specifically, I added the Streamline dub of My Neighbor Totoro to my rip of my Disney Bluray of the same. I also began printing new, wider-spaced support pegs for the CD rack I made from leftover aluminum extrusions a while back. I'll have to make a page about that eventually.
Kid's still sick, but no sign of illness in the other members of the household yet.
No plans for the day yet except for getting some coffee.
Good progress on tidying the office yesterday. Printed two floppy disk cases and a case for the stray SSDs that'd been occupying my desk.
Libfoodbot has a strange bug where sometimes the distance on the meal plan isn't even close to the sum of the distances of its nutrients. Doesn't seem to appear often, at least not when it's being used in guile-recipes. I'm not sure what's going on just yet.
Not much motivation yet today. Kitchen is a disaster again. Sympathy for Sisyphus.
I need to change the RSS feed so it shows the contents of the day log instead of the git commit messages for this wiki.
Created a day log page. I'll be trying to write something new here each day, however trivial, and moving the previous day's writing to that page.
My home office is a mess. I hope to get it tidied up a bit after getting the kitchen in order.
I've been thinking about new directions for the food bot project more, now that I've got my Guile web frontend for it at feature parity with the older command line version. I want to save meal plans to the SQLite database and allow searching through them based on the recipes included and the servings for those recipes, similar to how pinning works during generation. To make this work, I'll also need to keep snapshots of the recipes, recipe sets, and nutrient target sets involved.
I need to get Guix set up on my laptop post-haste as well; should probably prioritize that over further food bot improvements, given that the latter is already usable.
My media server is overdue for a backup. The disk array I've been using is full, so I need to copy one of the disks to a larger one and swap that in.
I'm currently taken by the idea of arranging all my data like a MOO. This overlaps with my guilty fascination with Urbit (from the outside, it really seems like a sort of distributed MOO to me, without the role-playing) and my desire to create a universal, distributed, secure namespace for all my data so that everything I need is always at hand and on my own devices. (See Lykso's Datastore for my now long-neglected previous attempt at this.) I feel like IPv6 would make some of this easier, but I don't know as much about it as I should, and it sounds like it's still not as widely supported as I'd like.
Finally, I keep thinking that I'd like to enumerate my different "modes" and how the items in my inventory relate to them, to aid in making decisions about which things to keep together and which things to get rid of altogether. (E.g., I seem to have distinct "retro computing" and "music making" modes that I cycle through.)
I'd like to start treating the front page of my wiki as a bit of ephemera reflective of my more recent experiences.
After hearing so much about it on the Lispy Gopher Show, I've joined LambdaMOO and begun exploring. I am a sixth of the way through Yib's Guide to MOOing.
My kid is sick, so soon we'll all also be.
I've made a lot of food bot progress this week, but I still haven't updated the wiki page.
I'm starting to talk myself into getting away from flat files in favor of using databases more extensively than ever before. I feel conflicted.