The Saturday Currents, OR: Why Care?

I prefer pictures of food to pictures of myself, but, since my phone stopped charging and started shocking people (along with emitting a lovely BURNING smell) you get old stock footage or Photo Booth for the time being.

And now, the currents:

  • Currently Reading: Merida, Chasing Magic (because I want to understand children’s books better, and I like the drawing of Merida’s awesome red hair which is an inspiration for my drawings of Serendipity) and The Cognitive Neurosciences, Fifth Edition (because I am working on a project on the engineering applications of consciousness research, and research on the neural correlates of consciousness has exploded in the last twenty years).
  • Currently Rereading: The New Testament: A Historical Introduction to the Early Christian Writings (because Lent), Planning Algorithms by Lavalle and Reinforcement Learning by Sutton and Barto (because my robot navigation research is heating up and I want to understand the connections of reinforcement learning and classical planning, both of which have related but different ideas of value iteration; also because I’m planning on coding a small toy DQN to help me better understand the larger machinery I use at work).
  • Currently Dreading: Finishing my taxes, and finishing my edits on Shattered Sky by David Colby. Both so late! Sorry.
  • Currently Missing: My wife, on a business trip; my cats, at home waiting for me to finish up lunch, shift gears, and go home to go through The Tax Pile.

Why do these things matter? Why should you care? I know some people could care less about the incessant Facebook updates by people saying where they are and what they are doing. Some people I know even call sharing updates humblebragging as a way of shitshaming people into shutting up. (Hey guys! You know who you are. Message from me to you: Fuck off, kthanksbai.)

Not me. I like seeing people say what they’re up to; I like the birthday wishes on Facebook or the posts by famous writers saying, “ugh, I can has no brain today, here is a picture of a cat”. I still remember after my Aunt Kitty died sharing on Facebook my last picture of her, and all the people I knew who showed up at the funeral only because I had posted it.

It’s human and natural to share with each other what we are doing. It lets each of us know that we aren’t alone dealing with the good or bad. If status updates aren’t the thing you’re into, get off Facebook or Twitter. There’s nothing wrong with that: I know many people have done it and have felt better for doing so.

For me, there are so many people I only stay connected to because we have that instant means of connection. And (ssh: between you and me) there’s always my ulterior motive: the more I write, the better I get at writing, and the more I discover and perfect my own voice. And just about everyone I know who does that just gets more interesting the longer that they do it.

That’s why I’m currently … blogging.

Hit save, then publish.

-the Centaur

Overcoming Writer’s Block in Two Pages

SO! I’ve written about overcoming writer’s block before, though that draft post never seems to have been finished, and, regardless, I couldn’t find it when I was generating handouts for my latest writer’s block class at Clockwork Alchemy. So I generated some ENTIRELY NEW HANDOUTS on Overcoming Writer’s Block, which I want to share with you today! The first advice, is, of course, just write!

Write! The first, best and last advice: Write. Just write! Write anything at all. Don’t wait for inspiration or the muse—just write! Don’t stop. Don’t think. Force yourself to write something. Put words on the page even if they are not the words you want. The cognitive skill of writing is so complicated that you need to get good enough at it that the act of writing doesn’t get in the way of the act of creating. Write “bla bla bla” if you have to. Trust me, you’ll get bored with that soon. Because the physical act of writing itself is has an almost magical effect of inspiring a new stream of words that you can put on the page. If you can’t think of anything, just write “I am blocked” and describe your feelings about it. That’s worth something. If you don’t know the answers, write the questions. Regardless of what you write, the answer to feeling blocked is to write. Just write!

Beyond the pep talk, I added some references to books on writer’s block – but also extracted some of the findings into a new acronym representing the way that writers who are blocked consciously can torpedo themselves: ERASED, because that’s what it feels like writer’s block is doing to your words!

  • Early Editing: Editing while writing can paralyze you.
    Write your draft first, edit it later!
  • Rigid Rules: “Rules” about composition are guidelines.
    Break the rules in your draft!
  • Awful Assumptions: We often assume writing must be perfect.
    Feel free to write your way!
  • Strategic Shortcomings: Complex projects can overwhelm us.
    Stretch your planning muscles!
  • Excessive Evaluation: Don’t grade our own writing too harshly.
    Finish your draft, then improve it!
  • Discordant Directives: Rules sometimes contradict each other.
    Be willing to make tradeoffs!

There are four interventions recommended for dealing with this kind of block; don’t try just one, try them all together:

  • Start Free Writing: Take on free writing like morning pages.
  • Develop a Writing Habit: Pick a regular day and time to write.
  • Stop Beating Yourself Up! Stop negative self-talk about writing!
  • Get Social Support: Find a writing group or writing buddy.

But all of those are symptoms of what’s essentially a block to the cognitive skill of writing. Sometimes writers face emotional trauma, and that’s OK: take the time you need to deal with your issues. And sometimes, actual chemical and neurological things interfere, so if you suspect deeper issues, please, feel free to recruit help to deal with whatever’s  the problem.

All of this and more are in the HANDOUTS on Overcoming Writer’s Block. Enjoy!

-the Centaur

Good Friday Vigil

Good Friday Vigil at Saint Stephen’s in-the-Field. We dress down the church and set up a bare wood cross and labyrinth, and encourage people to sign up to stay and pray so we have coverage all night.

I am a night owl, so I signed up for 1 a.m. through 2 a.m. So why am I here with a cough at 2:45 a.m. when I have an early-for-me meeting tomorrow? Someone changed my slot without telling me, to 2 a.m. through 4 a.m.

So I had the double pleasure of waiting fifteen minutes in the cold for the shift change (while I confirmed, via Google Docs history, that I was not misremembering my time), finding out that the person inside was still only partially through their two hour shift, going home to crash, and coming back to wait in the colder cold again while the previous person ran over. (The irony of the sleeping apostles is not lost on me).

This has been my least effective Lent in recent memory. I went to Ash Wednesday service to get ashes, only to get quizzed about it by my favorite server at one of my favorite restaurants, who then to my dismay turned into an insulting, manipulative proselytizer. I have had a surprising share of similar bad reactions with people leaving me more rattled about how I treat and react to people (even though I was never the aggressor) than focused on God or reading the Bible. Visiting the sick has not worked as my friend who is hurt the most is too touch and go for visitors. And giving up alcohol for Lent proved more of an inconvenience than a prompt for reflection.

And yet, like going to church on Sunday, or volunteering for the church Vestry, or reading the Bible, the Vigil is serving its function: to draw my attention back to God.

May God’s peace, which passes all understanding, be with you always.

-the Centaur

Dave, We’re On Your Side

The biggest “current” in my mind is the person I am currently worried about, my good friend and great Game AI developer Dave Mark. Dave is the founder of the GDC AI Summit … but was struck by a car leaving the last sessions at GDC, and still is in the hospital, seriously injured.

Dave is a really special person. I’ve been going to GDC longer than Dave, but it was he (along with my friend Neil Kirby) who drew me out of my shell and got me to participate in the Game AI community, which is a super important part of my life even though I don’t do Game AI for my day job.

Dave’s friends and family have set up a Go Fund Me to help cover his medical expenses and the travel and other expenses of his family while he remains in the hospital in the Bay Area. I encourage you all to help out – especially if you’ve ever played a game and found the AI especially clever.

Dave, you’re in our prayers …

-the Centaur

Pictured: Dave (on the right) and friends.

Just Checking in on the Currents

SO! Hey! GDC and Clockwork Alchemy are over and I’m not dead! (A joke which actually I don’t find that funny given the circumstances, which I’ll dig into in just a moment). Strangely enough, hitting two back-to-back conferences, both of which you participate super heavily in, can take something out of your blog. Who knew?

But I need to get better at blogging, so I thought I’d try something new: a “check-in” in which I try to hit all the same points each time – what am I currently writing, editing, programming, etc? For example, I am currently:

  • Listening To: Tomb Raider soundtrack (the original).
  • Reading: Theoretical Neuroscience (book).
  • Writing: “Death is a Game for the Young”, a novella in the Jeremiah Willstone multiverse.
  • Editing: SPECTRAL IRON, Dakota Frost #4.
  • Reviewing: SHATTERED SKY, Lunar Cycle #2 by David Colby.
  • Researching: Neural Approaches to Universal Subgoaling.
  • Programming: A toy DQN (Deep Q Network) to stretch my knowledge.
  • Drawing: Steampunk girls with goggles.
  • Planning: Camp Nanowrimo for April, ROOT USER, Cinnamon Frost #3.
  • Taking on: Giving up alcohol for Lent.
  • Dragging on: Doing my taxes.
  • Spring Cleaning: The side office.
  • Trying to Ignore: The huge pile of blogposts left over from GDC and CA.
  • Caring For: My cat Lenora, suffering from cancer.
  • Waiting For: My wife Sandi, returning from a business trip.

Whew, that’s a lot, and I don’t even think I got them all. Maybe I won’t try to write all of the same “currents” every time, but it was a useful exercise in “find something to blog about without immediately turning it into a huge project.”

But the biggest “current” in my mind is the person I am currently worried about, my good friend and great Game AI developer Dave Mark. Dave is the founder of the GDC AI Summit … but was struck by a car leaving the last sessions at GDC, and still is in the hospital, seriously injured.

More in a moment.

-the Centaur

Pictured: Butterysmooooth sashimi at Izakaya Ginji in San Mateo from a few days ago, along with my “Currently Reading” book Theoretical Neuroscience open to the Linear Algebra appendix, when I was “Currently Researching” some technical details of the vector notation of quadratic forms by going through stacks and stacks of books, a question which would have been answered more easily if I had started by looking at the entry for quadratic forms in Wolfram’s MathWorld, had I only known at the start of my search that that was the name for math terms like xWx.

Enter Colaboratory (AKA “A Spoonful of the Tracking Soup”)

As an author, I’m interested in how well my books are doing: not only do I want people reading them, I also want to compare what my publisher and booksellers claim about my books with my actual sales. (Also, I want to know how close to retirement I am.)

In the past, I used to read a bunch of web pages on Amazon (and Barnes and Noble too, before they changed their format) and entered them into an Excel spreadsheet called “Writing Popularity” (but just as easily could have been called “Writing Obscurity”, yuk yuk yuk). That was fine when I had one book, but now I have four novels and an anthology out. This could take out half an a hour or more, which I needed for valuable writing time. I needed a better system.

I knew about tools for parsing web pages, like the parsing library Beautiful Soup, but it had been half a decade since I touched that library and I just never had the time to sit down and do it. But, recently, I’ve realized the value of a great force multiplier for exploratory software development (and I don’t mean Stack Exchange): interactive programming notebooks. Pioneered by Mathematica in 1988 and picked up by tools like iPython and its descendent Jupyter, an interactive programming notebook is like a mix of a command line – where you can dynamically enter commands and get answers – and literate programming, where code is written into the documents that document (and produce it). But Mathematica isn’t the best tool for either web parsing or for producing code that will one day become a library – it’s written in the Wolfram Language, which is optimized for mathematical computations – and Jupyter notebooks require setting up a Jupyter server or otherwise jumping through hoops.

Enter Google’s Colaboratory.

Colab is a free service provided by Google that hosts Jupyter notebooks. It’s got most of the standard libraries that you might need, it provides its own backends to run the code, and it saves copies of the notebooks to Google Drive, so you don’t have to worry about acquiring software or running a server or even saving your data (but do please hit save). Because you can try code out and see the results right away, it’s perfect on iterating ideas: no need to re-start a changed program, losing valuable seconds; if something doesn’t work, you can tweak the code and try it right away. In this sense Colab has some of the force multiplier effects of a debugger, but it’s far more powerful. Heck, in this version of the system you can ask a question on Stack Overflow right from the Help menu. How cool is that?

My prototyping session got a bit long, so rather than try to insert it inline here, I wrote this blog post in Colab! To read more, go take a look at the Colaboratory notebook itself, “A Sip of the Tracking Soup”, available at:

-the Centaur


Why I’m Solving Puzzles Right Now

When I was a kid (well, a teenager) I’d read puzzle books for pure enjoyment. I’d gotten started with Martin Gardner’s mathematical recreation books, but the ones I really liked were Raymond Smullyan’s books of logic puzzles. I’d go to Wendy’s on my lunch break at Francis Produce, with a little notepad and a book, and chew my way through a few puzzles. I’ll admit I often skipped ahead if they got too hard, but I did my best most of the time.

I read more of these as an adult, moving back to the Martin Gardner books. But sometime, about twenty-five years ago (when I was in the thick of grad school) my reading needs completely overwhelmed my reading ability. I’d always carried huge stacks of books home from the library, never finishing all of them, frequently paying late fees, but there was one book in particular – The Emotions by Nico Frijda – which I finished but never followed up on.

Over the intervening years, I did finish books, but read most of them scattershot, picking up what I needed for my creative writing or scientific research. Eventually I started using the tiny little notetabs you see in some books to mark the stuff that I’d written, a “levels of processing” trick to ensure that I was mindfully reading what I wrote.

A few years ago, I admitted that wasn’t enough, and consciously  began trying to read ahead of what I needed to for work. I chewed through C++ manuals and planning books and was always rewarded a few months later when I’d already read what I needed to to solve my problems. I began focusing on fewer books in depth, finishing more books than I had in years.

Even that wasn’t enough, and I began – at last – the re-reading project I’d hoped to do with The Emotions. Recently I did that with Dedekind’s Essays on the Theory of Numbers, but now I’m doing it with the Deep Learning. But some of that math is frickin’ beyond where I am now, man. Maybe one day I’ll get it, but sometimes I’ve spent weeks tackling a problem I just couldn’t get.

Enter puzzles. As it turns out, it’s really useful for a scientist to also be a science fiction writer who writes stories about a teenaged mathematical genius! I’ve had to simulate Cinnamon Frost’s staggering intellect for the purpose of writing the Dakota Frost stories, but the further I go, the more I want her to be doing real math. How did I get into math? Puzzles!

So I gave her puzzles. And I decided to return to my old puzzle books, some of the ones I got later but never fully finished, and to give them the deep reading treatment. It’s going much slower than I like – I find myself falling victim to the “rule of threes” (you can do a third of what you want to do, often in three times as much time as you expect) – but then I noticed something interesting.

Some of Smullyan’s books in particular are thinly disguised math books. In some parts, they’re even the same math I have to tackle in my own work. But unlike the other books, these problems are designed to be solved, rather than a reflection of some chunk of reality which may be stubborn; and unlike the other books, these have solutions along with each problem.

So, I’ve been solving puzzles … with careful note of how I have been failing to solve puzzles. I’ve hinted at this before, but understanding how you, personally, usually fail is a powerful technique for debugging your own stuck points. I get sloppy, I drop terms from equations, I misunderstand conditions, I overcomplicate solutions, I grind against problems where I should ask for help, I rabbithole on analytical exploration, and I always underestimate the time it will take for me to make the most basic progress.

Know your weaknesses. Then you can work those weak mental muscles, or work around them to build complementary strengths – the way Richard Feynman would always check over an equation when he was done, looking for those places where he had flipped a sign.

Back to work!

-the Centaur

Pictured: my “stack” at a typical lunch. I’ll usually get to one out of three of the things I bring for myself to do. Never can predict which one though.

Nailed It (Sorta)

Here’s what was in the rabbit hole from last time (I had been almost there):

I had way too much data to exploit, so I started to think about culling it out, using the length of the “mumbers” to cut off all the items too big to care about. That led to the key missing insight: my method of mapping mumbers mapped the first digit of each item to the same position – that is, 9, 90, 900, 9000 all had the same angle, just further out. This distance was already a logarithm of the number, but once I dropped my resistance to taking the logarithm twice…

… then I could create a transition plot function which worked for almost any mumber in the sets of mumbers I was playing with …

Then I could easily visualize the small set of transitions – “mumbers” with 3 digits – that yielded the graph above; for reference these are:

The actual samples I wanted to play with were larger, like this up to 4 digits:

This yields a still visible graph:

And this, while it doesn’t let me visualize the whole space that I wanted, does provide the insight I wanted. The “mumbers” up to 10000 do indeed “produce” most of the space of the smaller “mumbers” (not surprising, as the “mumber” rule 2XYZ produces XYZ, and 52XY produces XYXY … meaning most numbers in the first 10,000 will be produced by one in that first set). But this shows that sequences of 52 rule transitions on the left produce a few very, very large mumbers – probably because 552552 produces 552552552552 which produces 552552552552552552552552552552552552 which quickly zooms away to the “mumberOverflow” value at the top of my chart.

And now the next lesson: finishing up this insight, which more or less closes out what I wanted to explore here, took 45 minutes. I had 15 allotted to do various computer tasks before leaving Aqui, and I’m already 30 minutes over that … which suggests again that you be careful going down rabbit holes; unlike leprechaun trails, there isn’t likely to be a pot of gold down there, and who knows how far down it can go?

-the Centaur

P.S. I am not suggesting this time spent was not worthwhile; I’m just trying to understand the option cost of various different problem solving strategies so I can become more efficient.

Don’t Fall Into Rabbit Holes

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 books, and I find myself debugging the fine details of a visualization system I’ve developed in Mathematica to analyze the distribution of problems in an odd middle chapter of Raymond Smullyan’s The Lady or the Tiger.

I meant well! Really I did. I was going to write a post about how finding a solution is just a little bit harder than you normally think, and how insight sometimes comes after letting things sit.

But the tools I was creating didn’t do what I wanted, so I went deeper and deeper down the rabbit hole trying to visualize them.

The short answer seems to be that there’s no “there” there and that further pursuit of this sub-problem will take me further and further away from the real problem: writing great puzzles!

I learned a lot – about numbers, about how things could combinatorially explode, about Ulam Spirals and how to code them algorithmically. I even learned something about how I, particularly, fail in these cases.

But it didn’t provide the insights I wanted. Feynman warned about this: he called it “the computer disease”, worrying about the formatting of the printout so much you forget about the answer you’re trying to produce, and it can strike anyone in my line of work.

Back to that work.

-the Centaur

The Cats You Save … and the Cats You Make Comfortable

SO RECENTLY I had a very vivid dream in which my veterinarian said to me “There are some cats you save … and some you make comfortable.” I think the context behind that dream is worth a little unpacking, don’t you?

Loki the Loquacious is a cat that we saved. I came home one day to find him yowling and lethargic, sensitive to the touch yet unwilling to move, with a bloated feeling to the touch, and after a brief search online we rushed him to the nearby animal hospital who quickly diagnosed him with a urinary tract blockage, put him on a catheter, and nursed him back to health.

Now, he hates the urinary tract pet food we feed him and the occasional water droppers when he’s not drinking, but unless this outdoor cat gets too adventurous, he’s probably got a long life ahead of him.

Caesar the Conqueror is a cat that we made comfortable. He’d been made frail by a long battle with a thyroid condition when he decided to start peeing inappropriately indoors, so we had to make him an outdoors cat; but we were able to set up a relatively nice outdoor area for him. But then some nasal obstruction began interfering with his breathing, and he ultimately wheezed himself to death.

We kept him comfortable, of course, until he took a rapid turn downhill, and then we had him peacefully put to sleep in my arms.

As for Lenora the Cat … the jury is still out.

She’s a healthy-looking, happy-looking, active cat, and even though she from time to time got pencil-eraser sized moles, and once even a larger lump on a back leg, they were always benign … until a month ago. Then a new mole appeared, and another, and another, until she had dozens of the tiny, not-itchy, not-bleeding, not-discolored bumps all over her body. We took her to the doctor, who found two more walnut-sized lumps in her abdomen; biopsies revealed these to be mast cell tumors (MCT or mastocytoma).

Our doctor’s recommended regimen – a cortisone shot, followed by predisone and possibly other medications – tracks with what I’ve been able to research. Cortisone and similar drugs are recommended, and sometimes even can cure it, especially if it’s on the skin; but prognosis for lumps in the internals are more guarded – and she’s gotten another lump since the biopsy.

So now we’re researching, weighing the options of continuing treatment vs seeing an oncologist now (our vet is of the opinion that we’d have to wait a few weeks for an oncologist to get good readings on bloodwork because of the cortisone shot, but if I was an oncologist I’d want to see that third lump right now). Cats with this condition can last three years with surgery, a year with palliative care … or can die within weeks if it’s serious.

We don’t yet know if Lenora’s a cat we must make comfortable … or that we can save.

Here’s hoping.

-The Centaur