I and a politically opposite friend got together today to NOT solve the world's problems, and after a long and charged discussion we came to the conclusion ...
... that the 55+ menu at IHOP is good.
I think we can come together as a nation on this one.
Seriously, just turned 55 recently, and my buddy offered to take me out to breakfast at IHOP and order off the "senior" menu because, well ... sigh. It's time, literally, it's time. And it was pretty good!
So we've got that going for us, which is nice.
"What's that, sonny? First time trying it? I can't hear you over my advancing decrepitude ... "
This is your periodic reminder that we may not be on the moon, but we live in a pretty awesome world, where almost every movie, book or comic book you ever wanted is either available to stream over the air or can be readily shipped to your home, genre toys that once were inaccessible are now readily available, and we can shrink a playable Galaga machine down to the size you can put it on your coffee table.
Cat, when it's raining: "Let me out! Let me out! But not this door, it's wet. Let's try another door. And another! Or another! I gotta get out! Just hold the door open until the rain stops!"
Also cat, when it is nice and sunny: "Who cares about going outside? Ima gonna havva nap."
-the Centaur
Pictured: the cat-shaped void, Loki, actually using his void-colored cat tree for once. Image taken in infrared bands and color enhanced by NASA to show surface detail.
One of the problems with computing is when it just gets ... foggy. Not when you're trying to do something hard, or when two pieces of software are incompatible, no. When things just sort of kind of don't work, and there are no known reasons that it's happening, and no reliable actions you can take to fix it.
Once this happened to me when I was working on a robotics device driver, and I realized the lidar itself was unreliable, so the only way to fix problems was to run each configuration ten times and keep average stats. Broken "worked" around ten percent of the time, whereas "fixed" worked around seventy percent of the time (approaching the rate at which the manufacturer's own software could connect to its own hardware).
Today, I ran into a seemingly simple problem with Anaconda, a Python package / environment management system. Conda lets you corral Python and other software into "environments" with different configurations so that potentially incompatible versions can be used on the same computer (albeit, not at the same time). It even gives you a handy indication about which environment is in use in your command prompt, like so:
There's a seemingly innocent blank line between (ThatEnvironment) and the previous line, yes? Not part of the standard Conda setup, but you can easily add it with a single line of configuration, changing the "env_prompt" to include an extra newline "\n" before printing the environment, like so:
Yeah, that line at the end. "env_prompt: \n({default_env})". In a conda configuration - a .condarc, or "dot condarc" file - which is almost as simple as possible. I don't even think the "channels" bit is needed - I didn't recall writing it, I think it just got added automatically by Conda. So this is almost the simplest possible change that you could make to your Conda configuration, done in almost the simplest possible way.
Except. It. Didn't. Take.
No matter what changes I made to the .condarc file, they didn't affect my Conda configuration. Why? I don't know. No matter what I did, nothing happened. I changed the prompt to all sorts of weird things to try to see if maybe my syntax was wrong, no dice. No amount of searching through manuals or documentation or Stack Overflow helped. I re-ran conda config, re-loaded my shell, rebooted my Ubuntu instance - nothing.
Finally, almost in desperation, I went back to my original version, and tried creating system-wide, then environment-specific configurations - and then the changes to the prompt started working. Thank goodness, I thought, and rebooted one more time, convinced I had solved the problem.
Except. It. Took. The. Wrong. Config.
Remember how I said I created a weird version just to see that it was working? Conda started reverting to that file and using it, even though it was several versions ago. It actively started overwriting my changes - and ignoring the changes in the environment-specific configurations.
So, I blew away all the versions of the file - local, system and environment-specific - and re-created it, in its original location, and then it started to work right. In the end, what was the final solution?
I have no idea.
When I started working on the problem, I wanted Conda to do a thing - print an extra blank line so I could more easily see a command and its result, separate from the next command and result. And so I created a file in the recommended place with a line containing the recommended magic words ... and it didn't work. Then I hacked on it for a while, it sort of started working, and I backed out my changes, creating a file in the same recommended place with a line containing the same recommended magic words ... and it did work.
Why? Who knows! Will it keep working? Who knows! If it breaks again, how do I fix it? Who knows!
This is what I call "the fog". And it's the worst place to be when working on computers.
... it's still one of the worst feelings in the world to turn back the sheets at the end of a long day, only to realize you hadn't blogged or posted your drawing. I had a good excuse yesterday - my wife and I were actually out at a coffeehouse, working on our art, when we had a sudden emergency and had to go home.
I had just finished my drawing and was about to snapshot it so I could post it, but instead threw the notebook into my bookbag, packed it up, and drove us home. Disaster was averted, fortunately, but the rest of the day was go-go-go, until finally, exhausted, I went to turn in and then went ... oh, shit. I didn't blog.
Fortunately, I didn't have to go back to the drawing board. But it did flip over to tomorrow while I was posting ... so, next day's post, here we come.
-the Centaur
Pictured: A jerky shot of me trying to document my wife's computer setup for reference.
So, my wife's furniture business is finally kicking off! Here's the first ad for Studio Sandi's custom sustainable furniture, made from (almost) all eco-friendly, recycled and recovered materials:
Check them out at studiosandi.com , where more information will be added soon!
-the Centaur
Pictured: An ad for Silicon Valley Open Studios, showing four pieces of art and two pieces of custom furniture, almost entirely made from recycled / sustainable materials except for the resin tops.
We have a black cat, so we got a black cat condo (just barely visible to the left). But of course, our cat-shaped void is a cat, and so prefers the blue couch, where its voluminous shedded fur is easily visible. My wife caught him in the act, so, enjoy this picture of our cat-shaped void, doing cat-styled things.
-the Centaur
Pictured: Loki on our couch. Interestingly, this picture was taken at an angle, so I rotated it, then used Adobe Photoshop's generative fill to recover the outer edge of the picture. The very outer edge is ... mostly right. Some weirdness is visible in the carpet patterns on the lower left, the brick pattern on the upper left, and whatever it is on the table on the right isn't there in reality. Otherwise, not a terrible job.
I'm a night owl - I'd say "extreme night owl", but my wife used to go to bed shortly before I woke up - and get some of my best work done late at night. So it constantly surprises me - though it shouldn't - that some things are easier to do earlier in the day.
Take blogging - or drawing every day, two challenges I've taken on for twenty-twenty four. Sometimes I say that "writer's block is the worst feeling in the world" - Hemingway apparently killed himself over it - but right up there with writer's block is deciding to call it a night after a long, productive evening of work - and remembering that you didn't draw or blog at all that day.
Sure, you can whip up a quick sketch, or bang out a few words. But doing so actively discourages you from longer-form thought or more complicated sketches. Drawing breathes more earlier in the day, especially in the midafternoon when your major initial tasks are done and the rest of the day seems wide open. And blogging is writing too, and can benefit as much from concentrated focus as any other writing.
SO! Let's at least get one of those two things done right now.
Type Enter, hit Publish.
-the Centaur
Pictured: Downtown Greenville as seen from the Camperdown complex.
I take a heck of a lot of pictures, seemingly way more than most of the people I know other than the ones in the movie industry; in fact, one of my friends once said "your phone eats first". But there's a secret to why I take pictures: it's for something, for the creation of an external memory - and memory is my brand, after all. With those photographs, I can figure out what happened in the past, even sometimes obscure things - like the attachment point of this lightsaber, which isn't just the diamond-shaped piece of wood, but also includes two hooks that seem to have disappeared in the move.
We may not find them, but at least now we know what to look for.
How can you turn the things in your life into an unexpected resource?
-the Centaur
Pictured: the old library, which was very nice, but not as nice as this one:
My wife eats vegan almost exclusively, and I often try to eat vegan when I'm with her. But she's experienced a lot of difficulty in finding vegan food, even at restaurants that claim to serve it; it's not resistance to veganism per se, but a strangely baffling lack of understanding that vegan means "no animal products".
On our recent trip to Asheville, we got a BIG set of clues as to why this is happening: purely by chance, a number of people inadvertently exposed to us why there's so much confusion around the concept of vegan as "plant based food".
First, there's no such thing as an "egg vegan" - but, apparently, there are a lot of people who are going around claiming that they are, and confusing the heck out of restaurants because of it. At one restaurant in Asheville, the host stand told us they had a "vegan southwestern benedict" but there was nothing vegan about it: it had eggs, butter and hollandaise sauce (which is egg AND butter). Our server then let slip that many people claimed to be "egg vegans" and this dish was aimed at them.
Well, maybe they THINK they're "egg vegans," but there's no such thing: the word for someone who eats eggs is "vegetarian", or if you want to get specific, "ovo-vegetarian". Regardless, the FOOD is not vegan if it has eggs in it, so it is really unhelpful to people who have chosen to be vegan, or who are avoiding eggs for health reasons, to mislabel food with eggs in it as vegan.
"Egg vegans" remind me of another group of people: those who say "they're mostly vegan, but they eat fish". The word for that is "carnivore", or if you want to get specific, "pescatarian". I actually knew a real vegan who added fish to his diet for about a month for nutritional reasons, but he was clear to everyone and himself that this was a departure from the vegan diet.
Second, some people literally do not understand that vegan is different from vegetarian - and if that person owns a restaurant, he's going to have many unhappy customers. At one Japanese restaurant we visited this weekend, there were dozens of "vegan" items marked as such on the menu - but a kindly waitress stopped by our table and warned us that the owner did not know the difference and repeatedly labeled food with butter and eggs as "vegan", despite being told otherwise.
This reminds me that some people do not understand that any animal products makes a dish not vegan. My wife's mother frequently tried to get her to eat food cooked with a ham hock in it because "it's just for flavor". The P.F. Chang's we used to go to put fish flakes in most of their vegetarian items, which makes them not just not vegan, but not even vegetarian. And so on.
Third, even when a restaurant is trying, vegan and vegetarian are confusing because they both start with VEG and end with N - and there's no standard abbreviation for either of them which can be used to unambiguously label a meal. I've seen "V", "VG", "VE" all used to refer to both vegan and vegetarian, and if you look around I bet you'll find some menus using "VN" for both purposes. Regardless, at one or two restaurants this weekend, even the waitstaff got confused as to what was vegetarian or vegan due to the "V/VE" issue.
And finally, sometimes the waitstaff just gets it wrong. And at another restaurant this weekend, the waiter didn't write our order down and completely messed it up in her head - but fortunately came back to ask before passing the wrong order to the kitchen. As another example, the staff at a very vegan-friendly local pizza joint told us that one of their pizza sauces was vegan, only to discover months later that it was not.
So it's seemed strange to us that some people can't seem to wrap their head around what vegan is. But if some people are running around claiming to be "egg vegans", the owners are mislabeling the meals, the meals are not labeled clearly enough even for the staff to tell, and sometimes people are just mistaken even when they're trying to get it right, it seems more clear why things get messed up.
But really, vegan is just plant based food, and if it's not plant based food, it's not vegan.
-the Centaur
P.S. Fine, fine, bacteria and fungi aren't technically plants, but they're vegan. Just nothing with a face or a mother, and nothing from something with a face or a mother, okay?
Pictured: Sunny side up eggs, bacon, and French toast, NONE of which are vegan.
Some people wonder why me and my wife are so strict about not using pesticides and weedkillers in our yards. Well, there's the general principle of not contributing more toxic chemicals to the environment, and in San Jose there was the concern that our cats walked in the yard, then slept in our beds, and we didn't want them tracking in chemicals (other than dust and pee and poop, but, oh well).
But in South Carolina? We have a well. Our yard is our source of drinking water. And the recent unexpected excess precipitation event really brought that home by making the water drainage channels visible:
We get enough chemicals from our neighbors poisoning their lawns. We don't need to add any more to it. In fact, we're busy enough trying to slowly clean up the waste that the previous owners left on the property ... it's a nice house, but someone seemed to think that the woods around it were a dumping ground.
One step at a time. But one of those steps is, don't add pesticides or herbicides to your own drinking water.
-the Centaur
P.S. Yes, I understand a lot of chemicals get filtered out by the dirt. There's still no need to add to it.
When we decided to live in a place where water falls from the sky, we didn't realize how much we meant it.
The good news is that there's more places to go swimming. The bad news is that you can swim in only one direction, much like a muddy simulation of the interior of a black hole.
Honey, I hope you didn't need anything at the store.
... or you're not blogging every day. And I even went down to the library TO blog, but forgot what I was supposed to be working on when I got here, and did a whole buncha other tasks.
So, anyway, here's a margarita. It was strong. Enjoy.
Welcome to 2024, everyone! This year, I plan on resuming my aborted "Blogging Every Day" and "Drawing Every Day" experiments (and, perhaps, even "Music Every Day"). But let's focus first on the blogging. I really enjoy reading the blogs of people who regularly take out the time to comment on the world, because it gives me a view not just into their thought process but into the gears of the world as they grind.
As for my gears grinding, this first day of the new year has been quite busy! It feels like I did nothing, as there were things that I had planned to do this morning that never happened. But, actually, I spent a few hours managing (counts them) 8 research projects and 2 nonfiction book proposals, met with a friend/research colleague online, did some prepwork for the Neurodiversiverse, helped my wife with some plane tickets, resolved issues with some online systems, and hung out with a cat.
Little of that was on my agenda, but it all has to get done. And it's easy to forget that. One way I've been using to track that is Clockify, which I started using when my consulting business picked up a bit. It really helps you see what you've been spending your time on - or neglecting - if you remember to use it.
Of course, one of the things I had wanted to do this morning was enter my hours for the weekend. Time to get to timing it.
Wow, what a year. I'd love to say it had its pros and cons, but the stark reality of it is that the one bad thing - getting laid off, not just years before I wanted to retire, but one day after we successfully showed our new project was working, thus throwing me years off course in my research - overshadows all the good stuff. As I was describing it to my wife, it's like falling down into a well and finding some shiny rocks down there. They might be nice rocks - heck, they might even be gold, and worth a fortune - but you've still got to cope with falling into the well, and figure out how to climb back out again, before taking advantage of the good stuff.
But 2023 was the worst year for me for a while. There have been bad ones recently - in 2016 we elected a wannabe dictator and many of my friends and family seemed to lose their minds; in 2019 my mother died; and in 2020 I had the double whammy of the pandemic with the most stressful period of my work life. But, like 2023, each of those years had ups with the downs: in 2016, my current research thread started; in 2019, we proved that our research ideas were working (for all the good it did us); and in 2020, we moved back to my hometown into what we hope is our forever home.
And yet, with the exception of the loss of my mother, none of those seemed quite as life changing as getting laid off. Even for Mom, I was somewhat prepared: my father had unexpectedly lost one of his siblings early, and our extended family had developed a kind of shared knowledge of how to cope with loss. I had already lost my father and grandmother, and knew that Mom, while healthy, was in her mid-80s, and could pass at any time; so I was spending as much time as practical with her. I spoke to her the day she died. And so, after she was gone, I started down a road that I had been preparing for mentally for a long, long time.
But I wasn't in the mindset that Google would kill off half its robotics program just in AI's hour of triumph. We were even working on a projects directly related to Google's new large language model focus. It made no sense, and left this strange kind of void, creating a severance I didn't expect for another decade.
Despite all of what happened this year, I keep coming back to one thing:
Was it worth it if I wrote those two new stories?
Yes.
So, farewell, you crazy year you: thanks for all you gave me. My wife even said "Supposedly what you do on New Year's Eve is what you'll do for the rest of the year," and today we worked on our businesses, worked on writing and art, met friends old and new, and even moved furniture (which, metaphorically, is her new business venture). So's here's to more writing, more art, more friends, and more business in 2024!
-the Centaur
P.S. I see that I kept up "Blogging Every Day" in 2023 for 91 days, almost a quarter of the year; my earlier attempt at "Drawing Every Day" in 2021 lasted 103 days, a little over a quarter of the year. Let's see if we can break both those records in 2024, now that I have far more free time (and flexible time) on my hands!
Still at the Conference on Robot Learning. LOTS of robot dogs were about, lots of diffusion model and transformer work, and lots of language model planning. More later, gotta crash.
In ATL for the Conference on Robot Learning, very tired after a long day, please enjoy this picture of a Page One from Cafe Intermezzo. Actually, today was a really good example of "being where you need to be" ... I ran into a fair number of colleagues from Google and beyond just by being out on the town at the right time and the right place, and was also able to help out a fellow who seriously needed some food. And when the evening was ending ... three more Google colleagues appeared on the street as I sat down for coffee.
I don't actually believe we live in a simulation, or in the Secret, or whatever ... but if you're doing the right thing, I find that Providence tends to open the doors for you right when you need it.
-the Centaur
P.S. Being in the right place DOESN'T mean you get all your nano wordcount done though. I am making progress on "Blessing of the Prism", my Neurodiversiverse story, but on Dakota Frost #7 I found myself spending most of my writing time sorting chapters in the big manuscript into sections, as I realized that one of the ungainly sections I didn't like was actually a coherent start for Dakota Frost #8.
P.P.S. On my blogroll, I saw someone say, "no writing is wasted", and in a sense the chapters I just saved are not wasted. In another, and I say this as a bloviating maximalist, a big part of writing is selection, and sometimes having too many versions of a thing can make it hard to pick the right one and move on.