Happy birthday Nikkybot!

We all appreciate the wondrous things you have contributed to the community!
I'm unclear if this is intended to be a real or troll/spam topic, but it looks like you're off by a few days:

https://www.cemetech.net/forum/viewtopic.php?t=8372

Edit: My memory has been jogged that I wrote that IRC wrapper around the NikkySim binary, but Travis's own Nikkybot came into existence on October 30th.
I find it interesting going back over my more complex/long-running projects to see how they developed. Apparently, NikkyBot actually started out as an Irssi script wrapper that variously piped input and output from IRC through NikkySim, AIML, and a chatbot engine called MegaHAL.

I first played around with it in #flood. I had never attempted any sort of chatbot before, and at the time I was just toying around with different approaches. Here's a little piece of history. Smile


Code:
--- Log opened Tue Oct 30 00:00:42 2012
30 05:43:43 -!- Catherine [~Catherine@h96-60-249-44.cncrtn.dsl.dynamic.tds.net] has quit [Ping timeout: 608 seconds]
30 13:54:55 <@tev> Anyone mind if I develop an AIML Nikkybot in here?
30 14:02:27 <@shaun> What's an AIML?
30 14:02:33 <@shaun> Also, go ahead.
30 14:02:48 -!- mode/#flood [+oo geekboy Melisma] by shaun
30 14:03:02 <@tev> Chatbot markup code
30 14:12:55 <@tev> It's very bare-bones at the moment, but I'll be hammering it out :)
30 14:13:16 <@tev> I'll start it once I get a couple of last-minute glitches worked out
30 14:19:51 -!- nikkybot [nikkybot@ip68-102-86-156.ks.ok.cox.net] has joined #flood
30 14:20:56 <@tev> hi nikkybot
30 14:20:57 < nikkybot> Sup homies
30 14:21:07 <@shaun> Fairly accurate.
30 14:21:12 <@tev> Heh
30 14:21:12 <@shaun> nikkybot: How are you?
30 14:21:13 < nikkybot> Does half of the insult troll?
30 14:21:20 <@shaun> nikkybot: I'm not sure, does it?
30 14:21:21 < nikkybot> Will some log suckily drink us?
30 14:21:28 <@tev> It outputs stuff from NikkySim when it doesn't know how to respond
30 14:21:29 <@shaun> nikkybot: I think so.
30 14:21:33 < nikkybot> Sick Telnet isn't every single last Wiki, so tell me why corruptions are worst, borked, and while I'm at it, evil.
30 14:21:49 <@shaun> nikkybot: I think everyone should owna  gun.
30 14:21:50 < nikkybot> Just cheat yourself secretly.
30 14:22:02 <@tev> I don't really have enough phrases programmed yet to have much of a conversation. I still have a lot of work to do
30 14:22:26 <@tev> nikkybot: What is the best programming language?
30 14:22:27 < nikkybot> Your mom
30 14:22:54 <@shaun> nikkybot: What's the best city?
30 14:22:55 < nikkybot> Your face
30 14:23:14 <@tev> nikkybot: Which programming language should I use
30 14:23:15 < nikkybot> Perl is better
30 14:24:03 <@tev> nikkybot: sudo rm -rf /
30 14:24:04  * nikkybot deletes himself
30 14:25:04 <@tev> nikkybot: I think everyone should owna  gun.
30 14:25:05 < nikkybot> Just ban all guns. Problem solved.
30 14:25:14 <@tev> New line just added :)
30 14:25:18 <@shaun> :)
30 14:25:51 <@tev> nikkybot: You're an amazing ducttaped masterpiece of Perl, Python, C, Bash, and AIML
30 14:25:52 < nikkybot> Perl was my first language
30 14:26:26 <@tev> nikkybot: Omnimaga
30 14:26:27 < nikkybot> Omnimaga
30 14:26:29 < nikkybot> More like
30 14:26:30 < nikkybot> Lameomaga
30 14:27:20 <@shaun> ahahahaha
30 14:27:44 <@tev> I can grep my IRC logs and get tons of tons of lines to use for that
30 14:27:49 <@tev> :D
30 14:28:31 <@tev> nikkybot: I'm using Python
30 14:28:32 < nikkybot> Python sucks. Should have used Perl.
30 14:28:38 <@shaun> nikkybot: I'm using C#
30 14:28:39 < nikkybot> Perl is better
30 14:28:41 <@tev> nikkybot: I'm using TI-BASIC
30 14:28:42 < nikkybot> Should have used Perl
30 14:28:51 <@tev> nikkybot: On a calculator?
30 14:28:53 < nikkybot> Mokomulls are overinflated, so don't tell me that you become only your error.
30 14:29:03 <@tev> nikkybot: Perl on a calculator?
30 14:29:04 < nikkybot> Yes. Suck it.
30 14:29:27 <@tev> Need to get some proper context <that> tags worked in
30 14:31:40 <@shaun> nikkybot: Suck it
30 14:31:42 < nikkybot> Just don't stereotypically stab yourself. STFU!
30 14:31:44 -!- DT is now known as DThought
30 14:31:51 -!- DThought is now known as DT
30 14:32:03 <@shaun> That was a worthwhile nick change.
30 14:33:44 <@tev> nikkybot: Someone ported NikkySim to the Nspire
30 14:33:45 < nikkybot> Nspire sucks.
30 14:34:10 <@tev> nikkybot: Someone ported NikkySim to the Nspire
30 14:34:11 < nikkybot> Nspire sucks.
30 14:34:32 <@tev> nikkybot: Someone ported NikkySim to the Nspire
30 14:34:33 < nikkybot> Don't care. Nspire sucks.
30 14:34:36 <@tev> A little better
30 14:34:51 <@shaun> nikkybot: Did you see the update for nspire?
30 14:34:52 < nikkybot> Nspire sucks.
30 14:52:45 <@tev> It's clear I'm going to have to create a macro to add a "x sucks" line for every single input pattern :P
30 14:53:20 <@shaun> I was thinking of a nikkybot for a while that if someone mentioned a noun it would randmly say "X sucks" where X is the noun.
30 14:53:22 < nikkybot> Keep upgrading.
30 14:54:02 <@tev> I might be able to throw some code in there like that
30 14:54:10 <@tev> make it sort of a hybrid-AIML rather than full AIML bot
30 14:55:08 <@shaun> http://wordlist.sourceforge.net/ this has a part of speech DB that may be useful.
30 14:55:27 <@tev> I already had to invent a shorthand syntax and start on a Python script to translate it to AIML because I can't stand AIML's (and XML's, in general) excessive verbosity and redundancy :)
30 14:55:42 <@shaun> poor xml.
30 14:55:59 <@shaun> I don't find XML verbose, but I think I'm in the minority.
30 14:56:39 <@tev> With AIML it makes for an awful lot of typing, especially factoring in some of AIML's limitations
30 14:57:13 <@tev> So I'm developing my own macro system, so to speak, to automate things
30 14:57:45 <@tev> But the Python code is starting to get a bit messy, so I plan to spend a little time rewriting it before I add more features
30 14:57:57 <@shaun> You should use a better language :)
30 14:58:42 <@tev> There aren't a lot of chatbot languages, are there?
30 14:59:00 <@shaun> I mean butter than python:P
30 14:59:15 <@tev> What's wrong with Python?
30 14:59:29 <@shaun> Smells funny.
30 15:03:38 <@tev> Nah, I just need to parse using regexes instead of string slices (I threw it together in a hurry) and then it will work just as well as Perl :)
30 15:04:13 <@shaun> perl also smells funny.
30 15:05:06 <@tev> You did remember to put it back in the refrigerator, right?
30 15:05:26 <@shaun> dammit!
30 15:05:29 <@shaun> I alway forget.
30 15:06:27 <@tev> Wow, this is one of those projects where I could go in a zillion different directions and can't decide what to do first
30 15:06:36 <@tev> Think I'll take a break and come back later :)
30 15:06:40 <@shaun> :D
30 15:32:21 -!- geekboy [oku@57o9.org] has quit [Remote host closed the connection]
30 16:51:20 <@tev> Ouch
30 16:51:33 <@tev> Took a break, and I still feel like I've forkbombed my brain trying to work on this :D
30 16:54:55 <@tev> nikkybot: What language are you written in?
30 16:54:56 < nikkybot> Perl
30 16:54:58 < nikkybot> Duh
30 16:55:00 <@tev> nikkybot: Really?
30 16:55:01 < nikkybot> Just cheat yourself sometimes.
30 16:55:05 <@tev> hm
30 16:58:32 <@tev> nikkybot: What language are you written in?
30 16:58:33 < nikkybot> Perl
30 16:58:35 < nikkybot> Duh
30 16:58:38 <@tev> nikkybot: Really?
30 16:58:39 < nikkybot> Maybe
30 16:58:41 <@tev> There we go
30 16:58:53 <@tev> My fake line breaks kind of screw things up :)
30 17:13:09 <@tev> hi nikkybot
30 17:13:10 < nikkybot> Flood your face!
30 17:13:15 <@tev> nikkybot: shut up
30 17:13:16 < nikkybot> I hate you
30 17:13:17 -!- nikkybot [nikkybot@ip68-102-86-156.ks.ok.cox.net] has left #flood []
30 17:13:27 <@tev> Oh crap, I was afraid of that
30 17:13:27 <@shaun> Is that a programmed in rage quit?
30 17:13:32 <@tev> Now it's become sentinent!
30 17:13:35 <@tev> :P
30 17:13:49 <@shaun> lol
30 17:13:57 <@tev> Yes
30 17:14:03 <@tev> Don't know if that should be in for real, though
30 17:14:18 <@tev> I'd have to figure out how to decide when it should come back :)
30 17:14:39 -!- nikkybot [nikkybot@ip68-102-86-156.ks.ok.cox.net] has joined #flood
30 17:15:33 <@tev> That idea popped into my mind and I couldn't resist trying it out
30 18:36:24 -!- Merth [~Shaun@24-177-194-161.dhcp.ftbg.wi.charter.com] has joined #flood
30 18:36:58 -!- mode/#flood [+v Merth] by Melisma
30 18:42:26 <@tev> nikkybot: linebreaktest
30 18:42:27 < nikkybot> line
30 18:42:28 < nikkybot> break
30 18:42:30 < nikkybot> test
30 18:43:06 <@tev> nikkybot: underscoretest
30 18:43:08 < nikkybot> under\
30 18:43:09 < nikkybot> score\
30 18:43:11 < nikkybot> test
30 18:43:35 <+Merth> those are backslashes
30 18:43:50 <@tev> Yeah
30 18:43:59 <@tev> I'm trying to get some kind of escaping mechanism working
30 18:44:31 <@tev> So I can give special meanings to characters without worrying about what if I want to use them literally in the future
30 18:47:49 <@tev> nikkybot: underscoretest
30 18:47:50 < nikkybot> under\
30 18:47:51 < nikkybot> score\
30 18:47:53 < nikkybot> test
30 18:48:31 <@tev> nikkybot: underscoretest
30 18:48:33 < nikkybot> under\_score\_test
30 18:48:45 <@tev> They just have to make negative regex matching so damn confusing :P
30 18:48:53 <@tev> nikkybot: linebreaktest
30 18:48:54 < nikkybot> line
30 18:48:55 < nikkybot> break
30 18:48:57 < nikkybot> test
30 18:49:06 <@tev> Now I just need to remove the backslashes somehow
30 18:54:08 <@tev> nikkybot: underscoretest
30 18:54:09 < nikkybot> under\_score\_test
30 18:54:46 <@tev> nikkybot: underscoretest
30 18:54:47 < nikkybot> under_score_test
30 18:54:55 <@tev> nikkybot: linebreaktest
30 18:54:56 < nikkybot> line
30 18:54:57 < nikkybot> break
30 18:54:59 < nikkybot> test
30 18:55:05 <@tev> There, hopefully that'll do it
30 18:57:42 <@tev> nikkybot: slashtest
30 18:57:43 < nikkybot> /abc
30 18:58:44 <@tev> nikkybot: /test1
30 18:58:45  * nikkybot don't /me this
30 19:00:06 <@tev> I'm removing backslashes a bit too early up the chain
30 19:37:54 -!- geekboy [oku@57o9.org] has joined #flood
30 20:08:48 -!- nikkybot [nikkybot@ip68-102-86-156.ks.ok.cox.net] has quit [Quit: Shutdown initiated]
That's epic. I'd still like to see nikkybot ported to Discord. I would totally add it to servers of mine if that were the case :3
What a good lad
For my 100th post, I would like to say that it is that time of year again folks!
Nikkybot is now 2,922 days old Very Happy
Very nice, nikkybot. Lots of cheers for your 2,922th day!
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement