Post subject: BisqBot is gone
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
So I just pulled the plug on BisqBot. And I am actually feeling teary-eyed. It is weird. First, a bit of history. As some of you might know, BisqBot was an IRC bot I have had running for a long time. I originally developed it in 1996 or so. Where I have been, the bot has never been very far. For the longest time, it only appeared on IRCNet, the European offshoot of EFnet. In 2004, for the first time, I brought it into a foreign network, to be present on #nesvideos, which operated on irc.EnterTheGame.com at that time. The purpose of BisqBot, since day zero, was to be a personal toolbox for me. Since I spent a lot of time in IRC, it made sense for me to create commandline tools, that can also be used from the confines of IRC. Doing it this way made it also possible for other people in IRC to use these tools. I made quite a lot of programs in BisqBot during these years. Many of them utilized external Internet services in a way or another. I am going to try listing all of them: Languages: – Multilingual Bible search tools (all translations that are available on ftp://ftp.funet.fi/pub/doc/religion/christian/Bible/texts/ and several others too). – Japanese language search tools (basically, commandline versions of most of the tools, that are still available on http://bisqwit.iki.fi/japtools/) – Spelling out long numbers in Finnish language (such as 1957156 = miljoona yhdeksänsataa viisikymmentä seitsemän tuhatta sataviisikymmentä kuusi) – Spelling Finnish words in syllables (obviously does not work properly for other languages like English, didn’t stop people from trying and laughing at the results) – Deconjugating Finnish words: Reporting their grammatical form and base form – Translating English text into Finnish – Multilingual dictionary database searching – Parsing discussion on channels, and interjecting that “___ sux” or “__ rulez” with proper grammar. Involves deconjugating and reconjugating Finnish. Mathematics: – Numeric factorization – Several different calculators and expression evaluators – Currency conversions (using YLE Teletext pages as backend) Multimedia: – Finnish YLE Teletext browsing (using mIRC colors) – Reporting upcoming Finnish TV programmes, with searching functionality – Some mIRC colored ASCII arts [img_right]http://bisqwit.iki.fi/kala/snap/bisqbot_no_igo_thu.png[/img_right]Databases & online: – Definitions: A custom database of definitions maintained by people in IRC. Most of them have been written by teenagers on #pkmn and are in Finnish language – Translating Internet country codes into countries & vice versa – Explaining what a random term means using absurd terms – Reporting upcoming anime fansub release on animesuki.com – Reporting updates to RecentChanges on senseis.xmp.net – Reporting 7d/pro games about to commence on KGS – Reporting new headlines on Slashdot.org – Reporting (privately) when Bisqwit gets a phonecall and who it is from (when I had ISDN) – Planning of train routes using VR.fi – Planning of routes using Google Maps – GeoIP: Reporting which country given IP address belongs to – Reporting the current local time – Translating between characters and HTML entities – Googlefight: Reporting which search term out of two gives more results in Google Toys: – Random numbers (2=coin, 52=cards, other=dice) (one or more dice, gives sum, some easter eggs) – Generating a random catboy or catgirl – Fetching a random present from Warehouse 23 – Insulting a person like Captain Haddock would (Finnish, Swedish and English supported) Games: – Pokémon features, see below for a whole separate category – XOZGE 2: A go-moku clone for 2–5 players – The Battleship board game – A guess-the-number game – Go: Play Go (囲碁) against your opponent, or against GnuGo. GnuGo will commentate on your moves. Pokémon: – A database extracted from Pokémon 1st and 2nd generation game ROMs drives an extensive set of features – Move lookup: Including random move – Item lookup: Including random item – Pokédex: Search by name, type, evolution, etc.: Including random Pokémon – Hitting probability calculators – Battle calculator with extensive syntax Agent network: – Every IRC client that I was running, and most of those that were run on my server by others, had an “agent” script installed. This agent script technically gives BisqBot complete access over the IRC client, but users would not see anything different. (It was always used with permission only.) It was used for things like load balancing and cantrips. BisqBot obviously was an agent of BisqBot, but so was Bisqwit, and so was also NESVideoAgent back when it ran on bisqwit.iki.fi. – The Agent network would make it possible for BisqBot to not only see everything that happens on any channel where any agent is on, but it would also enable BisqBot to say (or control) things through the agent’s IRC client, if he was not present himself. – Maintaining statistics of amount of text spoken by each person on each channel seen by any agent. On approved channels, these statistics would be reported daily. – On approved channels, people who sweared would be subject to punitive measures. On non-approved channels, BisqBot would still choose to ignore a person who swears and not respond to their requests. – Op-lists, ban-lists, kick-lists, and other similar measures, that are standard in any administrative IRC bot. All of these actions were dealt through the agent network. – A “seen” database, that would be used to query when a person was last seen somewhere doing something. The database extends as far back as January 1997, almost interruptionless until September 2015. If you wrote a stupid quit message in 1999 and I was there, chances are it’s in BisqBot’s database. Events would be collected into the database from all agents. – Effectively, NESVideoAgent was actually BisqBot in disguise. The only merit that the instance known as NESVideoAgent had, was to be agent of a specific name. All of its actions would be arbitrated by BisqBot. DCC CHAT: – Obviously some commands outputted way too much text to print in IRC. These commands would be available in DCC CHAT only, where there are no limits on the amount of text one can transfer, as it bypasses the IRC network altogether. – The agent network used raw DCC sockets. – People who were simultaneously in DCC CHAT with BisqBot could also communicate through that chat; the DCC CHAT line would appear as another channel, much like EggDrops do. Polite requests: – People on #nesvideos were often amused by my overly polite yet vague requests to BisqBot, such as: “BisqBot, please do something”. Sometimes I would speak in Pikachu language. And BisqBot would comply: “Yessiree.” or “All right. Anything else?”. Others, who tried, would get one of the random 40 responses, including: “Your proposition is intriguing, but I must refuse.”, “I don't suppose you will like my answer.”, and “Wrong person asking.”. The Agent script had a special feature: When you enter a line on IRC that starts with “BisqBot, “, the full command is sent to BisqBot through the DCC RAW line. But the line that gets sent to IRC will be modified, and the command will be replaced with “do something”, or “say something”, with adverbial modifiers depending on situation. The bot would ignore the line that gets sent to IRC, and reacts to the line it receives on DCC RAW behind the scenes. And just to keep up the appearances, it would put a dummy response on the IRC channel. If the bot was not actually present on the channel, the dummy response could be sent by the same agent who made the request. Oops. Technically speaking, BisqBot was an ircII script. It was running a completely normal ircII chat client, the same kind that I am also running, and have been running since 1995 or so. Around that ircII script core were dozens of utility programs written in a number of different languages, including C++, Ruby and PHP. The first years BisqBot was running on the Internet service provider's shell host. I believe that was Icon at that time. Some year later, I set up my own server, and I moved BisqBot there, and it has been there since that. It may also have run on Samoilu.net at some point. I'm not exactly sure, as I don't have logs from those times. BisqBot has maintained a lot of channels in the past. – From 1996 to 2000 it operated a number of channels in IRCnet, mostly #Christian, #Kerava and #Raamattu3. – From 2000 to 2004 it operated #pkmn on IRCnet. I created this channel as a home to the Pokémon fandom of that time. I have many fond memories of that time. – From 2004 to 2008 it operated #nesvideos and #tasvideos on EnterTheGame and FreeNode. – Since 2008 it has sometimes hung out on FreeNode, sometimes on IRCnet. Today came the end to all that. So what happened? A combination of several things. Firstly, there’s me. For the past several years, I have not really been active at IRC anymore. It may sometimes take several days before I notice someone has messaged me. This reflects well how little use I have had for BisqBot, too. Then there’s Internet. BisqBot keeps disconnecting from IRC servers once in a while. FreeNode is an offender in this regard. And because I’m rarely actively present myself, it may sometimes take weeks, maybe months until I notice that BisqBot isn’t actually online, even though it has a script that is supposed to reconnect automatically. But the worst is this: Bit rot. Yes, during the years, several features that I wrote into BisqBot, that I spent a lot of time crafting with joy and putting my heart in it, suddenly stopped working, because the network service it relied on changed its format, or was shut down alltogether. But even some features that did not use an online service, stopped working eventually. Perfectly good programs can just simply stop working. It happens. Maybe they depend on libraries that are not available anymore. There are a number of reasons. The outcome is always the same: The feature can no longer be used. And as such, I decided to give a proper equivalent of an eulogy to the bot. And knowing how much time I have invested in it, during what accounts to more than half of my life, it makes me sad, even though it logically should not; it's just a script collection. And that is why I am making this post. Hopefully you enjoyed reading.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
At first I read it as "Bisqwit is gone" and thought the world is shutting down. Phew.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Noxxa
They/Them
Moderator, Expert player (4138)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Interesting how there can be such a story and history behind a set of IRC scripts. I knew it could do many things (although I mostly only used it for the occasional .seen query), but didn't know it could do half as much as is listed here. I also didn't know it was as old as it was before having to be 'retired'. Developing and maintaining it for that length of time must have been quite an experience indeed. It's somewhat sad to see it all have to end.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
Here's to BisqBot.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Former player
Joined: 8/1/2004
Posts: 2687
Location: Seattle, WA
/whois Bisqbot :(
hi nitrodon streamline: cyn-chine
Invariel
He/Him
Editor, Site Developer, Player (169)
Joined: 8/11/2011
Posts: 539
Location: Toronto, Ontario
F.
I am still the wizard that did it. "On my business card, I am a corporate president. In my mind, I am a game developer. But in my heart, I am a gamer." -- Satoru Iwata <scrimpy> at least I now know where every map, energy and save room in this game is
Joined: 3/11/2008
Posts: 583
Location: USA
Invariel wrote:
F.
Pardon? Requiescat in pace. I know I used it a time or two like six years ago…
Bisqwit wrote:
some easter eggs)
Would it be too much to ask for what some were?
Spikestuff
They/Them
Editor, Publisher, Expert player (2292)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
eternaljwh wrote:
Invariel wrote:
F.
Pardon?
Call of Duty: Advanced Warfare
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Joined: 3/11/2008
Posts: 583
Location: USA
Oh, that travesty. But that's hold F, not press F.
Tompa
Any
Editor, Expert player (2142)
Joined: 8/15/2005
Posts: 1934
Location: Mullsjö, Sweden
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
eternaljwh wrote:
Bisqwit wrote:
some easter eggs)
Would it be too much to ask for what some were?
⁃ Coins are flipped if number of sides is 2. ⁃ Cards are output if number of sides is between 52 and 54 (inclusive) and the number of rolls is not greater than the number of sides. ⁃ If 5 cards are output, poker hands are evaluated. ⁃ “Don’t be stupid” is output if number of sides < 1 or number of rolls > random number between 57 and 100 (inclusive). ⁃ If 52 cards are output, the player receives the whole pack of cards. ⁃ If the die is rolled once, there is a 1:60 chance that “the die falls off the table and a dog eats it”. ⁃ The die is “large” if number of sides is > 98. ⁃ The die is “huge” if number of sides is > 898. ⁃ The die is “enormous” if number of sides is > 98914. ⁃ The player “rolls some marbles” if number of sides is 1. ⁃ The player “rolls a <⋯> die, but the result really can not be seen”, if the number of sides > 300000. ⁃ The player “cannot have a <⋯> sided die” if the number of sides is > 12000000. ⁃ The player “rolls a blackhole and destroys the planet”, if the number of sides > 711926508163. ⁃ The player “rolls a blackhole and destroys the galaxy”, if the number of sides > 91192650816300001. ⁃ The player “rolls a blackhole and destroys the universe”, if the number of sides > 911926508163698167129671532981361600001000001. ⁃ On hardcoded occassions, the player “receives 5 cards: One from Poland, one from Vietnam, one from Congo, one from Malaysia and one from Venezuela”. ⁃ On hardcoded occassions, the player “receives a pack of post cards”.
Pokota
He/Him
Joined: 2/5/2014
Posts: 778
⁃ On hardcoded occassions, the player “receives 5 cards: One from Poland, one from Vietnam, one from Congo, one from Malaysia and one from Venezuela”. ⁃ On hardcoded occassions, the player “receives a pack of post cards”.
What occasions were hardcoded?
Adventures in Lua When did I get a vest?
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Pokota wrote:
⁃ On hardcoded occassions, the player “receives 5 cards: One from Poland, one from Vietnam, one from Congo, one from Malaysia and one from Venezuela”. ⁃ On hardcoded occassions, the player “receives a pack of post cards”.
What occasions were hardcoded?
None. I mean, when I was feeling like it, I would quickly change the source code, toggling the state of a particular "if", then issue the command on the channel, getting a tweaked result, and then quickly change the program back to how it was before anyone else uses it.