Press "Enter" to skip to content

Posts published in “Uncategorized”

Doppelgangers

centaur 0

20160215_222727.jpg

On two sides of the country, there’s a restaurant named after a city, serving the cuisine known from the region. They’re both high end, they’re both distinctive, and they’re both excellent … but they’re, as far as I know, completely unrelated to each other.

20140630_201006_HDR.jpg

They’re not one of a kind … but they are pretty damn good.

More on what and where they are after the trip is over.

-the Centaur

Oh no, someone’s wrong on the Internet!

centaur 0

20160214_163246.jpg

What I’ve discovered is that even if you definitively know something, that won’t stop someone online from snapping back with stupid, every step of the way. What’s worse, my rule of threes says that in any discussion, one third of their points will be wrong, one third of your points will be wrong, and the middle third will remain an area of durable disagreement.

There’s no cure for online idiots, but, fortunately, your own ignorance is correctable. Get into an argument with someone? Don’t try to get the last word - go look up the truth. (Or do the work to prove it, if it isn’t known). And be satisfied with your own answers.

Because if you found the truth and told them, that particular person isn’t likely to listen anyway.

-the Centaur

Visualizing Cellular Automata

centaur 0


cellular-automata-v1.png

SO, why's an urban fantasy author digging into the guts of Mathematica trying to reverse-engineer how Stephen Wolfram drew the diagrams of cellular automata in his book A New Kind of Science? Well, one of my favorite characters to write about is the precocious teenage weretiger Cinnamon Frost, who at first glance was a dirty little street cat until she blossomed into a mathematical genius when watered with just the right amount of motherly love. My training as a writer was in hard science fiction, so even if I'm writing about implausible fictions like teenage weretigers, I want the things that are real - like the mathematics she develops - to be right. So I'm working on a new kind of math behind the discoveries of my little fictional genius, but I'm not the youngest winner of the Hilbert Prize, so I need tools to help simulate her thought process.

And my thought process relies on visualizations, so I thought, hey, why don't I build on whatever Stephen Wolfram did in his groundbreaking tome A New Kind of Science, which is filled to its horse-choking brim with handsome diagrams of cellular automata, their rules, and the pictures generated by their evolution? After all, it only took him something like ten years to write the book ... how hard could it be?

Deconstructing the Code from A New Kind of Science, Chapter 2

Fortunately Stephen Wolfram provides at least some of the code that he used for creating the diagrams in A New Kind of Science. He's got the code available for download on the book's website, wolframscience.com, but a large subset is in the extensive endnotes for his book (which, densely printed and almost 350 pages long, could probably constitute a book in their own right). I'm going to reproduce that code here, as I assume it's short enough to fall under fair use, and for the half-dozen functions we've got here any attempt to reverse-engineer it would end up just recreating essentially the same functions with slightly different names.
Cellular automata are systems that take patterns and evolve them according to simple rules. The most basic cellular automata operate on lists of bits - strings of cells which can be "on" or "off" or alternately "live" or "dead," "true" and "false," or just "1" and "0" - and it's easiest to show off how they behave if you start with a long string of cells which are "off" with the very center cell being "on," so you can easily see how a single live cell evolves. And Wolfram's first function gives us just that, a list filled with dead cells represented by 0 with a live cell represented by 1 in its very center:

In[1]:= CenterList[n_Integer] := ReplacePart[Table[0, {n}], 1, Ceiling[n/2]]


In[2]:= CenterList[10]
Out[2]= {0, 0, 0, 0, 1, 0, 0, 0, 0, 0}


One could imagine a cellular automata which updated each cell just based on its contents, but that would be really boring as each cell would be effectively independent. So Wolfram looks at what he calls "elementary automata" which update each cell based on their neighbors. Counting the cell itself, that's a row of three cells, and there are eight possible combinations of live and dead neighbors of three elements - and only two possible values that can be set for each new element, live or dead. Wolfram had a brain flash to list the eight possible combinations the same each way every time, so all you have are that list of eight values of "live" or "dead" - or 1's and 0's, and since a list of 1's and 0's is just a binary number, that enabled Wolfram to represent each elementary automata rule as a number:

In[3]:= ElementaryRule[num_Integer] := IntegerDigits[num, 2, 8]

In[4]:= ElementaryRule[30]
Out[4]= {0, 0, 0, 1, 1, 1, 1, 0}


Once you have that number, building code to apply the rule is easy. The input data is already a string of 1's and 0's, so Wolfram's rule for updating a list of cells basically involves shifting ("rotating") the list left and right, adding up the values of these three neighbors according to base 2 notation, and then looking up the value in the rule. Wolfram created Mathematica in part to help him research cellular automata, so the code to do this is deceptively simple…

In[5]:= CAStep[rule_List, a_List] :=
rule[[8 - (RotateLeft[a] + 2 (a + 2 RotateRight[a]))]]


... a “RotateLeft” and a “RotateRight” with some addition and multiplication to get the base 2 index into the rule. The code to apply this again and again to a list to get the history of a cellular automata over time is also simple:

In[6]:= CAEvolveList[rule_, init_List, t_Integer] :=
NestList[CAStep[rule, #] &, init, t]


Now we're ready to create the graphics for the evolution of Wolfram's "rule 30," the very simple rule which shows highly complex and irregular behavior, a discovery which Wolfram calls "the single most surprising scientific discovery [he has] ever made." Wow. Let's spin it up for a whirl and see what we get!

In[7]:= CAGraphics[history_List] :=
Graphics[Raster[1 - Reverse[history]], AspectRatio -> Automatic]


In[8]:= Show[CAGraphics[CAEvolveList[ElementaryRule[30], CenterList[103], 50]]]
Out[8]=

rule-30-evolution.png



Uh - oh. The "Raster" code that Wolfram provides is the code to create the large images of cellular automata, not the sexy graphics that show the detailed evolution of the rules. And reading between the lines of Wolfram's end notes, he started his work in FrameMaker before Mathematica was ready to be his full publishing platform, with a complex build process producing the output - so there's no guarantee that clean simple Mathematica code even exists for some of those early diagrams.

Guess we'll have to create our own.

Visualizing Cellular Automata in the Small

The cellular automata diagrams that Wolfram uses have boxes with thin lines, rather than just a raster image with 1's and 0's represented by borderless boxes. They're particularly appealing because the lines are white between black boxes and black between white boxes, which makes the structures very easy to see. After some digging, I found that, naturally, a Mathematica function to create those box diagrams does exist, and it's called ArrayPlot, with the Mesh option set to True:

In[9]:= ArrayPlot[Table[Mod[i + j, 2], {i, 0, 3}, {j, 0, 3}], Mesh -> True]
Out[9]=

checkerboard.png


While we could just use ArrayPlot, it' s important when developing software to encapsulate our knowledge as much as possible, so we'll create a function CAGridGraphics (following the way Wolfram named his functions) that encapsulates the knowledge of turning the Mesh option to True. If later we decide there's a better representation, we can just update CAMeshGraphics, rather than hunting down every use of ArrayPlot. This function gives us this:

In[10]:= CAMeshGraphics[matrix_List] :=
ArrayPlot[matrix, Mesh -> True, ImageSize -> Large]


In[11]:= CAMeshGraphics[{CenterList[10], CenterList[10]}]
Out[11]=

lines-of-boxes.png


Now, Wolfram has these great diagrams to help visualize cellular automata rules which show the neighbors up top and the output value at bottom, with a space between them. The GraphicsGrid does what we want here, except it by its nature resizes all the graphics to fill each available box. I'm sure there's a clever way to do this, but I don't know Mathematica well enough to find it, so I'm going to go back on what I just said earlier, break out the options on ArrayPlot, and tell the boxes to be the size I want:

In[20]:= CATransitionGraphics[rule_List] :=
GraphicsGrid[
Transpose[{Map[
   ArrayPlot[{#}, Mesh -> True, ImageSize -> {20 Length[#], 20}] &, rule]}]]


That works reasonably well; here' s an example rule, where three live neighbors in a row kills the center cell :

In[21]:= CATransitionGraphics[{{1, 1, 1}, {0}}]
Out[21]=

Screenshot 2016-01-03 14.19.21.png  

Now we need the pattern of digits that Wolfram uses to represent his neighbor patterns. Looking at the diagrams and sfter some digging in the code, it seems like these digits are simply listed in reverse counting order - that is, for 3 cells, we count down from 2^3 - 1 to 0, represented as binary digits.

In[22]:= CANeighborPattern[num_Integer] :=
Table[IntegerDigits[i, 2, num], {i, 2^num - 1, 0, -1}]


In[23]:= CANeighborPattern[3]
Out[23]= {{1, 1, 1}, {1, 1, 0}, {1, 0, 1}, {1, 0, 0}, {0, 1, 1}, {0, 1, 0}, {0, 0,
1}, {0, 0, 0}}


Stay with me - that only gets us the first row of the CATransitionGraphics; to get the next row, we need to apply a rule to that pattern and take the center cell:

In[24]:= CARuleCenterElement[rule_List, pattern_List] :=
CAStep[rule, pattern][[Floor[Length[pattern]/2]]]


In[25]:= CARuleCenterElement[ElementaryRule[30], {0, 1, 0}]
Out[25]= 1


With all this, we can now generate the pattern of 1' s and 0' s that represent the transitions for a single rule:

In[26]:= CARulePattern[rule_List] :=
Map[{#, {CARuleCenterElement[rule, #]}} &, CANeighborPattern[3]]

In[27]:= CARulePattern[ElementaryRule[30]]
Out[27]= {{{1, 1, 1}, {0}}, {{1, 1, 0}, {1}}, {{1, 0, 1}, {0}}, {{1, 0, 0}, {1}}, {{0,
   1, 1}, {0}}, {{0, 1, 0}, {1}}, {{0, 0, 1}, {1}}, {{0, 0, 0}, {0}}}


Now we can turn it into graphics, putting it into another GraphicsGrid, this time with a Frame.

In[28]:= CARuleGraphics[rule_List] :=
GraphicsGrid[{Map[CATransitionGraphics[#] &, CARulePattern[rule]]},
Frame -> All]


In[29]:= CARuleGraphics[ElementaryRule[30]]
Out[29]=

Screenshot 2016-01-03 14.13.52.png

At last! We' ve got the beautiful transition diagrams that Wolfram has in his book. And we want to apply it to a row with a single cell:

In[30]:= CAMeshGraphics[{CenterList[43]}]
Out[30]=

Screenshot 2016-01-03 14.13.59.png

What does that look like? Well, we once again take our CAEvolveList function from before, but rather than formatting it with Raster, we format it with our CAMeshGraphics:

In[31]:= CAMeshGraphics[CAEvolveList[ElementaryRule[30], CenterList[43], 20]]
Out[31]=

Screenshot 2016-01-03 14.14.26.png

And now we' ve got all the parts of the graphics which appear in the initial diagram of this page. Just to work it out a bit further, let’s write a single function to put all the graphics together, and try it out on rule 110, the rule which Wolfram discovered could effectively simulate any possible program, making it effectively a universal computer:

In[22]:= CAApplicationGraphics[rule_Integer, size_Integer] := Column[
{CAMeshGraphics[{CenterList[size]}],
   CARuleGraphics[ElementaryRule[rule]],
   CAMeshGraphics[
CAEvolveList[ElementaryRule[rule], CenterList[size],
   Floor[size/2] - 1]]},
Center]

In[23]:= CAApplicationGraphics[110, 43]
Out[23]=


Screenshot 2016-01-03 14.14.47.png

It doesn' t come out quite the way it did in Photoshop, but we' re getting close. Further learning of the rules of Mathematica graphics will probably help me, but that's neither here nor there. We've got a set of tools for displaying diagrams, which we can craft into what we need.

Which happens to be a non-standard number system unfolding itself into hyperbolic space, God help me.

Wish me luck.

-the Centaur

P.S. While I' m going to do a standard blogpost on this, I' m also going to try creating a Mathematica Computable Document Format (.cdf) for your perusal. Wish me luck again - it's my first one of these things.

P.P.S. I think it' s worthwhile to point out that while the tools I just built help visualize the application of a rule in the small …

In[24]:= CAApplicationGraphics[105, 53]
Out[24]=

Screenshot 2016-01-03 14.14.58.png

... the tools Wolfram built help visualize rules in the very, very large:

In[25]:= Show[CAGraphics[CAEvolveList[ElementaryRule[105], CenterList[10003], 5000]]]

Out[25]=

rule-105-a-lot.png

That's 10,000 times bigger - 100 times bigger in each direction - and Mathematica executes and displays it flawlessly.

Testing a Time Delayed Post

centaur 0

conservancy.jpg \

Will be AFK for much of tomorrow, so I’m going to take a shot at having a post previously written come up automatically. Stay tuned …

-the Centaur

That Damn Wolf

centaur 0

Blog Postings Jan-Feb.png

Welp, while I’ve missed a few days, I have overall kept ahead of the blog wolf. By a hair. My lovely plans to build a buffer have resulted in one backlogged article, which I’ll post tomorrow to keep myself honest (and keep it from becoming stale) and basically no buffer. I’m only ahead because I sometimes post several articles per day, like today.

Sigh. No wonder I’m so stressed out - I make even being a dilettante a chore.

-the Centaur

Gut Punch

centaur 0
inversion.png Welp, that took a nasty turn. The week leading up to my birthday went great: a surprise business trip to Atlanta, a great research talk, a wonderful visit with friends, a nice cake and gift from my teammates on the occasion of my tenth Google anniversary, a great card from my Mom, calls from my Mom and friends, a wonderful birthday dinner with my wife, and then an outpouring of well wishes online - half a dozen via email, and over 70 on Facebook. I was riding high. What a great birthday! A few hours later, I was seriously considering deleting my Facebook account. And this blog. For context, the original title of this post was “worst birthday of my life.” The particulars are, sorry, not your business. But just so you know, no-one involved did anything wrong. It was all a simple series of misunderstandings. And everyone involved managed to fix the problem with a couple of hours of work. But, still, a sequence of simple thank-yous online and the cascading reactions that followed on from that quickly turned a glorious day into a life-changing gut-punch. Facebook itself isn’t the problem, but deleting my Facebook account would help. But as I step back, I now find myself needing to reconsider, well, everything - not just Facebook, but whether I should have an online presence at all, and my involvement with every single job, relationship and project. I know a few other people going through similar things right now - a close friend is rethinking their life, and it’s happened to a few bloggers I follow. I know, rationally, that artists have these impulses, I’ve had them since I was a kid, and it’s just a pointless self-destructive exercise. You feel like the particular events that have happened are the cause, but they’re really not. You’ve entered a mood, or a depression, and while it has a trigger, it’s the emotional state that feels forever. Still, for a moment, I felt like deleting my Facebook account, smashing my computer, and loading the library up into a Dumpster. To give you a scale of the seriousness of the problem, I am actually still thinking about getting a PODS unit and loading up much of the stuff in the library to get it out of the way and putting all my projects on hiatus while we deal with the shattered windows, the damaged floors, and all the other crap going on at the house. Now, while all that other crap is real, I said it the way I just did to exaggerate the problem. That crap has nothing to do with the gut punch, is all ongoing - the shattered window was from a ladder that fell during some work, the damaged floor behind the fridge was a discovery by my wife when she was doing cleaning. But when the gut punch happened, it made me step back and look and everything to ask, "is this working?” So I don’t know what I’m going to do. I might put this blog on hiatus. I might declare a mulligan on some projects. I might rework some habits, make some changes, do things differently. Or I might just draw a breath, take the gut punch, and move on - the way I did in the shower this morning, at which it all hit me again, hard enough to make me draw a breath; then I thought of the Avengers movie, that quote from Bruce Banner, the thing he just said before going green and tearing off to kick ass and take names: “That’s my secret. I’m always angry.” Anger is an alarm, a sign of a problem. And the first thing you do with an alarm is to turn it off. Then deal with the problem. So, this morning, when I felt the gut punch, I drew a breath, straightened up, killed the shower, got dressed, and left for work to go do my fucking job. I had an onsite interview to conduct, I have deep learning techniques to research, I’ve got to reinvent the foundations of mathematics for my latest urban fantasy novel, and I have eighteen more books to write in my main series. Time to get cracking. -the Centaur Pictured: me on my birthday, Photoshopped to illustrate my state of mind when the gut punch arrived.

Okay, now that was a birthday cake …

centaur 0

googleversary.png

Well, I spoke too soon: as a surprise during my team’s offsite yesterday, they gave me a real Googleversary birthday cake. And a gift card to Cafe Romanza, one of my favorite coffeehouses (the other two top faves being Coupa Cafe and Cafe Intermezzo). I don’t think I could have been happier at that moment:

centaurwithcake.png

But I was sure happier today, having a nice dinner with my wife at our mutual favorite restaurant. We could have gone somewhere “special”, but I wanted to go to Aqui, the place that has the best memories of eating for me, not because of all the time I spend there writing, but of all the wonderful conversations I’ve had there with the love of my life, my wife.

der-ring.png

She didn’t let me take a good picture of her, but she certainly got good pictures of me.

20160210_202231(0).jpg

Now off to Facebook - I got over 50 well wishes from people on the occasion of my birthday, so as far as I am concerned the people who think that computers are making us less connected to other people can just go Like themselves. Gotta dash - the longer I spend saying thank you, the longer I put off my birthday spanking. (Actually, I already got that, but it’s the principle of the thing).

-the Centaur

Ten Years, Man!

centaur 0

20160207_013427.jpg

Oh yeah, I almost forgot: I’ve been at Google ten years as of this Saturday. Hooray!

Now, I make it a policy not to mention my employer, with two exceptions: coincidentally, as a consumer, such as my recent article about running Google’s TensorFlow deep learning package on my MacBook Air; and concurrently, as an employee, when my employer’s just announced something I’ve worked on.

I’ve abided by this policy for years, even before my current employer, because you really do have no protection from your employer for anything you write: you can get fired for it. Even if you run your writing past your employer for legal approval, your company could be acquired tomorrow, and the new owners’ legal team could review what you’ve done and decide to fire you for it.

So I don’t talk about my current employer on my blog. I disclose both my writing to my employer when I’m hired, and my plan not to write about them, and then I go blog about my own damn business.

But Google’s been awesome to me for the last ten years, so it deserves an exception. It’s been awesome. Even the stuff that comparatively sucked was better than the average at most jobs I’ve held - and most of it didn’t suck. I get to work with awesome people, on awesome problems, with awesome resources, and have eaten a lot of awesome food while doing it.

So, thanks, Google, for all the awesome.

-the Centaur

Pictured: not my birthday cake, not from Google; just a great slice from Cafe Intermezzo.

Yeah, that Superbowl.

centaur 0

20160207_182027.jpg

A repost here from Facebook … I caught the opening of the Superbowl in a Gordon Biersch waiting for my flight back from Atlanta, and damn, that was patriotic. I shed a tear when Lady Gaga sung the national anthem - straight up, no antics - and then they showed troops watching from Afghanistan, and fighter jets buzzed the stadium. God bless America.

And in case anyone’s wondering, I mean this completely non-ironically. Yes, the Superbowl is the epitome of commercialism, but it need not be crass, and it’s by choice that they’re making it patriotic. I’m not a sports guy, but I love watching football with my family whenever I go home; it gives us something to bond over.

And isn’t that what the Superbowl did for us this Sunday? A third of America watched it, everyone from football jocks to computer nerds. A whole spectrum of people participated in it, from the first Superbowl MVP to Lady Gaga to makers of two minute jingles to troops serving their second tour overseas. They even piped it into the plane, and people cheered and jeered at the outcome.

The Superbowl could just be a game, but it’s an institution that brings America together.

Thanks, guys, for a job well done.

-the Centaur

Zonked

centaur 0

20160206_180120.jpg

Welp, there went a day. I had a lot of plans for this extra day that I had before my flight back, but mysteriously I woke up around 3pm after almost 13 hours of sleep, with my whole body feeling … I dunno … pummeled.

I was a bit mystified, until I remembered what happened at around 5 in the morning: I woke up with a vicious cough, took some NyQuil, and went back to sleep.

Now my nose is clear, and my time is gone. Apparently that NyQuil shit works.

But! As a bonus, I (and now you) get this reflected sunset, which appeared late this afternoon as I was sitting down to get some writing done. Enjoy!

-the Centaur

The Spectacle of the Silver Screen

centaur 0

atthemovies.png

So I’m continuing my adventures at my undisclosed location *cough* Atlanta *cough* and reporting my activities after they happen, as is my habit when off adventuring when I’m not making a public appearance. And one of the things I enjoy doing when on a trip is, after all the work is done, catching a late night movie. Like, at the theater, on a big screen with a comfy seat and a soda, not on your phone.

I was watching the conclusion of The Hunger Games, and I’m glad I did. The first one was OK, but the second one grabbed me in a way that no movie has since The Empire Strikes Back - not that I haven’t seen better movies, like, oh, I dunno, Mad Max: Fury Road or my favorite movie, Kiki’s Delivery Service - but I felt hooked into a series in a way I haven’t felt in a long time.

And the movie delivered something else too: big screen cinema. My buddy Jim Davies has a theory that some kinds of stories are best suited for some kinds of media, and I agree. Robert Frost’s “The Road Not Taken” would not work as a miniseries; it relies on the quick sharp punch of poetic language. Babylon 5, with its A and B endings and epic space battles would only work as series TV. The Martian movie was great, but it lacks the electric punch of that crackling opening and the games it plays with text: “Chapter 1: Log Entry SOL 6: I’m pretty much f*****.”

Each kind of medium emphasizes different elements - pure audio in radio plays; pure text in novels; an actor’s expressions in theater - and even within the medium of moving pictures, some are better suited to some stories than others. Animation emphasizes the impossible with the tools of graphic design, for example; while It’s possible to make a live action movie of Kiki’s Delivery Service - they did - but they had to work enormously hard to create the imagery that the animation made effortless, and it still doesn’t quite have the same resonance. Even within a particular type of movie, the type of imagery has its own demands. Some images work at any size, others are best left as animated gifs or vines to be played on your phone … and some demand the big screen.

Movies are about spectacle; about imagery that can fill an entire theater. And, in one spectacular moment in The Hunger Games: Mockingjay Part 2, in which an enormous tidal wave of oil fills the whole screen and roars down upon our heroes, my breath was briefly taken away — followed by the thought: yes, this should appear on the silver screen.

Movies have more value - in particular, having a shared experience with unchosen strangers, but more importantly, a shared narrative experience that builds a common bond - but it was a late-night show of an end-of-run movie, and the only people in the theater were a bunch of yapping effers in the back row, so that one bit was a bit spoiled for me.

But for one brief moment - actually, for many moments - I felt movie magic through the spectacle of the silver screen.

Totally worth it.

-the Centaur

The Spectacle of the Silver Screen

centaur 0

atthemovies.png

So I’m continuing my adventures at my undisclosed location *cough* Atlanta *cough* and reporting my activities after they happen, as is my habit when off adventuring when I’m not making a public appearance. And one of the things I enjoy doing when on a trip is, after all the work is done, catching a late night movie. Like, at the theater, on a big screen with a comfy seat and a soda, not on your phone.

I was watching the conclusion of The Hunger Games, and I’m glad I did. The first one was OK, but the second one grabbed me in a way that no movie has since The Empire Strikes Back - not that I haven’t seen better movies, like, oh, I dunno, Mad Max: Fury Road or my favorite movie, Kiki’s Delivery Service - but I felt hooked into a series in a way I haven’t felt in a long time.

And the movie delivered something else too: big screen cinema. My buddy Jim Davies has a theory that some kinds of stories are best suited for some kinds of media, and I agree. Robert Frost’s “The Road Not Taken” would not work as a miniseries; it relies on the quick sharp punch of poetic language. Babylon 5, with its A and B endings and epic space battles would only work as series TV. The Martian movie was great, but it lacks the electric punch of that crackling opening “Chapter 1: Log Entry SOL 6: I’m pretty much f*****.” It’s possible to make a live action movie of Kiki’s Delivery Service - they did - but they had to work enormously hard to create the imagery that the animation made effortless, and it still doesn’t quite have the same resonance. Some images work at any size, others are best left as animated gifs or vines to be played on your phone … and some demand the big screen.

Movies are about spectacle; about imagery that can fill an entire theater. And, in one spectacular moment in The Hunger Games: Mockingjay Part 2, in which an enormous tidal wave of oil fills the whole screen and roars down upon our heroes, my breath was briefly taken away — followed by the thought: yes, this should appear on the silver screen.

Movies have more value - in particular, having a shared experience with unchosen strangers, but more importantly, a shared narrative experience that builds a common bond - but it was a late-night show of an end-of-run movie, and the only people in the theater were a bunch of yapping effers in the back row, so that one bit was a bit spoiled for me.

But for one brief moment - actually, for many moments - I felt movie magic through the spectacle of the silver screen.

Totally worth it.

-the Centaur

The Spectacle of the Silver Screen

centaur 0

atthemovies.png

So I’m continuing my adventures at my undisclosed location *cough* Atlanta *cough* and reporting my activities after they happen, as is my habit when off adventuring when I’m not making a public appearance. And one of the things I enjoy doing when on a trip is, after all the work is done, catching a late night movie. Like, at the theater, on a big screen with a comfy seat and a soda, not on your phone.

I was watching the conclusion of The Hunger Games, and I’m glad I did. The first one was OK, but the second one grabbed me in a way that no movie has since The Empire Strikes Back - not that I haven’t seen better movies, like, oh, I dunno, Mad Max: Fury Road or my favorite movie, Kiki’s Delivery Service - but I felt hooked into a series in a way I haven’t felt in a long time.

And the movie delivered something else too: big screen cinema. My buddy Jim Davies has a theory that some kinds of stories are best suited for some kinds of media, and I agree. Robert Frost’s “The Road Not Taken” would not work as a miniseries; it relies on the quick sharp punch of poetic language. Babylon 5, with its A and B endings and epic space battles would only work as series TV. The Martian movie was great, but it lacks the electric punch of that crackling opening “Chapter 1: Log Entry SOL 6: I’m pretty much f*****.” It’s possible to make a live action movie of Kiki’s Delivery Service - they did - but they had to work enormously hard to create the imagery that the animation made effortless, and it still doesn’t quite have the same resonance. Some images work at any size, others are best left as animated gifs or vines to be played on your phone … and some demand the big screen.

Movies are about spectacle; about imagery that can fill an entire theater. And, in one spectacular moment in The Hunger Games: Mockingjay Part 2, in which an enormous tidal wave of oil fills the whole screen and roars down upon our heroes, my breath was briefly taken away — followed by the thought: yes, this should appear on the silver screen.

Movies have more values - in particular, having a shared experience with unchosen strangers, but more importantly, a shared narrative experience that builds a common bond - but it was a late-night show of an end-of-run movie, and the only people in the theaters were a bunch of yapping effers in the back row, so that one bit was a bit spoiled for me.

But for one brief moment - actually, for many moments - I felt movie magic through the spectacle of the silver screen.

Totally worth it.

-the Centaur

Back in Business

centaur 0

20160204_085226.jpg

We are back in business. Apparently it was a temporary database glitch. Time to make sure my backups are up to date. Meanwhile, since I’m waiting to find out where my next meeting is, enjoy a picture of a coffeehouse that I am totally not at right now.

-the Centaur

Weeeird…

centaur 0


dresandown.png

… the Library of Dresan is letting me add posts, but all other operations are squirrelly. Stand by.

-the Centaur

Respite

centaur 0

20160204_110216.jpg

So me and my wife are super cool about most of the things we do - I get home late, she stays up later, I travel for conferences, she travels for work, no matter what’s going on, we get along. But one of the rules we’ve established is to not discuss our travel plans in public until after they happen, unless it’s for a public appearance.

One of the reasons is that she’s an artist, and I’m an author, and sometimes the things that we create can irritate people, and if you publicize your schedule it opens you up to attack. So she’s asked me not to publicize our location or our travel plans. That won’t stop Goldfinger, of course, but it makes it less easy for a determined whacko.

So, I’m … somewhere, to give a company talk, but it’s not a public talk, so consider it an undisclosed location. And I took the red-eye, as is my habit for crossing country, because I hate losing a day. Prior to my talk, I’d lined up a whole day full of meetings with people so I could use this time productively … but as of this morning, all have canceled or failed to respond.

I’ve no worries: if my meetings are all canceled, I’ve got a giant stack of papers to read for a brand new project at work, so I’m covered. But I don’t want to drive away from the meeting site in case my last meetings go through. So I’m nearby, in a coffeehouse, chilling out, waiting to either hear back on my meetings or to get the good news that my hotel has a room ready for me to check in.

And you know what? It’s nice to have a respite, a little time to chill. For someone who juggles a job, writing, a small press, and comic book work, it’s easy to get overwhelmed.

A few minutes to chill is a good thing.

-the Centaur

Uh … What the?

centaur 0

uh-what-the.png

So, as you may or may not know, I’m trying to blog every day this year, and just now, taking a brief respite after my red-eye flight, I decided to extend my tracking spreadsheet from just January to cover February. And when I did so … my tracking graphic suddenly turned into … I don’t know … an origami Pac-Man?

I’m not even sure how this particular chart type could make the above graphic, so I’m not sure how to fix it. This probably should get filed under “if you break the assumptions of a piece of software’s inputs, it will break your assumptions about its outputs.” Best thing to do is probably start over with a new graphic.

-the Centaur

Money From Heaven

centaur 0

20160131_134234.jpg

I like to pick up coins when I see them, but this is getting ridiculous. Recently I’ve netted 50 cents from money falling from heaven. Today’s find was weird: a quarter in the middle of my brand new copy of Principia Mathematica, Volume 1, which I’m reading as part of my quixotic quest to reinvent number theory for a young adult novel. :-P

Shipped from Amazon. Apparently a reprint (there are handwritten notes in my text which are apparently copied from whatever they used for camera-ready copy for this one). But with a quarter in it, stuck in the beginning of Chapter 3. It survived shipping, survived me carrying it around for a while … how?

The other one was weirder. A couple of months ago, I stepped out of the shower and pulled on a towel. I turned around, and a shinggg sounded, followed by the unmistakable sound of a coin falling to the floor. I looked around and found a quarter, which apparently fell from roughly where the bathrobes hang.

Only … we rarely use the bathrobes. There are no holes in the bathrobe pockets. The quarter fell, like from the air.

Now this is totally possible. We forgot and put a quarter in a bathrobe pocket, and I jostled it. The quarter got stuck in a knot. The quarter wasn’t on the bathrobe at all, and was stuck to the towel. The quarter was on the bathroom windowsill and I knocked it off. Et cetera. Et cetera. There are a thousand “rational” possibilities.

But it was still damn unusual.

Now I have 50 cents. That and four bucks will get me a Starbucks. Until the rest of my grande mocha Frappucinio falls from heaven, I gotta ask: who’s trying to tell me something, and what?

-the Centaur

Nanowrimo Triples Your Productivity

centaur 0

NanoVsNot.png

So I’ve got enough data now - two months - and it shows my productivity in non-Nano months is about one third of the Nano goal. Because December and January are 31 day months, by now I should have produced a notch over 100,000 words if this was National Novel Writing Month … but instead I’ve produced a notch under 30,000.

The picture is a bit muddled since my productivity in successful Nano months is slightly higher than 50,000 words, and my productivity this month is slightly higher since I’m not counting some writing (some edits to stories, plus all the nonfiction writing I do at work). But it shows the social effect.

Nano triples your productivity.

-the Centaur

Haha!

centaur 0

Haha.png

I have completed 31 blogposts for January! (Not even counting this one!) I’m on schedule for my “blog once a day” New Year’s Resolution! Huzzah!

Now only 335 posts to go. Sigh.

-the Centaur