Press "Enter" to skip to content

Posts tagged as “We Call It Living”

Moving on and turning back

centaur 0

movingon.png

Well, DOORWAYS TO EXTRA TIME is on its way to the printers. Now it's time for me to move on to new projects, and to turn back to old ones. I'm still planning out a large new unannounced project (some of the information for which you see piled above) but my primary focus is going to be LIQUID FIRE.

DOORWAYS in Galleys

centaur 0

doorways galleys

DOORWAYS TO EXTRA TIME is coming down to the wire. My coeditor, the typesetter and I are working weekends, but we're really close now - still, it looks like it will be coming out the 27th, not the 13th. I'm not sure what this does for our plans to do a premiere at Dragon*Con; we'll have to see, as it was cutting it fine regardless even with the old date.

Editing an anthology is a LOT more work than I thought it would be, but it's still very rewarding.

Almost done! Then back to LIQUID FIRE.

-the Centaur

Happy Freedom Day

centaur 0

fireworks at the end of the street

Recently, I had a potentially bad interaction with a powerful person. I didn't lose my head in the encounter, and I didn't lose my head as the result of the encounter. What's even better, both of us were in the encounter because we wanted to be: neither of us were trapped by vassalage or nobility. Both of us were free to walk away at any time. So ultimately I did the right thing in that situation, and ultimately they made the right decision required by the situation and we both walked away winners.

That's the kind of thing that can happen when people are free.

So yesterday, while our cats were hiding under the bed because of the rumblings echoing through the valley, my wife and I paused our preparation of our holiday dinner and went outside to watch the fireworks sparking at the end of the street … beyond the end of the street … and in all directions around us that we could hear or see.

Fourth of July is an American celebration, and yes, technically it's a celebration of our independence from England, but the idea behind the celebration is far more important than that history. We're celebrating freedom: the right for each individual to do what they want with their lives as long as they're not directly harming anyone else.

And that's an idea which belongs to everyone in the world.

It may be a long time before freedom is implemented for everyone in practice, equitably, with sensitivity to each culture's unique sensibilities. It's tricky, because many people in this world think that they have the right to control others, or think that they're being actually harmed when someone else's choices simply make them feel uncomfortable. We have a lot of work to do.

But we knew all that. The Fourth isn't a time to mourn for victories not yet achieved; it's a time to celebrate, and cherish, the victories we have in hand. So hugged, and smiled, and watched the fireworks, and then went inside and called our neighbors to make sure they'd left their garage door open on purpose (they had; they were also watching the fireworks, just up the street). Then we had tabbouleh and vegan crab cakes and watched a Doctor Who story about haunted houses, time travel and love.

It was a good day to be free.

-the Centaur

My Labors Are Not Ended

centaur 0

lenora at rest in the library

But I am going to take a rest for a bit.

Above you see a shot of my cat Lenora resting in front of the "To Read Science Fiction" section of my Library, the enormous book collection I've been accumulating over the last quarter century. I have books older than that, of course, but they're stored in my mother's house in my hometown. It's only over the last 25 years or so have I been accumulating my own personal library.

But why am I, if not resting, at least thinking about it? I finished organizing the books in my Library.

lenora at rest in the library 2

I have an enormous amount of papers, bills, bric a brac and other memorabilia still to organize, file, trash or donate, but the Library itself is organized, at last. It's even possible to use it.

How organized? Well...

Religion, politics, economics, the environment, women's studies, Ayn Rand, read books, Lovecraft, centaur books, read urban fantasy, read science fiction, Atlanta, read comics, to-read comics, to-read science fiction magazines, comic reference books, drawing reference books, steampunk, urban fantasy, miscellaneous writing projects, Dakota Frost, books to donate, science fiction to-reads: Asimov, Clarke, Banks, Cherryh, miscellaneous, other fiction to-reads, non-fiction to-reads, general art books, genre art books, BDSM and fetish magazines and art books, fetish and sexuality theory and culture, military, war, law, space travel, astronomy, popular science, physics of time travel, Einstein, quantum mechanics, Feynman, more physics, mathematics, philosophy, martial arts, health, nutrition, home care, ancient computer manuals, more recent computer manuals, popular computer books, the practice of computer programming, programming language theory, ancient computer languages, Web languages, Perl, Java, C and C++, Lisp, APL, the Art of Computer Programming, popular cognitive science, Schankian cognitive science, animal cognition, animal biology, consciousness, dreaming, sleep, emotion, personality, cognitive science theory, brain theory, brain philosophy, evolution, human evolution, cognitive evolution, brain cognition, memory, "Readings in …" various AI and cogsci disciplines, oversized AI and science books, conference proceedings, technical reports, game AI, game development, robotics, imagery, vision, information retrieval, natural language processing, linguistics, popular AI, theory of AI, programming AI, AI textbooks, AI notes from recent projects, notes from college from undergraduate through my thesis, more Dakota Frost, GURPS, other roleplaying games, Magic the Gathering, Dungeons and Dragons, more Dakota Frost, recent projects, literary theory of Asimov and Clarke, literary theory of science fiction, science fiction shows and TV, writing science fiction, mythology, travel, writing science, writing reference, writers on writing, writing markets, poetry, improv, voice acting, film, writing film, history of literature, representative examples, oversized reference, history, anthropology, dictionaries, thesauri, topical dictionaries, language dictionaries, language learning, Japanese, culture of Japan, recent project papers, comic archives, older project papers, tubs containing things to file … and the single volume version of the Oxford English Dictionary, complete with magnifying glass.

lenora at rest in the library 2

I deliberately left out the details of many categories and outright omitted a few others not stored in the library proper, like my cookbooks, my display shelves of Arkham House editions, Harry Potter and other hardbacks, my "favorite" nonfiction books, some spot reading materials, a stash of transhumanist science fiction, all the technical books I keep in the shelf next to me at work … and, of course, my wife and I's enormous collection of audiobooks.

What's really interesting about all that to me is there are far more categories out there in the world not in my Library than there are in my Library. Try it sometime - go into a bookstore or library, or peruse the list of categories in the Library of Congress or Dewey Decimal System Classifications. There's far more things to think about than even I, a borderline hoarder with a generous income and enormous knowledge of bookstores, have been able to accumulate in a quarter century.

Makes you think, doesn't it?

-the Centaur

Everyone’s fooling people by taking their laptops to coffee shops, and here I am just editing anthologies

centaur 0

john scalzi in motion

So this is me, with my laptop, in a coffee shop, editing the science fiction anthology DOORWAYS TO EXTRA TIME, listening to an author reading by John Scalzi, author of YOU'RE NOT FOOLING ANYONE WHEN YOU TAKE YOUR LAPTOP TO A COFFEE SHOP.

I read Scalzi's blog Whatever and was pleased to hear he was coming to my favorite bookstore / coffeeshop combination, Books Inc. in Mountain View and the attached Cafe Romanza. It's right up the street from my work, so I dropped in to the coffee house, got a copy of REDSHIRTS for signing (never having read his fiction, it seemed a good place to start since the book he's promoting is a sequel), got coffee, got permission from the staff to set my laptop up at a small table above the signing, and camped out.

I edited. Friends dropped by. We chatted. The room filled, and then Scalzi showed up...

20130516_185944-MOTION(1).gif

...and he's even more entertaining in person than he is on his blog. He read from his latest novel THE HUMAN DIVISION, a little side tale about aliens and churros (I've never had any, but they're kind of like Spanish doughnuts, apparently), and from his blog the hilarious and insightful post "Who Gets to Be a Geek? Anyone Who Wants to Be."

When it got to Q&A, I didn't ask any questions: everyone asked all my questions for me. It turns out Tor approached him about serializing his books, and THE HUMAN DIVISION came out of that conversation. I'm jealous; I and my publisher are still negotiating how to serialize THE CLOCKWORK TIME MACHINE, which I wrote with the design for it to be serialized.

After the talk, I waited for the line to die down before getting REDSHIRTS signed. Scalzi and I talked about the irony of me editing my anthology on my laptop in a coffeeshop while the author of YOU'RE NOT FOOLING ANYONE WHEN YOU TAKE YOUR LAPTOP TO A COFFEESHOP was reading, and he pointed out that there's two types of people who take their laptops to coffeeshops: those who go to write, and those who go to be seen.

He asked about the anthology, and I told him about DOORWAYS TO EXTRA TIME: an anthology that asks the question what would you do if you really could get an extra hour in the day. Oddly enough, Scalzi had the same answer about what he'd do with that hour as one of my barista friends in the coffeeshop: both said they'd use the extra hour to catch up on sleep.

I think John Scalzi and that barista must be two of the smartest people in the world.

-the Centaur

P.S. What's this, Google+? You can animate several pictures taken together, even when I didn't tell you to in advance? Really? We're not living on the moon, but we are living in the future. That's awesome. UPDATE: Apparently it only works by default on Google+, as I don't see it on my blog that way. Still, the downloaded image has all the frames, so I could fix it up in Photoshop real quickly if I wanted to. Still the future. UPDATE UPDATE: May be a Ecto upload issue. Will fix later. Regardless, future. UPDATE UPDATE UPDATE: I managed to manually upload it, but it took a little squeezing in Photoshop to make the image manageable.

And Now I Know Why He Hates the Sound of the Rain

centaur 0
gabbaislarge.png Readers of this blog know I'm a cat lover, and the favorite of our cats is Gabby, a loquacious gold cat that followed us home as a kitten and now is a fifteen pound fur monster. One of his quirks is to follow you into the bathroom when you take a shower, and then to meow plaintively during the whole time you're running the water. If you peek out of the shower at him, Gabby has what can only be described as an expression of concern on his furry little face, meowing harder. When you get out of the shower, he stands up and reaches for you with his paws. This behavior was mysterious until I had a brain flash the other day: we got Gabby when he followed us home … after two weeks of heavy rain. Clearly he'd been cared for, as he knew people very well --- but we could never find his original owners. Then it all clicked: he lost his family in the rain … and doesn't like the sound of the shower because he's afraid he'll lose us too. Don't worry, Gabby. We have no plans to leave you. -the Centaur Pictured: Gabby and me, standing in front of my wife's art. Update: well, this isn't really an update, I'm just testing a Facebook integration feature.

The DOORWAY, on its way…

centaur 0

anotherdoorway.png

The completed manuscript to DOORWAYS TO EXTRA TIME is on its way to the copyeditors. This project, designed to explore extra time, is now on its way to take someone else's time, vampirelike, while I return to editing my novels. Please do not send me any more side projects right now, unless they are super good ones. That is all.

-the Centaur

Pictured: what's your doorway? A salsa of scenes near Monterey.

Xeriscape, Continued

centaur 0

20130420_141139.jpg

Our ground cover, in bloom. This is xeriscaping: landscaping which requires little to no water.

20130413_130332.jpg

These pictures are from our front porch, shaded by landscaping planted by the previous owners. These plants, too, require little to no water: loquats and palm bushes and a few other plants I'm not familiar with. The overhanging branches create a sense of seclusion, which makes these shots pleasing; something I learned from my buddy Jim Davies's forthcoming book.

20130413_130432.jpg

It's not a zero water system: we had to water the trees that we planted, and you can see a hose where we drip water occasionally on the sick olive tree out front. But the amount of water that we use for this succulent-covered yard is trivial compared to what, for example, my parents did in their large green grassy half acre - and when it's in bloom, it's far more beautiful.

20130413_130402.jpg

The back isn't quite finished, but we've got low-water ivy, and even the cats approve…

20130421_174241.jpg

-the Centaur

Pictured: a lot of landscaping, done primarily by my wife, Sandi Billingsley.

A Dragon Passes

centaur 0

gkhayes.png

Gary Kim Hayes, a wonderful fixture of the writing track at Dragon*Con, passed away recently at the age of 61. I didn't know him well, but thanks to my friend Nancy Knight, I was on a few panels with him at Dragon*Con and of course got to see him in many more panels. Most notably, he moderated the fun and popular "How to Write a Story in an Hour" panels.

We talked a few times. I was just starting to get to know him. I was looking forward to seeing him at the next Dragon*Con.

And now he's gone.

He'll be missed.

-the Centaur

Pictured: Gary Hayes, edited slightly from his bio picture to symbolize his passing.

Your Adopted Cat Picture of the Day

centaur 1

gabba_is_large.png

We've had Gabby a lot longer than Loki, but you can see from the size of this little fur monster why we think he and Loki might be cousins or brothers.

himsle sez loki

In case you're wondering, Gabby is indeed enjoying this, and is not simply a large cat shaped rug that we've procured for the purpose of the photo. Note the movement of the tail.


gabbanotsmall.png

Just distracting myself from LIQUID FIRE. Back to it. That is all.

-the Centaur

Pictured: Gabby, Loki, and Gabby. And some guy.

Treat Problems as Opportunities

centaur 0

Treat Problems v1.png

Recently I had a setback. Doesn't matter what on; setbacks happen. Sometimes they're on things outside your control: if a meteor smacks the Earth and the tidal wave is on its way to you, well, you're out of luck buddy.

But sometimes it only seems like a tidal wave about to wipe out all life. Suppose your party has lost the election. Your vote didn't stop it. You feel powerless - but you're not. You can vote. You can argue. You can volunteer. Even run for office yourself.

Even then, it might be a thirty year project to get yourself or people you like elected President - but most problems aren't trying to change the leader of the free world. The reality is, most of the things that do happen to us are things we can partially control.

So the setback happens. I got upset, thinking about this misfortune. I try to look closely at situations and to honestly blame myself for everything that went wrong. By honestly blame, I mean to look for my mistakes, but not exaggerate their impact.

In this case, at first, I thought I saw many things I did wrong, but the more I looked, the more I realized that most of what I did was right, and only a few of them were wrong, and they didn't account for all the bad things that had happened beyond my control.

Then I realized: what if I treated those bad things as actual problems?

A disaster is something bad that happens. A problem is a situation that can be fixed. A situation that has a solution. At work, and in writing, I'm constantly trying to come up with solutions to problems, solutions which sometimes must be very creative.

"Treat setbacks as problems," I thought. "Don't complain about them (ok, maybe do) but think about how you can fix them." Of course, sometimes the specific problems are unfixable: the code failed in production, the story was badly reviewed. Too late.

That's when the second idea comes in: what if you treated problems as opportunities to better your skills?

An opportunity is a situation you can build on. At work, and in writing, I try to develop better and better skills to solve problems, be it in prose, code, organization, or self-management. And once you know a problem can happen, you can build skills to fix it.

So I came up with a few mantras: "Take Problems as Opportunities" and "Accept Setbacks as Problems" were a couple of them that I wrote down (and don't have the others on me). But I was so inspired I put together a little inspirational poster.

I don't yet know how to turn this setback into a triumph. But I do know what kinds of problems caused it, and those are all opportunities for me to learn new skills to try to keep this setback from happening again. Time to get to it.

-Anthony

Pictured: me on a ridge of rock, under my very own motivational poster.

P.S. Now that I've posted this, I see I'm not the first to come up with this phrase. Great minds think alike!

Happy Easter

centaur 0

happyeasterspast.png

He is risen. Let us rejoice and be glad in this. Take this time to find your families and renew your bonds of love.

-the Centaur

Pictured: me, Dad, and blurry at the edge of the picture, Mom … all a long time ago.

The Centaur’s Guide to the Game Developers Conference

centaur 1

gdc2013logo.png

Once again it’s time for GDC, the Game Developers Conference. This annual kickstart to my computational creativity is held in the Moscone Center in San Francisco, CA and attracts roughly twenty thousand developers from all over the world.

I’m interested primarily in artificial intelligence for computer games– “Game AI” – and in the past few years they’ve had an AI Summit where game AI programmers can get together to hear neat talks about progress in the field.

Coming from an Academic AI background, what I like about Game AI is that it can’t not work. The AI for a game must work, come hell or high water. It doesn’t need to be principled. It doesn’t need to be real. It can be a random number generator. But it needs to appear to work—it has to affect gameplay, and users have to notice it.

gdc2013aisummit.png

That having been said, there are an enormous number of things getting standard in game artificial intelligence – agents and their properties, actions and decision algorithms, pathfinding and visibility, multiple agent interactions, animation and intent communication, and so forth – and they’re getting better all the time.

I know this is what I’m interested in, so I go to the AI Summit on Monday and Tuesday, some subset of the AI Roundtables, other programming, animation, and tooling talks, and if I can make it, the AI Programmer’s Dinner on Friday night. But if game AI isn’t your bag, what should you do? What should you see?

gdc2013people.png

If you haven’t been before, GDC can be overwhelming. Obviously, try to go to talks that you like, but how do you navigate this enormous complex in downtown San Francisco? I’ve blogged about this before, but it’s worth a refresher. Here are a few tips that I’ve found improve my experience.

Get your stuff done before you arrive. There is a LOT to see at GDC, and every year it seems that a last minute videoconference bleeds over into some talk that I want to see, or some programming task bumps the timeslot I set aside for a blogpost, or a writing task that does the same. Try to get this stuff done before you arrive.

Build a schedule before the conference. You’ll change your mind the day of, but GDC has a great schedule builder that lets you quickly and easily find candidate talks. Use it, email yourself a copy, print one out, save a PDF, whatever. It will help you know where you need to go.

Get a nearby hotel. The 5th and Minna Garage near GDC is very convenient, but driving there, even just in the City, is a pain. GDC hotels are done several months in advance, but if you hunt on Expedia or your favorite aggregator you might find something. Read the reviews carefully and doublecheck with Yelp so you don’t get bedbugs or mugged.

Check in the day before. Stuff starts really early, so if you want to get to early talks, don’t even bother to fly in the same day. I know this seems obvious, but this isn’t a conference that starts at 5pm on the first day with a reception. The first content-filled talks start at 10am on Monday. Challenge mode: you can check in Sunday if you arrive early enough.

mozcafe.png

Leave early, find breakfast. Some people don’t care about food, and there’s snacks onsite. Grab a crossaint and cola, or banana and coffee, or whatever. But if you power-up via a good hot breakfast, there are a number of great places to eat nearby – the splendiferous Mo’z Café and the greasy spoon Mel’s leap to mind, but hey, Yelp. A sea of GDC people will be there, and you’ll have the opportunity to network, peoplewatch, and go through your schedule again, even if you don’t find someone to strike up a conversation with.

Ask people who’ve been before what they recommend. This post got started when I left early, got breakfast at Mo’z, and then let some random dude sit down on the table opposite me because the place was too crowded. He didn’t want to disturb my reading, but we talked anyway, and he admitted: “I’ve never been before? What do I do?” Well, I gave him some advice … and then packaged it up into this blogpost. (And this one.)

Network, network, network. Bring business cards. (I am so bad at this!) Take business cards. Introduce yourself to people (but don’t be pushy). Ask what they’re up to. Even if you are looking for a job, you’re not looking for a job: you want people to get to know you first before you stick your hand out. Even if you’re not really looking for a job, you are really looking for a job, three, five or ten years later. I got hired into the Search Engine that Starts with a G from GDC … and I wasn’t even looking.

Learn, learn, learn. Find talks that look like they may answer questions related to problems that you have in your job. Find talks that look directly related to your job. Find talks that look vaguely related to your job. Comb the Expo floor looking for booths that have information even remotely related to your job. Scour the GDC Bookstore for books on anything interesting – but while you’re here: learn, learn, learn.

gdc2013expofloor.png

Leave early if you want lunch or dinner. If you don’t care about a quiet lunch, or you’ve got a group of friends you want to hang with, or colleagues you need to meet with, or have found some people you want to talk to, go with the flow, and feel comfortable using your 30 minute wait to network. But if you’re a harried, slightly antisocial writer with not enough hours in the day needing to work on his or her writing projects aaa aaa they’re chasing me, then leave about 10 minutes before the lunch or dinner rush to find dinner. Nearby places just off the beaten path like the enormous Chevy’s or the slightly farther ’wichcraft are your friends.

Find groups or parties or events to go to. I usually have an already booked schedule, but there are many evening parties. Roundtables break up with people heading to lunch or dinner. There may be guilds or groups or clubs or societies relating to your particular area; find them, and find out where they meet or dine or party or booze. And then network.

gdc2013roundtables.png

Hit Roundtables in person; hit the GDC Vault for conflicts. There are too many talks to go. Really. You’ll have to make sacrifices. Postmortems on classic games are great talks to go to, but pro tip: the GDC Roundtables, where seasoned pros jam with novices trying to answer their questions, are not generally recorded. All other talks usually end up on the GDC Vault, a collection of online recordings of all past sessions, which is expensive unless you…

Get an All Access Pass. Yes, it is expensive. Maybe your company will pay for it; maybe it won’t. But if you really are interested in game development, it’s totally worth it. Bonus: if you come back from year to year, you can get an Alumni discount if you order early. Double bonus: it comes with a GDC Vault subscription.

gdc2013chevys.png

Don’t Commit to Every Talk. There are too many talks to go to. Really. You’ll have to make sacrifices. Make sure you hit the Expo floor. Make sure you meet with friends. Make sure you make an effort to find some friends. Make time to see some of San Francisco. Don’t wear yourself out: go to as much as you can, then soak the rest of it in. Give yourself a breather. Give yourself an extra ten minutes between talks. Heck, leave a talk if you have to if it isn’t panning out, and find a more interesting one.

Get out of your comfort zone. If you’re a programmer, go to a design talk. If you’re a designer, go to a programming talk. Both of you could probably benefit from sitting in on an audio or animation talk, or to get more details about production. What did I say about learn, learn, learn?

Most importantly, have fun. Games are about fun. Producing them can be hard work, but GDC should not feel like work. It should feel like a grand adventure, where you explore parts of the game development experience you haven’t before, an experience of discovery where you recharge your batteries, reconnect with your field, and return home eager to start coding games once again.

-the Centaur

Pictured: The GDC North Hall staircase, with the mammoth holographic projected GDC logo hovering over it. Note: there is no mammoth holographic projected logo. After that, breakfast at Mo'z, the Expo floor, the Roundtables, and lunch at Chevy's.

Back to the Future with the Old Reader

centaur 0

theoldreader.png

As I mentioned in a previous post, Google Reader is going away. If you don't use RSS feeds, this service may be mystifying to you, but think of it this way: imagine, instead of getting a bunch of Facebook, Google+ or Twitter randomized micro-posts, you could get a steady stream of high-quality articles just from the people you like and admire? Yeah. RSS. It's like that.

So anyway, the Reader shutdown. I have a lot of thoughts about that, as do many other people, but the first one is: what the heck do I do? I use Reader on average about seven times a day. I'm certainly not going to hope Google change their minds, and even if they do, my trust is gone. Fortunately, there are a number of alternatives, which people have blogged about here and here.

The one I want to report on today is The Old Reader, the first one I tried. AWESOME. In more detail, this is what I found:

  • It has most, though not all, features of Google Reader. It's got creaky corners that sometimes make it look like features are broken, but as I've dug into it, almost everything is there and works pretty great.
  • It was able to import all my feeds I exported via Google Takeout. Their servers are pretty slow, so it actually took a few days, and they did it two passes. But they sent me an email when it was done, and they got everything.
  • The team is insanely responsive. They're just three guys - but when I found a problem with the Add Subscription button, they fixed it in just a couple of days. Amazing. More responsive than other companies I know.

There are drawbacks, most notably: they don't yet have an equivalent for Google Takeout's OPML export. But, they are only three guys. They just started taking money, which is a good sign that they might stay around. Here's hoping they are able to build a business on this, and that they have the same commitment to openness that Google had.

I plan to try other feed readers, as I can't be trapped into one product as I was before, but kudos to The Old Reader team for quickly and painlessly rescuing me from the First Great Internet Apocalypse of 2013. I feel like I'm just using Reader, except now I have a warm fuzzy that my beloved service isn't going to get neglected until it withers away.

-the Centaur

Context-Directed Spreading Activation

centaur 0
netsphere.png 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 to a different area. The paper didn’t cite my work – in fact, its survey of related work in the area seemed to indicate that no prior work along the lines of mine existed – and when I alerted the authors to the omission, they informed me they’d cited all relevant work, and claimed “my obscure dissertation probably wasn’t relevant.” Clearly, I haven’t done a good enough job articulating or promoting my work, so I thought I should take a moment to explain what I did for my doctoral dissertation. My research improved computer memory by modeling it after human memory. People remember different things in different contexts based on how different pieces of information are connected to one another. Even a word as simple as ‘ford’ can call different things to mind depending on whether you’ve bought a popular brand of car, watched the credits of an Indiana Jones movie, or tried to cross the shallow part of a river. Based on that human phenomenon, I built a memory retrieval engine that used context to remember relevant things more quickly. My approach was based on a technique I called context directed spreading activation, which I argued was an advance over so-called “traditional” spreading activation. Spreading activation is a technique for finding information in a kind of computer memory called semantic networks, which model relationships in the human mind. A semantic network represents knowledge as a graph, with concepts as nodes and relationships between concepts as links, and traditional spreading activation finds information in that network by starting with a set of “query” nodes and propagating “activation” out on the links, like current in an electric circuit. The current that hits each node in the network determines how highly ranked the node is for a query. (If you understand circuits and spreading activation, and this description caused you to catch on fire, my apologies. I’ll be more precise in future blogposts. Roll with it). The problem is, as semantic networks grow large, there’s a heck of a lot of activation to propagate. My approach, context directed spreading activation (CDSA), cuts this cost dramatically by making activation propagate over fewer types of links. In CDSA, each link has a type, each type has a node, and activation propagates only over links whose nodes are active (to a very rough first approximation, although in my evaluations I tested about every variant of this under the sun). Propagating over active links isn’t just cheaper than spreading activation over every link; it’s smarter: the same “query” nodes can activate different parts of the network, depending on which “context” nodes are active. So, if you design your network right, Harrison Ford is never going to occur to you if you’ve been thinking about cars. I was a typical graduate student, and I thought my approach was so good, it was good for everything—so I built an entire cognitive architecture around the idea. (Cognitive architectures are general reasoning systems, normally built by teams of researchers, and building even a small one is part of the reason my PhD thesis took ten years, but I digress.) My cognitive architecture was called context sensitive asynchronous memory (CSAM), and it automatically collected context while the system was thinking, fed it into the context-directed spreading activation system, and incorporated dynamically remembered information into its ongoing thought processes using patch programs called integration mechanisms. CSAM wasn’t just an idea: I built it out into a computer program called Nicole, and even published a workshop paper on it in 1997 called “Can Your Architecture Do This? A Proposal for Impasse-Driven Asynchronous Memory Retrieval and Integration.” But to get a PhD in artificial intelligence, you need more than a clever idea you’ve written up in a paper or implemented in a computer program. You need to use the program you’ve written to answer a scientific question. You need to show that your system works in the domains you claim it works in, that it can solve the problems that you claim it can solve, and that it’s better than other approaches, if other approaches exist. So I tested Nicole on computer planning systems and showed that integration mechanisms worked. Then I and a colleague tested Nicole on a natural language understanding program and showed that memory retrieval worked. But the most important part was showing that CDSA, the heart of the theory, didn’t just work, but was better than the alternatives. I did a detailed analysis of the theory of CDSA and showed it was better than traditional spreading activation in several ways—but that rightly wasn’t enough for my committee. They wanted an example. There were alternatives to my approach, and they wanted to see that my approach was better than the alternatives for real problems. So I turned Nicole into an information retrieval system called IRIA—the Information Retrieval Intelligent Assistant. By this time, the dot-com boom was in full swing, and my thesis advisor invited me and another graduate student to join him starting a company called Enkia. We tried many different concepts to start with, but the further we went, the more IRIA seemed to have legs. We showed she could recommend useful information to people while browsing the Internet. We showed several people could use her at the same time and get useful feedback. And critically, we showed that by using context-directed spreading activation, IRIA could retrieve better information faster than traditional spreading activation approaches. The first publication on IRIA came out in 2000, shortly before I got my PhD thesis, and at the company things were going gangbusters. We found customers for the idea, my more experienced colleagues and I turned the IRIA program from a typical graduate student mess into a more disciplined and efficient system called the Enkion, a process we documented in a paper in early 2001. We even launched a search site called Search Orbit—and then the whole dot-com disaster happened, and the company essentially imploded. Actually, that’s not fair: the company continued for many years after I left—but I essentially imploded, and if you want to know more about that, read “Approaching 33, as Seen from 44.” Regardless, the upshot is that I didn’t follow up on my thesis work after I finished my PhD. That happens to a lot of PhD students, but for me in particular I felt that it would have been betraying the trust of my colleagues to go publish a sequence of papers on the innards of a program they were trying to use to run their business. Eventually, they moved on to new software, but by that time, so had I. Fast forward to 2012, and while researching an unrelated problem for The Search Engine That Starts With A G, I came across the 2006 paper “Recommending in context: A spreading activation model that is independent of the type of recommender system and its contents” by Alexander Kovács and Haruki Ueno. At Enkia, we’d thought of doing recommender systems on top of the Enkion, and had even started to build a prototype for Emory University, but the idea never took off and we never generated any publications, so at first, I was pleased to see someone doing spreading activation work in recommender systems. Then I was unnerved to see that this approach also involved spreading activation, over a typed network, with nodes representing the types of links, and activation in the type nodes changing the way activation propagated over the links. Then I was unsettled to see that my work, which is based on a similar idea and predates their publication by almost a decade, was not cited in the paper. Then I was actually disturbed when I read: “The details of spreading activation networks in the literature differ considerably. However, they’re all equal with respect to how they handle context … context nodes do not modulate links at all…” If you were to take that at face value, the work that I did over ten years of my life—work which produced four papers, a PhD thesis, and at one point helped employ thirty people—did not exist. Now, I was also surprised by some spooky similarities between their systems and mine—their system is built on a context-directed spreading activation model, mine is a context-directed spreading activation model, theirs is called CASAN, mine is embedded in a system called CSAM—but as far as I can see there’s NO evidence that their work was derivative of mine. As Chris Atkinson said to a friend of mine (paraphrased): “The great beam of intelligence is more like a shotgun: good ideas land on lots of people all over the world—not just on you.” In fact, I’d argue that their work is a real advance to the field. Their model is similar, not identical, and their mathematical formalism uses more contemporary matrix algebra, making the relationship to related approaches like Page Rank more clear (see Google Page Rank and Beyond). Plus, they apparently got their approach to work on recommender systems, which we did not; IRIA did more straight up recommendation of information in traditional information retrieval, which is a similar but not identical problem. So Kovács and Ueno’s “Recommending in Context” paper is a great paper and you should read it if you’re into this kind of stuff. But, to set the record straight, and maybe to be a little bit petty, there are a number of spreading activation systems that do use context to modulate links in the network … most notably mine. -the Centaur Pictured: a tiny chunk of the WordNet online dictionary, which I’m using as a proxy of a semantic network. Data processing by me in Python, graph representation by the GraphViz suite’s dot program, and postprocessing by me in Adobe Photoshop.

The End for Google Drive

centaur 0

Screen Shot 2013-03-03 at 1.13.54 PM.png

Recently I was doing some task and needed to track down some information. I couldn't find the document I wanted at first in my Google Drive, but once I did, I realized I had several documents, all on the same topic, so I did with Google Drive the same thing I'd done before on Google Drive: I went to the Google Drive folder and reorganized the files.

Big mistake.

Quickly red "x's" started appearing in my folders. More and more "unsyncable" files started showing up in the Google Drive status list. And then a status message popped up: "The files you have deleted are now in Google Drive's Trash."

Uh-oh.

Understand: I had deleted no files or folders. I simply moved them around - and I've done this before. A lot. On Google Drive, not just Dropbox. But something apparently happened in the sync, and Google Drive thought I'd deleted the folders.

So it trashed all those files.

Understand, Google Drive "documents" on your hard drive aren't "documents"; they're little text files with pointers to a location in Google Drive, like this (where UNREADABLE_IDENTIFIER is a string of alphanumeric gobbledegook):

{"url": "https://docs.google.com/document/d/UNREADABLE_IDENTIFIER/edit", "resource_id": "document:UNREADABLE_IDENTIFIER"}

This pathetic little bit of nonsense is all I would have had left of a 200 word start to an essay - if I hadn't acted quickly. I started to look online, and found this alarming bit of information:

https://support.google.com/drive/bin/answer.py?hl=en&answer=2375102

Declutter your Google Drive by removing unwanted and outdated files, folders, and Google Docs from your Google Drive. Anything that you own and remove from Google Drive will be in the trash until you permanently delete or restore them.

Moving Google Docs files out of your Google Drive folder will cause their counterpart files on the web to be moved to the trash. If you then purge the trash, those files will become permanently inaccessible. Because the Docs files in your Drive folder are essentially links to files that exist online, moving these files back into your Drive folder after purging the trash online will not restore the files, as their online counterparts will have been deleted.

OMG! The contents of my documents may be lost forever if I purge the trash. But it gets worse...

http://support.google.com/drive/bin/answer.py?hl=en&answer=2494934

If something in Google Drive is moved to the trash, you'll see a warning and you may lose access to it at any time. Read one of the following sections to learn how to restore it to your Google Drive from the trash. When you restore something, it'll be recovered in Google Drive on the web, to the Google Drive folder on your computer, and to your mobile devices.

If the item is in a folder, you’ll need to restore the entire folder to recover any individual items inside of it.

So I quickly returned to Google Drive. Everything you see above with a little red X was gone, all those files and 150 more. I hunted down the Trash (which was harder than you might think, as there was some persistent search in my Google Drive window that was removing the Trash folder from my view) and restored EVERYTHING that I had never deleted in the first place.

Now, this shouldn't have been a surprise. I always knew this could happen, ever since I gladly installed Google Drive on on my Mac in the hope that it would data liberate the Google Documents I had, only to find in my horror that Google Drive wasn't a syncing system, like Dropbox, but a cloud system, which is useless.

In case anyone misses the point: If you use Google Drive to store documents and also have the Google Drive client stored on a machine, Google Drive can get tricked into thinking you've deleted files, at which point it will move them to the Trash, at which point, unlike things you've deliberately trashed, it can delete them at any time - and you'll never get them back.

After some thought, I'm calling a hard stop on all use of Google Documents, except those I'm using to collaborate with others, where the collaboration features of the Google Doc outweigh the potential of risk. I can always save those files to a hard backup of a Word document or an Excel spreadsheet.

But I work for a living as a writer. And I can't work with a system that can arbitrarily trash hundreds of files and thousands upon thousands of words of documents with no hope of recovery just because I moved a folder … correctly.

Like Ecto, I have to rethink my use of these online tools - rethink them in a way that ensures that for every significant thing that I use in some convenient online system, I have a saved copy in an archivable backup.

More updates as I develop a new system.

-the Centaur

Feral Animal Update

centaur 0

theskunk.png

He is very cute, but we are not adopting this one.

And we'll be a little more careful about leaving the food bowls out when Loki is done from now on. We sure don't want a skunk-soaked cat - my wife has already dealt with that once earlier in her life and it is not a way of having the fun.

-the Centaur

Approaching 33, Seen from 44

centaur 0

33-to-44.png

I operate with a long range planning horizon – I have lists of what I want to do in a day, a week, a month, a year, five years, and even my life. Not all my goals are fulfilled, of course, but I believe in the philosophy “People overestimate what they can do in a year, but underestimate what they can do in a decade.”

Recently, I’ve had that proven to me.

I’m an enormous packrat, and keep a huge variety of old papers and materials. Some people deal with clutter by adopting the philosophy “if you haven’t touched it in six months, throw it away.” Clearly, these people don’t write for a living.

So, in an old notebook, uncovered on one of my periodic archaeological expeditions in my library, I found an essay – a diary entry, really – written just before my 33rd birthday, entitled “Approaching 33” – and I find its perspective fascinating, especially when you compare what I was worried about then with where I am now.

“Approaching 33” was written on the fifth of November, 2011. That’s about five years after I split with my ex-fiancee, but a year before I met my future wife. It’s about a year after I finished my nearly decade-long slog to get my PhD, but ten years before when I got a job that truly used my degree. It’s about seven months after I reluctantly quit the dot-com I helped found to care for my dying father, but only about six months after my Dad actually died. And it’s about 2 months after 9/11, and about a month after disagreements over 9/11 caused huge rifts among my friends.

In that context, this is what I wrote on the fifth of November, 2011:

Approaching 33, your life seems seriously off-track. Your chances of following up on the PhD program are minimal – you will not get a good faculty job. And you are starting too late to tackle software development; you are behind the curve. Nor are you on track for being a writer.

The PhD program was a complete mistake. You wasted ten years of your life on a PhD and on your ex-fiancee. What a loser.

Now you approach middle fucking age – 38 – and are not on the career track, are not on the runway. You are stalled, lacking the crucial management, leadership and discipline skills you need to truly succeed.

Waste not time with useful affirmations – first understand the problem, set goals, fix things and move on. It is possible, only if you face clearly the challenges which are ahead of you.

You need to pick and embrace a career and a secondary vocation – your main path and your entertainment – in order to advance at either.

Without focus, you will not achieve. Or perhaps you are FULL OF SHIT.

Think Nixon. He had major successes before 33, but major defeats and did not run for office until your age. You can take the positive elements of his example – learn how to manage now, learn discipline now, learn leadership now, by whatever means are morally acceptable.

Then get a move on your career – it is possible. Do what you gotta do and move on with your life!

It appears I was bitter.

Apparently I couldn’t emotionally imagine I could succeed, but recognized, intellectually, that if I focused on what was wrong, and worked at it, then maybe, just maybe, I could fix it. And in the eleven years that have past … I mostly have.

Eleven years ago, I was enormously bitter, and regretted getting my PhD. It took five years, but that PhD and my work at my search-engine dot-com helped land me a great job, and after five more years of work I ended up at a job within that job that used every facet of my degree, from artificial intelligence to information retrieval to robotics to even computer graphics. My career took a serious left turn, but I never gave up trying, and eventually, I succeeded as a direct result of trying.

Eleven years ago, I felt enormously alone, having wasted a lot of time on a one-sided relationship that should have ended naturally after its first year, and having wasted many years after that either alone or hanging on to other relationships that were doomed not to work. But I never stopped looking, and hoping, and it took another couple of years before I found my best friend, and later married her.

Eleven years ago, I felt enormously unsure of my abilities as a software developer. At the dot-com I willingly stepped back from a software lead role when I was asked to deliver on an impossible schedule, a decision that was proved right almost immediately, and later took a quarter’s leave to finish my PhD, a decision that took ten years to prove itself. But even though both of those decisions were right, they started a downward spiral of self-confidence, as we sought out and brought in faster, more experienced developers to take over when I stepped back. While my predictions about the schedule were right, my colleagues nevertheless got more done, more quickly, ultimately culling out almost all of the code I wrote for the company. After a while, I felt I was contributing no more and, at the same time, needed to care for my dying father, so I left. But my father died shortly thereafter, six months before we expected. I found myself unable not to work, thinking it irresponsible even though I had savings, so I found a job at a software company whose technical lead was an old friend that who had been the fastest programmer I’d ever worked with in college, and now who had a decade of experience programming in industry – which is far more rigorous than programming in academia. On top of that, I was still recuperating from an RSI scare I’d had four years earlier, when I’d barely been able to write for six months, much less type. So I wrote those bitter words above when I was quite uncertain about whether I’d be able to cut it as a software developer.

Eleven years later — well, I still wish I could code faster. I’m surrounded by both younger and older programmers who are faster and snappier than I am, and I frequently feel like the dumbest person in the room. But I’ve worked hard to improve, and on top of that, slowly, I’ve come to recognize that I have indeed learned a few things – usually, the hard way, when I let someone talk me out of what I’m sure I know, and am later proved right – and have indeed picked up a few skills – synthetic and organizational skills, subtle and hard to measure, which aren’t needed for a small chunk of code but which are vital as projects grow larger in size and design docs and GANTT charts are needed to keep everything on track. I’d still love to code faster, to get up to speed faster, to be able to juggle more projects at once. But I’m learning, and I’ve launched things as a result of what I’ve learned.

But the most important thing is that I’ve been writing. A year after I wrote that note, I gave National Novel Writing Month a try for the first time. I spent years trying to perfect my craft after that, ultimately finding a writing group focused just on writing and not on critique. Five years later, I gave National Novel Writing Month another try, and wrote FROST MOON, which went on to both win some minor awards and to peak high on a few minor bestseller lists. Five years after that, I’ve finished four novels, have starts to four more, and am still writing.

I have picked my vocation and avocation – I’m a computer programmer, and a writer. I actually think of it as having two jobs, a day job and a night job. At one point I thought I was going to transition to writing full time, and I still plan to, but then my job at work became tremendously exciting. Ten years from now, I hope to be a full time writer (and I already have my next “second job” picked out) but I’m in no rush to leave my current position; I’m going to see where it takes me. I learned that long ago when I had a chance to knuckle down and finish my PhD, or join an unrelated but exciting side project to build a robot pet. The choice to work on the emotion model for that pet indirectly landed me a job at two different search engines, even though it was the skills I learned in my PhD that I was ultimately hired for. The choice to keep working on that emotion model directly led to my current dream job, which is one of the few jobs in the world that required the combined skills of my PhD and side project. Now I’m going to do the same thing: follow the excitement.

Who knows where it will lead? Maybe it will help me develop the leadership skills that I complained about in “Approaching 33.” Maybe it will help me re-awaken my research interests and lead to that faculty job I wanted in “Approaching 33.” Maybe it will just help me build a nest egg so when I finally switch to writing full time, I can pursue it with gusto. Or maybe, just maybe, it’s helping me learn things I can’t even yet imagine how I’ll be using … when I turn 55.

After I sign off this blogpost, I’m going to write “Passing 44.” Most of that’s going to be private, but I can anticipate it. I’ll complain about problems I want to fix with my writing – I want it to be more clear, more compelling, more accessible. I’ll complain about problems I want to fix at work – I want to work faster, to ramp up more quickly, and to juggle more projects well while learning when to say no. And I’ll complain about martial arts and athletics – I want to ramp up working out, to return to running, and to resume my quest for a black belt. And there are more things I want to achieve – wanting to be a better husband, friend, pet owner, person – a lot of which I’m going to keep private until I write “Passing 44, seen from 55.”

I’m going to set bigger goals for the next ten years. Some of them might not come to pass, of course. I bet a year from now, I’ll have only seen the barest movement along some of those axes. But ten years from now … the sky’s the limit.

-the Centaur

Pictured: Me at 33 on the left, me at 44 on the right, over a backdrop shot at my home at 44, including a piece of art by my wife entitled "Petrified Coral".

Ecto, Strike Two

centaur 0

Ecto just ate a HUGE post. Second time this has happened.

Time for a new blogging client?

-the Centaur