Chat Logs

  1. * nevet joined #primate
  2. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  3. * nevet joined #primate
  4. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  5. * nevet joined #primate
  6. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  7. * nevet joined #primate
  8. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  9. dreamrealblue: left #nevet?
  10. bluedreamreal: ya
  11. dreamrealpffft. I actually used it to publish a new article this morning. :D
  12. dreamrealIt's actually coming together.
  13. bluethat's great for you
  14. dreamrealokay...
  15. blueI'm genuinely happy it's coming together, however I no longer have the mental energy to be fighting this tech uphill battle on every single point. I'm just wasting my time
  16. dreamrealI get it, but I also don't see why it's an "uphill battle" at all. There are choices. I consider every one of them, and make them deliberately. There's a reason for almost everything, and there are tradeoffs based on the design.
  17. dreamrealIdeally there wouldn't be a grammar AT ALL, it'd be a chatbot that leveraged the crap out of AI to determine intent - whether an LLM or AIML. AIML is.. gross, sorry. An LLM is too expensive and would take too long. So I hedge everywhere I can, and inherit 40 years of "infobot history" as momentum, changing it where I MUST to fit the requirements, which go beyond an infobot.
  18. dreamrealThe thing the other day, on "is"? I get it. But "is" is human usage: we say "my car is a jetta" or whatever. That's how humans think. We don't think in RDF. (FWIW, I actually considered RDF for nevet.) There's a translation issue, and it's unavoidable if the system WANTS to be used, and infobots have used simple "foo is bar" triggers for, again, 40 years.
  19. bluewell, maybe you see it that way, but the way I see it, it's extremely tiring to hammer you on the karma issue for like 2 years only for you to realise it yourself and then fix it in 5 minutes. if you don't see how tiring that is, and to have the same process on every single point, then I can't explain it
  20. dreamrealYou didn't hammer me on it for two years. I said it was something to consider and tune, and I tuned and considered it, and it's STILL being tuned and considered, and the *cause* is in how humans use it *recently*. The system is designed to have momentum, and it does.
  21. blueI did. nevet has a history. he's been on the primate discord before and I kick him out of it after I repeatedly asked you to deal with the karma issue and you contended it's not a problem
  22. bluekicked*
  23. bluewhat I'm saying is, if your way of accepting improvements is that you first need for it to become a painpoint for yourself, that's fine, but that's also a huge timesink for me
  24. dreamrealDude. The karma thing IS addressed, and it's still not a pain point for me.
  25. dreamrealI weigh EVERY input that I can. The only person who's complained about the karma trigger was you, and it got fixed.
  26. dreamrealbut I get it.
  27. dreamrealTBH, the problem *I* had with all that was manifold: it was pretty easy to repair in one sense (the quickest fix was to change the subject maximum length, something that was literally a configuration change, not even a rebuild) and pretty difficult to detect and solve in others (the actual configuration change to handle and attempt to detect false positives)
  28. dreamrealThe incessant complaining made ME react poorly, because it's like saying "you know, the sistine chapel's ceiling looks great, but don't you think the robe is reacting poorly to the wind in that corner over there, Michaelangelo?" when the observer refuses to wear glasses. In terms of scoping, it was very minor.
  29. dreamrealBut that IS my issue, and it's why I actually tried to fix it.
  30. dreamrealThe amount of smoke to the actual spark was *really* high. Anyway, all good.
  31. bluethe problem is not just the karma. everything is an uphill battle. you don't care about main, the is predicate thingy is just how people use it (never heard that), and people derailing my suggestions is ok because they have a history with you. it's all fine, but it's not very conducive to ME spending more time on it. I know I'm in-your-face, but that's by DESIGN, because if I don't like something, I say it
  32. blueopenly, but none of the things I don't like is ever taken seriously or addressed, so why bother
  33. dreamrealFair. https://en.wikipedia.org/wiki/Infobot - note that the *example* uses "is".
  34. dreamrealThis is THE infobot, the bot that started all of this.
  35. dreamrealNOTHING you said has gone discarded without consideration, and of your suggestions, "is" is THE ONE that I'm drawing a line on, and I *considered* that.
  36. blueyou can draw a line on whatever you want, and possibly you DO consider the things and reject them for forever reason, but from a blackbox ME perspective, it's an uphill battle and I REALLY find that tiring. that's not AT ALL how I approach suggestions made on my projects. I will try to stop and think from the other guy's position, and often I find my position is not defensible, but more importantly, the
  37. blueother guy has a real painpoint
  38. blueand if people's painpoints accumulate, they will just lose interest, that's totally normal
  39. dreamrealLike I said, I get it. I discussed every one of those pain points with you, with "why" - because a vector doesn't exist in a vacuum, and the choices I made initially were made deliberately. I get that this feels like a fight to create an ideal, and it is: but your ideal and the ideals that exist in the eigenspace are not the same things, and this is how they resolve or learn to adapt.
  40. blueso if I tell you that accidentally typing a wrong command that happens to contain 'is', thereby creating something wholly different, instead of informing the user he made a mistake, is *terrible* ergonomics, then that's just how it is, and no amount of bot history is going to change that
  41. dreamrealI get that. But at the same time, like I said, "is" has a ton of history, and the cost of the *terrible* ergonomics is... what? $50? $75? $187,189.12? Except it's not - it's an errant message, a row in a database that nobody's going to see outside of a hilarious set of circumstances. Is it perfect? Gosh, no. Agreed. Would it be nice to FIX? ... Sure. But fixing it ALSO has a cost, that has to be
  42. dreamrealbalanced against everything else.
  43. bluebut that's what I mean. that was the same argumentation on the karma deal. it's just garbage that's gonna eventually decay anyway. but the annoyance of the moment where you write a sentence that contains dashes and the bot interjects nonsense, or if you happen to hit the is predicate and the bot replies with some nonsense, that's a real annoyance to me, and that's the seam, but it's not to you, and until
  44. blueit's not, as we saw with karma, you're not gonna change that
  45. bluewhich is again, fine, but for me that translates to an uphill battle
  46. dreamrealUnderstood. You want to optimize for zero-annoyance outcomes and information purity; respectable.
  47. dreamrealI want to optimize for capability, historical usage patterns, and pollution is acceptable in human-interaction systems; I personally think this is ALSO respectable, because if you're trusting something like an infobot to sanitize input, especially by specific metrics, you're never going to get what you want.
  48. dreamrealWikidata is AWESOME but STILL flawed EXACTLY because of this.
  49. dreamrealLike I said, there's a short-lived version of the factoid system that used RDF and an actual ontology for knowledge. It was VERY short-lived, because using it was, uh.... I'm not sure how to describe the friction. It required expertise - and a lot of it - and EXACT precision (beyond the available expertise, which means something serious) - but it WOULD be able to detect epistemology failures.
  50. dreamrealSemweb, you know! Ontologies! Information has to be consistent!
  51. dreamrealBut the cost was that putting ANY information in was a matter of an hour's work to determine that some apples were red. Compare that to "!apples is <reply>some apples are red!"
  52. blueone of the things I've recently, that being said, in the last few years, come to very strongly realise and support, is that being explicit about things in CS is more often than not the golden standard. that is: having a 'factoid' operation is worlds apart in clarity of use than patterning for some 'x is y' predicate situation. and also -- making it discoverable, as in: have a !help command that shows you
  53. blueall the available commands
  54. bluethis is also a principle I try to follow in primate: whenever possible, I try to limit the amount of magic
  55. bluemagic is GREAT in theory but awful in practice
  56. dreamrealYep, absolutely admirable.
  57. blueI can't really tell if you're being sarcastic
  58. dreamrealWhy would that be sarcastic? It's a great idea when you can do it!
  59. blueno idea, maybe I'm misreading it. and anyway if you supported it you'd already do it
  60. dreamrealOR maybe I support it and I've considered how to do it and MAYBE I've actually tried it and watched the bot get flooded off the network from it. nevet is *pluggable*.
  61. bluenevet got flooded because it had a explicit factoid operation? I don't follow
  62. dreamrealcategory creep. help is difficult because nevet has very few commands that it ACTUALLY knows about. Most of those commands are related to generalized operation control ("set this category of operations' flags, using manual keys") or authentication/authorization. Everything else is an extension, including factoids, which are optional in the system.
  63. dreamrealnevet doesn't KNOW the commands. It doesn't DISPATCH to the commands. It's a whiteboard.
  64. blueyes but not knowing about the commands is your design decision. you can't hide behind it. it's not technically impossible for it to know the commands it has
  65. dreamrealIt draws an operation on the board and says "if anything can handle this, do so," with a priority so some things get an earlier chance than others.
  66. dreamrealYou're right! It'd be able to dispatch a "help" just like it could do anything else. But there's not a specific accumulation mechanism - nor should there be - so it can't gather "all the help." The help has to be directed.
  67. dreamrealSo you COULD do "!factoid help" and get the factoid section to tell you how to use it - although that's STILL verbose.
  68. blueI don't know how you would do it in kotlin, but I can very much easily envision a bot written in js that knows about the operations and can show you a snippet of usage on writing `!help`. Why should this be a technical limitation?
  69. dreamrealIt's not a technical limitation in that sense - I mean, there's a discovery mechanism so it can use the whiteboard. But it IS a protocol limitation, and while I COULD try to address it, it's been an issue that's not really been a big deal: it's like "why do we need automatic transmissions, everyone knows how to use a clutch."
  70. dreamrealI mean, the possibility is there: we could have the operations get a "help notification" such that nevet COULD gather help text. But "help" isn't that much a requirement. Incorrect targeting HAS been, and that's a different problem.
  71. dreamrealSee? I DO think about these things.
  72. bluebut you have to assume I know NOTHING about your bot. and self-documentation is NEVER a bad idea; the most direct way to help someone who's new to nevet is tell: if you don't know anything, use !help. the bot will pm you a list of commands
  73. dreamrealSure. Actually, I might write a factoid called "!help" that actually points to a website page I haven't written yet that actually talks about the specific deployment, which means I sidestep ALL of it outside of publishing an actual web page, something that is FINALLY supported.
  74. dreamrealAnd there's also context to consider: it actually surprised me that someone wouldn't know how an infobot works; it's like being on a phone and going 'what are all these numbers? i'm talking into a mic here!!!!' - definitely a bit of an oversight on my part.
  75. bluewell, I never used one before. I also never *came* across one before, and I'd been on IRC for half forever. so it might have been limited to some circles, or just circles I wouldn't frequest. but I was never aware that 'x is y' predicate is a thing, or that there's the idea of karma that triggers on every -- or ++
  76. bluefrequent*
  77. dreamrealRight, totally surprising for me but understandable
  78. bluein fact, every single bot I'd ever come across *only* triggers on commands, not on patterns (exception: writing s/foo/bar/, made a bot repeat yourself like message with the substitution. but that's a very explicit exception that's also coded)
  79. dreamrealordinarily, you'd encounter an infobot and other people like that dreamreal idiot would go "haha, no, it works like this" and social engineering helps smoothen the rough edges. Which, uh, is generally what happened, but the edges remained for some reason.
  80. bluerepeat your last message*
  81. blueand only I'd found that behaviour annoying as heck, I gotta be honest
  82. bluebecause of how implicit it was: every time I s/ myself, the stupid thing would repeat my message, which could be very long, and essentially it would look like me repeating my own wall of text
  83. dreamrealSee, *I* find that "s/foo/bar/" thing in a bot HIGHLY annoying: I'm human, I can read (I rarely need such substitutions in teh first place), and if a human were to write that I could APPLY the changes myself in my own sensorium, thus nevet has no such feature
  84. dreamreals/teh/the/
  85. blueyes but we find it annoying for TWO DIFFERENT reasons. you find it annoying resultwise. I find it annoying triggerwise. because I don't associate s/ automatically with "I wanna trigger the bot"
  86. dreamrealsure.
  87. bluein my mind, if I can cleanly map "messages starting with !, or +, or ~, are bot messages", that's a huge ergonomics win
  88. dreamrealalthough I would not want to trigger a bot automatically with that either - I COULD see writing a sed operation, but I can't see myself willing to enable it for nevet, since *I* use nevet
  89. dreamrealRight?
  90. dreamrealusability is key.
  91. blueI wouldn't mind something like !retcon s/foo/bar/
  92. blueI think that would be ok.
  93. dreamrealSure.
  94. bluepotentially even with the ability to go back more than one message, which is sometimes unclear with a pure s/
  95. dreamrealusability
  96. * dreamreal grins
  97. blueI looked up the example on wiki, and I can't say I find it convincing, tbh
  98. blueI looked up the example on wiki, and I can't say I find it convincing, tbh <someone> wikipedia?
  99. blue <someone> wikipedia?
  100. blue <infobot> somebody said wikipedia is https://www.wikipedia.org/
  101. nevetWikipedia, the free encyclopedia
  102. blueI'm not convinced that the bot will ever know if you want to query it, or if you're actually asking someone a question
  103. bluein which latter case, the bot just annoyed everyone
  104. dreamreal... which is why nevet doesn't follow the purl model
  105. bluethe operation needs to be explicit: ?factoid wikipedia
  106. blueyou're explicitly stating you want info about wikipedia
  107. dreamrealwikipedia
  108. dreamrealwikipedia
  109. dreamrealwikipedia is <reply>Wikipedia is... look, you know what wikipedia is. It's a publicly-editable encyclopedia. Because the public can edit it, it's useful but not considered reliable beyond crowdsourcing.
  110. nevetok, dreamreal: updated wikipedia.
  111. dreamrealwikipedia
  112. nevetWikipedia is... look, you know what wikipedia is. It's a publicly-editable encyclopedia. Because the public can edit it, it's useful but not considered reliable beyond crowdsourcing.
  113. dreamrealwikipedia
  114. blueyeah, but this is exactly my criticism. having a mixture of real commands !<someterm> is bad ergonomics
  115. dreamrealwikipedia.url=https://wikipedia.org
  116. nevetok, dreamreal: updated wikipedia.
  117. blueso... !github, which is it then, the github factoid or the github command?
  118. dreamrealI can agree. But I'd also look at how the *larger group* of infobots work with factoids: factoids are the most likely direct usage. Most interactions with infobots is factoid retrieval. The usage pattern is such that you match against factoids as a default. In nevet, factoids are low priority, so it matches if nothing else does.
  119. bluethat's absolute batcrazy
  120. dreamrealThat's a command.
  121. dreamrealBecause there IS a github command installed.
  122. blueand? how can you have a github factoid?
  123. dreamrealAnd yes, it's an issue, and one where you have to choose functionality.
  124. dreamrealgithub.text=<reply>Github, github, it's our source repository! If it can't do it, holy crap who writes these
  125. nevetok, dreamreal: updated github.
  126. dreamrealgithub.text
  127. nevetGithub, github, it's our source repository! If it can't do it, holy crap who writes these.
  128. bluethat's terrible, sorry
  129. bluethat's insane
  130. dreamrealyep, I was annoyed writing it
  131. blueas a USER I have no idea if !github is a a factoid or a command
  132. dreamrealbut I'd be just as annoyed using !factoid github
  133. bluewhy?
  134. dreamrealwell, you do if you get an error, or if there're other people going "oh, do this" or if there's documentation
  135. dreamrealbecause that's the surface I use MOST. It's like... okay, you're in europe, maybe this doesn't annoy you: when you dial someone, so you use the country code when you dial on the phone?
  136. bluethat's a POOR excuse; use !f then
  137. blueuse ANYTHING but implicit
  138. dreamrealWorth thinking about.
  139. bluethis obviously also gives you nice error messages: because today you have no idea if !githob is a typo of !github or just garbage info
  140. bluein an explicit factoid world, you do; and you can leventhstein the distance and tell the user to use !github. that's amazing ergonomics
  141. bluelevenshtein*
  142. dreamrealI knew what you meant, I can read.
  143. * nevet joined #primate
  144. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  145. * nevet joined #primate
  146. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  147. * jreicher joined #primate
  148. * nevet joined #primate
  149. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  150. * nevet joined #primate
  151. * blue!~blue@user/blue changed the topic to: https://primate.run | this channel is mirrored to the Primate discord, channel #irc
  152. bluepretty big refactor upcoming: primate will stop enforcing p.constructor(Module); Module will become an interface with { name: string; setup: function }. setup exposes a param with { onInit, onBuild, onServe, onHandle, onRoute }
  153. blue(NB: I'm likely to remove p.constructor completely from pema; not convinced it is of general use due to instanceof fragility)
  154. bluemodules likely to become something of the making of: p.array(p.object<Module>({ name: p.string, setup: p.function })).uniqueBy(m => m.name);
  155. bluethis is a best-effort situation, obviously, because we can't runtime-check function shapes
  156. dreamrealI'll nice
  157. dreamrealsorry, nice
  158. bluedreamreal: ya, it's pretty cool