Tuesday, February 26, 2013

Good Guy Zoav

Well well well!

After all my belly-aching about how there were no good, solid CS sources for information on multi-agent software, I came across Yoav Shoham. The guy's my new hero. He saved me from the legion of terrible, horrible, hand-wave "BUT IT'S LIKE REAL INTELLIGENCE, ONLY IT'S NOT" papers.

I came across him by asking Friend Google about "seminal work on agents", and his name kept on being dropped for his highly-cited paper Agented-Oriented Programming (1993). I stalked him looked him up a little further, and he's running a research group that puts out a respectable amount of research at Stanford, and he's recently (well, relatively recently) put out a great book on the topic: "Multiagent Systems: Algorithmic, Game Theoretic and Logical Foundations". Our local academic library, as much as I love it, takes ages to get new material even if explicitly requested. I put in a request anyway, but with little hope to get the book before my contract at Rhodes expires and I it's no longer useful to me.

I pondered just picking it up for myself (it's really reasonable for a high-quality text), but then...
Good Guy Yoav to the rescue! He generously offers the free ebook for download if you can't afford it or can't get access to it.

I love this guy. I've spent years looking to break into this field, ranging from an inkling of interest to building my own agents of varying scale and ambition.

I've started reading his book, and I just need to say: wow. I'm loving every page! It starts with a solid grounding in algorithms and logic, which is exactly what I wanted to banish my concerns that it was going to be another "we needed a paper at the last moment and Bob can hand-wave well" text. Thank you Yoav, you're my new hero!

Thursday, February 21, 2013

Agent Reading and Progress

So I'm in the middle of getting to grips with AI agents - something I've had an on-again, off-again relationship with for years. Toying with it for a PhD idea, but not really finding the Something Special that's gripping me into putting in the monumental amount of effort that a doctorate would demand.

I've started reading "Developing Intelligent Agent Systems" by Padgham and Winikoff, which seems like a more pragmatic text on the topic - refreshing, given I've spent most of today reading through agonizingly poor conference and journal papers on the topic. It seems that Computer Science has decided to drop the entire field (because let's be honest, Asimov's "I, Robot" showed us that specialized applications of technology beat general-purpose development hands-down), and it's been adopted by Information Systems and Infomatics types - the kind of people who think that "pipes" are an innovative idea, if they could only fit a methodology around using it in their current paradigm, so they could implement a framework *retch*.

Back to the book, though: Padgham & Winikoff use the definition of an agent from Wooldridge (2002), that an agent is a "computer system that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its design objectives". Which is a terrible definition, because it requires an extremely specific interpretation of the terms used, or it could easily describe almost all software.

In any event, it's later qualified by a number of additional attributes that the author hastens to mention change the definition from "software agent" to "intelligent software agent": the software must be pro-active, reactive and social. They continue on to add robust or flexible in the event of a blocked/failed goal.

My interest leans heavily on the social aspect of agents: I've been inspired by the concept of Weavrs, software agents that literally exist with their own social networking accounts. While it is certain that automated software agents have existed before weavrs (spambots, for instance), the idea of creating a persona whose role is to digest, process and then publish information seems quite novel. Weavrs, as far as I know, do not taking social input, but do have a social output.

The idea tickling around at the back of my brain is to take this idea of social agents whose job is to consume, process and publish information and to extend the idea into a logical mesh of agents with a fairly transparent communication medium (ala Twitter). Each agent specializes in certain specifically tooled news sources (an RSS agent, a Twitter agent, a Facebook agent, a specific webservice agent), and they share their information both publically and with each other. They can then interact with a series of more complex agents whose role is to digest that information further, and then make intelligent decisions based on that.

Because the variety of different sources of information will almost certainly be providing non-orthogonal outputs (the news headlines from the RSS news feed will no doubt also be tweeted and linked to on Facebook), the agent net will need to be able to intelligently combine information sources into groups of related news - perhaps akin to unroll.me's mechanism of creating email digests.

If this sounds like a great deal of natural language processing, semantics extraction and quite possibly an impossibly complex piece of engineering, then you're now on the same page as me.

As far as I can see, the best way of starting this project will be to start writing a bunch of parsers for each potential "news input" - once I've got processed raw data to work with, decision-making becomes a tangible possibility. I've started playing around with Facebook and Twitter feed consumers, and when they're working I'll put up some code snippets.

Monday, May 23, 2011

OMFG PFRPG!

Pathfinder. You looked so terribly promising.

3.5e backwards compatibility. Awesome new takes on old classes and races. A stunning default setting with some world-class modules.

And then you had to go and let me down with NPC generation. Even 3.5e wasn’t as clunky as this. 4e completely takes you to the cleaners.

I count nearly 30 discrete steps to build a NPC. With no available free (or even decent paid-for) software and a dazzling array of options, building monstrous NPCs for a game is completely ridiculous.

Maybe I’m too much into custom NPC development, but in my 4e and 3.5e games, I’m happy to come to the table with a dozen types of invented NPCs. For every session. In PF, this would be a full time job.

So I’m sorry, Pathfinder. You did everything right for players: lots of options, lots of cool options. But for the DM, you did the one thing that ensured you’ll never get the ridiculous amount of fan-created content that you needed to actually beat the D&D franchise: you made it hard.

In an environment where fan-created content is the lifeblood, and to many fans the reason for the game, you chose to err on the side of being too complex.

I’m not prepared to go through edition wars, but I would like to draw a comparison to 4e: 4e has a half-dozen discrete choices, after which the rest is either up to the DM or rather irrelevant. I can pick a level 5 brute, pick one at-will and two encounter powers and I’m very nearly done.

Please, as a gamer and a creative DM, please either invent a shorthand NPC generation system (if you want inspiration, look to Epsilon's Simplified NPC System for Exalted), or put out some cheap/free software for building NPCs. Because I can’t use your system as it stands now.

Thursday, May 5, 2011

Media Obligations

Fifty years ago, no one would describe themselves as a – geez, what was the media of the time? – dedicated “Man from U.N.C.L.E” fan. Sure, they enjoyed the show, but media was a distraction from life.

These days, everyone has a niche, a specialty. You’re an audio guy, or a series watcher, or a gamer, or a role-player, or a sports fan. Which I think is wonderful and terrifying and horribly bad and brilliant. But most importantly, what it is is different. We’ve defined ourselves by our media.

I came to this revelation recently: I feel compelled to watch series, read comic books, and catch movies because I feel that I will fall behind or miss something great if I don’t. Let me rephrase: I feel an obligation to the media I consume.

What. The. Hell.

This is like when you’re a kid and you’re told to eat all the food on the plate so it doesn’t go to waste. If you’re not hungry, you shouldn’t have to eat. But somehow you have an obligation to your vegetables. What’s up with that?

I think it’s terrible, but I also think it’s wonderful. We’re creating cultures in minutes, something that used to take generations. We’re doing something that has never been done before: we’re finding and systematically attacking bigotry and xenophobia.

Don’t think about this as “those people from the other side of the border are evil/weird/smell funny”. That’s an extreme, and frankly is rapidly on the decline anyway (though is still serious and needs to be addressed). But look at this on a micro-scale: when people are shouting down the trolls who complain about editions of Dungeons & Dragons, or making peace between people who prefer Star Wars and Star Trek, and heck – even showing that people who like Twilight can be respected! – we’re building the foundations of a macro-culture of acceptance.

So I don’t think this is good or bad necessarily, or at least I’m in no position to judge. It is, as I was saying, different. And untested. We’re in space, in a ship with no sensors. We don’t know if the information overload and media obligation is good for us or bad for us. If the cultural saturation will result in humankind becoming better at processing information, or if we’ll melt down under the strain of supporting everything we need to know without the physical and mental capabilities to do so.

Heck, even in my job, I’m juggling dozens of libraries, at least three languages, in several contexts, while searching for likely problems and best solutions. And that’s only one of my projects.

So the point of this post is this: to tie in to my last post, I can’t support everything. So I’m probably going to cut back first and foremost on series, movies and so on. Which is a bit sad, but heck – the man of yesteryear survived without watching a new series every month ;)

Wednesday, May 4, 2011

How to Fit Five Fourths of a Life into One

I’ve been living in Johannesburg for just over two years now. Working for almost that entire time, barring a short hiatus after leaving Qualica, before I started at Entelect.

In that time, I’ve gone from alone, isolated and depressed to excited and satisfied, to where I currently am.

Which is, as the title of this post suggests, trying to fit too many hours into a day. Which is why I’m nearly always sleep-deprived ;)

I’ve now got so many things that I love that I need to juggle that it’s actually coming to a point where I’m going to have to cull interests again. I hate doing this, because I only really get involved in things that I love… and giving up something I love so that everything else I love has the room to grow is really hard.

So at present, I have an active social life, I’m writing again (and blogging!), I’m reading, my spiritual life is picking up traction, and that’s before I mention a single word on technology or role-playing games.

I’m realising quickly that my passion for programming, coding and so on really only extends to when I’m not pouring out creativity every day. I must confess, before coming to Johannesburg I had no idea what hard work was. My Masters was lackadaisical at best. Everything prior to that was just amusement.

Role playing games have been a passion for me since I was very young. Something about the collision of social activity, sublimating and mixing creativity with trusted friends, and good stories attracted me. And I always wanted to be a part of a society where RPGs were the norm. Then I discovered the ZA RPG circuit was… clique-y, and promptly fell into depression and realized that RPGs with friends will always be better than RPGs with bitchy strangers.

So now I’m at a place in my life where every evening is packed. Weekends are barely enough space for me to breathe and recharge for the upcoming week.

This isn’t meant to be a whiney post, but I figure other people have the same thing happening in their lives. I always wonder how you balance trying to cram all you can into the mere 16 hours of consciousness you have. Any ideas?

Tuesday, April 26, 2011

The Saddest Three Words in the World

I've recently acquired a taste for indie music, where "recently" was about two years ago. I was listening to a song - "Contact High" by Architecture in Helsinki - and it includes a phrase that just blew my mind.
"I'm done dreaming". It's a terribly sad phrase (and FYI: not the context of the song at all - I just took the three words and ran with this thought).
Here's the thing: whether you're Christian or not, whether you're a mad geek or a staid business-person - dreaming is what makes you a person. The beautiful madness of a dream - of wanting to be the best, of wanting to see something in your mind get concretized into reality? That's the most terrifying, the most amazing, the most astonishing thing. It's why I love life - to meet people, hear their dreams, and watch in amazement as they come from some conceptual dream-space into this world.
I know I'm an indefatigable romantic. I know that I can get cynical about all this, and note that most people try their damndest to run far from their dreams and bury them in dull greyness of life and it's million compromises. And I don't care.
It's one of the reasons I love teaching and lecturing - the act of learning is typically a direct means of solving the problems inherent in bringing dreams to life. By being a cog in the machine that allows a person to do this amazing thing, I'm humbled and privileged to be a part of these dreams.
But enough with the sappiness ;)

Saturday, April 23, 2011

Suckerpunch

Saw Suckerpunch this evening with my friend Pete. Was dubious, Alistair said he was greatly disappointed by the movie, and he's generally a good gauge for how much I'll like something.

Just...
Wow. Mind blown.

Japanese schoolgirl wielding a katana and silver plated desert eagles fighting giant Samurai warriors with chainguns? Steampunk nazi stormtrooper zombies? In the few short action scenes, it packed more Awesome on to the screen than you normally see in an entire trilogy of epics.

And then you STILL manage to walk away from the movie depressed. Well played, Snyder. Well played.

The movie combines Rule of Awesome, Turned Up to Eleven, with Oscar Bait. Think about that for a moment: a movie that is best described as "Moulin Rouge mixed with Gothika, Kill Bill, the 300 and Inception in equal measure" that still manages to include sufficient poignancy to be a contender for a Oscar.

See why my mind was blown?