Almost fifteen years later, with a completely different set of cats who have not had a chance to learn these behaviors from the previous ones, it's somewhat comforting to see that cats do still remain cats.
Although the location of the malefactors has swapped from top to bottom ...
-the Centaur
Pictured: Loki above, being awoken from sleep by harassing kittens below; Gabby above, about to harass the sleeping Caesar below.
Chicken and waffles with a side of bacon at Nose Dive in downtown Greenville. Not healthy or delicious --- but as for that recent research that suggests that increased hunger leads to less healthy food choices, well, I can attest to its validity within the framework of my own personal experience.
One of the things I like about vegan food is that it can be both healthy and delicious. This is a vegetarian burrito from La Parilla - no cheese, no sour cream, extra mushrooms. As far as I know, this was a suffering-free burrito, and the most unhealthy thing about it was the tortilla, which isn't unhealthy per se, but is just one of the foodstuffs that we can easily get too much of in our modern environment.
As for the chips and margarita (not shown)? Well, they're vegan, as far as I know, but healthy, not so much. I'm not sure James Willett would approve, but they are delicious.
This one is kind of a BLT, with the Bacon replaced with vegan cold cuts (I have vegan bacon, but I wanted to finish going through the cold cuts first). The base is an heirloom tomato, cut into two big slices, with the remainder roughly chunked to make an ersatz tomato salad:
The tomato slices are seasoned with garlic salt, dill, Italian seasoning (or parsley, oregano, and basil) and maybe nutritional yeast; the chunks are seasoned with salt, pepper, and Old Bay or Tony Chachere seasoning and maybe some flavored olive oil (this last time, basil and sundried tomato olive oil).
I toast Nature's Own Artisan Multigrain Bread, then add a thin layer of veganaise seasoned with dill, onion powder, garlic powder, and tarragon. Atop this, you layer to taste cold cuts or bacon, cheese, tomato, and lettuce (two layers of tomato when I skip the cold cuts and/or bacon).
The outcome is pretty delicious.
-the Centaur
Pictured: Shots from two different days of making these sandwiches patched awkwardly together, so if you notice the bloody handprint on Kirk's vest moving up and down in these shots, that's why.
So for a while all three of the kittens were a little skittish around me. Not that they didn't want to hang out, but especially when I would take a trip or something they'd get standoffish, hanging out more with my wife.
I do believe they have now "warmed up" to me.
-the Centaur
Pictured: Me taking a much-needed break from projects, and then attracting two (or three?) kittens. On that note, I was going to post this but got swarmed with work, taxes, writing, cleaning, and what have you, but I am not going to give up on posting every day this year, even if I have to backfill to get caught up.
Lily, the collared one, chose to hide when a friend came by today, so they never saw more than three cats at any one time. With apologies to Captain Picard, here is visual proof that there are, indeed, four cats.
One by one, trees and bushes on our property have been dying. The property is large - when we fled the fires in California during the pandemic, we lucked out in finding a large place that had been on the market for quite a while - so at first we thought that was simply par for the course. But they kept dying.
Eventually, what we discovered is that many of the trees on the property were planted without the removal of their transport cages. This can cause the roots to get choked, to turn back on themselves, and as the tree grows, the increasingly packed root ball topped by the increasingly heavy tree turns into a weighted ball bearing, waiting to tip over in heavy winds, heavy rain, or just from the tree's own starved weight.
But it's easier to not remove it, the problem is practically invisible, and the tree looks good for a while - and by the time the tree falls, it will be almost impossible to identify who made the initial mistake.
This is a beautiful house on beautiful land, but many of the things in this house are like that. Trees are planted with their transport cages still on, so they eventually fall over. Gutter drains were buried without covering them with fabric, so they fill with dirt. Soil pipes are buried without cleanouts. Drywall in access rooms has random holes punched in it.
And, most spectacularly, a door was installed in a storage room which was too small for the safe stored in that room to be removed. I mean, what were they thinking? I guess they weren't - or, perhaps that was a security feature, to prevent it from being stolen? Certainly, you can't sneak it out of the room, but, also, it likely weighs around a ton, so no-one can run off with it - they didn't need to wall it in.
But, regardless, hey! We get a safe.
Now, we were dealing with the problem with our drains, and the foreman told us he'd need to take up the last man standing in a row of bushes near one of the drains. These had been dying, one or two per year, since we arrived, and the last one was literally held together with zipties. So I agreed.
And when he dug it up, he found that it - and all the bushes in that row - had cages on their root barrels. You can see him holding one of these in the banner image from this post. The root system was so tight inside it that he was surprised that it had survived that long.
So my point, and I did have one, is that doing a job that looks right from the outside may not be doing it well enough for the job to be done right. And right, in this case, I define as not failing unexpectedly long before its time because someone simply didn't want to finish the work.
I suspect that the people who managed this properly previously were focused on forcing it, no matter how much money it took. As my wife put it, you put in a lawn, let it grow, then cut that growth and take all the nutrients that it harvested out of the soil away, forcing you to fertilize the lawn with chemicals to keep it alive. You can do that, but it's like driving down a mountain road at too high a speed, constantly riding the wheel, brakes and accelerator to keep yourself on the road. We prefer a healthier approach, where, when possible, things are left to biodegrade where they are, or you create compost out of the clipping.
That doesn't always work, and, in a way, it's a luxury all its own. But regardless of how you run your lawn, if you take the time to cut the root balls off and to properly wrap your drains, you'll find yourself spending less money in the long run fixing problems that should never have happened in the first place.
-the Centaur
Pictured: The cage that our foreman discovered once they dug up the bush, and the gutter downspout drain that our foreman replaced for us once we all figured out what drains needed to be replaced.
So, yes, it's late and i'm tired, but i couldn't just leave it at that, because the above quote is so good. I ran across this from George Bernard Shaw in a book on mentoring (which I can't access now, due to cat wrangling) and snapped that picture to send to my wife. In case it's hard to read, the quote goes:
The single biggest problem with communication is the illusion that it has taken place.
This was a great quote to send to my wife because our first vow is communication, yet we have observed problems with communication a lot. Often, when the two of us think we are on the same page, frequently we have each communicated to each other something different using similar-sounding language.
I was struck by how hard it is to get this right, even conceptually, when I was skimming The Geometry of Meaning, a book I recently acquired at a used bookstore, which talks about something called something like a "semantic transfer function" (again, I can't look up the precise wording right now as I am cat wrangling). But the basic idea presented is that you can define a function describing how the meaning that is said by one person is transformed into the meaning that is heard by another.
If you pay attention to how communication fails, it becomes clear how idealized - how ultimately wrongheaded - it is. Because you may have some idea in your head, but you had some reason to communicate it as a speech act, and something you wanted to accomplish inside the hearer's head - but there's no guaranteed that what you said is what you meant, and much less whether what was heard was what was said, or whether the interpretation matched what was heard, much less said or meant.
But even if they took your meaning - even if the semantic transfer function worked perfectly to deliver a message, there is no guarantee that that the information that is delivered will cause the appropriate cognitive move in the hearer's brain. Perhaps we're all familiar with the frustration of trying to communicate an inconveniently true fact to someone who stubbornly won't absorb it because it's politically inconvenient for them, but the matter is worse if your speech was designed to prompt some action - as Loki and one of the kittens just found out, when he tried to communicate "stop messing with me, you're half my size, you little putz" as a speech act to get the kitten to leave him alone. It had the opposite effect, and the kitten knocked itself onto the floor when it tried to engage a sixteen-pound ball of fur and muscle.
So what does that have to do with drainage?
My wife and I have had a number of miscommunications about the cats recently, ones where we realized that we were using the same words to talk about different things, and didn't end up doing things the way each other wanted. But it isn't just us. The cats stayed indoors mostly today, because workmen came by to work on a drainage project. I went out to sync up with the foreman about adding a bit to the next phase of work, and he offhandedly said, "sure, now that we're finished with the front."
"But wait," I said. "What about the drains in the front?"
"What drains in the front?" he asked.
We stared at each other blankly for a moment, then walked around the house. It rapidly became clear that even though we had used the same words to talk about the same job related to the same problem - excess water tearing through the mulch - we had meant two completely different things by it: I had meant fixing the clogged drains of the downspout of the gutter that were the source of the water, and he had took that to mean fixing the clogged drains where that water flowed out into the rest of the yard. A rainstorm soon started, and we were able to both look at the problem directly and agree what needed to be fixed. (The below picture was from later in the night, from another drain that was clogged and in need of repair).
It turns out the things that I wanted fixed - the things that had prompted me to get the job done in the first place - were so trivial that he threw them into the job at no extra cost. And the things that the foreman had focused on fixing, which also needed to be fixed but didn't seem that important from the outside, were actually huge jobs indicative of a major mis-step on the original installation of the drainage system.
We resolved it, but it took us repeatedly syncing up, listening for issues as we spoke, and checking back with each other - in both directions - when things didn't sound quite right for us to first notice and then resolve the problem. Which is why I found it so apropos to come across that Shaw quote (which I can look up now that the cats have settled down, it's in The Coaching Habit) as it illustrated everything me and my wife had been noticing about this very problem.
Just because you've said the words doesn't mean they were heard. And just because they're said back to you correctly doesn't mean that the hearer actually heard you. If you spoke to prompt action, then it's important to check back in with the actor and make sure that they're doing what you wanted them to - and even if they're not, it's important to figure out whether the difference is their problem - or is on your end, because you haven't actually understood what was involved in what you asked them to do.
So, yeah. The biggest problem with communication is the illusion that it has taken place - so rather than trust the illusion in your mind, take some time to verify the facts on the ground.
-the Centaur
Pictured: "Shaw!", obstreperous cats, and a malfunctioning drain.
It's late and I've been up cleaning house, cat wrangling, working on Camp Nano for April, and trying to finish taxes, so I has the tired. Please enjoy the following "Mezcalita" from La Parrilla.
So I habitually bite off more than I can chew: at any given time I have 200 to 250 projects running, and no reasonable human being can keep on top of more than seven plus or minus two things at once.
Now, I know, I know, I know, I'm likely autistic, and am prompted to be WAY more explicit than most people about the projects that I'm ACTUALLY doing, whereas most people just fool themselves into thinking they're doing a few things when in reality they're relying on their well-trained autonomic adulting skills to keep on top of the dozens upon dozens of things they need to do to keep on top of just living. But, beyond, that, I have hundreds of creative projects that I want to tackle, so many that I often feel like I'm thrashing.
But if you focus - again, I know, I know, I know, I say I hate focus, and that focus is the enemy, but bear with me for a bit - I say, if you allow yourself to be creative, and imagine ALL the things you might be doing ... BUT then focus on a few of them at once, trying to make sure you make progress on just those, you can, step by step, move your way through those projects, get them done, and move on to the next ones.
I've been "reading and eating" for decades now as my way of consuming material, but only recently have I started using the "ten page rule," in which I break each chapter into ten page sections, and try to make sure I get through at least 5 pages of a section in each reading session (the whole ten, or to end of chapter, if the material is easy, or the book's pages are small, or the chapters are short; the five page grace period if it's a big fat textbook filled with details with which I am unfamiliar). But I've augmented that now - by focusing on the most important books first, promising myself I can read the others if I get through them. I'm almost done with Large Language Models: A Deep Dive, which has been very illuminating.
And now I've built on that, so at the end of the day, after reading my "chunk of the hard book at night with milk and pound cake" - which is usually a big fat textbook that requires reading and re-reading of sections over and over again until I get it - I say, after that, I pick up a by-the-bedstand novel and read a chapter. Just one chapter (again, less if it is big long fat chapters or something esoteric). I've gotten through The Cthulhu Casebook: Sherlock Holmes and the Shadwell Shadows and Cthulhu Passant that way and am now digging deeper into my novel backlog, promising myself I can by more books as I finish them.
The same thing has been going on with various of my research projects: I have been building out various pieces of software, sometimes with a lot of thrashing. But I stuck with a project I had been tempted to abandon, and today got it mostly working, all unit tests passing, all code checked in and pushed to Github. I still have more features I want to add before release ... but it felt good.
While I don't believe in "focus" for focus's sake, I do believe focus is a tool you can use effectively. And if you prioritize your highest-value, lowest-remaining-work projects, and focus on getting done the next thing you have to do, you can, over time, walk that path that starts with a single step, and find yourself a thousand miles later standing atop your mountain.
So! Earlier I said I wanted to build up a buffer for "Drawing Every Day", but that complicated formula "30(m + 1) + d + 2" - a month and a couple of days ahead, computed by adding 1 to the month, multiplying by 30, adding the days, and adding 2 - neither "felt right" nor left me feeling secure in my "aheadness".
I had planned to work on my backlog from 2024 when additional 2025 drawings would have taken me over the magic number "30(m + 1) + d + 2", but it didn't feel right, and the work I had to do to catch up when I missed a day bothered me.
Then I realized I shouldn't be shooting for a month and a couple days ahead ... it should be more like a week. "30(m +1) + d + 7" (or "+ w") would give me a whole week to catch up. In fact, if I pushed it a bit further - getting a month, a week, and a day ahead - then even if I missed a day, I'd be a week ahead. Even if I missed a WEEK, I'd be a MONTH ahead. And if I missed a month ... I'd still have a week and a day.
If you get behind with that much buffer, it's all on you, baby.
I like this. A month, a week, and a day is easy to remember - and easy to compute, even though "30(m +1) + d + 7 +1" looks just as complicated as it was before, it's cognitively easier to process because it's all broken up into a sequence of simple operations that are easy to remember.
Now, next up ... blogging ahead! Let's start with just +1 ... this one.
-the Centaur
Pictured: Welp, I wanted a picture of my drawing context, but, hey, here's me reading at the great Green Lettuce restaurant, which has a nice high-topped counter and awesome decor, food and staff.
Normally Loki hates eating around the kittens, or they're so interested in his food that they ignore their own and cause him to stalk off in a huff - "Ruuude, duuude!"
But they're getting over it - I had to move a kitten, but after I did, the system remained stable for the remainder of the meal.
Baby steps are short, but they can carry you down a long road, if you just keep going.
So our older cat and our younger cats seem to be tolerating each other more. Actually, the kittens have loved Loki from the start, but he had been solitary for so long that he didn't want any new cats in his home, thank you very much. Now he willingly goes into areas which have kittens, which is a big improvement.
As I keep saying, sooner or later he's going to learn that nothing bad happens when he hangs out with kittens.
-Anthony
P.S. A blogpost a day late, but, eh, we'll get there.
SO! I went "outside my circle" today and did something different, and was about to blog about "if you do what you always do, you'll get what you've always gotten" ... but as I started to write, I had this funny feeling that I'd written about that before, and sure enough, I'd blogged about it almost exactly a year ago.
Now, I was outside of my circle today because of Lent - it's Ash Wednesday, and I decided to drag myself out to an Ash Wednesday service at the church I got married at, Saint Peter's Episcopal (the "rapture-ready" church on Hudson Road, complete with to-go box handle on top). That put me in a different physical location than normal, but it took God sending me a firetruck parked in front of one of the restaurants I would have normally fallen back to before I tried a new place - the Lost Cajun, itself part of a chain I'd been to before, but for some reason I ordered something different than normal, and got the amazing blackened catfish dish above which was far better than the things I'd previously tried there.
And, weirdly, my previous "if you do what you always do" post was also right around the start of Lent. So I wonder if there's something about the spiritual earthquake that Lent is supposed to inspire that also had sent me climbing out of ruts and seeking new experiences a year ago - or, whether that experience left echoes of memory that prompted me to try the same thing again this year.
Recently Internet guru Seth Godin blogged about “Halfway Projects”: you can get value from eating half of a pear, but half a canoe is worth less than no canoe at all. I like that. It’s a great metaphor for project management, where quitting a project just before the finish line doesn’t deliver any of its value—but leaves you with all of the costs.
Now, I misremembered Godin’s example a bit - what he actually said was “half a pear might deliver 85% of its value”. But the principle is sound: half a battery charge might let you do 85% of your work … but half a parachute is definitely worth less than no parachute at all, because it might encourage you to take risks that you shouldn’t.
For project management, though, the idea helps explain my long-running idea “work just a little bit harder than you want to.” Often, when working on a project, we get exhausted, and decide to give up - but working just a little bit harder can take us over the finish line. Our instinct to save us effort can actually thwart the work we need to do to achieve success.
For example, recently I was working on a machine learning project that just wasn’t working. We’d spent enormous effort on getting the learning system up and running, without good learning results to show for it, and the arbitrarily imposed deadline was coming up to show something impressive, or the project would be axed.
But, if you know anything about machine learning, you know most of the effort goes into data preparation. We had to modify the system to log its data, massage it into a format that was useful for learning, and spend further coding effort to speed it up so it was useful for development (taking the data load from 36 hours to 36 seconds!).
The point is, we only got the data running in mid-February, and were trying to compress months of experimentation into just ten days. Finally, as the deadline approached, I got philosophical: we’d done all the work we needed to do to start learning, and my recommendation was that the team keep working on it, with or without me.
But … I didn’t stop there.
Before the final presentation, I spent time cleaning up the code, checking things in, and getting a few of the most promising programs ready to collect “baselines” - long runs of the system set up for comparisons. And the next morning, I reviewed those baselines to present a report to the team about which one was most promising.
Long story short, one of the simplest models that we tried was actually sort of kinda working. Once I realized we had a scaling issue in the output, a simple tweak made the system get even better. I spent another hour tweaking the graphs to put the human input and the system results onto the same graph, and the good results leapt out into sharp relief.
I could have just decided that the system was a failure - but then I wouldn’t have done that extra work, making it a self-fulfilling prophecy. I call this the “Sunken Cost Fallacy Fallacy”. For those not familiar, the “Sunken Cost Fallacy” kicks in when you keep doing something that isn’t working because of the effort you’ve spent, even though you have a better option.
But you can’t “decide” that something is a better option because you’re a Decisive Decider™. It actually has to be a better option, or what you’re doing is simply throwing away the effort that you’ve spent to date because you want to throw your weight around. No, if you suspect a cost is sunken, there’s no substitute for doing your due diligence - is the project working?
If it isn’t, sure, then quit. But often, that little bit of extra work can unlock the solution to the problem. During my presentation, the team asked natural about the simple model that turned out to be the most successful - and those questions made me realize it could be improved. Over the weekend, I applied those fixes - taking merely good to excellent.
Last week, as of Thursday night, I was pretty down on the possibility of success for our project. But I did my due diligence anyway, and by Friday morning, I had a working solution. By Friday afternoon, all the team knew it – and by Sunday evening, I was composing an email outlining our machine learning “recipe” that we can build on going forward.
Quitting just before the finish line wastes all the effort you spent on the project. Before you quit, work a little bit harder than you want to and do your due diligence to check whether it is working. If it isn’t, you can stop with no regrets; if it is, you will have not just saved the value of your project - you will have saved yourself from shooting yourself in the foot.
-The Centaur
Pictured: The project team. Three-quarters of them want to try a new direction, but the old seasoned hand isn't quite so sure.
So! After that damn climate-change-induced hurricane, we had roughly fifty trees down on our property (though it may have been much more, if you count smaller trees). But this disaster is an opportunity, as newly fallen logs still have a functional immune system for a short period of time ... making it a great time to use those logs for mushroom farming!
My wife and I have been interested in mushroom farming for a while, and our friend Brandon at I See Fungi hooked us up with what we needed to get started. One of those things was a drill bit that helps drill holes to hold mushroom spawn, as well as an applicator that helps put the spawn in the holes:
After that, you can optionally use wax to seal the holes to prevent other organisms from digging the spawn out or getting into it. The messy wax, which can be heated up on your stove, or, better, a cookplate, gives the mycelium the best chance of getting established as the dominant organism within the wood.
After getting this round of mushrooms going, my wife and I had a lovely evening at Chef 21 Sushi Burger ...
... then walked around downtown Greenville, which still had its Christmas decorations up..
SO! If I got my blog running back in January, and planned to blog every day, why haven’t I been posting?
Because I also wanted to draw every day … and wanted to build a buffer.
Why? Well, let’s break it down.
First, I want to draw comic books. Yes, yes, yes, I have a webcomic called f@nu fiku, but after I broke my arm, and got my laptop stolen, and found my hand-crafted blog software stopped working, and got swarmed trying to crank out my first four novels … well, after all that, I found my confidence in my drawing had collapsed.
I never was that great at drawing, frankly, but when I was working on f@nu fiku with the goal of cranking out a page a week, I never let my drawing limitations stop me. If I wanted to have an image in my comic, I had to figure out how to draw it, no matter what. But even though I wasn’t that great, I had a level of self-confidence that let me tackle whatever I had to.
But I never gave up on comics. Not only do I want to finish f@nu fiku, I have other comics I want to draw, from Cinnamon Frost and Serendipity the Centaur stories up to and including becoming the writer-artist for Green Lantern. Obviously that last one is aspirational, but I can’t frigging aspire to become the writer-artist of anything if I am not creating comics at all.
But it’s hard to draw every day if real life intervenes (like Dragon Con, for example). According to my records, I’ve tried the “Drawing Every Day” project 3 times in the past, and never made it through the full year once - I lasted 215 days in 2021 (through Dragon Con), just one day in 2023 (the layoffs), and 135 days in 2024 (through the Embodied AI Workshop).
So, I decided to do a buffer for Drawing Every Day 2025.
So, for the first part of this year, I leaned into drawing, trying to get ahead. I decided that I wouldn’t start blogging every day until I built up a buffer of drawing every day, and in an act of quixotic hubris, I also decided to start retro-drawing the missing drawings from 2024 so that I would finish those drawings as well.
But, I wondered, how far ahead should I try to get in my drawings? Following Bill Holbrook, I guessed a month, but once you’re out of January, you need a tool to keep track of what day of the year it is. I wanted something simpler … so I started to think in terms of a simple formula I could keep in my head.
Fortunately (thanks, passage of time!) months are ordered, thus can be numbered. Call the number of the month in the year “m”. Months have a notch over 30 days on average, but for a mental formula, you want to round to even numbers to keep the math simple. So 30m is a good quick overestimate of what day it is in the year.
But 30m is a variable, vulnerable overestimate, as it is more ahead at the start of the month almost 30 days less at the end of the month. You could add 30 days, but even 30(m+1) still has this variable property. So, call the day “d” and add that to the formula: 30(m + 1) + d. And that sounds great. 30(m + 1) is guaranteed to always be more than 30 days ahead.
And … 30(m+1)+d is a treadmill. Every day, you’re just at your buffer, and every day, you can’t fail to lose focus, or you eat into your buffer. That’s no good: the point of the buffer is to get your back when major life events (like Dragon Con) happen, not to put you constantly on edge that you’re about to lose your buffer.
So I decided to add a few more days to the formula. I know I typically draw two to four drawings in a session (sometime as few as one if I am busy or have chosen something complicated, sometimes as many as five if I am sketching). So adding two more to the formula gets us to 30(m + 1) + d + 2 … a number I can easily calculate in my head, and, what’s more, add to my drawings, even if I don’t have internet where I am.
It’s not perfect - when transitioning from a short month, you can find yourself a few days behind - but it’s a number so far ahead that I can skip a day whenever I have to, confident that I will be able to get back on track with the typical number of drawings I do per day. And if I am at my buffer, I can do a “retro 2024” drawing or sketch some idea not on my drawing plan (which is a whole nother topic for a whole nother post).
So. Anyway. My point, and I did have one.
Today, I reached 30(m + 1) + d + 2 in my drawing buffer.
And so today is the day I resume Blogging Every Day, with this post.
It’s good to be back.
-the Centaur
Pictured: Where I am, drawing, and writing, and one of the drawings. And unfortunately, it's too dim to do my normal photo of my drawing for today, so I'll have to scan that when I get home.
Long day. But I had yet another victory with "push it just a little bit farther" combined with "nailing down the carpet", applying them together to successfully complete a data loader for my latest machine learning project. It was quite the mess at first, with loose wires and dangling bits all over the place, and while the high level concept of what I wanted to do was clear, some of the next steps were elusive.
But "nailing down the carpet" means methodically going through a project and eliminating everything that can trip you up - formatting files, turning on the linter, resolving lint issues, refactoring code, and, sometimes, just moving code to its proper place. And when I was done with that, my data loader class was practically empty, just waiting for a suggestion from ChatGPT to flesh it out.
I had to adapt that code to my use case, of course, but I successfully loaded my data (into a Colab which was now a third of its former size thanks to my aggressive moves of code into reusable libraries) and managed even to cut the proposed loader to half its size, again due to the reusable libraries I had just built. The code worked in Colab. And I wanted to check it all in - but the unit tests suggested by ChatGPT no longer passed after all my code changes. It was late and I was tired, so I decided, yeah, time to hang it up.
But I was so close. And so, I decided to "work a little bit harder," and fix the unit test. Once I dug into it, I realized the problem was the synthetic data that the generative AI had proposed in the unit test, so I replaced that with real data, using the librarized code I'd just refactored. And then I realized the data was too big, so I used ChatGPT to write, on the fly, some code to squeeze the data down to size as test data.
That extra work took less than an hour - maybe less than thirty minutes. But it meant I was able to package up a report to my team and toss it over the virtual cube wall, confident that I had a clear picture of the data they were sending me and a clear set of tools to deal with it. And my next step, after a couple of minor refactors, is to finish the data loader so it can look at sequences of frames - something that we strongly suspect is needed to solve this machine learning problem.
So, once that's done tomorrow ... it's on to learning.
Don't jinx it, Francis.
-the Centaur
Pictured: Loki, being very comfortable in the Captain's chair. And so my point, and I guess I had one, is that by pushing it a little bit farther, almost past my comfort zone, I in turn made things so much more stable that I am actually more relaxed and calm than I was when I was planning to turn in early. So I find the tools that I'm developing - "nail down the carpet", "sharpen your saw", "work a little bit harder", "clear the decks", "find the price and pay it", and "be gentle with yourself" - continue to reap greater and greater rewards.
So ... what the heck happened to this website for almost six straight months?
The TL;DR (too long; didn't read summary) is that moving the Library of Dresan to a new provider was a huge endeavor, so I prioritized clearing everything else going on in my life until I could focus on the move.
I had lost faith in my old web service provider. Emails delivered to centaur at dresan dot com were randomly dropped to the point I had to stop using it, and image posting was no longer possible because the provider was only giving me 25 gigabytes out of my 35 gigabytes of allotted storage. The Library had to go elsewhere.
But that involved finding a new domain provider, setting up hosting, transferring all the files, transferring the database, getting the Library's WordPress installation running on a new site with new rules and a new version of PHP, and, as a bonus, transferring all the email addresses and lists to the new domain.
And, if you've never tried to transfer 25 gigabytes of files off a remote website, you can't just "do" that. A copy of that size off a consumer-grade website will just randomly fail at arbitrary points during the transfer. I had to write an entire program to help me track this (which I plan to clean up and release on Github).
But while all that was going on, I had to replace my laptop, volunteer at the Unsolved Problems in Social Navigation Workshop, launch The Neurodiversiverse, attend Dragon Con, attend the Milford Writing Workshop, clean up after a hurricane, start mushroom farming with the logs fallen from the hurricane (which had a clock attached to it), quixotically try to get some stuff prepared for GDC 2025, prep for EAI #6, handle submitting a +66 page paper with +30 authors, and prepare for the largest Christmas ever (where we hosted two parties with almost 20 people each, and had three separate groups of houseguests).
When Christmas was finally in the rear-view mirror, I then turned my attention to webworks - first fixing the Logical Robotics website, then fixing my wife's website, and finally fixing the Library itself. It was ... exactly the ordeal that I feared it would be. Actually the WordPress part, that part, it worked fine - I had already copied the files, and had frozen the database as of my July 26, 2024 post, and ... miraculously, the website was working to serve the pages with very little issue. But posting did not work (a permissions issue). And then logging into the website quit working (an SSL issue). And then posting images quit working (which turned out to be, indirectly, an SSL issue, due to the firewall bundled with the SSL).
And so on. And so on.
Yes, yes, yes, bla bla bla, you've heard all this from website developers before. But there's a very important insight I have to share with you. Yes, we are finite creatures with limited powers, and yes, sometimes we run into problems, and yes, sometimes, we run into problems that seem beyond our abilities to solve.
But, just as we are finite, so our problems are finite. Yes, yes, yes, it's important to understand the difference between a solvable problem (cleaning out your storage unit) and an unsolvable one (as when the legendary King Canute apocryphally tried to back the tide, which is actually a dirty lie given that he knew better and was just trying to stick it to his flatterers in his court, but, whatever). But as long as you are not actually trying to turn back the tides, your problems can be solved by focusing on them, one by one.
And so that's what I've been doing for the past several months since I came back from the Milford Writing Workshop. My 2024 was hectic - because we wanted to launch The Neurodiversiverse in time for Dragon Con 2024, and because I chose to do a lot of publicity for it at the Nebulas, Con Carolinas, and Dragon Con itself, but because I chose to not cancel many other events, like the Fifth Annual Embodied AI Workshop, or the Workshop on Unsolved Problems on Social Robot Navigation, or my attendance at the Milford Writing Workshop itself - requiring me to plan it down practically to the week.
After Milford, however, I had a few months until Christmas ... and I vowed to start "clearing the decks" of my massive todo lists. So I've spent the past three or four months methodically identifying things, working to eliminate them, and moving on with my life.
It has been refreshing and freeing. I have far to go - my todo list needs a fricking one inch binder clip, and I am not exaggering one bit - but, already, many things that have been bugging me are gone, just gone, leaving me with ... that ... much ... more ... free time and ... that ... much ... less ... mental load to carry.
So, this is a very long-winded way of saying, soon, I'm going to resume blogging every day.
But ... I wanted to clear the decks, and get off my chest why I haven't been.
-the Centaur
Pictured: Snow, in the "French Quarter," our tiny little courtyard.
SO! I am behind on blogging. But my wife and I have been traveling so much this year (near constantly for five months between the two of us) that, frankly speaking, we need to focus on us time more than I need to focus on the blog. So it's going to take a little longer to get things rolling ... because other things come first.
-the Centaur
Pictured: an anniversary picture, from years ago (since the blog image uploading is still borken).