Friday, March 16, 2012

Robots that fly and cooperate and play music

Michele and Emma and I will be speaking at Computers in Libraries 2012 next week, so there hasn't been much time for blogging. However, here's something you might enjoy, flying robots that cooperate and play the James Bond Theme.

Very cool.

Thursday, February 23, 2012

Facial recognition technology coming to retail stores

From Click Orlando, Bars, stores to use facial recognition technology to increase sales. If you don't want to read the whole article, here's the gist. In a few weeks some businesses in central Florida will start using enhanced facial recognition technology to cater ads to a shopper's age and demographic. In other words, the store will have billboards that can determine your age and gender, then display ads it thinks you'll like based on your age and gender. If you're a 30 year old woman, you'll see ads for shoes and makeup, if you're a 40 year old man, you'll see ads for lawn mowers and grills. Or turkey deep fryers and socket sets, or whatever. Eventually stores will be able to recognize you as an individual and track your spending habits (like they already do). In fact, the FTC "worries about the time when technology becomes so advanced that your social media profiles are scraped for information." Another reason not to share all those deeply personal tidbits on Facebook or Twitter. No one wants to walk into the grocery and have an artificially intelligent billboard start shouting about the great deal it'll give you on Gas-Ex or Listerine. "Come on and buy it, Chuck! You tweeted that was the reason you couldn't get a date!" To avoid this kind of embarrassment, the FTC predicts that "people will be wearing camouflage so they're not picked up by facial recognition trackers all over the place." Well, who knows. Some people can only see the potential for abuse in new technology. I try to be a bit more optimistic.

Tuesday, February 14, 2012

What do you do on your days off?

Chase bugs. And I'm after some tough ones right now. Very frustrating, but you just have to take the code apart one piece at a time and test each one individually. And what's driving me nuts is that my code works on the test server, but somehow is getting disrupted between the server and the bot interface on the webpage.


That's a real insect; you can read about it here. I'd rather not think about what it would be gnawing if there hadn't been a carrot near by.

Tuesday, January 31, 2012

Why did the Catbot cross the Road?

I didn't post very much this month. Things have been busy. Well, they're always busy, but this month was different. As some of you know, I'm now at the Lake Branch. The last few weeks have been a real pleasure, getting to know the Lake staff and community. The Library is getting ready to start computer classes at Lake, and there are more good things in store. Besides this, I've been trying to learn how to use AIML conditions. I think I'm finally getting a handle on them. And there's no better way to learn than by having a bit of fun. So...

Why did the Catbot cross the Road?

We can use conditions to code our bot to respond to this question:



<category>
<pattern>CATBOTXROAD</pattern>
<template>
<think>
<set name="topic">BOTJOKE</set>
</think>
That's a secret. I bet you can't guess why the Catbot crossed the road.
</template>
</category>

<topic name="BOTJOKE">
<category>
<pattern>_</pattern>
<template>
<think>
<set name="answr"><star/></set>
<set name="message">wrong answer</set>
<condition name="answr">

<li value="WHY GUESS"><set name="message">why guess</set></li>
<li value="* WHY GUESS"><set name="message">why guess</set></li>
<li value="WHY * GUESS"><set name="message">why guess</set></li>
<li value="WHY GUESS *"><set name="message">why guess</set></li>
<li value="* WHY * GUESS"><set name="message">why guess</set></li>
<li value="WHY * GUESS *"><set name="message">why guess</set></li>
<li value="* WHY GUESS *"><set name="message">why guess</set></li>
<li value="* WHY * GUESS *"><set name="message">why guess</set></li>

<li value="OTHER SIDE"><set name="message">right answer</set></li>
<li value="* OTHER SIDE"><set name="message">right answer</set></li>
<li value="OTHER SIDE *"><set name="message">right answer</set></li>
<li value="* OTHER SIDE *"><set name="message">right answer</set></li>

<li value="GIVE UP"><set name="message">give up</set></li>
<li value="* GIVE UP"><set name="message">give up</set></li>
<li value="GIVE UP *"><set name="message">give up</set></li>
<li value="* GIVE UP *"><set name="message">give up</set></li>

<li value="WHY"><set name="message">give up</set></li>
<li value="* WHY"><set name="message">give up</set></li>
<li value="WHY *"><set name="message">give up</set></li>
<li value="* WHY *"><set name="message">give up</set></li>

</condition>
</think>

<condition name="message">
<li value="wrong answer">No. It's not <get name="answr"/>. Guess again.</li>

<li value="why guess">It's fun. Go ahead and guess or type "I give up."</li>

<li value="right answer">No, that was the chicken. It was to get to the other side. Of the Digital Divide!
That's Librarian Humor for you.
<think>
<set name="topic"></set>
</think></li>

<li value="give up">Give up? It was to get to the other side. Of the Digital Divide!
That's Librarian Humor for you.
<think>
<set name="topic"></set>
</think></li>

</condition>
</template>
</category>
</topic>




One advantage to using conditions is that it's easier to control the topic tags. Very useful. Does this have an application beyond programming the bot with awful jokes? Yes. In fact, all of the files containing library information are being rewritten, as are those files governing searches. Lots of work, but our Emma should be in good shape for Computers in Libraries 2012! Presenters get to go free, it'll be a blast!

Monday, January 30, 2012

Cooking with Dog - How to Make Nabeyaki Udon Noodle

After a long evening of writing AIML, nothing perks me back up like a bowl of udon noodles. Here's a nice recipe for Nabeyaki Udon. There's a whole "Cooking with Dog" series on YouTube, very interesting and very cute. It's a poodle, naturally. Smart, smart dogs.

Monday, January 16, 2012

Fun with conditions

Sorry I've been away for so long. I've been in touch with one of the best AIML coders around, Steve Worswick. He's given me some assistance with using AIML conditions in Emma's brain. This is a different way of writing the code, but is much more flexible and easy to customize. So, for the last few weeks I've been learning how to use conditions properly and rewriting Emma's files. There are still quite a few to go, but I'll be finished by the end of this month.

I promise I'll also find time to blog!

Tuesday, November 29, 2011

A better way to answer our #1 question

You probably know that Emma's most frequently asked question is some variation of "What are your hours?" Until recently, she would respond by reading a summary of our hours. This is a rather long answer and it's not always correct, especially around the Holidays. When a user recently asked, "Are you open tomorrow?" on the day before a holiday, I began trying to program Emma to respond with the hours for a specific day. I contacted Dr. Wallace with some ideas and he put me on the right track. This is possible by using the formatted date tag. If you're unfamiliar with this formatting, or are interested in the technical details of the AIML code, follow this link.

Emma now knows what day it is and will respond with the hours for that day. She can also tell you if we're open tomorrow, or if we were open yesterday. I'm working on a separate AIML file containing holidays, so she'll know when we're closed or are closing early.

The #2 question is "Do you have eBooks?"