Hi, I’m Anthony Francis, and I teach robots to learn, particularly deep reinforcement learning for robot navigation as well as the intersection of memory, emotion, and planning for contextual control. …
SO! I love to write, and four of my novels are published – FROST MOON, BLOOD ROCK, LIQUID FIRE, about magical tattoo artist Dakota Frost, and JEREMIAH WILLSTONE AND THE…
So I read a lot and write a lot and occasionally edit what I write and even more rarely, something gets sent to an editor and turned into a publication.…
“Robots in Montreal,” eh? Sounds like the title of a Steven Moffat Doctor Who episode. But it’s really ICRA 2019 – the IEEE Conference on Robotics and Automation, and, yes,…
So, this happened! Our team’s paper on “PRM-RL” – a way to teach robots to navigate their worlds which combines human-designed algorithms that use roadmaps with deep-learned algorithms to control…
SO! There I was, trying to solve the mysteries of the universe, learn about deep learning, and teach myself enough puzzle logic to create credible puzzles for the Cinnamon Frost…
Wow, it’s already here – my flash fiction short story “One Day Your Strength Will Fail” is about to appear in the very first issue of the Bay Area’s new…
Wow. After nearly 21 years, my first published short story, “Sibling Rivalry”, is returning to print. Originally an experiment to try out an idea I wanted to use for a…
Why yes, I’m running a deep learning system on a MacBook Air. Why?
Yep, that’s Python consuming almost 300% of my CPU – guess what, I guess that means this machine has four processing cores, since I saw it hit over 300% –…
(Self-deprecating note: this blogpost is a rough draft of an essay that I’m later planning to refine for the Write to the End site, but I’ve been asked to share…
Let me completely up front about my motivation for writing this post: recently, I came across a paper which was similar to the work in my PhD thesis, but applied…
In many ways, Howard Philips Lovecraft and Jorge Luis Borges are different. Howard Philips Lovecraft wrote dark, atmospheric American horror at the dawn of the twentieth century. Jorge Luis Borges,…
So at last the kittens get to go outside! The adventurous one, Lily, took to it immediately, but the other two were terrified, squeaking, their tiny hearts pounding ... for all of five minutes. Within ten, they started exploring, and within twenty, they were actively playing.
For now, we've turned this courtyard into a catio, because these kittens have never been outside, have almost no experience other animals other than friendly humans and our scared indoor cats, and still are pretty tiny. Our property, on the other hand, is crisscrossed by other cats, occasionally aggressive turkeys, and a fox willing to take on prey twice its size. There's also a hawk, which my wife is concerned might carry off the cats; as they get larger, I am skeptical, but there's no need to risk it until they get more street-smart.
Be patient, Lilipadski. Your time will come.
-the Centaur
Pictured: Cats in the catio, AKA the courtyard we call "The French Quarter."
Welp, I gaffed, thinking my last "blogging every day" post, #172, published on July 12, 2024, was published on time, so I should look for pictures from July 13 to reconstruct what I was doing. And so, I was going to start a "retro 2024" series of blogposts to get back on track.
BUT, post 172 was late, so it ACTUALLY should have been posted on June 20th. But, IT WASN'T, so, WHATEVER, I had already pulled up images from July 13th and sketched out a blog post in my mind, SO, here we go, NOT QUITE RETRO 2024 yet.
Wait, why am I doing this, other than my obsessive-compulsive disorder (OCD), which really should be "compulsive disordered obsession" (CDO) so not only would the acronym be alphabetical, but also the phrase would no longer need a hyphen as it was no longer a compound-word adjective?
Because it gets be back on track, that's why! Don't bother me, don't bother me.(*)
Anyway.
Back in July of 2024, my wife and I were on a trip to downtown Asheville. Before Magneto destroyed it (oh, wait, my fact checkers are actually saying it was ravished by a hurricane) Asheville was one of our favorite getaway destinations, being only an hour and a half from our home in Simpsonville, South Carolina.
And there, we found Cary Gray's Poetic Experience, where "he asks, you share, he writes." After walking past it half a dozen times, I decided to sit for a session, where Cary asked questions about me that revealed my interest in robotics, my history of love for science going back to the Greenville County Library and their great big spinning globe, and my neurodivergent social anxiety disorder.
Cary ultimately put that into a poem, which he later physically mailed to me, laser-cut onto a set of boards that I have hanging in places in my Library. I apparently don't have a picture of one of these, and am not going to hold up this blogpost, but I one quote sticks out in my mind:
"Who do I look in the eyes, and for what length of time?"
That's the story of my life, I think, or at least the story of my inner mental life when I'm interacting with other people. I loved having eyes with lenses flexible enough to support the use of contacts, but now that I'm on progressive lenses, I enjoy taking them off when I'm talking to people, so their eyes blur out just enough that I don't have to be self-conscious looking at people and can just be there present in the moment.
And I'd never have gotten a laser-engraved plaque bearing the words "Who do I look in the eyes, and for what length of time," a plaque that now hangs in a place where I see it almost every day, unless I had stepped outside my circle for a little poetry reading.
So. Step outside your circle. You never know what benefits it might bring.
Looks like "blogging every day" bombed out around July 12, 2024 ... so let's pick up with July 13, shall we?
Picking up with blogging every day almost half a year later? Oh yes, I am.
-the Centaur
Pictured: A sign, likely from Asheville. Also, bonus points if you can figure out what the title riffs on. [Oh, all right, I know it's too hard, it's from a sample in "You are Here" off of John Tesh's Tour de France album.]
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.
It snowed, and while ice remained on the ground in some shaded areas for weeks, in others, the disappearance of the light dusting of real snow was swift and stark.
Above, the snow was gone from the courtyard by practically the next afternoon, burned off by the sun - except in the places the winter sun didn't reach, leaving a line as sharp as a ruler.
There's some deeper message in this somewhere, but I find it elusive. Oh hey, look the Author button has returned to the Post settings. Where did you go, little buddy? I missed you.
<click>-the Centaur</click>
Pictured: um, well, I said it. And sure enough, whatever bug caused the Author setting to disappear has un-disappeared. How nice. At least that hasn't turned permanently to molasses like so many other things ...
...but I'm still going to try to get at least one thing done before I go to bed.
Because, even though it's been a rough few years, and sometimes I want to give up ...
I still believe you just need to work slightly harder than you want to in order to really get things done, and if you do, you'll often find that your efforts are more greatly rewarded than you might have imagined.
I'll go further: if you work just a little bit less than you need to, it's often a net negative: you expend effort without reaching the goal, so all you're left with is the cost. But if you put that slight extra effort in, right when you think you want to give up, that's when everything can flip from negative to positive.
We often think in terms of a simple linear model of effort to results - we do a little work to get a little reward, and we're often taught in economics class that there's a law of diminishing returns, so if we do even more work, we get proportionally less reward.
But that little bit of extra effort right when you want to give up flips that script: it doesn't give you a little bit of extra reward, approaching zero the more effort you put in; because it can turn a loss into a win, it effectively has an almost infinite relative payoff.
So: Don't give up. Because, when you feel you want to ... that's when you're close to victory.
-the Centaur
Pictured: Pound cake, deep learning, and art practice.
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.