←2021-05-22 2021-05-23 2021-05-24→ ↑2021 ↑all
00:07:41 <esolangs> <ghosthell> Non Terrestrial Or Terrestrial Beings which can help me with Trans Universal Transportation (Please PM Me)9
00:07:58 <cd> wat
00:10:06 <b_jonas> cd: it's just the usual "psychic needed, you know where to apply" call. if you don't have alien technology to time travel and build pyramids, don't worry about it.
00:10:41 <esolangs> [[RCEM]] https://esolangs.org/w/index.php?diff=83194&oldid=83191 * Kaveh Yousefi * (-460) Changed the Common Lisp interpreter, basing it upon a hash table instead of a vector, such that a potentially infinite tally of cells as well as a negative indices become possible.
00:10:43 <cd> i found some funny looking shapes in my back yard, i bet aliens did it
00:12:58 <fizzie> Not bridging joins and parts makes those things come a bit out of the blue, but bridging them would be just awful.
00:23:00 -!- sprock has joined.
00:27:52 <cd> `` cat $(which mkx)
00:27:53 <HackEso> key=$(mk "$@") && echo "$key" && chmod +x "$key"
00:28:17 <cd> `` cat $(which mk)
00:28:18 <HackEso> ​[[ "$1" == ?*//* ]] || { echo usage: "mk[x]" file//contents >&2; exit 1; }; key="${1%%//*}"; value="${1#*//}"; echo "$value" > "$(echo-p "$key")" && echo "$key"
00:41:15 -!- ChanServ has set channel mode: +o fizzie.
00:41:19 -!- fizzie has set channel mode: -t.
00:41:22 -!- fizzie has set channel mode: -o fizzie.
00:42:37 -!- fizzie has set topic: Welcome to the liberated church of esoteric programming proselytization, propagation, and pronunciation! | https://esolangs.org | logs: https://logs.esolangs.org/libera-esolangs/ | this channel is bridged, see "brctl: help ignore" on how to opt out.
00:50:24 <fizzie> Needs some actual integration work, for now I'm just running a parallel instance of the exact same frontend except with a different root path.
00:59:38 <b_jonas> fizzie: yeah, you told us that you're using an IRC library called IIRC "multibot" that you find hard to adapt to what you want
01:00:40 <cd> multibot is hackeso's lib. Now that i've looked through it, it's... interesting
01:00:50 <cd> very weird tbh
01:05:19 <fizzie> Yeah, multibot's for HackEso, and it is pretty quirky. For esolangs (logging, wiki recent changes, bridging) I'm using my own custom C++ thing, so any deficiencies in it I can just blame on myself.
01:06:04 <cd> tbh multibot is so simplistic it probably isn't too hard to write a replacement
01:06:28 <cd> it's just over 600 lines of C
01:06:30 <cd> not bad
01:07:15 <fizzie> Yeah, it's like the bare minimum of C to handle parsing the IRC protocol, and executing external executables (or scripts) in response to events.
01:07:29 <fizzie> It doesn't even do the sockets, it relies on socat for that.
01:09:24 <fizzie> The other bot's basically https://github.com/fis/bracket/ which is my homegrown single-threaded C++ event loop and other utilities of inconsistent quality.
01:10:43 <b_jonas> I sort of have a long-term plan to write my own IRC client thingy. I have some existing IRC code that is terrible but contains useful notes about the IRC protocol and freenode that I'll be able to use.
01:16:51 -!- Wezl has quit (Ping timeout: 272 seconds).
01:26:19 -!- dbohdan has joined.
01:56:48 <Sgeo> Ada (or a specific compiler actually) has magic variable names:
01:56:49 <Sgeo> "Or give the variable a name that contains any of the strings discard dummy ignore junk unused (case insensitive)
01:56:49 <Sgeo> "
01:56:57 <Sgeo> (To suppress unused variable warnings)
02:11:12 -!- kluk has joined.
02:13:49 <esolangs> [[Numberlang]] N https://esolangs.org/w/index.php?oldid=83195 * Batata * (+4915) Created page with "{{infobox proglang |name=Numberlang |author=[[User:Batata|Batata]] |year=[[:Category:2021|2021]] |class=[[Turing Complete|Turing Complete]] |files=<code>.numl</code> }} '''Num..."
02:14:55 -!- simcop2387 has joined.
02:16:15 <esolangs> [[Numberlang]] https://esolangs.org/w/index.php?diff=83196&oldid=83195 * Batata * (+4) /* Reverse Cat */
02:17:43 <esolangs> [[User:Batata]] https://esolangs.org/w/index.php?diff=83197&oldid=83163 * Batata * (-479)
02:18:54 -!- user3456 has joined.
02:19:06 <fizzie> Reminds me of GCC's magic fall-thru comment, with a configurable sensitivity.
02:19:21 <fizzie> https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html -Wimplicit-fallthrough=n
02:20:31 <fizzie> Level 2 matches /.*falls?[ \t-]*thr(ough|u).*/ case-insensitively, but it's the list of level 3 that's really the amusing one.
02:21:25 <fizzie> With gems like: [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )? fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)?
02:21:56 <fizzie> Though I guess comments for silencing warnings or linters are a little more common.
02:22:24 <fizzie> There was definitely something (else) where you could do an `unused_` prefix on variables though.
02:23:16 <fizzie> I think that's pylint.
02:23:31 <cd> the very first major mod to hackbot i made was allowing it to use /me
02:23:40 <cd> because yes
02:30:27 <esolangs> <zzo38> I found a NSA document; it looks like it was printed out from a MediaWiki-based web page and then OCR to convert it to text.
02:31:07 <fizzie> Presumably not our wiki, though?
02:35:29 <cd> huh
02:38:31 -!- cd has quit (Quit: leaving).
02:38:42 -!- cd1 has joined.
02:41:13 -!- cd1 has changed nick to cd.
02:42:04 <esolangs> [[MarioLANG]] M https://esolangs.org/w/index.php?diff=83198&oldid=83182 * HaleyHalcyon * (-13)
02:42:08 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:45:09 <esolangs> [[Numberlang]] https://esolangs.org/w/index.php?diff=83199&oldid=83196 * Batata * (+18)
02:46:00 <esolangs> [[Numberlang]] https://esolangs.org/w/index.php?diff=83200&oldid=83199 * Batata * (+16) /* Cat */
02:47:47 <esolangs> [[Numberlang]] https://esolangs.org/w/index.php?diff=83201&oldid=83200 * Batata * (+18) /* Truth-Machine */
03:19:02 <esolangs> [[Special:Log/newusers]] create * 8Epic8 * New user account
03:26:23 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83202&oldid=83175 * 8Epic8 * (+167)
03:57:35 <b_jonas> Sgeo: some languages use variables starting with an underscore to suppress unused variable warnings: in perl and rust it really just suppresses the warnings (in perl you rarely need it because the warning only applies to globals, not lexical locals), but I think in some languages (was it Prolog? Haskell? I can't remember) it is more magical and makes them unique even if the name is repeated
03:58:01 <b_jonas> fizzie: if it's from our wiki, my guess is the BANCStar one
04:00:36 <b_jonas> fizzie: as for the fallthrough, there's now also a new-style attribute [[fallthrough]] for that (both in C and C++)
05:04:44 <esolangs> [[Special:Log/move]] move * Ilaylevy * moved [[Yogurt]] to [[Dead]]
05:05:31 <esolangs> [[Dead]] https://esolangs.org/w/index.php?diff=83205&oldid=83203 * Ilaylevy * (+7)
05:40:55 <b_jonas> TIL from https://www.youtube.com/watch?v=tyixMpuGEL8 why the transparency or alpha channel of images is sometimes called the "matte" channel
06:25:52 <esolangs> [[Stun Step]] https://esolangs.org/w/index.php?diff=83206&oldid=57054 * Bangyen * (+108)
06:46:49 <esolangs> <zzo38> Write about ZZT, Free Hero Mesh, tarot cards, and the gemini protocol in the wisdom file, next.
06:47:47 <b_jonas> `? tarot
06:47:48 <HackEso> tarot? ¯\(°​_o)/¯
06:53:23 <nakilon> I'm really thinking about drawing a line in an IRC bot between handlers that are hardcoded in it and those that are deployed as a different app serverless
06:55:13 <nakilon> the hot reload capability would stop relying on bot implementation/language ability to do it
06:58:18 <nakilon> essentially since Ruby is very dynamic it's trivial and you use the "load" method that reloads the file where you put your "constants", methods and methods stored in constants (constants are identifiers of Modules) but there is still a room for coder's error about the runtime state
06:59:19 <nakilon> while writing the serverless app you are supposed to think stateless and can apply measures to be sure they are called only once
06:59:54 <nakilon> another approach would be just to call a subprocess of course
07:01:01 <nakilon> but that would still need you to update the source code on bot machine that is another risk to kill the bot
07:35:26 -!- dbohdan has quit (Read error: Connection reset by peer).
07:36:20 -!- dbohdan has joined.
07:40:32 <Taneb> Does anyone know an easy-to-compute metric on permutations of letters such that "carthorse" is close to "horsecart" but far from "orchestra"?
07:46:14 <nakilon> today's gif and these comments remind me how I (always unsuccessfully) try to teach people IRC https://i.imgur.com/ZH7715s.png
07:49:39 <imode> Taneb: you could measure the distances the letters moved.
07:50:11 <imode> find all positions of the letters in the first word in the second word, compute their differences, add the differences up.
07:50:25 <nakilon> Taneb if it exists it should be somewhere here https://en.wikipedia.org/wiki/String_metric
07:50:29 <imode> either that or something like that via hamming distance.
07:50:44 <Taneb> imode: that would make carthorse far from horsecart, wouldn't it?
07:51:03 <imode> Taneb: yeah, valid. you could use some form of common edit distance algorithm.
07:51:58 <imode> there's probably something efficient for the permutations case.. hm.
07:52:41 <imode> maybe adding and then taking the average?
07:52:44 * imode shrugs
07:52:58 <Taneb> Hmm, what about something with adjacencies?
07:54:10 <esolangs> [[I-ok]] N https://esolangs.org/w/index.php?oldid=83207 * Kwes * (+784) Created page with "= i-ok = A small 1 digit esolang, for simple 1 letter usage. {| class="wikitable" |+ |- ! chars !! desc |- | i+ or i++ || adds |- | i- or i-- || subtracts |- | i* || multiple..."
07:54:13 <imode> actually if you let the differences be negative, it might cancel out.
07:54:29 <esolangs> [[I-ok]] https://esolangs.org/w/index.php?diff=83208&oldid=83207 * Kwes * (-9)
07:55:50 <nakilon> also there is nothing matching here https://en.wikipedia.org/wiki/Edit_distance
07:56:00 <nakilon> so I assume the problem just isn't solved yet or is unsolvable
07:57:27 <nakilon> if you can assume that the string can be split only in two you may try to build something on top of length(str) splits
07:59:55 <nakilon> or
08:02:02 <nakilon> str.chars.each_cons(2).sort.map(&:join)
08:02:12 <nakilon> results in
08:02:18 <nakilon> ["ar", "ca", "ho", "or", "rs", "rt", "se", "th"]
08:02:25 <nakilon> ["ar", "ca", "ec", "ho", "or", "rs", "rt", "se"]
08:02:26 <nakilon> ["ch", "es", "he", "or", "ra", "rc", "st", "tr"]
08:03:09 <nakilon> and now you implement Levenshtein between these "two-byte-char" string
08:05:22 <nakilon> you see here it's distance 2 between carthorse and horsecart
08:07:36 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=83209&oldid=83094 * Kwes * (+11) added I-ok
08:09:43 <esolangs> [[I-ok]] https://esolangs.org/w/index.php?diff=83210&oldid=83208 * Kwes * (+23)
08:11:13 <esolangs> [[I-ok]] M https://esolangs.org/w/index.php?diff=83211&oldid=83210 * Kwes * (+0)
08:11:33 <esolangs> [[I-ok]] https://esolangs.org/w/index.php?diff=83212&oldid=83211 * Kwes * (+1)
08:12:00 <esolangs> [[I-ok]] M https://esolangs.org/w/index.php?diff=83213&oldid=83212 * Kwes * (+1)
08:12:36 <myname> you could maybe do some substring matching like the bioinformatics people do all the time to find the string "horse" in both occurences, remove it and repeat
08:12:51 <esolangs> [[I-ok]] M https://esolangs.org/w/index.php?diff=83214&oldid=83213 * Kwes * (+0)
08:14:51 <nakilon> O(n)=python
08:18:12 <esolangs> [[User:Kwes]] https://esolangs.org/w/index.php?diff=83215&oldid=83171 * Kwes * (+23)
08:19:30 <myname> if you make some reasonable threshold, it should perform pretty well
08:21:56 <esolangs> [[I-ok]] M https://esolangs.org/w/index.php?diff=83216&oldid=83214 * Kwes * (+30)
08:22:57 <esolangs> [[I-ok]] M https://esolangs.org/w/index.php?diff=83217&oldid=83216 * Kwes * (-6)
08:22:59 <nakilon> if you don't know in how many substrings it should be splitted it's N^N
08:23:17 <nakilon> you try h, ho, hor, hors, horse on each level
08:23:22 <nakilon> if I understood you correctly
08:24:34 <myname> i wouldn't try it that way. there should be algorithms to find longest substrings in O(n^2). you go through that as long as the substring you find is larger than something like O(sqrt(n)) to allow for reasonable shrinking and after that you just do levensthein or something
08:35:00 <nakilon> oh btw, in my approach you don't need the O(n^2) levenshtein, because lists are sorted already
08:35:51 <nakilon> so it's O(n) to split, O(n log n) to sort and then O(n) again to calculate distance
08:36:08 <nakilon> n+m, whatever
08:37:19 <myname> how would you do that in your example? "horse" cannot be put together by two-byte-strings
08:38:52 <nakilon> I don't put the horse together, I operate is as a ["ho", "or", "rs", "se"] sorted array
08:40:25 <nakilon> you can see this subarray included in two arrays in my copypasta above but not in the third one because there was no horse in it
08:40:49 <nakilon> sure it depends on the length of strings, it they are 100 chars long there might be fake horses
08:41:39 <nakilon> *if
09:02:16 -!- lambdabot has quit (*.net *.split).
09:02:16 -!- simcop2387 has quit (*.net *.split).
09:02:16 -!- jix has quit (*.net *.split).
09:02:16 -!- keegan has quit (*.net *.split).
09:02:16 -!- sprock has quit (*.net *.split).
09:02:16 -!- sknebel has quit (*.net *.split).
09:02:16 -!- shikhin has quit (*.net *.split).
09:02:16 -!- V has quit (*.net *.split).
09:02:16 -!- int-e has quit (*.net *.split).
09:02:17 -!- Taneb has quit (*.net *.split).
09:05:32 <nakilon> \help
09:05:44 <nakilon> is prefix \ bot-free currently?
09:07:43 -!- tech_exorcist has joined.
09:07:43 -!- simcop2387 has joined.
09:07:43 -!- sprock has joined.
09:07:43 -!- jix has joined.
09:07:43 -!- lambdabot has joined.
09:07:43 -!- keegan has joined.
09:07:43 -!- V has joined.
09:07:43 -!- Taneb has joined.
09:07:43 -!- shikhin has joined.
09:07:43 -!- sknebel has joined.
09:07:43 -!- int-e has joined.
09:13:39 -!- tech_exorcist has quit (*.net *.split).
09:13:39 -!- lambdabot has quit (*.net *.split).
09:13:39 -!- simcop2387 has quit (*.net *.split).
09:13:39 -!- jix has quit (*.net *.split).
09:13:39 -!- keegan has quit (*.net *.split).
09:13:39 -!- sprock has quit (*.net *.split).
09:13:39 -!- sknebel has quit (*.net *.split).
09:13:39 -!- shikhin has quit (*.net *.split).
09:13:39 -!- V has quit (*.net *.split).
09:13:39 -!- int-e has quit (*.net *.split).
09:13:39 -!- Taneb has quit (*.net *.split).
09:19:46 -!- tech_exorcist has joined.
09:19:46 -!- simcop2387 has joined.
09:19:46 -!- sprock has joined.
09:19:46 -!- jix has joined.
09:19:46 -!- lambdabot has joined.
09:19:46 -!- keegan has joined.
09:19:46 -!- V has joined.
09:19:46 -!- Taneb has joined.
09:19:46 -!- shikhin has joined.
09:19:46 -!- sknebel has joined.
09:19:46 -!- int-e has joined.
09:20:01 -!- sebbu has joined.
09:28:16 -!- Sgeo has quit (Read error: Connection reset by peer).
09:38:15 -!- kspalaiologos has joined.
10:29:23 -!- arseniiv has joined.
10:32:45 -!- lleo has joined.
11:38:02 -!- Thelie has joined.
11:53:59 <esolangs> [[Special:Log/newusers]] create * Nooder Coob * New user account
12:06:25 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=83218&oldid=83202 * Nooder Coob * (+355) /* Introductions */
12:06:36 <nakilon> "and can apply measures to be sure they are called only once" -- forget this, since the commands I want to deploy are made in a supported language you can run Cloud Functions instead if Cloud Run so it's already solved on their side
12:07:55 -!- arseniiv has quit (Ping timeout: 272 seconds).
12:19:14 <esolangs> [[DotSnap]] N https://esolangs.org/w/index.php?oldid=83219 * Nooder Coob * (+1094) Created page with "== DotSnap Language == ==== What is the DotSnap Language ==== The DotSnap Language is a language dedicated to my stupidity, craziness, and vast imagination yet bounded with my..."
12:25:24 <nakilon> what a description
12:26:24 <fizzie> b_jonas: Go doesn't use an underscore prefix, but it does make the plain _ a special "blank identifier", which you can use for unused parameters, or in a multi-value assignment for values you don't care about, or a few other similar cases. And you can freely repeat it.
12:28:25 <nakilon> in ruby _ is a valid identifier and also you are allowed to use the same identifier as parameters or multi-vaue assignment, so people use _ in the same way
12:30:42 <fizzie> Speaking of bot architectures, I did almost complete a refactoring once of our esowiki/esolangs bot where I left just the "critical" bits (IRC connection management and channel logging) in the executable, and all other logic would have been in separate processes that connect to it over an RPC thing and register for callbacks for events they care about. Mostly to avoid having to restart it so often when
12:30:48 <fizzie> messing about, and also to avoid having the logging go down if some less important bit breaks. Not quite as cloudy, but a bit in that direction.
12:33:03 -!- lleo has left (Leaving).
12:37:31 <esolangs> <fizzie> zzo38: Oh, by the way -- you might have said something once about ignoring the wiki updates? I made the same bot (esowiki) do the bridge from the experimental Libera channel, so if you're ignoring it completely you might have been missing out on discussions happening over there. Sorry about that.
12:45:28 <b_jonas> Taneb: does it only have to work on words without repetitions?
12:48:09 <fizzie> The letter bigram bag distance thing sounded reasonable to me.
12:48:42 <b_jonas> fizzie: "the plain _" => yes, the plain underscore is a special keyword in rust too, when you use it in a pattern it can behave differently from using a variable that you only mention once
12:49:20 <b_jonas> fizzie: a refactor of esowiki? nice
12:50:01 <b_jonas> "and also to avoid having the logging go down if some less important bit breaks" => what happens when the web server breaks like it sometimes does from lurk mode?
12:51:28 <fizzie> Fortunately that already doesn't affect logging, just serving, since it's already a separate process. In the post-refactoring model, it'd probably be much the same, except it'd use the standard RPC mechanism instead of the custom-built protocol it now does to implement stalker mode.
12:52:09 <fizzie> If you can call "connect to a socket and just read protos from it" a protocol. Well, maybe: both contain the substring "proto". But I digress.
12:53:43 <fizzie> Incidentally, stalker mode doesn't yet work for this channel's logs.
12:54:00 <b_jonas> an RPC mechanism? in my vague plans for the vaporware irc client, the process that keeps the IRC connection alive and does only a few things so you rarely need to replace it just logs (almost) all traffic from the IRC connections into an append-only file, plus notifies subscribers after the file changes, that's the whole RPC mechanism for reading. of course that just pushes the harder part to other
12:54:07 <b_jonas> components. writing would be a bit more complicated.
12:55:31 <fizzie> That's a reasonable model too. I was going to use the "brpc" system, because, well, because it's there.
12:55:31 <esolangs> [[User:Batata]] https://esolangs.org/w/index.php?diff=83220&oldid=83197 * Batata * (+1)
12:55:32 -!- arseniiv has joined.
12:55:42 <b_jonas> admittedly reading also might be complicated, because I might want to exclude some sensitive information like passwords from the logfile yet temporarily relay them to a reader process
12:57:21 <b_jonas> though I could put them to a separate short-term logfile
12:57:34 <b_jonas> I dunno, ideally I never want to handle passwords read from IRC again
12:57:55 <esolangs> [[I-ok]] M https://esolangs.org/w/index.php?diff=83221&oldid=83217 * PythonshellDebugwindow * (+55) Clarify
12:58:10 <esolangs> [[I-ok]] M https://esolangs.org/w/index.php?diff=83222&oldid=83221 * PythonshellDebugwindow * (+0) fix
12:58:44 <fizzie> I got the impression one of Libera's (well, Solanum's) vendor-specific IRCv3 mechanisms was this thing where you get an account tag for every message, so that clients can easily know which identified user account a message came from.
12:58:51 <esolangs> <zzo38> fizzie: Is there a regular expression to distinguish the messages?
12:59:01 <b_jonas> fizzie: freenode already has a mechanism for that
12:59:24 <b_jonas> I even have a bad implementation for it that works correctly and so I can use it as reference for a good implementation
12:59:46 <b_jonas> the protocol details are a bit complicated because it consists of three different parts:
13:00:02 <esolangs> <fizzie> zzo38: All the bridged messages start with "<nick> ..." and all the wiki updates start with "[[Page title]]", though the latter has color codes in it.
13:00:42 <esolangs> <fizzie> So I guess ^< should work for detecting the bridged traffic. You can see how they look like in the logs, of course.
13:01:06 <b_jonas> (1) you use extended WHO to read the account names when you join a channel, (2) you can opt in to the server sending extended JOIN messages that contain the account name of anyone joining later, and (3) you can opt in to ACCOUNT messages that the server sends whenever someone you see on a channel changes their account (by logging in to nickserv or logging out)
13:01:23 <b_jonas> I didn't know there was a new mechanism
13:01:45 <b_jonas> do they also have a tag to identify connections uniquely even if they're not joined to a channel?
13:01:46 <fizzie> I didn't look at it so closely. Actually, looks like there's a standard IRCv3 tag: https://ircv3.net/specs/extensions/account-tag
13:01:54 <b_jonas> as in, when they're private message me
13:02:09 <fizzie> That one ^ should do, since it's in every message.
13:02:12 <b_jonas> fizzie: well ok, but does libera actually implement that?
13:02:35 <b_jonas> fizzie: well that's more useful, though not quite what I asked about
13:02:36 <fizzie> I didn't really find the docs of the Libera/Solanum tag, so I only had a very vague impression it was something similar.
13:03:16 <fizzie> From a Libera server: Capabilities supported: account-notify away-notify chghost extended-join multi-prefix sasl tls account-tag cap-notify echo-message solanum.chat/identify-msg solanum.chat/realhost
13:03:35 <fizzie> So "account-tag" *is* mentioned there, but the one I was confused about was "solanum.chat/identify-msg".
13:03:46 <b_jonas> I also want a uniqe tag to identify the connection to the server, even for unidentified nicks, so that if a nick privmsgs me twice and they're not joined a channel, I can tell if they're the same connection, and more usefully, to send a private message that the server won't deliver to an unrelated person with the same nick who connected or nicked to that nick shortly before I send them the message
13:04:09 <b_jonas> I know you can send a message to a nick!user@host as an approximation, but that's just not the same
13:04:36 <b_jonas> and I know the servers do have such unique tags, they use them when the servers talk to each other
13:05:12 <b_jonas> "I didn't really find the docs" => thanks, I can just ask on #libera after the drama gets lower, the freenode admins were usually very helpful about that sort of thing
13:05:37 <fizzie> https://github.com/solanum-ircd/solanum/pull/4 implements it, and the comments said they're working on making those URLs link to the documentation, but they didn't yet.
13:06:08 <fizzie> Looking at the code, it's probably something else.
13:08:31 <b_jonas> there are also some other small but useful features of freenode's old server and services that libera still supports and that I'm glad for, such as that it resends the 005 replies when you ask for VERSION -- not every IRC server does that, and it's a nice QOL improvement that lets you more safely make it possible that you can emergency hot-restart even the process that is connected to IRC while keeping
13:08:37 <b_jonas> the connection alive even if it has a memory corruption and so its knowledge about its connections is mangled
13:08:43 <b_jonas> and yes, I know that's a stupid thing and I'd never do that in production, but still
13:10:47 <b_jonas> those 005 reply lines helpfully contain my nickname and the nick/channel case folding rule, all of which are really essential state to follow an IRC connection, and contain the network name, useful when you inherit multiple sockets and have no idea which one is supposed to be what
13:14:34 <b_jonas> I wish the IRC protocol was at least built such that when the server sends you a NICK/JOIN/PART/KICK message, it distinguishes whether it applies to your connection or someone else, so you don't have to know your own nick, which can change, to decide, but that seems too late to fix
13:15:21 <b_jonas> but I haven't seen an extension that does that
13:15:50 <b_jonas> for PRIVMSG/NOTICE it's easy, you only get a PRIVMSG targeting a nick if it's you
13:25:25 <b_jonas> I guess that's like the sort of things that compiler authors face when there's an existing programming language that used to be well-defined but then optimization technology marches on and suddenly they have to figure out exact semantics of what the optimizer is allowed to do, in smaller scale
13:27:11 <b_jonas> and then people who write interesting C or C++ or Rust programs also want to know the exact semantics to tell whether current or future optimizers are allowed to break their code
13:28:17 <b_jonas> and then you have to go to freenode/#freenode to ask about the guarantees of how the servers are in a forest, there can't be cycles, and what that implies about the ordering of messages originating from other servers, or to oftc/#llvm to ask about the optimization guarantees for floating point vector addition
13:28:42 <b_jonas> even though in production code you wouldn't want really to rely on those guarantees anyway
13:28:54 <b_jonas> it's not just me that happens to, right? I mean this is #esoteric
13:31:57 <b_jonas> and then you wonder about how that limits future optimizers, including how you'll have to modify TCP when we colonize Mars and then make an IRC-like thing that allows cycles and breaks those guarantees when we colonize a third place with pairwise significant light-speed limit information delay among the three
13:37:24 <b_jonas> I'm worried about the TCP thing by the way. with how slow updating basic infrastructure like that is, I really hope someone is working on suitable protocols in advance. there are a lot of theoretical problems, like you can't continue https anywhere if you want to cache webpages on every planet for faster reaction time without everyone who makes webpages having to pay for a server on every planet and
13:37:30 <b_jonas> moon. there might be a rebound from https anywhere to allowing caching HTTP proxies for that. at least I hope so, because the alternative where only big companies like facebook and google can host webpages would suck.
13:41:01 <fizzie> Hmm, well. I think Cloudflare's CDN services are pretty affordable (they've got that whole Cloudflare for Individuals free tier and all), but it would be kind of a shame if you'd be *forced* to rely on services like that.
13:41:40 <b_jonas> huh, why can't I log in to the internet bank? did they break the webpage?
13:41:53 <fizzie> They moved it to Mars.
13:42:23 <b_jonas> fizzie: they might be affordable *right now*, perhaps still if we only have presence on two or three planets (like how now many providers have one server in Europe, one in America, and one in Australia)
13:42:34 <b_jonas> but that doesn't scale well to a Galactic Empire
13:43:12 <b_jonas> fizzie: they could, but they'd notify me of changes that can potentially cause difficulties in accessing the internetbank interface
13:43:16 <b_jonas> good, now the webpage reacted
13:44:35 <fizzie> Cloudflare's CDN presumably has a *lot* of Points of Presence on Earth, so from a simple numbers perspective, if you lower the density to one / celestial body, I think you can cover a lot of ground^W space. Though the way interstellar commerce works might turn out to be *quite* different.
13:46:28 <fizzie> We have a bank we no longer have any products from, and they didn't say anything about what happens to the online banking credentials. So I tried it out (once right after, and once a week later), and both times it gave all the signs of passing through a login page, but then when it should have shown the landing dashboard page, the first time it gave an error message, and the second time it just gave a
13:46:34 <fizzie> blank page with an URL that had an error code in it.
13:46:57 <fizzie> I don't know if they've just not considered the situation where someone has their online banking account but no active products.
13:47:37 <fizzie> I'd kind of preferred to have closed the online thing "properly". But I'm not sure I want to start calling their customer support about it, especially now that I can't do it via a message sent through the online system.
13:49:54 <b_jonas> maybe we invent practical homomorphic encryption by then (plus obviously bigger and faster hardware available for cheap, which I sort of assume with space colonization), that would make this easier, the user would just download a cached copy of a large snapshot of the state of the bank encrypted homomorphically and run it on their own machine or on the ISP's beefy box
13:50:25 <b_jonas> and that state would verify your login details and send you the SMS for two-factor authentication
13:50:39 <b_jonas> I mean it presumably wouldn't still be SMS, just some analog
13:52:16 -!- leah2 has joined.
13:53:07 <b_jonas> "I don't know if they've just not considered the situation where someone has their online banking account but no active products." => there's a bank where I have some rights to a relative's account, but no own account with them. there are silly limitations that they do to me for this: I can't buy the service where I can authenticate myself on telephone so they can give me help on phone about their
13:53:13 <b_jonas> services that I can access on the relative's account, even though the account owner could get such a service for free with their account.
13:55:01 <b_jonas> "I'd kind of preferred to have closed the online thing "properly"." => they can't do that, there might still be things you want to do with a closed account on internet bank, like inform them about changes in your address or review transactions that are resolved after you closed your account where someone else claimed you payed for it from your account earlier but there was a delay, or transactions where
13:55:07 <b_jonas> you potentially fraudulently tried to pay or write a cheque after your account was closed, or repeating online payments where the other side tries to incur a fee because they don't know you have closed your account
13:55:36 <b_jonas> I think if you have a bank account, even if you close everything, the bank has to keep some information about it "forever", or at least for a lot of years
13:56:48 <fizzie> Well, fair, but they could certainly invalidate my login credentials completely, instead of having them still "work" for logging into an error page.
13:56:55 <b_jonas> this sort of applies to a lot of businesses, but with much shorter terms, because everyone else has shorter limitations for how long they are allowed to try to say you owe them money after you stopped doing business with them than for how long you can claim that your bank owes you money
13:57:19 <b_jonas> yes, logging into an error page is probably not the correct behavior
13:58:03 <fizzie> I'm also interested in what they'll do about the last annual statement, which they've so far sent only electronically, which I would normally download from the website.
13:58:16 <fizzie> Hopefully they'll just mail it this one time.
13:59:21 <fizzie> (Not that I really need one, except to complete the set.)
13:59:46 <b_jonas> I don't think they will snail mail you the statement after you asked them to send only electronically, because some clients do that because they worried that unauthorized people steal snail mail from their postbox and the snail mail has sensitive personal information
14:00:07 <b_jonas> you can probably get the statement if you walk in in person and ask them, or maybe ask them to mail it to you
14:10:03 <nakilon> does brpc stand for befunge rpc?
14:13:09 <nakilon> "ACCOUNT messages that the server sends whenever someone you see on a channel changes their account" -- does you get these messages when someone does nickserv identify?
14:14:06 -!- xkapastel has joined.
14:14:14 <nakilon> 16:03:35 <fizzie> So "account-tag" *is* mentioned there, but the one I was confused about was "solanum.chat/identify-msg". -- oh this is it mentioned I guess
14:14:28 <b_jonas> nakilon: yes, but only if you opt into it with CAP or CAPAB or some such message
14:14:52 <b_jonas> and if you and them share a joined channel at the time
14:15:04 <b_jonas> s/such message/such magic/
14:15:18 <b_jonas> and this is for freenode, I haven't tested anything on libera
14:16:36 <b_jonas> I guess I'll give in to the move for now, part freenode/#esoteric, and trust the bridge
14:17:58 <nakilon> well I lost it somewhere around Mars colonization
14:19:18 <nakilon> s/does you get/do you get
14:20:26 <nakilon> b_jonas still when you get the message from someone who's not on your channels you don't immediately see his state
14:21:08 <nakilon> and so you have to do additional requests to server and during that time user could be replaced
14:24:06 <b_jonas> nakilon: yes, if they're not on a channel, you can't even tell if a second message they send is from a different connection with the same nick!user@host
14:24:34 <b_jonas> also if you send someone a private message, even if they are on channels when you send the message, because there's a race condition
14:24:53 <b_jonas> the practical solution to this is to not use privmsgs in situations where you care about this, just use channels, since creating channels is so easy
14:25:00 <nakilon> rare case when GCP docs have things not described well enough https://cloud.google.com/functions/docs/securing/authenticating#exchanging_a_self-signed_jwt_for_a_google-signed_id_token so I don't understand how to fully build those damn JWT request
14:25:19 <nakilon> will have to attach GCP SDK to make Function requests (
14:25:28 <nakilon> in order to have them authorized
14:25:34 <b_jonas> oauth magic?
14:25:43 <b_jonas> or google apis?
14:26:16 <nakilon> the "Generating tokens manually" instead of using SDK that has all this magic inside
14:27:07 <nakilon> there is also "Generating tokens programmatically" that I might need to do only once too, but there is no Ruby among snippets, lol
14:27:20 <nakilon> and I'm just lazy to install others
14:27:42 <b_jonas> ah yes. "only once". and then you can throw away the logs for how you did that, because you'll surely never need to do it again.
14:27:58 <nakilon> "surely"
14:28:16 <nakilon> no, actually I never throw magic away and attach it as comments everywhere
14:28:50 <b_jonas> yeah, you have experience
14:29:36 <nakilon> that's rather seen practice than painful experience
14:30:17 <nakilon> back in 2013 when I saw the corporate wiki in the company that was full of people who are interested in their jobs
14:31:05 <b_jonas> job security by obscurity?
14:31:20 <nakilon> what does that mean
14:33:54 -!- FreeFull has joined.
14:35:27 <nakilon> I mean it was an awesome wiki that was very helpful, I was quickly finding snippets of other guys, and was easily building the picture of company projects; so I was learning all the wiki abilities to create documentation of our department and it felt like a correct thing to work on
14:35:47 <b_jonas> great
14:35:55 <nakilon> since then I'm accumulating notes and tend to commit them rather than throw away
14:36:07 <b_jonas> job security by obscurity is the opposite of that, when you don't document how you do your magic, so they can only do it by asking you
14:36:31 <nakilon> ah ye, I call it a sysadmin style
14:50:46 -!- river has quit (Read error: Connection reset by peer).
14:52:14 -!- river has joined.
15:16:01 <cd> `help
15:16:01 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert <rev>" can be used to revert, https://hack.esolangs.org/repo/ to browse. $PWD ($HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral.
15:17:40 <river> \o/
15:17:42 <river> \o/
15:18:23 <river> `relcome
15:18:25 <HackEso> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
15:18:43 <river> ` grep -Ri freenode
15:18:43 <HackEso> ​? Permission denied
15:18:49 <river> ` grep -Ri freenode $HACKENV
15:18:50 <HackEso> ​? Permission denied
15:19:10 <river> ` cat $HACKENV/* | grep -i freenode
15:19:11 <HackEso> ​? Permission denied
15:21:42 <b_jonas> there's some more (unfinished) help at https://esolangs.org/wiki/Hackeso
15:21:53 <b_jonas> sorry, at https://esolangs.org/wiki/HackEso
15:23:46 <river> ` which grep
15:23:47 <HackEso> ​? Permission denied
15:23:54 <river> `run which grep
15:23:55 <HackEso> ​/bin/grep
15:24:01 <river> `run grep -Ri freenode $HACKENV
15:24:33 <HackEso> Binary file /hackenv/interps/c-intercal/ick matches \ /hackenv/interps/c-intercal/src/feh2.c:void prexpr(node *np, FILE *fp, int freenode); \ /hackenv/interps/c-intercal/src/feh2.c:static void prvar(node *np, FILE *fp, int freenode) \ /hackenv/interps/c-intercal/src/feh2.c: prvar(np->lval, fp, freenode); \ /hackenv/interps/c-intercal/src/feh2.c: prexpr(sp->lval, fp, freenode); \ /hackenv/interps/c-intercal/src/feh2.c:static void ooprvar(node *np, FIL
15:24:40 <b_jonas> brctl: help
15:24:40 <esolangs> brctl: see "brctl: help ignore" (filter by nick) and "brctl: help filter" (filter by text content) for the two available commands
15:24:52 <nakilon> -I to ignore binary files I guess
15:24:58 <river> `run grep -RiI freenode $HACKENV
15:25:24 <b_jonas> brctl: help ignore
15:25:24 <esolangs> brctl: usage: "brctl: ignored" (to list), "brctl: ignore [net/]nick" (to add) or "brctl: unignore [net/]nick" (to remove); network defaults to your own; nick = * matches any message
15:25:24 <river> hah. int freenode
15:25:28 <HackEso> ​/hackenv/interps/c-intercal/src/feh2.c:void prexpr(node *np, FILE *fp, int freenode); \ /hackenv/interps/c-intercal/src/feh2.c:static void prvar(node *np, FILE *fp, int freenode) \ /hackenv/interps/c-intercal/src/feh2.c: prvar(np->lval, fp, freenode); \ /hackenv/interps/c-intercal/src/feh2.c: prexpr(sp->lval, fp, freenode); \ /hackenv/interps/c-intercal/src/feh2.c:static void ooprvar(node *np, FILE *fp, int freenode) \ /hackenv/interps/c-intercal/
15:25:38 <river> `run grep -RiI freenode $HACKENV | grep -v 'int freenode'
15:25:40 <nakilon> `run grep -RiI freenode $HACKENV | wc -l
15:26:00 <b_jonas> fizzie: by the way, the 005 replies claim that the name of this network is libera.chat, not libera, as far as the servers are concerned
15:26:14 <HackEso> No output.
15:26:16 <HackEso> No output.
15:27:04 <esolangs> [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=83223&oldid=83103 * B jonas * (+652) /* Communications */ possible move from freenode
15:27:05 <nakilon> 001 too
15:28:00 <fizzie> As I understand from the web presence, "Libera.Chat" is the proper name of the network, and "Libera Chat" the organization that runs it.
15:28:38 <b_jonas> fizzie: I'm mostly wondering what syntax for the network brctl: ignore accepts, but I don't want to know enough to experiment with it
15:29:08 <fizzie> Oh. It's all manually configured, so the names are just "libera" and "freenode" because that's what I put in the file.
15:29:43 <b_jonas> that said, I'm going to call the network libera too
15:29:47 <b_jonas> probably
15:30:18 <fizzie> I think it's unambiguous enough in context, for the purposes of things like IRC commands and URLs where brevity is appreciated.
15:30:36 <b_jonas> I care about
15:30:53 <b_jonas> I mostly care about the network name in 005 because it's a useful thing to double-check in a bot to avoid silly misconfiguration mistakes
15:31:14 <b_jonas> it's not something I can trust, because a malicious IRC client can lie that they're part of freenode in that field
15:35:35 <fizzie> Here's a thing I should fix: if I use Emacs Magit mode to make a commit, and it's one of these repositories where I've configured commit.gpgsign=true to sign all commits, and I haven't authenticated to the GPG agent recently, it will try to ask for a key passphrase in a way that goes horribly wrong.
15:37:11 <fizzie> The curses pinentry dialog will pop up in some unrelated terminal, and in such a mode that the keypresses will be only partially (seemingly at random) interpreted by the passphrase entry dialog, and the others will be echoed, and the only way I have to recover is to kill the pending git command and the pinentry process.
15:38:05 <fizzie> It works fine when executed from a regular terminal though, but it's some sort of an interaction with running Emacs in a server. I'm sure someone's figured it out, I just haven't.
15:45:11 <FireFly> I called it libera in weechat at least
15:45:36 <cd> Yea that’s what I called it in my bouncer
15:54:39 <b_jonas> fizzie: oops
15:58:18 -!- fizzie has set topic: Welcome to the liberated church of esoteric programming proselytization, propagation, and pronunciation! | https://esolangs.org | logs: https://logs.esolangs.org/ | this channel is bridged, see "brctl: help ignore" on how to opt out.
16:08:05 <nakilon> liberated church? what does that mean lol
16:10:09 <int-e> nakilon: I started out with "libera" and the rest is word association games
16:11:03 <nakilon> bot should make up new topic
16:12:58 <int-e> basically I was just one-upping myself anyway (see topic on fr**node)
16:13:35 <nakilon> woah
16:14:02 <nakilon> while trying to escape the JSON dumped RASEL code for echo and curl it seems that I've created a file
16:14:09 <nakilon> and it's named /?@,Gj"dlroW ,olleH\">/?@,Gj"
16:14:24 <nakilon> with both slashes, and I thought it's impossible to create files with /
16:15:22 <nakilon> good thing I have a GUI or I won't be able to remove it
16:18:44 <b_jonas> nakilon: it's possible to create files with slashes in their names on windows, just not the usual way you use the API.
16:19:21 <b_jonas> (and it's inadvisable)
16:21:29 -!- mich181189 has joined.
16:46:30 <nakilon> "Unexpected internal error"
16:46:33 <nakilon> thank you google
16:47:18 <nakilon> I use Windows only for gaming
17:13:09 <nakilon> fine, I'll give up and rely on preinstalled gcloud sdk
17:27:56 -!- tech_exorcist_ has joined.
17:30:12 -!- tech_exorcist has quit (Ping timeout: 272 seconds).
17:38:21 <esolangs> <zzo38> I had: i /:esowiki![^ ]* PRIVMSG #esoteric :/i But, I will change it now; let's try
17:39:02 <esolangs> <zzo38> Maybe now it will work; let's see
17:39:27 <fizzie> This is a message from the bridge, so if you saw it, it worked.
17:39:33 <esolangs> <zzo38> No, that won't work
17:39:56 <fizzie> Right, I guess it doesn't prove that it suitably ignored one of the wiki updates.
17:40:05 <esolangs> <zzo38> OK, I tried again.
17:40:18 <esolangs> <zzo38> This time, I can receive the message; it worked
17:43:01 <river> can you make the bridge drop every message containing the word fnord
17:43:35 <nakilon> also drop messages randomly for confusion
17:43:41 <river> good idea!
17:43:43 <nakilon> or replacing the nicknames
17:44:36 <nakilon> adding typos
17:45:01 <esolangs> <zzo38> Can private messages by sent by this bridge, or public only? (Does any IRC bridge support private messages, even if not this one?)
17:45:40 <nakilon> it's just a bot, whatever user can do it does
17:47:08 <esolangs> <zzo38> (Of course, if private messages are supported at all, then the bridge operator can potentially see them meaning it isn't so private, but still. Of course, so can the IRC server operators.)
17:48:07 -!- Soni has joined.
17:48:29 <Soni> brctl: help ignore
17:48:29 <esolangs> brctl: usage: "brctl: ignored" (to list), "brctl: ignore [net/]nick" (to add) or "brctl: unignore [net/]nick" (to remove); network defaults to your own; nick = * matches any message
17:49:25 <Soni> brctl: ignore Soni
17:49:25 <esolangs> brctl: ignoring
17:50:30 <Soni> hi o/
17:52:58 <river> brctl: ignore zzo38
17:52:58 <esolangs> brctl: ignoring
17:55:24 <b_jonas> zzo38: "Does any IRC bridge support private messages, even if not this one?" => my old bridge cbstream supported sending private messages, but not receiving them
17:55:56 <b_jonas> I think fizzie's bot only forwards one or two channel, not private messages, but you'll have to ask them
18:02:40 -!- Thelie has quit (Remote host closed the connection).
18:06:39 -!- chibi has joined.
18:10:35 <esolangs> [[Special:Log/newusers]] create * Vivax * New user account
18:11:22 <river> yo
18:11:31 <river> yuo should do a GCF
18:11:38 <river> or move to ##esolangs
18:11:44 <river> the # vs ## thing sucks
18:12:08 <myname> huh?
18:12:28 <Noisytoot> Is esolangs a registered project/community?
18:12:39 <cd> it's being worked on
18:12:50 <Noisytoot> https://libera.chat/chanreg
18:14:17 <nakilon> GCF was created to support the efforts of developing countries in responding to the challenge of climate change.
18:15:44 <river> yers
18:15:57 <b_jonas> `? gcf
18:15:59 <HackEso> gcf? ¯\(°​_o)/¯
18:16:23 <river> brctl: unignore zzo38
18:16:23 <esolangs> brctl: unignoring
18:30:31 -!- river has quit (Read error: Connection reset by peer).
18:35:16 <esolangs> [[Special:Log/newusers]] create * Oshaboy * New user account
18:37:03 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83224&oldid=83218 * Oshaboy * (+97) /* Introductions */
18:44:29 -!- Sgeo has joined.
18:45:29 -!- velik has quit (Remote host closed the connection).
18:47:20 -!- velik has joined.
18:48:52 <nakilon> \rasel "!dlroW ,olleH">:?@,Gj
18:48:55 <velik> nakilon, output: "Hello, World!", exit code: 0
18:49:12 <nakilon> finally I made it
18:49:44 <int-e> `? prefixes
18:49:46 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
18:50:38 <int-e> `slwd prefixes//s=.$=, velik \\.=
18:50:43 <HackEso> prefixes//Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =, velik \.
18:52:10 <nakilon> thanks
18:52:24 <nakilon> fizzie might want to add the nickname to ignorelists
18:52:51 <nakilon> here is the bot code https://github.com/Nakilon/nakiircbot/blob/master/example_libera_velik/main.rb
18:53:14 <nakilon> here is the Cloud Function code https://github.com/Nakilon/rasel/blob/master/examples/google_cloud_function/app.rb
18:56:18 <nakilon> and to add new function its cmd and address should be added to this gist https://gist.github.com/Nakilon/92d5b22935f21b5e248b713057e851a6
18:56:30 <nakilon> and then the "hot reload"
18:56:33 <nakilon> \reload remote
18:56:34 <velik> remote execution commands loaded: ["rasel"]
18:57:19 <fizzie> ^ignore ^(EgoBot|HackEgo|HackEso|toBogE|Sparkbot|optbot|lambdabot|oonbotti|metasepia|ruddy|preflex|evalj|idris-bot|passwordBOT|jconn|applybot|blsqbot|fnordbot|termbot|otherbot|j-bot|esolangs|bfbot|egelbot|velik)!
18:57:19 <fungot> OK.
18:57:45 <cd> fizzie: otherbot hasn't existed for... 3+yr
18:57:47 <cd> you can remove it
18:58:00 <fizzie> Yeah, I'll do a spring cleaning of that expression some day.
18:58:32 <fizzie> Noisytoot: We're waiting for a reply to our community registration email, but we already got verbally told it's okay.
18:58:48 <fizzie> Re what river asked, you can in fact tell the proxy to skip messages containing a keyword, like "fnord", but you probably shouldn't, because it would be confusing.
18:58:52 <fizzie> brctl: help filter
18:58:52 <esolangs> brctl: usage: "brctl: filtered" (to list), "brctl: filter regex" (to add) or "brctl: unfilter regex" (to remove)
18:58:55 <fizzie> brctl: filtered
18:58:55 <esolangs> brctl: Filter expressions: /!\\
18:59:25 <fizzie> I added that one because there was the ongoing spam thing where they were considerate enough to mark each line with that symbol.
18:59:31 <int-e> /!\ this is much easier than using /notice...
19:00:32 <cd> fizzie: can your instance of HackEso use CTCP action? I modified mine to permit ACTION and only ACTION, dunno if this one can
19:01:15 <fizzie> I think probably not, though I don't know if I care enough, given that it's not come up until now.
19:01:54 <cd> yea i assumed so
19:02:03 * int-e words around a verbified noun
19:02:05 <cd> if it comes up again I can hand over a patch
19:02:34 -!- river has joined.
19:03:16 <esolangs> <zzo38> I don't generally like to use CTCP ACTION, but there it is. So, we can see that the message is sent through the bridge, unchanged.
19:04:29 <esolangs> <fizzie> Yeah, it's just that a lot of clients only render it correctly when the ^A is at the very start. It's not great, but that's how it is.
19:05:04 <esolangs> <int-e> fizzie: well, that is the correct behavior
19:05:24 <esolangs> <fizzie> I'm pretty sure you were supposed to be able to embed CTCP inside messages arbitrarily.
19:05:33 <esolangs> <fizzie> Maybe not so meaningfully for ACTION though.
19:05:35 <esolangs> <zzo38> I still think it is better the way that it is, although, that is a valid concern; but, when they are rendered incorrectly, how does it render them? We can see exactly what are the problems with them specifically
19:06:16 <esolangs> <zzo38> Embedding ACTION like this is probably useful for bridging, though.
19:06:30 <nakilon> `rasel "!dlroW ,olleH">:?@,Gj
19:06:31 <esolangs> <fizzie> The way I saw int-e's message was as "<esowiki> <int-e> AACTION words around a verbified nounA", with the 'A' letters that are actually ^A rendered with reversed colors.
19:06:32 <HackEso> Hello, World!
19:07:54 <esolangs> <zzo38> On my computer, there is a /SET FORMAT option; with /SET FORMAT - it does like you describe; with /SET FORMAT + it diplays the CTCP part of the message in red.
19:08:25 <esolangs> <zzo38> (Although, it does this even if it is alone and not part of another message.)
19:08:37 <nakilon> the good thing about this serverless thing is that it easily stops when RAM or Time limits are reached
19:09:51 <esolangs> <nakilon> 22:02:03 <esowiki> <int-e> ACTION words around a verbified noun
19:10:03 <esolangs> <nakilon> this could be 22:02:03 <esowiki> * int-e words around a verbified noun
19:10:49 <esolangs> <fizzie> Sure, that'd be the obvious "pre"formatting for CTCP ACTION.
19:13:28 <esolangs> <int-e> fizzie: ugh, you seem to be right that CTCP in the middle of a message was meant to work
19:14:09 <esolangs> <int-e> but I imagine it would then result in two lines here, <esowiki> <actor>, * esowiki <whatever action was provided>
19:14:52 <esolangs> <int-e> so it would still be up to the bridge to turn this into something more sensible
19:16:21 <esolangs> <zzo38> Well, I still think that what it currently does makes sense, at least
19:18:11 -!- tech_exorcist_ has quit (Quit: tech_exorcist_).
19:18:22 -!- tech_exorcist has joined.
19:18:28 <nakilon> btw
19:18:38 <nakilon> 22:06:02 *** User ##esoteric is already on the channel.
19:18:59 <esolangs> <int-e> zzo38: it does
19:19:05 <nakilon> I feel like thelounge dropped previous logs
19:20:09 <nakilon> I guess there were two channels and then they were merged
19:20:34 <nakilon> and now I'm unable to switch to the old one to see the history, lol
19:21:09 <nakilon> it's now trashed somewhere in thelounge's sql db
19:23:04 <int-e> nakilon: fizzie can probably invite you
19:24:01 <int-e> but it also seems kind of pathetic, not being able to check the logs just because you're not joined :)
19:24:48 <nakilon> what about your clients? do you miss that chunk too where we were jumping around the hackeso ` `` ```?
19:25:04 <nakilon> cbt and stuff
19:25:48 <nakilon> int-e so another channel still exists?
19:26:04 <fizzie> There's still 10 people on ##esoteric, yes.
19:26:15 <int-e> nakilon: #esoteric and ##esoteric both forward people to join here
19:26:21 <int-e> to->who
19:26:29 <nakilon> yeah it looks like the thelounge limitation to be not able to read the log if you for example was banned and then you closed the tab
19:26:35 <nakilon> the tab of the channel
19:26:36 <fizzie> There was a big split, and then ChanServ kicked out a whole bunch of people with the reason "invite-only channel".
19:26:40 <int-e> fizzie: down from 22 the last time I checked... attrition!
19:27:02 <int-e> (apparently I was on the wrong side of that split)
19:27:16 <int-e> (doesn't matter, I only just noticed)
19:27:38 <fizzie> nakilon: I can invite you onto it if you do need it for the logs, though I agree that's a little weird.
19:29:44 <fizzie> The plan is to allow it to gradually empty, then leave it as an empty forwarded for a time, and then drop the registration, because in terms of policy I think anyone should be free to claim ##esoteric to talk about... whatever they think is appropriate for the name. We'll still keep single-# #esoteric for now.
19:40:26 <b_jonas> "otherbot hasn't existed for... 3+yr" => and I believe EgoBot hasn't existed for even longer, but we're an IRC community, we don't forget our past so quickly
19:40:49 <b_jonas> no need to spring clean that, there's no harm coming from ignoring those other bots
19:40:52 <b_jonas> oh by the way
19:41:27 <b_jonas> fizzie: I'll probably ask simcop to join perlbot to our channel, wherever that is, so you might want to have fungot ignore perlbot too.
19:41:28 <fungot> b_jonas: mr president, i would like to express my support for the peace process is not served in any way. indeed, famine and ethiopia: these are amendment nos 5, 11 and 12 because they merely restate the principles of transparency and citizenship at the service of other objectives which it may be claimed that the world's population by 2015 and the objective of the commission, may i ask you whether you do not insist on the inser
19:42:37 <b_jonas> perlbot is an instance of a modified version of buubot3, and simcop already brought it to libera
19:42:41 <esolangs> [[4BOD]] N https://esolangs.org/w/index.php?oldid=83225 * Oshaboy * (+2437) Initial
19:43:00 <simcop2387> huh thought i brought it hear earlier already
19:43:23 <simcop2387> it will only speak when spoken to so it's usually fine
19:43:28 -!- perlbot has joined.
19:44:02 <b_jonas> nakilon: you're aware that backslash is valid as the first character of an irc nick, an in fact oren wore such a link for a while, right?
19:46:00 <fizzie> ^ignore ^(HackEso|lambdabot|metasepia|idris-bot|blsqbot|j-bot|esolangs|velik|perlbot)!
19:46:00 <fungot> OK.
19:46:17 <fizzie> (I know some of those are still obsolete, but anyway.)
19:46:41 <esolangs> [[Special:Log/newusers]] create * IPhoenix * New user account
19:47:42 <river> fungot!
19:47:42 <fungot> river: this week we have already been applying the practices of armed groups seeking to cut off supplies we must consider how best to reduce greenhouse gas emissions at global level to observe social labour standards.
19:48:11 <fizzie> Armed groups are one way to reduce greenhouse gas emissions, yes.
19:48:21 <b_jonas> "<esowiki> * int-e words around a verbified noun" => I dislike formatting CTCP action that way
19:48:40 <b_jonas> I'd suggest "<esowiki> <int-e> /me words around a verbified noun" instead
19:49:12 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83226&oldid=83224 * IPhoenix * (+276) hi
19:50:27 <esolangs> <zzo38> Yes, and I would prefer just sending it directly. So, those are now three different suggestions.
19:52:14 <b_jonas> "<fizzie> nakilon: I can invite you onto it [libera/##esoteric ]" => mode the channel to passworded -i+k and make the password automatically track (a sanitized version of) /hackenv/wisdom/password ! then people who try to join accidentally will be forwarded here, but anyone can still join deliberately :-)
19:52:32 <b_jonas> simcop2387: thanks
19:53:05 <b_jonas> perlbot compose {echo > 3 -- fun}{echo got}
19:53:05 <perlbot> b_jonas: Error: unmatched closing parenthesis in compose
19:53:11 <simcop2387> np. i've added some features to it since we last talked about it, i can set this channel to have it's own namespace of factoids if you guys want it
19:53:41 <b_jonas> perlbot compose {echo {echo > 3 -- fun}{echo got}}
19:53:42 <perlbot> b_jonas: > 3 -- fungot
19:53:43 <simcop2387> https://factoids.perl.bot/ for a way to browse them all.
19:54:04 <b_jonas> fizzie: thanks
19:56:57 <fizzie> b_jonas: We speculated about making an invite exemption that allows anyone already on #esolangs to join ##esoteric if they wish -- /quote help extban says "$c:<chan> - Matches users who are on the given channel", but https://libera.chat/guides/extbans doesn't mention it, and didn't work.
19:57:30 <imode> what is the difference between #esolangs and ##esoteric
19:57:38 <cd> basically nothing
19:57:45 <imode> I can't join it, neat.
19:57:59 <fizzie> It's supposed to just forward to here.
19:58:03 <int-e> imode: it forwards people here, just as #esoteric does
19:58:05 <imode> aha, that explains it.
19:59:08 <esolangs> <zzo38> If the help file says something that does not match the implementation, then you should file a bug report
20:00:01 <esolangs> [[4BOD]] https://esolangs.org/w/index.php?diff=83227&oldid=83225 * Oshaboy * (+92) Categories
20:00:11 <fizzie> There's not much point in hanging out on it, really, but of course people still do. Well, I shouldn't talk, *I'm* still there too. Maybe I should just lock the topic and part, to show good example.
20:00:26 <esolangs> [[4BOD]] M https://esolangs.org/w/index.php?diff=83228&oldid=83227 * Oshaboy * (+0) Typo
20:00:41 <fizzie> zzo38: Yeah, although I can't rule out the possibility that I did something wrong.
20:01:00 <esolangs> <zzo38> Yes, that is what you will have to check first
20:01:55 <b_jonas> simcop2387: there's a web interface listing them? hmm, that sort of ruins the joke where the only way to list them was to list ones matching each individual byte like compose `compose [echo `eval join"",map{"[fact search [eval chr $_]]"} 0..255']' except that one times out so it doesn't work
20:02:49 <simcop2387> yea there started to get to be too many factoids for search to work like that anymore so i had to do something else
20:03:10 <esolangs> [[4BOD]] https://esolangs.org/w/index.php?diff=83229&oldid=83228 * Oshaboy * (+53) Typo and extra info
20:03:23 <simcop2387> there's also the factgrep command that looks only at the subject of the factoid and gives it back as a perl/json array to be consumed in macros
20:03:30 <simcop2387> perlbot: factgrep _be_
20:03:30 <perlbot> simcop2387: ["_be_abesimpson_it","_be_brain","_be__default","__be_elliott_poop","_be_elliott_poop","_be_florianbd_functions","_be_foo_blarg","_be__get_list","_be_huf_anyad","_be_kent\\n_news","_be_kthx","_be_larry_underwood_song","_be_list","_be_mst_cistern","_be_mst_snort","_be_parv_thanks","_be_paste","_be_pearl","_be_simcop2387_mrceremonies","_be_web","_be_xenu_1"]
20:03:31 <esolangs> [[4BOD]] M https://esolangs.org/w/index.php?diff=83230&oldid=83229 * Oshaboy * (+0) Typo
20:03:52 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:03:54 <b_jonas> well... you could add some way in the factoid plugin to get a window into the list of factoid names, so that we can list them even automated in a macro, but that would be work
20:04:03 <esolangs> [[4BOD]] M https://esolangs.org/w/index.php?diff=83231&oldid=83230 * Oshaboy * (+0) Typo
20:04:21 <b_jonas> wait, factgrep?
20:04:24 <simcop2387> and the search is now also powered by postgresql's full text search engine, including macro outputs. so it tends to do better on actual searches
20:04:35 -!- kspalaiologos has quit (Quit: Leaving).
20:04:39 <simcop2387> yea runs a regex across all the factoid subjects (not the contents)
20:04:45 <simcop2387> so that things like this are doable
20:04:46 <esolangs> [[4BOD]] https://esolangs.org/w/index.php?diff=83232&oldid=83231 * Oshaboy * (+45) Extra Info
20:04:48 <simcop2387> perlbot: literal be
20:04:48 <perlbot> simcop2387: P:macro be is [eval $str="[fact [8ball [fact _be__get_list [arg]]]]"; $arg=[quote d [arg]]; if ($arg =~ /^\s*a\s+retard\s*$/) {$arg=[quote d [arg &n]]}; if ($arg =~ /^\s*$/) {$str} else {"<".$arg."> ".$str}]
20:05:01 <b_jonas> perlbot fact literal factgrep
20:05:15 <simcop2387> it's a command part of the factoid plugin, no way to do it otherwise
20:05:30 <b_jonas> help fact
20:05:33 <simcop2387> perlbot: literal _be__get_list
20:05:33 <perlbot> simcop2387: macro _be__get_list is `eval use JSON::MaybeXS qw/decode_json/; $bel= decode_json `quote d `fact factgrep ^_be_`arg!!!; return `quote d `fact _be__default!! unless (@$bel); @$bel = (@$bel, @$bel); join(', ', @$bel) =~ s/,/ or /r!
20:05:44 <simcop2387> i've not kept up with the help properly for it all
20:05:54 <b_jonas> simcop2387: yeah, help text are hard to write
20:06:01 <simcop2387> it's just a PCRE regex against the factoids
20:06:17 <b_jonas> wait, a PCRE regex powered by postgres?
20:06:22 <simcop2387> yea
20:06:40 <simcop2387> at least i think it was pcre. can't remember
20:06:47 <nakilon> id perl esoteric?
20:06:56 <cd> it can be
20:07:06 <b_jonas> nakilon: perl isn't, but perlbot is
20:07:13 <simcop2387> it probably would be considered so these days
20:07:18 <nakilon> b_jonas yeah, it might be valid nickname char but I'm used to it from some time ago
20:07:34 <nakilon> I hope no one name himself \rasel
20:07:54 <nakilon> anyway
20:08:09 <nakilon> \rasel some random text that people would write here
20:08:12 <velik> nakilon, output: "", exit code: 255
20:08:31 <simcop2387> i wish we had the ircv3 extension that let you have unicode nicks.
20:08:56 <b_jonas> `echo perlbot echo hi
20:08:57 <HackEso> perlbot echo hi
20:08:57 <perlbot> HackEso: hi
20:09:28 <b_jonas> hmm, is that OK or is that a botloop risk in the future?
20:09:31 <b_jonas> I mean
20:09:39 <b_jonas> `echo j-bot: 'hi'
20:09:39 <HackEso> j-bot: 'hi'
20:09:46 <b_jonas> it's basically the same as that
20:10:06 <b_jonas> um
20:10:11 <b_jonas> oh yeah, j-bot isn't here
20:10:15 <b_jonas> I have to test that on freenode
20:10:30 <esolangs> <zzo38> I wouldn't consider Perl to be so "esoteric" but it does seem to be unusual in some ways. I have a list of unusual (or otherwise notable) features of programming languages, so if you know then you can add it, I suppose
20:10:34 <esolangs> <b_jonas> `echo j-bot: echo 'hi'
20:10:35 <esolangs> <HackEso> j-bot: echo 'hi'
20:10:36 <esolangs> <j-bot> HackEso: |security violation: echo
20:10:36 <esolangs> <j-bot> HackEso: | echo'hi'
20:10:41 <esolangs> <b_jonas> `echo j-bot: 'hi'
20:10:42 <esolangs> <HackEso> j-bot: 'hi'
20:10:43 <esolangs> <j-bot> HackEso: hi
20:10:47 <fizzie> HackEso's main anti-loop defence is that non-breaking space in front of non-alphanumeric first characters.
20:10:59 <fizzie> It kind of doesn't work for bots that respond to "nick:" prefixes.
20:11:02 <b_jonas> yeah, basically the same as how perlbot is invoked
20:11:05 <simcop2387> perlbot will throttle itself but it won't try to break a loop itself
20:11:05 <perlbot> simcop2387: No factoid found. Did you mean one of these: [woldrich] [woldrich > you] [well this] [well, it] [wonderwall] [hello there] [tl;dr] [wolfram] [wantarray] [webdragon]
20:11:23 -!- kixx has joined.
20:11:50 <simcop2387> that said i can easily just tell it to ignore the other bots if needed
20:12:23 <b_jonas> yes, j-bot can do that too
20:12:45 <fizzie> You might tell it to ignore HackEso and perhaps fungot. Though I guess traditionally we should get one botloop in first.
20:12:45 <fungot> fizzie: mr president, no doubt, however, also like to thank you and your house has understood this in as much as does parliament that the number of people who are in the process. of course, the quality of those jobs.
20:13:10 <nakilon> for now velik is almost loop-safe because the rasel output is prefixed with "output: "
20:13:18 <fizzie> \assuming there's no error for *all* text that starts with a backslash, only the ones that are specific commands, then I think conflicts are unlikely.
20:14:25 <b_jonas> hmm wait
20:14:54 <b_jonas> I'll have to look at that in more detail, because that sounds like there might be botloops that you can only start by changing your nick to a bot command
20:14:58 <nakilon> oh and this one
20:14:59 <nakilon> ping
20:14:59 <velik> pong
20:15:17 <b_jonas> \echo hi
20:15:39 <b_jonas> though if output is prefixed by output: that does sound safe
20:19:25 -!- citrons has joined.
20:19:32 <nakilon> \rasel 0
20:19:53 <b_jonas> > symbol "perlbot echo hi"
20:19:55 <lambdabot> error:
20:19:55 <lambdabot> • Variable not in scope: symbol :: [Char] -> t
20:19:55 <lambdabot> • Perhaps you meant ‘isSymbol’ (imported from Data.Char)
20:20:00 <b_jonas> > text "perlbot echo hi"
20:20:02 <lambdabot> perlbot echo hi
20:20:02 <perlbot> lambdabot: hi
20:20:07 <b_jonas> that's more promising
20:20:30 <b_jonas> yeah, but then it prefixes the output with lambdabot, and I don't think you can trigger lambdabot that way
20:20:36 <b_jonas> lambdabot: > 2
20:20:37 <b_jonas> lambdabot: @run 3
20:20:39 <lambdabot> 3
20:20:41 <b_jonas> wait
20:20:48 <nakilon> oh it does not respond with bot-level exception like "HTTPRequestTimeOut 408 Request Timeout" here -- it PRIVMSGs it to me
20:20:53 <fizzie> Was going to say, I've seen people do the @run thing.
20:21:28 <b_jonas> > text "perlbot @echo hi"
20:21:29 <lambdabot> perlbot @echo hi
20:21:29 <perlbot> lambdabot: No factoid found. Did you mean one of these: [.ec] [.eg] [.es] [each] [easy] [.hi.us] [high] [e] [ed] [.ee]
20:21:42 <b_jonas> > text "wait what? @echo hi"
20:21:43 <lambdabot> wait what? @echo hi
20:21:51 -!- integral has joined.
20:22:01 <b_jonas> > text "@echo hi"
20:22:03 <lambdabot> @echo hi
20:22:09 <fizzie> > text "perlbot echo @run 123"
20:22:10 <lambdabot> perlbot echo @run 123
20:22:10 <perlbot> lambdabot: @run 123
20:22:12 <lambdabot> 123
20:22:17 <b_jonas> > text "perlbot @echo hi"
20:22:18 <lambdabot> perlbot @echo hi
20:22:18 <perlbot> lambdabot: No factoid found. Did you mean one of these: [.ec] [.eg] [.es] [each] [easy] [.hi.us] [high] [e] [ed] [.ee]
20:22:41 <fizzie> In the above, just replace "123" with something that generates text "..." and you'd be done.
20:22:41 <b_jonas> > text "perlbot echo @echo hi"
20:22:43 <lambdabot> perlbot echo @echo hi
20:22:43 <perlbot> lambdabot: @echo hi
20:22:43 <lambdabot> echo; msg:IrcMessage {ircMsgServer = "libera", ircMsgLBName = "lambdabot", ircMsgPrefix = "perlbot!~perlbot@", ircMsgCommand = "PRIVMSG", ircMsgParams = ["#esolangs",":lambdabot: @echo hi"]
20:22:43 <lambdabot> } target:#esolangs rest:"hi"
20:23:08 <b_jonas> > text "perlbot echo @run text \"hi\""
20:23:09 <lambdabot> perlbot echo @run text "hi"
20:23:10 <perlbot> lambdabot: @run text "hi"
20:23:11 <lambdabot> hi
20:23:13 <b_jonas> that's absolutely loopable
20:23:24 <b_jonas> I will wait a little bit of time before I actually loop it though
20:23:35 <b_jonas> since I specifically asked simcop to join it here
20:23:57 <fizzie> I've got nothing to do with either perlbot or lambdabot, so I'll just make some popcorn and watch.
20:23:59 <b_jonas> perlbot help ignore
20:23:59 <perlbot> b_jonas: Sorry, no plugin named ignore found.
20:24:58 -!- Thelie has joined.
20:25:03 <b_jonas> I mean I can make a loop that I can break, but still
20:25:33 <b_jonas> simcop2387: can you please make perlbot ignore lambdabot?
20:25:46 <b_jonas> int-e: can you please make lambdabot ignore perlbot?
20:26:13 <b_jonas> @ignore perlbot
20:26:13 <lambdabot> Not enough privileges
20:26:18 <fizzie> $deity: can you please make all bots sentient, so they can decide not to get stuck on loops? Wait, maybe that's got some more implications.
20:26:23 <b_jonas> perlbot echo @ignore perlbot
20:26:23 <perlbot> b_jonas: @ignore perlbot
20:26:36 <shachaf> That's not even the command.
20:27:03 <b_jonas> > text "perlbot echo @ignore perlbot"
20:27:04 <lambdabot> perlbot echo @ignore perlbot
20:27:05 <perlbot> lambdabot: @ignore perlbot
20:27:05 <lambdabot> Not enough privileges
20:27:29 <b_jonas> > text "perlbot echo @ignore +perlbot"
20:27:30 <lambdabot> perlbot echo @ignore +perlbot
20:27:30 <perlbot> lambdabot: @ignore +perlbot
20:27:31 <lambdabot> Not enough privileges
20:27:37 <b_jonas> > text "perlbot echo @ignore -perlbot"
20:27:38 <lambdabot> perlbot echo @ignore -perlbot
20:27:39 <perlbot> lambdabot: @ignore -perlbot
20:27:39 <lambdabot> Not enough privileges
20:27:41 <shachaf> That's not how that command works anyway.
20:27:52 <b_jonas> > text "perlbot echo @ignore + perlbot"
20:27:53 <lambdabot> perlbot echo @ignore + perlbot
20:27:54 <perlbot> lambdabot: @ignore + perlbot
20:27:54 <lambdabot> Not enough privileges
20:27:54 <shachaf> You can't @ignore without privileges.
20:28:05 <b_jonas> you can't even ignore you?
20:28:09 <shachaf> Not even you.
20:28:14 <b_jonas> j-bot has a special command to ignore you
20:28:18 <shachaf> Privileges are checked before any command code is run.
20:28:18 <b_jonas> which works without privilages
20:28:30 <b_jonas> it's not the normal ignore command, a different command
20:29:25 <nakilon> what does "j-" mean?
20:29:36 <simcop2387> J language
20:29:51 <nakilon> oh cool
20:31:09 <b_jonas> weird, the lambdabot ignore command isn't even in the whatisdb. I thought it had all lambdabot commands.
20:31:13 <b_jonas> `whatis ignore
20:31:14 <HackEso> ignore(8jevalbot) - ignore messages from the given irc nick
20:32:53 <b_jonas> although now I should add perlbot commands to the whatisdb too
20:33:56 <nakilon> `whatis whatis
20:33:57 <HackEso> whatis(1) - display one-line manual page descriptions \ whatis(1hackeso) - display one-line manual page descriptions \ whatis(5hackeso) - no description
20:34:23 <b_jonas> it's mostly manpage headers, but I added a bunch of bot commands for fun
20:34:23 <nakilon> _Oo
20:35:01 <b_jonas> including "all" HackEso commands, except I think one that has a newline in it which the format of this whatisdb doesn't allow or something silly like that
20:35:07 <nakilon> `whatis b_jonas
20:35:08 <HackEso> b_jonas: nothing appropriate.
20:35:15 <b_jonas> try `? for that
20:35:17 <nakilon> sounds tight
20:35:20 <nakilon> *r
20:35:43 <b_jonas> but of course there are new HackEso commands since
20:35:54 <nakilon> `? b_jonas
20:35:55 <HackEso> b_jonas egy nagyon titokzatos személy. Hollétéről egyelőre nem ismertek. He is often too busy with appeasing the M:tG gods to make any sense.
20:36:11 <cd> bit like the `info script my Hackbot instance has.
20:36:20 <b_jonas> I mean having manpages for HackEso commands actually makes some sort of sense,
20:36:26 <b_jonas> and then I went from that to other bots by analogy
20:36:35 <cd> `` cat ${which whatis}
20:36:36 <HackEso> ​/hackenv/bin/`: line 5: ${which whatis}: bad substitution
20:36:47 * cd tired
20:36:58 <b_jonas> ``` cat $(type -p whatis)
20:36:59 <HackEso> ​#!/usr/bin/python3 \ import sys, os, re \ if len(sys.argv) <= 1: \ print("whatis what?") \ sys.exit(1) \ else: \ argorg = [] \ argfoldv = [] \ foundv = [] \ for arg in sys.argv[1:]: \ argorg.append(arg) \ argfoldv.append(arg.casefold()) \ foundv.append(False) \ with open(os.environ.get("HACKENV","/hackenv") + "/share/whatis", errors="surrogateescape") as whatisdb: \ for line in whatisdb: \
20:37:01 <b_jonas> round parens
20:37:05 <cd> Ye
20:37:18 <cd> i just got in bed for a nap, so I’m tired and on phone :P
20:37:45 <b_jonas> ``` url $(type -p whatis) # might be more useful
20:37:47 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/whatis
20:41:04 -!- kixx has left (Leaving).
21:03:23 <b_jonas> > text "perlbot echo @run text \"hi\"" -- just to check if any of the ignores are set
21:03:24 <lambdabot> perlbot echo @run text "hi"
21:03:25 <perlbot> lambdabot: @run text "hi"
21:03:26 <lambdabot> hi
21:05:40 <int-e> ugh
21:15:45 <b_jonas> int-e: please make lamdbabot ignore perlbot
21:15:58 <int-e> b_jonas: can't
21:16:02 <b_jonas> you can't?
21:16:23 <int-e> perlbot echo @run text "hi"
21:16:23 <perlbot> int-e: @run text "hi"
21:16:30 <int-e> oh
21:16:38 <b_jonas> I'll have to wait for simcop then
21:16:40 <int-e> anywa, I can't because I already did
21:16:44 <b_jonas> to make perlbot ignore lambdabot
21:17:06 <int-e> also, who is lamdbabot ;)
21:17:10 <b_jonas> int-e: this one is trivial to turn to a botloop, with the defined value or quine on either side
21:17:21 <b_jonas> :) typo yes
21:17:33 <int-e> > text "perlbot echo @run text \"hi\""
21:17:35 <lambdabot> perlbot echo @run text "hi"
21:17:35 <perlbot> lambdabot: @run text "hi"
21:17:37 <lambdabot> hi
21:17:45 <int-e> huh, I thought I did
21:18:06 <int-e> > text "perlbot echo @run text \"hi\""
21:18:07 <lambdabot> perlbot echo @run text "hi"
21:18:07 <perlbot> lambdabot: @run text "hi"
21:18:23 <b_jonas> also wait
21:18:27 <b_jonas> hmm
21:18:37 <b_jonas> oh right
21:21:07 <b_jonas> this still sounds like you might be able to get j-bot and perlbot in a botloop if you give the right invocation and nick away right before one of the bots wants to connect btw
21:21:11 <b_jonas> but that's hard
21:21:26 <b_jonas> but I will have to think a bit if there's an easier way
21:24:33 <b_jonas> apparently unaffiliated cloaks start with "user/" on libera, not "unaffiliated/"
21:24:50 <esolangs> <zzo38> Do you know what (if anything) to write about the things I mentioned adding into wisdom file? I don't know, by myself.
21:25:01 <esolangs> <zzo38> b_jonas: I suppose there is the advantage being shorter
21:25:07 <b_jonas> yep
21:29:15 <esolangs> <zzo38> (Although, I would like the option of forward-DNS-based cloaking, that allows you to use any domain name that resolves to the address that you are connecting from, in addition to the cloaking that is already implemented; this can be helpful when you cannot configure the reverse DNS, or if you have multiple domain names and want only one of them for IRC)
21:30:59 <b_jonas> zzo38: I don't really see what the advantage is of DNS hostnames in hostmasks at all, as opposed to just ip addresses, unless it's because hostnames are sometimes shorter, especially for ipv6, but we could abbreviate ips to such short base64 strings or something that this is almost never worth
21:32:53 <esolangs> <zzo38> Yes, IP addresses would also help especially if you wan to avoid a reverse DNS lookup (or any DNS lookup) on the server, for efficiency; it is what I do for my own server stuff.
21:33:30 <esolangs> <zzo38> However, the advantage of supporting host names is in case you have a dynamic IP address but still want to identify your computer in the IRC logs in this way.
21:33:31 <b_jonas> if it weren't for having to moderate spammers, I'd prefer if the hostname field just showed a dummy value, or something entirely different than a hostname, instead of an actual hostname or ip address
21:34:16 <b_jonas> but ip addresses help channel ops ban spam quickly
21:34:23 <esolangs> <zzo38> Some IRC servers do that, sometimes needing a +x mode (which is sometimes the default). However, if it has the format of a domain name, but it is not valid, then probably ".invalid" should be added to specify that it is invalid.
21:35:01 <b_jonas> zzo38: I think we already have some pretty well supported IRC syntax to mark fake hostnames, used for cloaks and services
21:35:58 <esolangs> <zzo38> There is the format with slashes, which are not valid in domain names, so that works, I think.
21:36:06 <esolangs> <zzo38> (But not all IRC networks use this)
21:49:14 -!- Bowserinator has quit (Changing host).
21:49:14 -!- Bowserinator has joined.
21:57:36 -!- Bowserinator has quit (Quit: Blame iczero something happened).
22:01:11 -!- Bowserinator has joined.
22:02:43 -!- salpynx has joined.
22:11:52 <salpynx> `؟ liberA
22:11:54 <HackEso> ​.ebyaM .erutuf eht fo dnal eht si arebiL
22:12:22 <river> woah
22:12:23 -!- tech_exorcist has quit (Quit: tech_exorcist).
22:14:05 <imode> salpynx: o/
22:24:59 -!- FreeFull has quit.
22:25:17 <arseniiv> oh, so ¿ does work too!:
22:25:19 <arseniiv> `¿ befunge
22:25:20 <HackEso> ​.dronF .sgnihT eht llA detnevbenat benaT dnA .benaT tog tognuF dnA .tognuF togeb egnufeB dnA .egnufeB saw gninnigeB eht nI
22:25:45 <arseniiv> was there a fourth question mark in unicode, hm?..
22:26:27 <arseniiv> `; unicode
22:26:28 <HackEso> ​;? No such file or directory
22:26:48 <arseniiv> `⁇ unidecode
22:26:49 <HackEso> ​⁇? No such file or directory
22:27:00 <arseniiv> `unidecode ؟
22:27:01 <HackEso> ​[U+061F ARABIC QUESTION MARK]
22:27:22 <arseniiv> there’s at least one more ؟, ⸮:
22:27:25 <arseniiv> `unidecode ⸮
22:27:26 <HackEso> ​[U+2E2E REVERSED QUESTION MARK]
22:27:31 <arseniiv> `⸮ unidecode
22:27:32 <HackEso> ​⸮? No such file or directory
22:27:51 <arseniiv> `? ⸮
22:27:53 <HackEso> ​⸮? ¯\(°​_o)/¯
22:28:17 -!- sebbu has quit (Quit: Quitte).
22:28:34 <int-e> I find this trend very questionable
22:28:59 -!- sebbu has joined.
22:29:34 <arseniiv> would it be good to have a wisdom about ¿?
22:29:55 <arseniiv> oh, I mean about those two other ones
22:31:15 <esolangs> [[Whopper]] N https://esolangs.org/w/index.php?oldid=83233 * Hyperdawg * (+1075) Add some stuff
22:32:37 -!- sebbu has quit (Client Quit).
22:37:39 <arseniiv> feel free to unlearn this but I hope this will stick :D
22:37:40 <arseniiv> `؟ ؟
22:37:41 <HackEso> ​؟ is more than just wisdom
22:38:28 <arseniiv> (and ¿ was already wise)
22:48:10 -!- arseniiv has quit (Ping timeout: 264 seconds).
23:08:19 -!- sebbu has joined.
23:20:00 <salpynx> I had hoped ¿ turned the wisdom upside down (rotate not reflect), but it's just a synonym for ؟
23:20:01 <esolangs> [[Whopper]] https://esolangs.org/w/index.php?diff=83234&oldid=83233 * Hyperdawg * (+166)
23:21:02 <salpynx> (found it by looking in the source repo)
23:32:31 <b_jonas> > text "perlbot echo @run text \"hi\"" -- lets' try again
23:32:32 <lambdabot> perlbot echo @run text "hi"
23:32:33 <perlbot> lambdabot: @run text "hi"
23:32:40 <b_jonas> thanks, int-e
23:34:59 <fizzie> Turning characters upside-down is harder than changing their order.
23:35:27 <fizzie> If memory serves, Unicode doesn't even really have a good upside-down set for the English alphabet, you end up using silly approximations?
23:37:09 <fizzie> According to one online converter, this is not very wise -> ǝsıʍ ʎɹǝʌ ʇou sı sıɥʇ.
23:37:23 <fizzie> Which is okay, I guess, but not great.
23:37:33 <fizzie> Especially the i → ı part.
23:40:54 -!- Thelie has quit (Remote host closed the connection).
23:43:38 <salpynx> `` python3 -c 'print("sı\u0323 sı\u0323ɥʇ")'
23:43:39 <HackEso> sı̣ sı̣ɥʇ
23:48:54 -!- relrod has joined.
23:52:32 <b_jonas> `jrypbzr
23:52:33 <HackEso> Jrypbzr gb gur vagreangvbany uho sbe rfbgrevp cebtenzzvat ynathntr qrfvta naq qrcyblzrag! Sbe zber vasbezngvba, purpx bhg bhe jvxv: <uggcf://rfbynatf.bet/>. (Sbe gur bgure xvaq bs rfbgrevpn, gel #rfbgrevp ba RSarg be QNYarg.)
23:52:37 <b_jonas> yeah, we do have that
23:52:56 <b_jonas> `welcome
23:52:58 <HackEso> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
←2021-05-22 2021-05-23 2021-05-24→ ↑2021 ↑all