“if fsbot suddenly takes over your computer… he’s either part of skynet or there’s a security exploit”, e1f on #emacs

A note by the author

, (set-term "why" "unecho why not?")

^^ This is the way I’ve now set fsbot’s infobot entry for “why”. The following english-request does not do the equivalent because fsbot interprets it as a question:

, why is unecho why not?

- Deego, May 2014

Bugs or TODO's

<alin> , '("hello" . "hello")
<fsbot> ERROR: Wrong type argument: listp, "hello"
<belito> fsbot: , t8 es en tienes videos de emacs
<fsbot> try:  ,,, ,memo-help ,paren hey, Iconifying,_Deiconifying,_and_Hiding_Frames locking,_non-strict_(RCS) pages, say, h\
<indio> Oh! A bug!
<indio> fsbot: t8 es en tienes videos de emacs
<fsbot> you have emacs videos

<indio> ,t8 en es I don't know. I'm sorry.
<fsbot> Pongo t sé. I m apesadumbrado.
<indio> ,t8 en es "I don't know. I'm sorry."
<fsbot> No sé. Estoy apesadumbrado. [this is the good one]

<Odin-LAP> deego: I know how to get the bot irresponsive for a while,
	   actually. Delete something from a large entry. :)

You can make fsbot more than unresponsive, if you mapcar a circular list, fsbot dies. 😟

<deego> maybe fsbot shouldn't respond to double comma unless the double comma
	is "preceded" by \b
<deego> rather, whitespace or ^						
<xah_> deego: yeah, agree.

<ams> <make fsbot join ##hurd>
<deego> ams: in general, i thought fsbot's db would become too stretched to be
	useful in #emacs if we make the same bot instance know about a lot of
	different topics..						
<e1f> distributed bots each with a different knowledgebase
<e1f> so if one doesn't know it, it queries the others?
<johnsu01> we need to get back to work on the inter-bot protocol :
<ams> Your reasons make sense, I guess..
<ams> deego: Maybe it would make sense to have fsbot keep seperate databased
      for channels, and one general.					
<indio> Please no.							
<deego> (for example, if we query him for ,schism, we want him to just point
	us to the emacsvxemacs schism, not show us 4 choices, one for emacs,
	one for mysql, etc)
<ams> Oh, right, you can query fsbot...
<xah> there's a schism in mysql?
<deego> s/point us to/show us the answer for
<deego> xah: dunno
<bkhl> Well, it makes sense to me to allow a channel-specific definition.
<bkhl> But it should fall back to the "global" definition, I think.	[17:39]
<deego> how?
<ams> bkhl: The problem is when you query fsbot. :/
<ams> bkhl: I tihnk it makes sense if you ask for FOO in the channel, and in
      privmsg, you should get the same response.
<bkhl> ,in #emacs schism is see emacsvxemacs
<bkhl> Or something.
<bkhl> ams: that's a good point.					
<bkhl> Though it could do an /whois and see which channels the user is in.
<ams> bkhl: What if the user is in two channels that fsbot is already in?
<bkhl> ams: then show both, or whatever.
<bkhl> It could _say_
<ams> Would be a lot of data to send.					
<deego> hm, what if the user could just say ,foo is #emacs bar; foo is also
	#hurd baz; etc.
<bkhl> "in #emacs, schism is"
<deego> in that case, that is interpreted as a channel-local term..
<deego> ah
<deego> nicer syntax
<ams> I think that having one bot for all free software related projects would be nice.								
<bkhl> ams: of course, if you want that sort of scope, it almost makes more sense to build it into freenode...
<indio> Channel specific would be weird, for instance there is ##hurd and #hurd.
<ams> indio: You could make groups.
<indio> Why not just properly name the entry ?			
<bkhl> indio: that's too easy.
<indio> :)
<ams> indio: What if project FOO and project BAR have the same name for two different thingies?						
<bkhl> I guess you can then make a redirection in the entry.
<deego> but the problem remains even after namespacing.. you'd want.. in #emacs, schism is redirect emacsvsxemacsschism :)
<ams> Right.
<indio> ams: foo-thinguie bar-thingie ?
<twb> You make it overloadable.						
<twb> You can assign data to a top-level keyword, or to a channel-level keyword.
<indio> They will be exceptions...
<twb> e.g. in #emacs planner would talk about planner-el, but elsewhere
      planner would talk about GNOME's planner app
<ams> indio: foo-thingie -- frobs the bits in machine
<indio> And if you asked ,thingie fsbot would say see bar-thingie foo-thingie
<ams> indio: foo-thingie (for bar project) --frobs the bytes in your toes.
<deego> indio: that's the current behavior
<ams> Oh..								[17:48]
<indio> yup, i like the was it fsbot is now.
<deego> when it sees multiple possibilities, example ,,need
<fsbot> try:  HowSemanticFulfillsThoseNeeds NeedHelpWithIndentations..
	WeNeedToolsToOrganize WhatAreTheNeedsOfProgrammers
<ams> deego: (re: hurdie is ##hurd) Though, one could argue equally for hurdie, it is a spanish bot, so it might have spanish definitions.
<ams> Which brings up another interesting point....
<Riastradh> You could implement internationalization features for the bot so that it would respond based on the channel...
<ams> Riastradh: What if you are polylingual?
<indio> ,libtranslate
<fsbot> From memory, libtranslate is [0] a library for translating text and
	web pages between natural languages. Its modular infrastructure allows
	to implement new translation services separately from the core
	library. ..[Type ,more]
<deego> ooh
<Riastradh> ams, you mean, 'what if the channel is polylingual?'
<indio> fsbot could remember each preference, could he ?		[17:53]
<indio> Being at #emacs-es made me feel that if fsbot could translate
	   existing entries would help helpless newbies at #emacs-es.	[17:54]
<ams> deego: Actually, I think using something like ,CHANEL-WORD would be ok.
<deego> indeed, nice ideas, i will store this conversation.
<indio> And also have language slots, like Gentoo has for packages.
<ams> deego: Sometimes you actually want the emacs stuff in another channel,
      often people in #gnu ask some question, and it is more work asking them
      to join #emacs, than to simply say ,foo.				[17:55]
<deego> and #emacs-es looks much easier to implement without breaking
	anything.  something in its .emacs says that all msgs to #emacs-es
	should undergo a translate attempt: just like what google/ff extension
	does: if it is already english (spanish in this case)), it is left
	alone..								[17:56]
<indio> I wouldn't like to see fsbot discriminate in groups.
<deego> ams: i see your point
<indio> Let's be the lab rats at #emacs-es!
<ams> deego: Then for seperate languages you could have fsbot-lang or whatever.
<ams> deego: Though, that might not make sense either, since packages are
      called the same in whatever language. :?				[17:58]
<indio> With the language slots, if there wouldn't be a term in Spanish,
	   fsbot could translate the one that existed.			[17:59]
<indio> till the slot gets filled
<indio> And that way here in #emacs there won't be any noticeable change.
<deego> neat
<bkhl> ams: ,, erbot
<fsbot> bkhl, I heard erbot is ...

should result in fsbot addressing newnick rather than bojohan. bpalmer’s idea.

<kensanata> deego: yeah, fsbot should listen to all messages saying ...\+\+ or
            ...\-\- on the channel...
kensanata> maybe fsbot should have a control channel.  there we could tell
            fsbot to say stuff on other channels.			[09:56]
kensanata> trick some newbies and all that.  :)
<Lukhas> kensanata: hmmm
<deego> :)
<Lukhas> i don't think that's a good idea :)
<Lukhas> flooding and so on
<kensanata> sure, we kick evil-doers from the control channel.
*** vpalle ( has quit: Client Quit		[09:58]
<deego> it will sure be fun, we can always disable it :) /me puts it on a todo
<kensanata> we could also have a semi-open system...  maybe an entry that
            holds the password, and then we can /msg fsbot #emacs foobar
            Hello, my padwan learner!					[09:59]
<Lukhas> keep in mind that newbies coming here to ask question won't all find
         this funny	


It would be cool if fsbot would output the number of the entry recently added so…

,CanalEmacsEsNovedades is also Planner 3.41:
Added entry to the term “CanalEmacsEsNovedades

one can inmediately move the entry to a different position without having to query fsbot. Maybe also be able to insert an entry to a certain Nth place.

<shapr> deego: maybe ,, active could say what users currently on the channel have spoken in the last twenty minutes?

<resolve> actually, something which might be nifty - when a person
joins who hasn't been here before, fsbot sends a message welcoming,
telling them to ask away, etc