00:06:57 -!- ghosthell has joined. 00:07:41 Non Terrestrial Or Terrestrial Beings which can help me with Trans Universal Transportation (Please PM Me)9 00:07:58 wat 00:10:06 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 [[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 i found some funny looking shapes in my back yard, i bet aliens did it 00:12:58 Not bridging joins and parts makes those things come a bit out of the blue, but bridging them would be just awful. 00:17:33 -!- TheLie has quit (Remote host closed the connection). 00:27:52 `` cat $(which mkx) 00:27:53 key=$(mk "$@") && echo "$key" && chmod +x "$key" 00:28:17 `` cat $(which mk) 00:28:18 ​[[ "$1" == ?*//* ]] || { echo usage: "mk[x]" file//contents >&2; exit 1; }; key="${1%%//*}"; value="${1#*//}"; echo "$value" > "$(echo-p "$key")" && echo "$key" 00:50:24 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 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 multibot is hackeso's lib. Now that i've looked through it, it's... interesting 01:00:50 very weird tbh 01:05:19 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 tbh multibot is so simplistic it probably isn't too hard to write a replacement 01:06:28 it's just over 600 lines of C 01:06:30 not bad 01:07:15 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 It doesn't even do the sockets, it relies on socat for that. 01:09:24 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 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:19:46 -!- ghosthell has quit (Ping timeout: 260 seconds). 01:25:55 -!- dbohdan has quit (Read error: Connection reset by peer). 01:41:29 -!- tromp has joined. 01:45:47 -!- tromp has quit (Ping timeout: 246 seconds). 01:56:48 Ada (or a specific compiler actually) has magic variable names: 01:56:49 "Or give the variable a name that contains any of the strings discard dummy ignore junk unused (case insensitive) 01:56:49 " 01:56:57 (To suppress unused variable warnings) 02:13:49 [[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=.numl }} '''Num..." 02:15:07 -!- tromp has joined. 02:16:15 [[Numberlang]] https://esolangs.org/w/index.php?diff=83196&oldid=83195 * Batata * (+4) /* Reverse Cat */ 02:17:43 [[User:Batata]] https://esolangs.org/w/index.php?diff=83197&oldid=83163 * Batata * (-479) 02:19:06 Reminds me of GCC's magic fall-thru comment, with a configurable sensitivity. 02:19:21 https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html -Wimplicit-fallthrough=n 02:19:26 -!- tromp has quit (Ping timeout: 240 seconds). 02:20:31 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 With gems like: [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )? fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)? 02:21:56 Though I guess comments for silencing warnings or linters are a little more common. 02:22:24 There was definitely something (else) where you could do an `unused_` prefix on variables though. 02:23:16 I think that's pylint. 02:23:31 the very first major mod to hackbot i made was allowing it to use /me 02:23:40 because yes 02:30:27 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 Presumably not our wiki, though? 02:35:29 huh 02:42:04 [[MarioLANG]] M https://esolangs.org/w/index.php?diff=83198&oldid=83182 * HaleyHalcyon * (-13) 02:45:09 [[Numberlang]] https://esolangs.org/w/index.php?diff=83199&oldid=83196 * Batata * (+18) 02:46:00 [[Numberlang]] https://esolangs.org/w/index.php?diff=83200&oldid=83199 * Batata * (+16) /* Cat */ 02:47:47 [[Numberlang]] https://esolangs.org/w/index.php?diff=83201&oldid=83200 * Batata * (+18) /* Truth-Machine */ 02:58:04 -!- tromp has joined. 03:02:47 -!- tromp has quit (Ping timeout: 246 seconds). 03:18:40 -!- Lord_of_Life_ has joined. 03:19:02 [[Special:Log/newusers]] create * 8Epic8 * New user account 03:19:56 -!- Lord_of_Life has quit (Ping timeout: 260 seconds). 03:20:03 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 03:26:23 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83202&oldid=83175 * 8Epic8 * (+167) 03:57:35 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 fizzie: if it's from our wiki, my guess is the BANCStar one 03:59:06 -!- j4cbo has left. 04:00:36 fizzie: as for the fallthrough, there's now also a new-style attribute [[fallthrough]] for that (both in C and C++) 04:30:42 -!- delta23 has quit (Quit: Leaving). 04:46:39 -!- tromp has joined. 04:50:56 -!- tromp has quit (Ping timeout: 246 seconds). 05:04:44 [[Special:Log/move]] move * Ilaylevy * moved [[Yogurt]] to [[Dead]] 05:05:31 [[Dead]] https://esolangs.org/w/index.php?diff=83205&oldid=83203 * Ilaylevy * (+7) 05:06:19 -!- tromp has joined. 05:10:32 -!- tromp has quit (Ping timeout: 246 seconds). 05:20:59 -!- tromp has joined. 05:25:35 -!- tromp has quit (Ping timeout: 246 seconds). 05:40:55 TIL from https://www.youtube.com/watch?v=tyixMpuGEL8 why the transparency or alpha channel of images is sometimes called the "matte" channel 05:49:22 -!- tromp has joined. 05:54:09 -!- tromp has quit (Ping timeout: 265 seconds). 06:25:52 [[Stun Step]] https://esolangs.org/w/index.php?diff=83206&oldid=57054 * Bangyen * (+108) 06:44:19 -!- sftp has quit (Excess Flood). 06:46:38 -!- sftp has joined. 06:46:49 Write about ZZT, Free Hero Mesh, tarot cards, and the gemini protocol in the wisdom file, next. 06:47:47 `? tarot 06:47:48 tarot? ¯\(°​_o)/¯ 06:53:23 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 the hot reload capability would stop relying on bot implementation/language ability to do it 06:57:44 -!- tromp has joined. 06:58:18 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 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 another approach would be just to call a subprocess of course 07:01:01 but that would still need you to update the source code on bot machine that is another risk to kill the bot 07:40:32 Does anyone know an easy-to-compute metric on permutations of letters such that "carthorse" is close to "horsecart" but far from "orchestra"? 07:40:56 -!- stux|RC has quit (Quit: Aloha!). 07:46:14 today's gif and these comments remind me how I (always unsuccessfully) try to teach people IRC https://i.imgur.com/ZH7715s.png 07:47:57 -!- LKoen has joined. 07:49:39 Taneb: you could measure the distances the letters moved. 07:50:11 find all positions of the letters in the first word in the second word, compute their differences, add the differences up. 07:50:25 Taneb if it exists it should be somewhere here https://en.wikipedia.org/wiki/String_metric 07:50:29 either that or something like that via hamming distance. 07:50:44 imode: that would make carthorse far from horsecart, wouldn't it? 07:51:03 Taneb: yeah, valid. you could use some form of common edit distance algorithm. 07:51:58 there's probably something efficient for the permutations case.. hm. 07:52:41 maybe adding and then taking the average? 07:52:44 ACTION shrugs 07:52:58 Hmm, what about something with adjacencies? 07:54:10 [[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 actually if you let the differences be negative, it might cancel out. 07:54:29 [[I-ok]] https://esolangs.org/w/index.php?diff=83208&oldid=83207 * Kwes * (-9) 07:55:50 also there is nothing matching here https://en.wikipedia.org/wiki/Edit_distance 07:56:00 so I assume the problem just isn't solved yet or is unsolvable 07:57:27 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:58:19 -!- stux|RC has joined. 07:59:55 or 08:02:02 str.chars.each_cons(2).sort.map(&:join) 08:02:12 results in 08:02:18 ["ar", "ca", "ho", "or", "rs", "rt", "se", "th"] 08:02:25 ["ar", "ca", "ec", "ho", "or", "rs", "rt", "se"] 08:02:26 ["ch", "es", "he", "or", "ra", "rc", "st", "tr"] 08:03:09 and now you implement Levenshtein between these "two-byte-char" string 08:05:22 you see here it's distance 2 between carthorse and horsecart 08:07:36 [[Language list]] M https://esolangs.org/w/index.php?diff=83209&oldid=83094 * Kwes * (+11) added I-ok 08:09:43 [[I-ok]] https://esolangs.org/w/index.php?diff=83210&oldid=83208 * Kwes * (+23) 08:09:57 -!- hendursaga has quit (Ping timeout: 240 seconds). 08:11:13 [[I-ok]] M https://esolangs.org/w/index.php?diff=83211&oldid=83210 * Kwes * (+0) 08:11:33 [[I-ok]] https://esolangs.org/w/index.php?diff=83212&oldid=83211 * Kwes * (+1) 08:12:00 [[I-ok]] M https://esolangs.org/w/index.php?diff=83213&oldid=83212 * Kwes * (+1) 08:12:36 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 [[I-ok]] M https://esolangs.org/w/index.php?diff=83214&oldid=83213 * Kwes * (+0) 08:14:05 -!- hendursaga has joined. 08:14:51 O(n)=python 08:18:12 [[User:Kwes]] https://esolangs.org/w/index.php?diff=83215&oldid=83171 * Kwes * (+23) 08:19:30 if you make some reasonable threshold, it should perform pretty well 08:21:56 [[I-ok]] M https://esolangs.org/w/index.php?diff=83216&oldid=83214 * Kwes * (+30) 08:22:57 [[I-ok]] M https://esolangs.org/w/index.php?diff=83217&oldid=83216 * Kwes * (-6) 08:22:59 if you don't know in how many substrings it should be splitted it's N^N 08:23:17 you try h, ho, hor, hors, horse on each level 08:23:22 if I understood you correctly 08:24:34 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 oh btw, in my approach you don't need the O(n^2) levenshtein, because lists are sorted already 08:35:51 so it's O(n) to split, O(n log n) to sort and then O(n) again to calculate distance 08:36:08 n+m, whatever 08:37:15 -!- tromp has quit (Remote host closed the connection). 08:37:19 how would you do that in your example? "horse" cannot be put together by two-byte-strings 08:38:52 I don't put the horse together, I operate is as a ["ho", "or", "rs", "se"] sorted array 08:40:25 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 sure it depends on the length of strings, it they are 100 chars long there might be fake horses 08:41:39 *if 08:48:22 -!- tromp has joined. 09:05:32 \help 09:05:44 is prefix \ bot-free currently? 09:15:28 -!- TheLie has joined. 09:28:16 -!- Sgeo has quit (Read error: Connection reset by peer). 09:38:18 -!- kspalaiologos has joined. 09:44:37 -!- TheLie has quit (Remote host closed the connection). 09:47:11 -!- LKoen has quit (Remote host closed the connection). 10:02:48 -!- tromp has quit (Remote host closed the connection). 10:05:17 -!- tromp has joined. 10:10:49 -!- LKoen has joined. 11:38:24 -!- Thelie has joined. 11:48:06 -!- LKoen has quit (Remote host closed the connection). 11:53:59 [[Special:Log/newusers]] create * Nooder Coob * New user account 12:06:25 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=83218&oldid=83202 * Nooder Coob * (+355) /* Introductions */ 12:06:36 "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:19:14 [[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 what a description 12:26:24 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 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 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 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:37:31 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:37:32 -!- tromp has quit (Remote host closed the connection). 12:45:28 Taneb: does it only have to work on words without repetitions? 12:48:09 The letter bigram bag distance thing sounded reasonable to me. 12:48:42 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 fizzie: a refactor of esowiki? nice 12:50:01 "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 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 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 Incidentally, stalker mode doesn't yet work for this channel's logs. 12:54:00 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 components. writing would be a bit more complicated. 12:55:19 -!- tromp has joined. 12:55:31 That's a reasonable model too. I was going to use the "brpc" system, because, well, because it's there. 12:55:31 [[User:Batata]] https://esolangs.org/w/index.php?diff=83220&oldid=83197 * Batata * (+1) 12:55:42 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 though I could put them to a separate short-term logfile 12:57:34 I dunno, ideally I never want to handle passwords read from IRC again 12:57:55 [[I-ok]] M https://esolangs.org/w/index.php?diff=83221&oldid=83217 * PythonshellDebugwindow * (+55) Clarify 12:58:10 [[I-ok]] M https://esolangs.org/w/index.php?diff=83222&oldid=83221 * PythonshellDebugwindow * (+0) fix 12:58:44 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 fizzie: Is there a regular expression to distinguish the messages? 12:59:01 fizzie: freenode already has a mechanism for that 12:59:24 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 the protocol details are a bit complicated because it consists of three different parts: 13:00:02 zzo38: All the bridged messages start with " ..." and all the wiki updates start with "[[Page title]]", though the latter has color codes in it. 13:00:42 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 (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 I didn't know there was a new mechanism 13:01:45 do they also have a tag to identify connections uniquely even if they're not joined to a channel? 13:01:46 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 as in, when they're private message me 13:02:09 That one ^ should do, since it's in every message. 13:02:12 fizzie: well ok, but does libera actually implement that? 13:02:35 fizzie: well that's more useful, though not quite what I asked about 13:02:36 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 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 So "account-tag" *is* mentioned there, but the one I was confused about was "solanum.chat/identify-msg". 13:03:46 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 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 and I know the servers do have such unique tags, they use them when the servers talk to each other 13:05:12 "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 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 Looking at the code, it's probably something else. 13:08:31 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 the connection alive even if it has a memory corruption and so its knowledge about its connections is mangled 13:08:43 and yes, I know that's a stupid thing and I'd never do that in production, but still 13:10:47 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 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 but I haven't seen an extension that does that 13:15:50 for PRIVMSG/NOTICE it's easy, you only get a PRIVMSG targeting a nick if it's you 13:25:25 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 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 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:43 even though in production code you wouldn't want really to rely on those guarantees anyway 13:28:54 it's not just me that happens to, right? I mean this is #esoteric 13:31:57 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 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 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:39:08 -!- tromp has quit (Remote host closed the connection). 13:40:37 -!- tromp has joined. 13:41:01 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 huh, why can't I log in to the internet bank? did they break the webpage? 13:41:53 They moved it to Mars. 13:42:23 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 but that doesn't scale well to a Galactic Empire 13:43:12 fizzie: they could, but they'd notify me of changes that can potentially cause difficulties in accessing the internetbank interface 13:43:16 good, now the webpage reacted 13:44:35 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 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 blank page with an URL that had an error code in it. 13:46:57 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 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 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 and that state would verify your login details and send you the SMS for two-factor authentication 13:50:39 I mean it presumably wouldn't still be SMS, just some analog 13:53:07 "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 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 "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 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 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 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 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 yes, logging into an error page is probably not the correct behavior 13:58:03 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 Hopefully they'll just mail it this one time. 13:59:21 (Not that I really need one, except to complete the set.) 13:59:46 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 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 does brpc stand for befunge rpc? 14:13:09 "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:14 16:03:35 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 nakilon: yes, but only if you opt into it with CAP or CAPAB or some such message 14:14:52 and if you and them share a joined channel at the time 14:15:05 s/such message/such magic/ 14:15:18 and this is for freenode, I haven't tested anything on libera 14:16:15 -!- b_jonas has left. 14:16:36 I guess I'll give in to the move for now, part freenode/#esoteric, and trust the bridge 14:17:58 well I lost it somewhere around Mars colonization 14:19:18 s/does you get/do you get 14:20:26 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 and so you have to do additional requests to server and during that time user could be replaced 14:24:06 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 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 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 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 will have to attach GCP SDK to make Function requests ( 14:25:28 in order to have them authorized 14:25:34 oauth magic? 14:25:43 or google apis? 14:26:16 the "Generating tokens manually" instead of using SDK that has all this magic inside 14:27:07 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 and I'm just lazy to install others 14:27:42 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 "surely" 14:28:16 no, actually I never throw magic away and attach it as comments everywhere 14:28:50 yeah, you have experience 14:29:36 that's rather seen practice than painful experience 14:30:17 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 job security by obscurity? 14:31:20 what does that mean 14:35:27 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 great 14:35:55 since then I'm accumulating notes and tend to commit them rather than throw away 14:36:07 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 ah ye, I call it a sysadmin style 14:51:01 -!- river has quit (Read error: Connection reset by peer). 15:16:01 `help 15:16:01 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert " 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 \o/ 15:17:43 \o/ 15:18:23 `relcome 15:18:25 ​Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 15:18:43 ` grep -Ri freenode 15:18:43 ​? Permission denied 15:18:49 ` grep -Ri freenode $HACKENV 15:18:50 ​? Permission denied 15:19:10 ` cat $HACKENV/* | grep -i freenode 15:19:11 ​? Permission denied 15:21:42 there's some more (unfinished) help at https://esolangs.org/wiki/Hackeso 15:21:53 sorry, at https://esolangs.org/wiki/HackEso 15:23:46 ` which grep 15:23:47 ​? Permission denied 15:23:54 `run which grep 15:23:55 ​/bin/grep 15:24:01 `run grep -Ri freenode $HACKENV 15:24:33 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:52 -I to ignore binary files I guess 15:24:58 `run grep -RiI freenode $HACKENV 15:25:24 hah. int freenode 15:25:28 ​/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:29 -!- contrapumpkin has joined. 15:25:38 `run grep -RiI freenode $HACKENV | grep -v 'int freenode' 15:25:40 `run grep -RiI freenode $HACKENV | wc -l 15:26:00 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 No output. 15:26:16 No output. 15:26:46 -!- copumpkin has quit (Ping timeout: 240 seconds). 15:27:04 [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=83223&oldid=83103 * B jonas * (+652) /* Communications */ possible move from freenode 15:27:05 001 too 15:28:00 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 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 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 that said, I'm going to call the network libera too 15:29:47 probably 15:30:18 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 I care about 15:30:53 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 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 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 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 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:44:51 -!- delta23 has joined. 15:45:11 I called it libera in weechat at least 15:45:36 Yea that’s what I called it in my bouncer 15:49:11 -!- sprock has quit (Ping timeout: 240 seconds). 15:50:37 -!- copumpkin has joined. 15:53:26 -!- contrapumpkin has quit (Ping timeout: 240 seconds). 15:54:39 fizzie: oops 16:08:05 liberated church? what does that mean lol 16:10:09 nakilon: I started out with "libera" and the rest is word association games 16:11:03 bot should make up new topic 16:12:58 basically I was just one-upping myself anyway (see topic on fr**node) 16:13:35 woah 16:14:02 while trying to escape the JSON dumped RASEL code for echo and curl it seems that I've created a file 16:14:09 and it's named /?@,Gj"dlroW ,olleH\">/?@,Gj" 16:14:24 with both slashes, and I thought it's impossible to create files with / 16:15:22 good thing I have a GUI or I won't be able to remove it 16:18:44 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:01 -!- tromp has quit (Remote host closed the connection). 16:19:21 (and it's inadvisable) 16:37:28 -!- LKoen has joined. 16:46:14 -!- tromp has joined. 16:46:30 "Unexpected internal error" 16:46:33 thank you google 16:47:18 I use Windows only for gaming 17:03:45 -!- sftp has quit (Ping timeout: 258 seconds). 17:10:14 -!- LKoen has quit (Remote host closed the connection). 17:13:09 fine, I'll give up and rely on preinstalled gcloud sdk 17:21:20 -!- tromp has quit (Remote host closed the connection). 17:29:07 -!- tromp has joined. 17:38:21 I had: i /:esowiki![^ ]* PRIVMSG #esoteric :/i But, I will change it now; let's try 17:39:02 Maybe now it will work; let's see 17:39:27 This is a message from the bridge, so if you saw it, it worked. 17:39:33 No, that won't work 17:39:56 Right, I guess it doesn't prove that it suitably ignored one of the wiki updates. 17:40:05 OK, I tried again. 17:40:18 This time, I can receive the message; it worked 17:43:01 can you make the bridge drop every message containing the word fnord 17:43:35 also drop messages randomly for confusion 17:43:41 good idea! 17:43:43 or replacing the nicknames 17:44:36 adding typos 17:45:01 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 it's just a bot, whatever user can do it does 17:47:08 (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:50:10 -!- Soni has left ("http://quassel-irc.org - Chat comfortably. Anywhere."). 17:55:24 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 I think fizzie's bot only forwards one or two channel, not private messages, but you'll have to ask them 17:57:44 -!- LKoen has joined. 18:02:41 -!- Thelie has quit (Remote host closed the connection). 18:10:35 [[Special:Log/newusers]] create * Vivax * New user account 18:11:22 yo 18:11:31 yuo should do a GCF 18:11:38 or move to ##esolangs 18:11:44 the # vs ## thing sucks 18:12:08 huh? 18:12:28 Is esolangs a registered project/community? 18:12:39 it's being worked on 18:12:50 https://libera.chat/chanreg 18:14:17 GCF was created to support the efforts of developing countries in responding to the challenge of climate change. 18:15:44 yers 18:15:57 `? gcf 18:15:59 gcf? ¯\(°​_o)/¯ 18:35:16 [[Special:Log/newusers]] create * Oshaboy * New user account 18:37:03 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83224&oldid=83218 * Oshaboy * (+97) /* Introductions */ 18:38:30 -!- metcalf has joined. 18:40:59 -!- metcalf has quit (Client Quit). 18:41:12 -!- metcalf has joined. 18:44:29 -!- Sgeo has joined. 18:48:52 \rasel "!dlroW ,olleH">:?@,Gj 18:48:55 nakilon, output: "Hello, World!", exit code: 0 18:49:12 finally I made it 18:49:44 `? prefixes 18:49:46 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 18:50:38 `slwd prefixes//s=.$=, velik \\.= 18:50:43 prefixes//Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =, velik \. 18:52:10 thanks 18:52:24 fizzie might want to add the nickname to ignorelists 18:52:51 here is the bot code https://github.com/Nakilon/nakiircbot/blob/master/example_libera_velik/main.rb 18:53:14 here is the Cloud Function code https://github.com/Nakilon/rasel/blob/master/examples/google_cloud_function/app.rb 18:56:18 and to add new function its cmd and address should be added to this gist https://gist.github.com/Nakilon/92d5b22935f21b5e248b713057e851a6 18:56:30 and then the "hot reload" 18:56:33 \reload remote 18:56:34 remote execution commands loaded: ["rasel"] 18:57:19 ^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 OK. 18:57:45 fizzie: otherbot hasn't existed for... 3+yr 18:57:47 you can remove it 18:58:00 Yeah, I'll do a spring cleaning of that expression some day. 18:58:32 Noisytoot: We're waiting for a reply to our community registration email, but we already got verbally told it's okay. 18:58:48 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:59:25 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:49 -!- tromp has quit (Read error: Connection reset by peer). 19:00:24 -!- tromp has joined. 19:00:32 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 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 yea i assumed so 19:02:03 ACTION words around a verbified noun 19:02:05 if it comes up again I can hand over a patch 19:03:16 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 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 fizzie: well, that is the correct behavior 19:05:24 I'm pretty sure you were supposed to be able to embed CTCP inside messages arbitrarily. 19:05:33 Maybe not so meaningfully for ACTION though. 19:05:35 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 Embedding ACTION like this is probably useful for bridging, though. 19:06:30 `rasel "!dlroW ,olleH">:?@,Gj 19:06:31 The way I saw int-e's message was as " AACTION words around a verbified nounA", with the 'A' letters that are actually ^A rendered with reversed colors. 19:06:32 Hello, World! 19:07:54 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 (Although, it does this even if it is alone and not part of another message.) 19:08:37 the good thing about this serverless thing is that it easily stops when RAM or Time limits are reached 19:09:51 22:02:03 ACTION words around a verbified noun 19:10:03 this could be 22:02:03 * int-e words around a verbified noun 19:10:49 Sure, that'd be the obvious "pre"formatting for CTCP ACTION. 19:13:28 fizzie: ugh, you seem to be right that CTCP in the middle of a message was meant to work 19:14:09 but I imagine it would then result in two lines here, , * esowiki 19:14:52 so it would still be up to the bridge to turn this into something more sensible 19:16:21 Well, I still think that what it currently does makes sense, at least 19:18:28 btw 19:18:38 22:06:02 *** User ##esoteric is already on the channel. 19:18:59 zzo38: it does 19:19:05 I feel like thelounge dropped previous logs 19:20:09 I guess there were two channels and then they were merged 19:20:34 and now I'm unable to switch to the old one to see the history, lol 19:21:09 it's now trashed somewhere in thelounge's sql db 19:23:04 nakilon: fizzie can probably invite you 19:24:01 but it also seems kind of pathetic, not being able to check the logs just because you're not joined :) 19:24:48 what about your clients? do you miss that chunk too where we were jumping around the hackeso ` `` ```? 19:25:04 cbt and stuff 19:25:48 int-e so another channel still exists? 19:26:04 There's still 10 people on ##esoteric, yes. 19:26:15 nakilon: #esoteric and ##esoteric both forward people to join here 19:26:21 to->who 19:26:29 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 the tab of the channel 19:26:36 There was a big split, and then ChanServ kicked out a whole bunch of people with the reason "invite-only channel". 19:26:40 fizzie: down from 22 the last time I checked... attrition! 19:27:02 (apparently I was on the wrong side of that split) 19:27:16 (doesn't matter, I only just noticed) 19:27:38 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 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 "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 no need to spring clean that, there's no harm coming from ignoring those other bots 19:40:52 oh by the way 19:41:27 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 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 perlbot is an instance of a modified version of buubot3, and simcop already brought it to libera 19:42:41 [[4BOD]] N https://esolangs.org/w/index.php?oldid=83225 * Oshaboy * (+2437) Initial 19:43:00 huh thought i brought it hear earlier already 19:43:23 it will only speak when spoken to so it's usually fine 19:44:02 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 ^ignore ^(HackEso|lambdabot|metasepia|idris-bot|blsqbot|j-bot|esolangs|velik|perlbot)! 19:46:00 OK. 19:46:17 (I know some of those are still obsolete, but anyway.) 19:46:41 [[Special:Log/newusers]] create * IPhoenix * New user account 19:47:42 fungot! 19:47:42 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 Armed groups are one way to reduce greenhouse gas emissions, yes. 19:48:21 " * int-e words around a verbified noun" => I dislike formatting CTCP action that way 19:48:40 I'd suggest " /me words around a verbified noun" instead 19:49:12 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83226&oldid=83224 * IPhoenix * (+276) hi 19:50:27 Yes, and I would prefer just sending it directly. So, those are now three different suggestions. 19:52:14 " 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 simcop2387: thanks 19:53:05 perlbot compose {echo > 3 -- fun}{echo got} 19:53:05 b_jonas: Error: unmatched closing parenthesis in compose 19:53:11 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 perlbot compose {echo {echo > 3 -- fun}{echo got}} 19:53:42 b_jonas: > 3 -- fungot 19:53:43 https://factoids.perl.bot/ for a way to browse them all. 19:54:04 fizzie: thanks 19:56:57 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: - 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 what is the difference between #esolangs and ##esoteric 19:57:38 basically nothing 19:57:46 I can't join it, neat. 19:57:59 It's supposed to just forward to here. 19:58:03 imode: it forwards people here, just as #esoteric does 19:58:05 aha, that explains it. 19:59:08 If the help file says something that does not match the implementation, then you should file a bug report 20:00:01 [[4BOD]] https://esolangs.org/w/index.php?diff=83227&oldid=83225 * Oshaboy * (+92) Categories 20:00:11 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 [[4BOD]] M https://esolangs.org/w/index.php?diff=83228&oldid=83227 * Oshaboy * (+0) Typo 20:00:41 zzo38: Yeah, although I can't rule out the possibility that I did something wrong. 20:01:00 Yes, that is what you will have to check first 20:01:55 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 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 [[4BOD]] https://esolangs.org/w/index.php?diff=83229&oldid=83228 * Oshaboy * (+53) Typo and extra info 20:03:23 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 perlbot: factgrep _be_ 20:03:30 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 [[4BOD]] M https://esolangs.org/w/index.php?diff=83230&oldid=83229 * Oshaboy * (+0) Typo 20:03:54 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 [[4BOD]] M https://esolangs.org/w/index.php?diff=83231&oldid=83230 * Oshaboy * (+0) Typo 20:04:20 -!- metcalf has quit (Quit: metcalf). 20:04:21 wait, factgrep? 20:04:24 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 yea runs a regex across all the factoid subjects (not the contents) 20:04:43 -!- metcalf has joined. 20:04:45 so that things like this are doable 20:04:46 [[4BOD]] https://esolangs.org/w/index.php?diff=83232&oldid=83231 * Oshaboy * (+45) Extra Info 20:04:48 perlbot: literal be 20:04:48 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 perlbot fact literal factgrep 20:05:15 it's a command part of the factoid plugin, no way to do it otherwise 20:05:30 help fact 20:05:33 perlbot: literal _be__get_list 20:05:33 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 i've not kept up with the help properly for it all 20:05:54 simcop2387: yeah, help text are hard to write 20:05:59 -!- metcalf has quit (Client Quit). 20:06:01 it's just a PCRE regex against the factoids 20:06:15 -!- metcalf has joined. 20:06:17 wait, a PCRE regex powered by postgres? 20:06:22 yea 20:06:40 at least i think it was pcre. can't remember 20:06:47 id perl esoteric? 20:06:56 it can be 20:07:06 nakilon: perl isn't, but perlbot is 20:07:13 it probably would be considered so these days 20:07:18 b_jonas yeah, it might be valid nickname char but I'm used to it from some time ago 20:07:34 I hope no one name himself \rasel 20:07:54 anyway 20:08:09 \rasel some random text that people would write here 20:08:12 nakilon, output: "", exit code: 255 20:08:31 i wish we had the ircv3 extension that let you have unicode nicks. 20:08:56 `echo perlbot echo hi 20:08:57 perlbot echo hi 20:08:57 HackEso: hi 20:09:28 hmm, is that OK or is that a botloop risk in the future? 20:09:31 I mean 20:09:39 `echo j-bot: 'hi' 20:09:39 j-bot: 'hi' 20:09:46 it's basically the same as that 20:10:06 um 20:10:11 oh yeah, j-bot isn't here 20:10:15 I have to test that on freenode 20:10:21 -!- b_jonas has joined. 20:10:30 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 `echo j-bot: echo 'hi' 20:10:35 j-bot: echo 'hi' 20:10:36 HackEso: |security violation: echo 20:10:36 HackEso: | echo'hi' 20:10:41 `echo j-bot: 'hi' 20:10:42 j-bot: 'hi' 20:10:43 HackEso: hi 20:10:47 HackEso's main anti-loop defence is that non-breaking space in front of non-alphanumeric first characters. 20:10:59 It kind of doesn't work for bots that respond to "nick:" prefixes. 20:11:02 yeah, basically the same as how perlbot is invoked 20:11:05 perlbot will throttle itself but it won't try to break a loop itself 20:11:05 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:33 -!- b_jonas has left. 20:11:50 that said i can easily just tell it to ignore the other bots if needed 20:12:23 yes, j-bot can do that too 20:12:45 You might tell it to ignore HackEso and perhaps fungot. Though I guess traditionally we should get one botloop in first. 20:12:45 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 for now velik is almost loop-safe because the rasel output is prefixed with "output: " 20:13:18 \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 hmm wait 20:14:54 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 oh and this one 20:14:59 ping 20:14:59 pong 20:15:17 \echo hi 20:15:39 though if output is prefixed by output: that does sound safe 20:19:32 \rasel 0 20:19:53 > symbol "perlbot echo hi" 20:19:55 error: 20:19:55 • Variable not in scope: symbol :: [Char] -> t 20:19:55 • Perhaps you meant ‘isSymbol’ (imported from Data.Char) 20:20:00 > text "perlbot echo hi" 20:20:02 perlbot echo hi 20:20:02 lambdabot: hi 20:20:07 that's more promising 20:20:30 yeah, but then it prefixes the output with lambdabot, and I don't think you can trigger lambdabot that way 20:20:36 lambdabot: > 2 20:20:37 lambdabot: @run 3 20:20:39 3 20:20:41 wait 20:20:48 oh it does not respond with bot-level exception like "HTTPRequestTimeOut 408 Request Timeout" here -- it PRIVMSGs it to me 20:20:53 Was going to say, I've seen people do the @run thing. 20:21:28 > text "perlbot @echo hi" 20:21:29 perlbot @echo hi 20:21:29 lambdabot: No factoid found. Did you mean one of these: [.ec] [.eg] [.es] [each] [easy] [.hi.us] [high] [e] [ed] [.ee] 20:21:42 > text "wait what? @echo hi" 20:21:43 wait what? @echo hi 20:22:01 > text "@echo hi" 20:22:03 @echo hi 20:22:09 > text "perlbot echo @run 123" 20:22:10 perlbot echo @run 123 20:22:10 lambdabot: @run 123 20:22:12 123 20:22:17 > text "perlbot @echo hi" 20:22:18 perlbot @echo hi 20:22:18 lambdabot: No factoid found. Did you mean one of these: [.ec] [.eg] [.es] [each] [easy] [.hi.us] [high] [e] [ed] [.ee] 20:22:41 In the above, just replace "123" with something that generates text "..." and you'd be done. 20:22:41 > text "perlbot echo @echo hi" 20:22:43 perlbot echo @echo hi 20:22:43 lambdabot: @echo hi 20:22:43 echo; msg:IrcMessage {ircMsgServer = "libera", ircMsgLBName = "lambdabot", ircMsgPrefix = "perlbot!~perlbot@71.76.76.1", ircMsgCommand = "PRIVMSG", ircMsgParams = ["#esolangs",":lambdabot: @echo hi"] 20:22:43 } target:#esolangs rest:"hi" 20:23:08 > text "perlbot echo @run text \"hi\"" 20:23:09 perlbot echo @run text "hi" 20:23:10 lambdabot: @run text "hi" 20:23:11 hi 20:23:13 that's absolutely loopable 20:23:24 I will wait a little bit of time before I actually loop it though 20:23:35 since I specifically asked simcop to join it here 20:23:57 I've got nothing to do with either perlbot or lambdabot, so I'll just make some popcorn and watch. 20:23:59 perlbot help ignore 20:23:59 b_jonas: Sorry, no plugin named ignore found. 20:25:03 I mean I can make a loop that I can break, but still 20:25:20 -!- Thelie has joined. 20:25:33 simcop2387: can you please make perlbot ignore lambdabot? 20:25:47 int-e: can you please make lambdabot ignore perlbot? 20:26:13 @ignore perlbot 20:26:13 Not enough privileges 20:26:18 $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 perlbot echo @ignore perlbot 20:26:23 b_jonas: @ignore perlbot 20:27:03 > text "perlbot echo @ignore perlbot" 20:27:04 perlbot echo @ignore perlbot 20:27:05 lambdabot: @ignore perlbot 20:27:05 Not enough privileges 20:27:29 > text "perlbot echo @ignore +perlbot" 20:27:30 perlbot echo @ignore +perlbot 20:27:30 lambdabot: @ignore +perlbot 20:27:31 Not enough privileges 20:27:37 > text "perlbot echo @ignore -perlbot" 20:27:38 perlbot echo @ignore -perlbot 20:27:39 lambdabot: @ignore -perlbot 20:27:39 Not enough privileges 20:27:52 > text "perlbot echo @ignore + perlbot" 20:27:53 perlbot echo @ignore + perlbot 20:27:54 lambdabot: @ignore + perlbot 20:27:54 Not enough privileges 20:28:05 you can't even ignore you? 20:28:14 j-bot has a special command to ignore you 20:28:18 which works without privilages 20:28:30 it's not the normal ignore command, a different command 20:29:25 what does "j-" mean? 20:29:36 J language 20:29:51 oh cool 20:31:09 weird, the lambdabot ignore command isn't even in the whatisdb. I thought it had all lambdabot commands. 20:31:13 `whatis ignore 20:31:14 ignore(8jevalbot) - ignore messages from the given irc nick 20:32:53 although now I should add perlbot commands to the whatisdb too 20:33:56 `whatis whatis 20:33:57 whatis(1) - display one-line manual page descriptions \ whatis(1hackeso) - display one-line manual page descriptions \ whatis(5hackeso) - no description 20:34:23 it's mostly manpage headers, but I added a bunch of bot commands for fun 20:34:23 _Oo 20:35:01 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 `whatis b_jonas 20:35:08 b_jonas: nothing appropriate. 20:35:15 try `? for that 20:35:17 sounds tight 20:35:20 *r 20:35:43 but of course there are new HackEso commands since 20:35:54 `? b_jonas 20:35:55 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 bit like the `info script my Hackbot instance has. 20:36:20 I mean having manpages for HackEso commands actually makes some sort of sense, 20:36:26 and then I went from that to other bots by analogy 20:36:27 -!- metcalf has quit (Quit: metcalf). 20:36:35 `` cat ${which whatis} 20:36:36 ​/hackenv/bin/`: line 5: ${which whatis}: bad substitution 20:36:42 -!- metcalf has joined. 20:36:47 ACTION tired 20:36:58 ``` cat $(type -p whatis) 20:36:59 ​#!/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 round parens 20:37:05 Ye 20:37:18 i just got in bed for a nap, so I’m tired and on phone :P 20:37:45 ``` url $(type -p whatis) # might be more useful 20:37:47 https://hack.esolangs.org/repo/file/tip/bin/whatis 20:40:59 -!- metcalf has quit (Client Quit). 20:41:12 -!- metcalf has joined. 21:01:22 -!- harha_ has quit (Quit: ZNC - https://znc.in). 21:03:23 > text "perlbot echo @run text \"hi\"" -- just to check if any of the ignores are set 21:03:24 perlbot echo @run text "hi" 21:03:25 lambdabot: @run text "hi" 21:03:26 hi 21:05:40 ugh 21:08:04 -!- harha_ has joined. 21:11:17 -!- dionys has joined. 21:15:45 int-e: please make lamdbabot ignore perlbot 21:15:58 b_jonas: can't 21:16:02 you can't? 21:16:23 perlbot echo @run text "hi" 21:16:23 int-e: @run text "hi" 21:16:30 oh 21:16:38 I'll have to wait for simcop then 21:16:40 anywa, I can't because I already did 21:16:44 to make perlbot ignore lambdabot 21:17:06 also, who is lamdbabot ;) 21:17:10 int-e: this one is trivial to turn to a botloop, with the defined value or quine on either side 21:17:21 :) typo yes 21:17:33 > text "perlbot echo @run text \"hi\"" 21:17:35 perlbot echo @run text "hi" 21:17:35 lambdabot: @run text "hi" 21:17:37 hi 21:17:45 huh, I thought I did 21:18:06 > text "perlbot echo @run text \"hi\"" 21:18:07 perlbot echo @run text "hi" 21:18:07 lambdabot: @run text "hi" 21:18:23 also wait 21:18:27 hmm 21:18:37 oh right 21:21:07 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 but that's hard 21:21:26 but I will have to think a bit if there's an easier way 21:24:33 apparently unaffiliated cloaks start with "user/" on libera, not "unaffiliated/" 21:24:50 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 b_jonas: I suppose there is the advantage being shorter 21:25:07 yep 21:29:15 (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 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 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 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 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:09 -!- tromp has quit (Remote host closed the connection). 21:34:16 but ip addresses help channel ops ban spam quickly 21:34:23 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:34:39 -!- pikhq has left ("don't care about being present in both channels while we have the bouncer"). 21:35:01 zzo38: I think we already have some pretty well supported IRC syntax to mark fake hostnames, used for cloaks and services 21:35:58 There is the format with slashes, which are not valid in domain names, so that works, I think. 21:36:06 (But not all IRC networks use this) 21:38:58 -!- clog has quit (Ping timeout: 240 seconds). 21:39:08 -!- clog has joined. 21:42:26 -!- tromp has joined. 22:01:55 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 22:11:52 `؟ liberA 22:11:54 ​.ebyaM .erutuf eht fo dnal eht si arebiL 22:12:18 -!- tromp has quit (Remote host closed the connection). 22:12:22 woah 22:14:05 salpynx: o/ 22:25:17 oh, so ¿ does work too!: 22:25:19 `¿ befunge 22:25:20 ​.dronF .sgnihT eht llA detnevbenat benaT dnA .benaT tog tognuF dnA .tognuF togeb egnufeB dnA .egnufeB saw gninnigeB eht nI 22:25:45 was there a fourth question mark in unicode, hm?.. 22:26:27 `; unicode 22:26:28 ​;? No such file or directory 22:26:48 `⁇ unidecode 22:26:49 ​⁇? No such file or directory 22:27:00 `unidecode ؟ 22:27:01 ​[U+061F ARABIC QUESTION MARK] 22:27:22 there’s at least one more ؟, ⸮: 22:27:25 `unidecode ⸮ 22:27:26 ​[U+2E2E REVERSED QUESTION MARK] 22:27:31 `⸮ unidecode 22:27:32 ​⸮? No such file or directory 22:27:51 `? ⸮ 22:27:53 ​⸮? ¯\(°​_o)/¯ 22:28:34 I find this trend very questionable 22:29:34 would it be good to have a wisdom about ¿? 22:29:55 oh, I mean about those two other ones 22:31:15 [[Whopper]] N https://esolangs.org/w/index.php?oldid=83233 * Hyperdawg * (+1075) Add some stuff 22:32:38 -!- sebbu has quit (Quit: reboot). 22:37:39 feel free to unlearn this but I hope this will stick :D 22:37:40 `؟ ؟ 22:37:41 ​؟ is more than just wisdom 22:38:28 (and ¿ was already wise) 22:49:12 -!- tromp has joined. 22:54:28 -!- tromp has quit (Ping timeout: 265 seconds). 23:08:21 -!- sebbu has joined. 23:20:00 I had hoped ¿ turned the wisdom upside down (rotate not reflect), but it's just a synonym for ؟ 23:20:01 [[Whopper]] https://esolangs.org/w/index.php?diff=83234&oldid=83233 * Hyperdawg * (+166) 23:21:02 (found it by looking in the source repo) 23:32:31 > text "perlbot echo @run text \"hi\"" -- lets' try again 23:32:32 perlbot echo @run text "hi" 23:32:33 lambdabot: @run text "hi" 23:32:40 thanks, int-e 23:33:08 -!- sprock has joined. 23:34:59 Turning characters upside-down is harder than changing their order. 23:35:13 -!- ArthurStrong has joined. 23:35:27 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 According to one online converter, this is not very wise -> ǝsıʍ ʎɹǝʌ ʇou sı sıɥʇ. 23:37:23 Which is okay, I guess, but not great. 23:37:33 Especially the i → ı part. 23:40:54 -!- Thelie has quit (Remote host closed the connection). 23:43:38 `` python3 -c 'print("sı\u0323 sı\u0323ɥʇ")' 23:43:39 sı̣ sı̣ɥʇ 23:52:32 `jrypbzr 23:52:33 Jrypbzr gb gur vagreangvbany uho sbe rfbgrevp cebtenzzvat ynathntr qrfvta naq qrcyblzrag! Sbe zber vasbezngvba, purpx bhg bhe jvxv: . (Sbe gur bgure xvaq bs rfbgrevpn, gel #rfbgrevp ba RSarg be QNYarg.) 23:52:37 yeah, we do have that 23:52:56 `welcome 23:52:58 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)