00:00:57 <b_jonas> "<Sgeo> I wonder what a NetHack TCG would be like" => I was wondering about that at some point, and figured out some possible mechanics, but in the end it mostly comes down to making any good TCG core, then flavoring it to nethack by throwing in as many nethack references as you can. Same as you'd make a TCG for a TV series.
00:01:42 <cd> if computerized, the biggest way you could do it is simply to try and have as much foresight as nethack itself
00:01:46 <cd> good luck with that though
00:02:14 <cd> You apply the potion of oil to the iron golem, it's attack power doubles!
00:02:31 <b_jonas> that's an interesting quine, how does the unbalanced double quote work?
00:03:08 <zzo38> You can try to make up templates for the TCG using TeXnicard, perhaps. I also believe that a computer implementation of the rules should be written as FOSS, perhaps using literate programming so that it includes the general text too.
00:03:47 <nakilon> b_jonas it reads it once for start then wraps around the line and reads it again for the end
00:04:32 <esolangs> [[BF-PDA]] https://esolangs.org/w/index.php?diff=83429&oldid=83008 * Bangyen * (-74)
00:04:44 <esolangs> [[BFStack]] https://esolangs.org/w/index.php?diff=83430&oldid=83011 * Bangyen * (-53)
00:05:08 <esolangs> [[EXCON]] https://esolangs.org/w/index.php?diff=83431&oldid=83007 * Bangyen * (-15) /* Interpreter */
00:05:23 <esolangs> [[RAM0]] https://esolangs.org/w/index.php?diff=83432&oldid=83010 * Bangyen * (-53)
00:05:24 <b_jonas> fizzie: bash arbitrary delimiter: there's here-docs, but nothing like perl/ruby's single character delimiter. I would occasionally like a better delimiter for URLs in bash, because neither " nor ' works.
00:06:59 <b_jonas> nakilon: oh! so that's why when I miss the @ builtin you get an infinite loop. that makes much more sense
00:08:53 <b_jonas> well that makes more sense
00:10:02 <zzo38> I have found ' suitable to delimit URLs in bash
00:11:25 <b_jonas> zzo38: that doesn't work well because URLs can contain ' so then you have to escape it
00:12:15 <b_jonas> $'' doesn't work for the same reason; "" doesn't work because now you have to escape dollar signs
00:14:42 <b_jonas> and yes, this is a small complaing, I do generally like bash
00:14:45 <zzo38> I had never needed to use a URL with '
00:16:38 -!- mnrmnaugh has joined.
00:18:45 <nakilon> hey I made it even shorter
00:18:51 <velik> output: "<@,Yj5#?:,\"", exit code: 0
00:19:53 <nakilon> both ? branches reach the j, but one gets 5 and another carries own end-loop 0
00:21:50 <nakilon> it's now 1 char shorter than Befunge-98 I guess
00:28:39 -!- mnrmnaugh has quit (Quit: Leaving).
00:29:09 -!- mnrmnaugh has joined.
00:29:21 -!- mnrmnaugh has quit (Remote host closed the connection).
00:35:02 <nakilon> `rasel "tobadbmal olleh >",,,,,,,,,,,,,,,,,@
00:38:29 -!- mnrmnaugh has joined.
00:41:45 -!- mnrmnaugh has quit (Client Quit).
00:42:22 -!- mnrmnaugh has joined.
00:42:40 <esolangs> [[RASEL]] M https://esolangs.org/w/index.php?diff=83433&oldid=83422 * Nakilon * (+7) /* Quine */ 11 chars
01:37:03 <esolangs> [[Special:Log/newusers]] create * Aylias * New user account
01:39:48 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=83434&oldid=83411 * Aylias * (+206) /* Introductions */
01:45:53 -!- mnrmnaugh has quit (Quit: Leaving).
01:47:24 <fizzie> Heh, I was fiddling in SASL support to my IRC thing (seems to be working now), and noticed I had originally generated a 10-year self-signed cert, which will expire next year. Wonder how I'm supposed to remember something like that.
01:48:17 <int-e> put it into your calendar and hope that it survives the 2 software migrations in the meantime?
01:52:02 <fizzie> Hmm, it might just barely work.
02:10:25 -!- mnrmnaugh has joined.
02:16:15 <fizzie> Turns out bip doesn't do SASL. :/ (After adding it to the homegrown bot thing, was thinking of setting it up for this human-client connection too.)
02:17:09 <int-e> irssi does. weechat does too, presumably
02:17:45 <fizzie> Yeah, but they're not bouncers.
02:18:06 <fizzie> I went through this phase of experimenting with clients, and it was convenient to not have that cause any trouble.
02:18:15 <fizzie> (I know ZNC does, but it's too mainstream.)
02:18:22 <int-e> oh bouncers, right
02:18:56 <int-e> well, being mainstream may correlate with growing sasl support
02:19:04 -!- mnrmnaugh has quit (Quit: Leaving).
02:19:59 <fizzie> Yeah, I guess. bip does client-side certificates, which is *almost* but not exactly the same.
02:21:23 <fizzie> (Adding a client cert fingerprint to NickServ makes it auto-identify soon *after* connecting, but you still need to do a SASL EXTERNAL thing in the connection registration stage to make it happen before actually connecting.)
02:21:28 <int-e> ...almost, but not quite, entirely unlike tea...
03:09:10 -!- dyeplexer has joined.
03:16:17 <imode> did y'all get your channel seized on freenode.
03:16:20 <imode> because #lobsters did.
03:16:31 <cd> everyone did
03:16:42 <cd> they've seized every single channel that mentions libera.
03:17:11 <cd> all of them
03:17:17 <imode> and are doing.. what.
03:17:41 <cd> forcibly preventing the channel from leaving, by hiding the fact it moved
03:17:50 <cd> it's redirected to it's ## version, and owned by a placeholder account
03:18:22 <imode> anybody wanna argue about FUD when moving networks now.
03:20:00 -!- variable has joined.
03:21:10 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
03:21:15 -!- Lord_of_Life_ has joined.
03:22:03 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
03:22:28 <int-e> /!\ Freenode has started to take over project channels that advertise ("spam") Libera Chat in the topic, e.g.: https://pastebin.com/UGgTwRnt
03:22:57 <int-e> brctl: ignore int-e
03:24:20 -!- illegal has quit (Quit: We're here. We're queer. Connection reset by peer).
03:24:54 <imode> bye freenode, fuck you andrew lee.
03:25:01 <imode> brctl: ignore imode
03:26:41 -!- illegal has joined.
03:26:48 -!- illegal has changed nick to V.
03:27:58 -!- V has quit (Client Quit).
03:28:25 <cd> brctl: ignore cd
03:29:09 <pikhq> that's pretty... uh, what did they think was gonna happen
03:30:39 -!- V has joined.
03:32:24 <chibi> pikhq: Probably hope to snag users that haven't realized everyone's movied to libera
03:32:44 <chibi> So uders that log on to IRC maybe once-twice a month or something
03:33:43 -!- variable has quit (Quit: Found 1 in /dev/zero).
03:34:13 <pikhq> i feel like they'd notice the sudden total redirection of all the channels to ## under new management tho
03:34:15 <chibi> I still don't get the hostile takeover of Freenode, I'd assume taking care of the needs and wants of a bunch of smelly computer nerds (present company excluded) would be a much bigger pain in the ass than whatever monetary gains are to be had from owning the IRC chat which they use
03:34:23 <esolangs> [[Special:Log/newusers]] create * Amp * New user account
03:34:40 <pikhq> it is objectively bizarre
03:35:06 <imode> it's a monetization scam. you buy and wall users in, you turn the network into an "embrace, extend, extinguish" scenario for standards, then you sell it.
03:36:02 <chibi> Who'd buy it and why?
03:36:21 <chibi> There is an objectively negative cost associated with owning and maintaining an IRC network
03:36:33 <imode> it won't be an IRC network. it'll be an irc.com network.
03:36:56 <chibi> Oh? Could you explain?
03:37:06 <imode> go to irc.com and see the plans andrew laid out for IRC.
03:37:13 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83435&oldid=83434 * Amp * (+155) /* Introductions */
03:38:01 <cd> irc.com is hilarious garbage
03:38:16 <chibi> what_the_fuck_am_i_reading.jpg
03:38:18 <Sgeo> I wonder what they do for channels that are in "violation" that are already ##
03:38:25 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83436&oldid=83435 * Amp * (+67) /* Introductions */
03:38:35 <chibi> >IRC is one of the last few remaining open messaging platforms that anybody can setup and manage their own communities with. No vendor lock in, no black box services.
03:38:42 <chibi> They introduce this like it's a bad thing
03:38:45 -!- imode has changed nick to FuckAndrewLee.
03:39:15 <esolangs> [[User:Amp]] N https://esolangs.org/w/index.php?oldid=83437 * Amp * (+2) Created page with "yo"
03:40:10 <chibi> I think I see, so Lee's trying to make Freenode his so he can make it the testbed for his irc.com webshit and sell it to investors?
03:40:53 <chibi> I'd ask who'd invest in that, but then people invested in juicero so I won't.
03:41:38 <esolangs> <int-e> Goodbye freenode:#esoteric, see you on the other side (where I've already taken up residence, obviously.)
03:42:14 <keegan> very smart to take over a platform and immediately drive off the entire existing userbase
03:42:33 <keegan> clearly much better than just starting your own irc network from scratch
03:43:11 <keegan> is this just a case of capitalists being unable to understand the internet? they can't imagine any way to build things that doesn't involve first displacing an existing group of people?
03:43:16 <cd> i'm sad i ran out of good trolling to do with fn-ceo, that was fun for maybe the first 30min
03:43:52 <cd> hopefully someone else on the server opens the tmux instance up and starts talking again :P
03:45:22 <Sgeo> brctl: help ignore
03:45:22 <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
03:45:36 <esolangs> brctl: see "brctl: help ignore" (filter by nick) and "brctl: help filter" (filter by text content) for the two available commands
03:45:50 <Sgeo> brctl: ignore Sgeo
03:46:16 <Sgeo> The "redirects" aren't the IRC-level mode thingies that are automatic. Just a change of topic.
03:46:40 <Sgeo> Incompetence? Or intent to... something?
03:47:08 <int-e> Sgeo: from what I've seen they set +if ##channel too
03:47:09 <Sgeo> I don't understand why they would force a redirect instead of just forcibly changing the topic, unless they want the new channel to not have all the users
03:47:26 <Sgeo> Oh, I guess that doesn't forward people already in channel?
03:47:55 <int-e> I think it's because they do maintain the distinction between project channels and about channels
03:48:04 <Sgeo> Yep. Just joined and parted a hijacked channel, and got forwarded
03:48:31 <int-e> they just don't clear out current users
03:51:15 <Sgeo> I... still don't get why they're doing it like this. This still forces a split between still connected idlers and people who rejoin
03:53:05 <Sgeo> brctl: unignore Sgeo
03:56:20 <Soni> cd: you want good trolling? :p
03:56:43 <cd> Soni: I am super out of ideas and the chat moves at the speed of sound
03:56:54 <Soni> cd: https://github.com/propuke/ctcp-s
03:57:12 <Soni> (this may or may not be a good idea. also we hid the original repo.)
03:57:38 <Soni> (... also this fork's owner is a bit of a stalker but eh w/e)
03:59:05 <Soni> (oh yeah this is the old version with GZIP and C-like macros)
04:01:21 <Soni> (honestly not proud of this one tbh)
04:04:29 <Soni> (actually the "C-like" macros may be turing-complete?)
04:11:22 -!- arseniiv has joined.
04:14:52 <zzo38> FORWARD might be a good idea; the rest I don't like. (Also, GZIP is bad because it requires the client software to implement it. Ideally, no special client software should be needed for IRC; such things should be optional.)
04:16:40 <Sgeo> brctl: ignore Sgeo
04:16:41 <Sgeo> -rasengan- [Global Notice] In the recent policy enforcement, some channels were erroneously included. We greatly apologize for the inconvenience. Please contact us in #freenode-services or contact-us@freenode.net. Thanks for your patience and choosing freenode!
04:17:47 <pikhq> like i believe that
04:20:07 <int-e> Sin, then ask for forgiveness.
04:21:44 <int-e> This is a bit of a weird association, really, but I like this joke: "When I was a kid, I used to pray for a bicycle. For months I prayed, every day. Then I realized that God doesn't work that way. So I stole a bike and prayed for forgiveness."
04:31:36 <Sgeo> I wonder what would have happened to a channel of people sticking with Freenode who happened to be promoting the music group Libera in their topic
04:32:20 <Soni> zzo38: that's part of the point in this case :p
04:34:58 <Soni> zzo38: if you want to be extra-grating tho, something like https://github.com/bittorrent/bittorrent.org/issues/110 may be of interest
04:45:08 <Soni> zzo38: we guess you could implement all of this on an IRC client, but make it only available on irc.com networks?
04:45:59 <Soni> anyway, we should go sleep, sorry. good night o/
04:46:25 <zzo38> Soni: That is a possibility, but I recommend not using them anyways.
04:54:58 -!- xkapastel has quit (Quit: Connection closed for inactivity).
04:56:16 -!- dcristofani has joined.
05:00:32 -!- craigo has joined.
05:45:09 -!- dcristofani has quit (Ping timeout: 272 seconds).
06:06:23 -!- sknebel has joined.
06:07:35 -!- sknebel has quit (Client Quit).
06:07:48 -!- dcristofani has joined.
06:07:57 -!- sknebel has joined.
06:12:46 -!- dcristofani has quit (Ping timeout: 264 seconds).
06:21:48 -!- FuckAndrewLee has changed nick to imode.
06:33:16 <b_jonas> cd: that's a good one, they kickbanned everyone from the existing channels, that will get a lot of people notice that something happened and get them moving
06:33:56 <b_jonas> "<pikhq> i feel like they'd notice the sudden total redirection of all the channels to ## under new management tho" => not really that, more like that suddenly there are much fewer people on
06:34:51 <esolangs> [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=83438&oldid=83223 * B jonas * (-13)
06:37:19 <b_jonas> keegan: unclear, he might want to just destroy the network completely (without directly stating that) and driving people to competitor forums that he has interest in more secretly
06:53:44 -!- dcristofani has joined.
07:00:16 <b_jonas> at least if he wanted to destroy freenode, he had the courtsey of doing it quickly rather than having communities wonder if they should stay or find a new place
07:07:35 <esolangs> [[SF Code]] https://esolangs.org/w/index.php?diff=83439&oldid=83409 * ColorfulGalaxy (disambiguation) * (+226) Recategorization
07:14:10 -!- sebbu2 has changed nick to sebbu.
07:28:16 <b_jonas> Sgeo: "just forcibly changing the topic" => that would have no effect, because NOBODY READS TOPICS ON IRC. they just used the topic as a quick filter to tell which communities redirect users to other networks in more effective ways. grepping topics is easier to automate than looking at project websites to see which projects changed their links.
07:28:45 <b_jonas> fizzie: also, if you feel like my encouragement to make a bridge pressured you, you are hereby absolved, I no longer think a bridge to freenode is helpful
07:31:43 <keegan> i told them to eat my balls
07:31:55 <HackEso> milecoin wotioncoin limpcoin fakcoin bfccoin smitisorbcoin safenfcoin nrfcoin axicoin aaallyidocoin dermdrcemecoin shakbcoin hyphillecoin sorthcoin codacoin ampucoin hpndersiopcoin nephalcoin percardcoin igncoin
07:50:01 <salpynx> heh, "Leenode" rather than Freenode , via https://news.ycombinator.com/item?id=27287038 > We should stop implicitly legitimizing Andrew Lee's power grab by referring to his dominion as "Freenode"
07:52:28 <b_jonas> hmm, I was just wondering what to rename the network tag of freenode in my irc config so I don't absent-mindedly connect and join it and think I'm correctly connected to IRC
07:52:37 <b_jonas> will probably still go with something else rather than a cheap pun
08:00:20 -!- Sgeo has quit (Read error: Connection reset by peer).
08:00:29 <HackEso> The Realm of Freenode is our homeland. The Chännel dwells in it since... Uhm... Quite a few years ago?
08:00:34 <HackEso> Libera is the land of the future. Probably.
08:01:22 <int-e> Maybe we can come up with some law
08:01:29 <int-e> involving a big migration
08:02:03 <int-e> and the evil tortoise (of shells)
08:04:33 <salpynx> (just realised I misunderstood which was the freest... Libera is free-er than freenode, so is freest...) My attempt at a joke needs to be rewritten accordingly
08:04:44 <b_jonas> int-e: evil tortoise? come on, the lore is obvious. the freenode gods pulled off a miracle of setting up a new network in like two days, with several servers, and led us out of Egypt
08:06:35 <salpynx> Of free nodes, Freenode is leest, Libera is freest?
08:07:18 <HackEso> Puns are fun. Ask shachaf about them. But beware of Muphry adding misspellings.
08:08:58 -!- b_jonas has quit (Quit: leaving).
08:13:50 -!- p_____ has joined.
08:15:41 -!- p_____ has quit (Client Quit).
08:16:58 -!- dyeplexer has quit (Ping timeout: 264 seconds).
08:21:10 -!- imode has quit (Ping timeout: 264 seconds).
08:21:59 -!- dyeplexer has joined.
08:51:20 <nakilon> `` ruby -e "p 'Libera' > 'Freenode'"
08:51:38 <nakilon> `` ruby -e "p 'Freenode' > 'Libera'"
08:52:50 <int-e> > "freenode" > "Libera Chat" -- official names
08:57:18 <shachaf> int-e: Man, I can't believe this thing was hiding in plain sight in the original van Oorschot & Wiener paper.
09:02:00 <int-e> shachaf: well, now you know. (and I do as well, for the moment. maybe this time I won't forget where I saw it.)
09:02:45 <shachaf> I don't think I quite understood what you said about MeetITM, but maybe I should read pages 16-18 more closely and then I'll understand it?
09:03:40 <int-e> shachaf: just the beginning of the second paragraph
09:04:58 <shachaf> The idea that this algorithm also helps with MeetITM attacks, since they're of this form?
09:05:38 <int-e> It just turns out that it's the same problem as you have, but they view it as an MeetITM attack.
09:06:59 <shachaf> I see. I thought you meant there was an application of MeetITM attacks to my problem.
09:07:14 <shachaf> But you meant it more in the other direction, or just that they're doing the same thing.
09:07:22 <int-e> and my point was that this problem is exactly what you described, wheras in section 5.2 it has a specific form for f and g.
09:07:49 <int-e> The trick is the same, of course.
09:13:30 <shachaf> It's kind of surprising that e.g. https://en.wikipedia.org/wiki/Meet-in-the-middle_attack just claims you need 2^k space.
09:13:46 <shachaf> Presumably anyone implementing this kind of attack uses a fancy trick like this.
09:33:49 <nakilon> this "Community-curated" in github repo titles...
09:34:30 <nakilon> they always have the repo owner who reviews and accepts the pull requests only if he feels so, the same as in any another github repo
09:39:28 <fizzie> Well, that was certainly a thing. Wondering if I should make that bridge a one-way affair, just freenode -> here, so that it would mainly serve the purpose of letting people here notice if someone they know comes in wondering about what's up. (Up until `freenodecom` comes in and forcibly redirects it to ##esoteric, of course, at which point I don't think I'd bother.)
09:39:47 <nakilon> what even more funny is that you could say "well the pull requests should probably pass the CI checks", but nope -- the https://github.com/github/explore/commits/main has the ./script/cibuild script but they don't have CI, lol -- this script threw errors that they fixed only 11 hours ago
09:41:44 <nakilon> not that it amazes me in any way because I already saw an amazing shit done by github staff
09:43:51 <nakilon> one of their guys took the whole course code of my gem and replaced the source code of another gem on github, not changing the name, nor giving any credits -- just copypoasted the whole code over, with mistakes, and made a pull request -- at first I thought it's someone drunk or indian but nope, he had the "Github staff" badge
09:44:57 <nakilon> though still could be drunk
09:45:25 <nakilon> fizzie I think the bridge gives people on freenode know that libera exists
09:45:37 <nakilon> and that we are active here
09:46:11 <fizzie> Yeah, it's just there's a number of people who I think prefer not to get their comments forwarded over there. But fair enough, I guess it still does that even if there's odd gaps in the conversation.
09:46:21 <fizzie> Like lambdabot just saying "True" out of the blue. ;)
09:47:20 <fizzie> /!\ fungot: Please pretend like you've suddenly gained the capability of spontaeneous action?
09:47:20 <fungot> fizzie: disenchanter: ask not, as opposed to the nether world, the chalk pencil, and without a mother. she is usually heard or seen in profile, the demon lord. inhabited or not, have very detailed short-term plans for it had been very upset to find if hearts be wild and wise.
09:47:35 <fizzie> In retrospect, I think that wasn't the best ^style for that.
09:49:02 <nakilon> so on freenode it looks like a demon lord took a control over him
09:49:36 <esolangs> [[While(true)]] https://esolangs.org/w/index.php?diff=83440&oldid=83400 * Aonodensetsu * (+0) /* Quirks */
09:50:11 <esolangs> [[While(true)]] https://esolangs.org/w/index.php?diff=83441&oldid=83440 * Aonodensetsu * (+0) /* External resources */
10:21:43 -!- p_____ has joined.
10:22:32 -!- p_____ has quit (Client Quit).
10:22:33 -!- dyeplexer has quit (Ping timeout: 272 seconds).
10:25:59 -!- Deepfriedice has joined.
10:32:50 -!- Trieste has quit (Changing host).
10:32:50 -!- Trieste has joined.
10:34:03 -!- Trieste has quit (Quit: Be well!).
10:35:56 -!- Trieste has joined.
10:39:23 <esolangs> [[Goatoo]] M https://esolangs.org/w/index.php?diff=83442&oldid=83421 * DynCoder * (+139)
10:40:46 <esolangs> [[User:Sertdfyguhi]] https://esolangs.org/w/index.php?diff=83443&oldid=81241 * Sertdfyguhi * (-27) update
11:09:57 <nakilon> is there any website that provides a ""community driven" " catalogue of irc channels?
11:11:11 <nakilon> I mean only those who already can IRC know about /list, and even they don't immediately know about alis, etc., it would be nice to have some guide over your possible places of interests if you are not in IRC yet
11:13:07 <fizzie> It's not a *curated* list, but there's always https://netsplit.de/channels/?net=libera.chat and such.
11:13:11 <fizzie> It's kind of flaky in what it displays, though.
11:19:35 <arseniiv> hi Am Dm6 G F#add9 Fm7 C6 G what do you think?
11:32:33 -!- craigo has quit (Read error: No route to host).
11:54:46 <esolangs> [[Esolang talk:Community portal]] https://esolangs.org/w/index.php?diff=83444&oldid=83183 * Fizzie * (+1304) /* Freenode and the future */ Last call for objections.
11:55:37 -!- b_jonas has joined.
11:55:56 -!- tech_exorcist has joined.
11:57:22 <nakilon> fizzie it doesn't provide a tree/tags cataloging
12:00:09 <arseniiv> oh, a Quake map. Didn’t play Quake :)
12:00:46 <b_jonas> from an alis topic search on freenode, there are at least a few channels that still advertise in the topic that they moved to libera, but there are also some that advertise that they moved to oftc or hackint
12:05:41 <fizzie> Are they #channels or ##channels? Although I don't doubt there's exceptions.
12:06:02 <nakilon> arseniiv it's in this classic video starting at 4:00 https://www.youtube.com/watch?v=Kg9RVktBNMA
12:10:23 <b_jonas> nakilon: "community-curated" means that is the software is buggy or badly designed, the maintainer don't accept blame, because it was "the community" that maintained it wrong, according to them
12:23:22 <b_jonas> fizzie: for libera, only ## and ## channels I think
12:24:31 <b_jonas> fizzie: there are #-channels too, like freenode/#archlinux-security, that say moved to libera in topic
12:25:41 <b_jonas> I'm not attempting to tell how many large channels have such notices in topic, because it's hard to tell how large a channel is when it's moved away, and I don't have historic data
12:26:03 <fizzie> Maybe they changed to that after the big sweep? Or just were missed. Or got their channel back: #go-nuts on freenode was "recovered", and now says "see <website> for official support channels" in topic, which is one way to put it.
12:26:29 <b_jonas> fizzie: yes, they probably changed the topic again after the big sweep. they probably have nothing to lose by changing it again.
12:26:40 -!- dyeplexer has joined.
12:27:41 <fizzie> Incidentally, on freenode we have ##esoteric set as `+if #esoteric` owned by tswett (who's moved from IRC to Matrix, I think) -- I wonder what would've happened if we had had Libera in the topic.
12:27:53 <fizzie> Given the nature of the channel, I think the best-case scenario (as in, for maximum absurdity) would've been that we'd have have both #esoteric and ##esoteric as invite-only and both forwarding to each other.
12:28:11 <fizzie> But I guess more plausibly they would have reset the modes of ##esoteric to open it up.
12:29:06 <b_jonas> "see <website> for official support channels" => yeah, that's harder to object against, freenode historically had extra channels where the official channel was on another network: ##rust before mozilla irc got shut down, and #gimp or ##gimp (can't recall which)
12:29:25 <esolangs> [[Goatoo]] M https://esolangs.org/w/index.php?diff=83445&oldid=83442 * PythonshellDebugwindow * (+71) /* Language Overview */ Categories
12:29:47 <b_jonas> plus of course such a topic can refer to non-irc forums (though it's less likely to say "channels") for the large number of projects that don't consider the freenode presence official
12:30:23 <esolangs> [[SF Code]] M https://esolangs.org/w/index.php?diff=83446&oldid=83439 * PythonshellDebugwindow * (+0) Move cats to bottom
12:30:35 <b_jonas> "both #esoteric and ##esoteric as invite-only and both forwarding to each other" lol, that would be funny indeed
12:32:58 <fizzie> "Move cats to bottom" <- herding cats, I see.
12:33:15 <fizzie> Oh, cats as in categories; I was assuming examples of the cat program.
12:35:41 <nakilon> there should be a language about cats
12:37:16 <nakilon> oh I see https://esolangs.org/wiki/CAT
12:39:42 <esolangs> [[User:Nakilon]] M https://esolangs.org/w/index.php?diff=83447&oldid=81104 * Nakilon * (+28) added Libera
12:42:29 -!- Guest54 has joined.
12:42:43 <esolangs> brctl: see "brctl: help ignore" (filter by nick) and "brctl: help filter" (filter by text content) for the two available commands
12:42:56 <esolangs> brctl: usage: "brctl: filtered" (to list), "brctl: filter regex" (to add) or "brctl: unfilter regex" (to remove)
12:43:13 -!- Guest54 has quit (Client Quit).
12:44:36 <fizzie> I named it after brctl(8), the Linux utility to control Ethernet bridges.
12:45:05 <fizzie> ("ctl" is presumably short for "control".)
12:55:33 -!- Deepfriedice has quit (Quit: Leaving).
12:59:57 <nakilon> does fungot connect to IRC via some network funge-98 extension or is it another process that connects?
12:59:57 <fungot> nakilon: they say that a large number, led a semi-independent life of mortals with a curved single-edged blade. its body around in such a way that it was a blade like a hell-broth boil and bubble." the bushmen say that when invoked, it is inescapable once earned. he is small, has dark skin and wears strange clothes.
13:00:22 <fungot> https://github.com/fis/fungot/blob/master/fungot.b98
13:03:42 <nakilon> so it's http://rcfunge98.com/rcsfingers.html#SOCK ?
13:03:48 -!- xkapastel has joined.
13:03:58 <Taneb> Certainly seems possible
13:07:16 -!- craigo has joined.
13:18:13 <fizzie> Yes, it does the sockets with SOCK.
13:18:24 <fizzie> Otherwise it'd be cheating. ;)
13:18:54 <fizzie> https://github.com/fis/fungot/#running lists the required fingerprints, for the record.
13:18:54 <fungot> fizzie: dark room? your chance to develop your photographs!' ( brignall banks, by h. rider haggard)
13:19:05 -!- salpynx has quit (Quit: Connection closed).
13:19:36 <fizzie> I do run a (bip) bouncer between it and the actual network for stability and TLS support, though.
13:20:08 <fizzie> Which also might mean if it's not responding but still online, the cfunge process has crashed but the bouncer hasn't. Not that it's really happened yet.
13:20:20 <cd> funnily enough, hackbot (hackeso) does use another process (socat) for the connection, making fungot the more advanced bot in that regard
13:20:20 <fungot> cd: orion, sirius: orion was the daughter of jupiter and juno. ( capitalized:) a constellation of the king," he said desperately, " one rest")
13:20:45 <Taneb> Many years ago when I made Pietbot it cheated because Piet doesn't have network IO
13:20:50 <Taneb> I wonder how many esolangs do
13:20:50 <nakilon> esobot: "It listens for the MediaWiki UDP "recent changes" feed" -- interesting, so the bot listens to the local network for the message? I wish there something similar in web because otherwise you have to reread the whole, let's say, RSS/Atom feed and store somewhere what was the last id you've processed, and then the feeder has to follow the
13:20:50 <nakilon> order of items otherwise you have to read them all and sort, etc. etc.
13:21:49 <nakilon> "Otherwise it'd be cheating" -- yeah otherwise it would be no point in writing features in funge is you already have the IRC communicator written in something more trivial and probably extendable
13:22:17 <fizzie> Yeah, MediaWiki can post changes formatted as JSON/XML/"IRC" and post them either as raw UDP or via Redis Pub/Sub.
13:22:53 <fizzie> https://www.mediawiki.org/wiki/Manual:$wgRCFeeds
13:23:25 <Taneb> (I think I just hooked the piet interpreter up to netcat)
13:23:46 <b_jonas> ok so this is a silly and esoteric idea, but what if the guy who bought freenode is, besides being rich (which we know) is an eccentric (possibly amateur) social scientist who got intrigued by how even though the covid pandemic destroyed a lot of in person communities, it also made stronger communities quickly formed online and strengthened people's sense of community and caring about each other in
13:23:52 <b_jonas> general, and wanted to do another experiment to see how this reproduces?
13:24:17 <Taneb> That seems... unethical
13:24:40 <nakilon> "or via Redis Pub/Sub" -- unfortunately there is no such thing as public pub/sub that websites would provide for random users
13:25:05 <fizzie> socat made it possible to use TLS (...well, after updating to a more recent version supporting SNI...), I don't think netcat flavors at least generally support that.
13:25:31 <cd> unfortunately doesn’t change the fact they need a good smack. (Also isn’t that really unethical)
13:25:37 <fizzie> So that nobody can snoop in on HackEso's network password, impersonate it, and thus gain control of mission-critical infrastructure.
13:26:03 <b_jonas> "Otherwise it'd be cheating." => um, yes, but there was an ICFP contest judge's prize winner that was written in Metafont and used an external command for the socket connections because apparently Metafont doesn't have a built-in way to do this, and we don't want to say that that one is cheating, so we may let it slide for a befunge program too
13:26:15 <fizzie> (I'm assuming there's mission-critical infrastructure accepting commands from HackEso when it's authenticated to NickServ, which may be a little bit of a stretch.)
13:26:35 <Taneb> b_jonas: I think it might be OK when the language has no network IO
13:26:54 <fizzie> Yeah, I think that's the distinction. It's not cheating for Piet either, because there's just no way.
13:27:25 <fizzie> Although arguably that whatever-that-thing-was would have been a more esoteric solution.
13:27:37 <nakilon> "strengthened people's sense of community" -- I'm still not sure it was about sense of community rather than hate to Korean nation or that he had a taste to chose the word "Imperial" to his company name
13:27:45 <fizzie> That thing that was supposed to provide advanced I/O to brainfuck and other similar single-stdin/out languages.
13:29:05 <b_jonas> nakilon: I'm not saying that it's definitely true, but it's a theory that some people seriously mentioned, and so an experiment may make sense
13:29:07 <fizzie> I can't remember the name. Was Sgeo involved with it? Anyway, we talked about it. Not having much luck finding hits on the wiki either.
13:29:50 <esolangs> [[Special:Log/upload]] upload * Oshaboy * uploaded "[[File:Hello World Stegfuck.png]]"
13:29:53 <b_jonas> as in for an independently rich amateur scientist who isn't bound by a university medical ethics community or peer-reviewed journals who will boycott them and make their whole carreer harder
13:31:25 <nakilon> people love to join the shitthrowing parties AFTER the real problems already took the place, and don't love to investigate what they were
13:33:05 <nakilon> the whole point of "investigation" and "finding the roots, the causes" seems to be not interesting
13:34:29 <esolangs> [[Special:Log/upload]] upload * Oshaboy * uploaded "[[File:Cat program stegfuck.png]]"
13:35:27 <nakilon> this mediawiki event doesn't have a link
13:35:51 <esolangs> [[Special:Log/upload]] upload * Oshaboy * uploaded "[[File:Lost kingdom StegFuck.png]]"
13:38:40 <esolangs> [[StegFuck]] N https://esolangs.org/w/index.php?oldid=83451 * Oshaboy * (+1152) Initial
13:39:01 <esolangs> [[StegFuck]] https://esolangs.org/w/index.php?diff=83452&oldid=83451 * Oshaboy * (-7)
13:39:10 -!- craigo has quit (Quit: Leaving).
13:40:13 <esolangs> [[StegFuck]] M https://esolangs.org/w/index.php?diff=83453&oldid=83452 * Oshaboy * (+8)
13:42:32 <nakilon> oh I already started installing netpbm to figure out his steganography but has already created a page
13:45:00 <esolangs> [[4BOD]] M https://esolangs.org/w/index.php?diff=83454&oldid=83401 * Oshaboy * (+78) Added information about 1 of the instructions
13:48:01 <esolangs> [[StegFuck]] M https://esolangs.org/w/index.php?diff=83455&oldid=83453 * Oshaboy * (+2) Fixed dead links
13:48:38 <esolangs> [[StegFuck]] https://esolangs.org/w/index.php?diff=83456&oldid=83455 * Oshaboy * (+0)
13:48:46 <esolangs> [[StegFuck]] https://esolangs.org/w/index.php?diff=83457&oldid=83456 * Oshaboy * (-4)
14:07:37 <esolangs> [[StegFuck]] https://esolangs.org/w/index.php?diff=83458&oldid=83457 * Oshaboy * (+406) added extra information
14:08:04 <nakilon> #homebrew automatically kicks you while ##homebrew topic is Discussion on the domestic production of potable liquids
14:10:08 <fizzie> Same founder on both, and I guess that's a valid interpretation of the word too...
14:10:46 <fizzie> netsplit.de's channel topic view suggests ##homebrew on freenode is also on that topic, and #machomebrew is the package manager.
14:11:10 <Taneb> What if I want to run my own software on a Nintendo DS
14:12:38 <Taneb> I think it just voids the warranty and Nintendo doesn't like it
14:13:15 <esolangs> [[StegFuck]] https://esolangs.org/w/index.php?diff=83459&oldid=83458 * Oshaboy * (+287) More details
14:13:29 <nakilon> but I wonder if it's legal to squat the #homebrew just to kick people with macs
14:14:47 <esolangs> [[StegFuck]] https://esolangs.org/w/index.php?diff=83460&oldid=83459 * Oshaboy * (+9) link
14:15:01 <esolangs> [[User:Oshaboy]] N https://esolangs.org/w/index.php?oldid=83461 * Oshaboy * (+4) Created page with "Heyo"
14:15:02 <nakilon> it's like... they could not decide who should own #homebrew and made it like this
14:15:55 <fizzie> For the *concept* of homebrew on consoles, I think there's at least some more specific channels. But the package manager is just called "Homebrew". I doubt they have any registered trademarks or anything?
14:16:11 <b_jonas> nakilon: was it actually called "#homebrew" previously on freenode?
14:16:32 <b_jonas> I know there were apple homebrew guys on freenode, but I don't know if they used that particular channel name
14:16:34 <fizzie> AFAICT it's been called #machomebrew on freenode.
14:16:41 <Taneb> I keep reading that as macho me brew
14:16:46 <b_jonas> I think they used multiple channels (no surprised there)
14:16:50 <nakilon> it's #machomebrew now as fizzie said
14:17:01 <Taneb> Weightlifters drinking tea
14:17:22 <b_jonas> well that makes sense then
14:17:45 <b_jonas> presumably the folks on ##homebrew are used to lost people enough that they just direct them to the right place
14:17:49 <nakilon> but the software isn't and probably never was called machomebrew
14:17:57 <b_jonas> like we used to with the other kind of esoterica
14:18:07 <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.)
14:18:09 <fizzie> The software's official twitter account is @MacHomebrew as well.
14:18:43 <Taneb> b_jonas: I vote just removing the parenthetical
14:18:58 <fizzie> We are forwarding #esoteric into here, though.
14:19:00 <b_jonas> Taneb: ok, but it's tricky because there are copies in like ten languages
14:19:06 <b_jonas> fizzie: oh yes, you have a point
14:19:16 <Taneb> fizzie: hmm, yeah, in that case it probably ought to stay
14:19:23 <fizzie> It's not impossible that someone will join in search "for the other kind of esoterica", though probably quite unlikely.
14:19:47 <b_jonas> I guess we'll seen in half a year
14:20:10 <nakilon> ok maybe it was machomebrew initially, I missed that time probably
14:20:29 <nakilon> because their twitter is older than @homebrew one
14:21:01 <fizzie> Now I can't stop reading it as macho-me-brew.
14:22:43 <HackEso> Thanks, HackEso. ThackEso.
14:26:01 -!- gilesgate has joined.
14:26:05 <nakilon> rust depends on python wtf
14:26:40 <esolangs> [[StegFuck]] M https://esolangs.org/w/index.php?diff=83462&oldid=83460 * Oshaboy * (+8) /* Overview */
14:27:08 -!- gilesgate has quit (Client Quit).
14:28:09 <nakilon> trying to figure out what to uninstall because homebrew updates EVERYTHING once in a while and it took half an hour; and I have no idea why two commands from SO to "draw a dependency tree" are so different but python is like covid here... https://dpaste.org/416M/slim#L
14:32:32 -!- zegalch96 has joined.
14:32:53 <cd> nakilon: doesn't everything depend on python
14:32:58 <cd> rustc uses it for it's build
14:33:06 <cd> a pre-built rustc doesn't need it
14:34:01 <cd> also... why isntall rustc through homebrew.
14:34:11 <cd> rustup exists
14:34:28 <cd> and? what does ruby have to do with rustc
14:34:42 <nakilon> these are all needed to build ruby https://dpaste.org/416M/slim#L2281,2282,2283,2284,2285,2286
14:35:09 <nakilon> why install through different package managers if there is one?
14:35:27 <nakilon> everything installs with brew
14:35:48 <cd> because rustup is specifically for rust, and manages the toolchain. among other things it's basically the only way to install nightly versions and cross compiler versions of rustc
14:36:31 <cd> also why build from source? python is only needed if you build it from source :P
14:36:38 <nakilon> why do you think I need "to manage rust toolchain"?
14:36:58 * cd confused themselves
14:37:15 <cd> oh if you're not using rust for anything you don't, that's my bad.
14:37:36 <cd> if you're writing rust rustup is recommended, otherwise you can ignore it unless your package manager ships a hilariously old rustc
14:37:49 <nakilon> "brew install rust" somehow was enough to then "rust install ..." or whatever it was to install some rust program that btw I'll probably deinstall now since I don't remember it even
14:38:31 <cd> ubuntu is shipping a rustc from october last year... ;I
14:38:42 <nakilon> I guess I didn't build rust from source and this "tree draw" command just fakes it
14:39:00 <cd> yea, i checked, rust prebuilt has no python dept
14:39:15 <nakilon> basically homebrew downloads everything precompiled for my current mac os version
14:39:44 <nakilon> https://dpaste.org/416M/slim#L2281,2282,2283,2284,2285,2286,6384,6385,6386,6387,6388
14:39:55 <nakilon> I guess this means right side is more correct
14:41:56 -!- Sgeo has joined.
14:43:04 <nakilon> I see, "This is similar to Ruby's rbenv, Python's pyenv, or Node's nvm." -- rustup docs
14:43:38 <nakilon> (nvm is actually was a clone of rvm, not rbenv but whatever)
14:44:12 <cd> yea, it's an env manager
14:45:53 -!- dcristofani has quit (Ping timeout: 252 seconds).
14:46:44 -!- cd has changed nick to moon.
15:15:10 -!- Guest61 has joined.
15:15:22 -!- Guest61 has left.
15:26:01 -!- Soni has quit (Ping timeout: 272 seconds).
15:37:50 <nakilon> I hoped the visualization would make the tree more obvious, heh https://imgur.com/a/yclpTkR
15:39:00 <fizzie> Judging by what that looks like, that must be neato/fdp. Do it with dot instead: it'll be a lot more obvious, but a gigantic and full of blank space.
15:39:15 <nakilon> btw java has made "jenv" too now
15:39:29 <Taneb> fizzie: there's two images there and the first one looks dotty
15:40:06 <Taneb> nakilon: can you get it to drop edges implied by transitivity
15:40:27 <fizzie> Sorry, I think the rectangle for it was shaped too much like an ad banner and I was blind to it. ;)
15:41:09 <nakilon> would be cool if there was a built-in graphviz filter that would concat "nodes that have the same set of ins and outs" with "\n" into a single node
15:41:44 <nakilon> Taneb I didn't process the graph myself, it's https://github.com/martido/homebrew-graph
15:43:45 <fizzie> I seem to remember a force-directed graph vizualizer you could manually "shake" to untangle it, and then freeze the result, but I don't remember where that was. That's the kind of human/machine hybrid algorithms we need more of. (To convince the machines to keep us around.)
15:44:11 <fizzie> Maybe one day they can 3D print that out of springs and you can try to physically sort it out.
15:45:06 <nakilon> did I tell about the "reconstruct cats" contest?
15:46:15 <nakilon> there was such contest on codeforces where there were thousands of shredded cat pics and you had to restore them; so IIRC lots of guys in top were making hybrids that you could "shake" a cat
15:46:42 <nakilon> unfortunately I can't code GUI
15:47:02 -!- Soni has joined.
15:47:22 <nakilon> so my cats mostly looked like this https://codeforces.com/predownloaded/6f/ed/6feddc5ed6240a9e1e61b4b089c00e796bda163d.png
15:47:50 <nakilon> but it would be pretty much real to process all the cats because the contest lasted a month
15:48:17 <b_jonas> nakilon: how do you even scan shredded photos? that sounds very hard
15:48:43 -!- zgrep has quit (Ping timeout: 272 seconds).
15:49:02 <nakilon> b_jonas they were accurately sliced in NxN pixels depending on the dataset
15:49:43 <b_jonas> ah, so digitally shredded to nice square blocks
15:50:01 <fizzie> Speaking of scanning, my former university had scanned my Master's thesis and sent me a link to verify it looks like what I wrote (+ a checkbox for e-publishing permissions).
15:50:25 <fizzie> All the pages were there, but there was a pretty noticeable broad brown smear exactly vertically across each page.
15:50:29 <b_jonas> fizzie: nice, when is that Master's thesis from? didn't you already make it full digital?
15:50:33 <fizzie> I think they need to clean their scanning machine.
15:50:55 <nakilon> but what demotivated me and I stopped solving prematurely -- is that the chunks had resize kernel artifacts
15:51:12 <nakilon> the squares didn't connect ideally
15:51:20 <nakilon> there were bright and dark lines along the edges
15:51:38 <b_jonas> I think when I submitted my Master's thesis, they asked for a digital copy, and I published a digital copy in any case. I'm not sure if that was like mandatory, or if people were still allowed to make it partly non-digitally though.
15:52:13 <nakilon> so it was their fault actually -- they could resize and then cut but they cut and then resized
15:52:17 <fizzie> b_jonas: *I* made it digitally (of course), but even though it wasn't that long time ago (2009), it still predated their process revamp of accepting digital submissions, so the official approved version is the printed and bound book.
15:52:38 <fizzie> I think post-2015 or so the official copy of record will have been the digital version.
15:52:48 <b_jonas> fizzie: I mean in my case the main copies were still printed and bound, but they asked a digital copy in addition
15:52:58 -!- zgrep has joined.
15:53:16 <b_jonas> which makes sense, it's a pretty free and useful thing to do to ask for a digital copy
15:53:42 <fizzie> Yeah, the FAQ of the scanning project said something about how they can't accept a better-quality digital version because for reasons™ the thing available in their database must be exactly what was inspected for approval.
15:53:48 <nakilon> I didn't finish the university
15:54:04 <nakilon> was expelled for inability to run damn 3km in time
15:55:09 <b_jonas> well yes, admittedly I also don't have the original version on public internet either, I have the version with the exactly one typo that I found a few months later fixed
15:56:03 <Taneb> My thesis was awful and I kind of wish I had the opportunity to try again
15:56:28 <Taneb> I do not have a copy to hand
15:58:52 -!- spirgel_ has joined.
15:59:11 <b_jonas> well sure, my thesis is bad too
15:59:18 <b_jonas> most people's master's thesis is
15:59:45 <Taneb> Mine especially so, I was not having a good time mental health wise and sought help way too late
16:00:05 <Taneb> So handed in 12 pages of rubbish and somehow passed
16:08:23 <esolangs> [[Special:Log/newusers]] create * Alee * New user account
16:10:23 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=83463&oldid=83436 * Alee * (+88) /* Introductions */
16:10:49 <esolangs> [[User:Alee]] N https://esolangs.org/w/index.php?oldid=83464 * Alee * (+13) write intro
16:13:53 <fizzie> AIUI I could put any version I like on the public web if I want (not that I think anyone would find it very interesting), this was specifically the university wanting to make their library's publication archive ("full text materials produced in the university, such as theses, journal articles, conference publications and research") include this old stuff too, I think covering all theses from 1960-2015 or
16:14:06 -!- imode has joined.
16:14:10 <fizzie> The FAQ also says something about it freeing up valuable archival space, which might be the real motivation here.
16:17:41 -!- river has quit (Read error: Connection reset by peer).
16:19:04 -!- river has joined.
16:33:42 <esolangs> <Guest75150> So i guess everyone is on libera
16:49:44 <b_jonas> fizzie: yeah. old thesis are one of the hardest to find references to track down in libraries, though that's usually about PhD thesis, and they want to continue that tradition
16:55:11 <esolangs> <fizzie> If your #channel wasn't `+spimf ##channel`d by freenodecom, it doesn't count as forcing. ;)
16:55:30 <esolangs> <fizzie> I really would like to know what their tooling would have done given that ##esoteric is already +f #esoteric here, but I guess there's bound to have been a lot of those channels, so it was probably accounted for.
16:59:54 <pikhq> I wouldn't be so sure
17:09:23 <Soni> we did opt out of the bridge yeah?
17:11:00 <esolangs> brctl: Ignore list: freenode/V freenode/shachaf libera/Sgeo libera/Soni libera/V libera/cd libera/imode libera/int-e libera/shachaf
17:12:29 <int-e> of course if you mention fungot people on the other side may see that you're here
17:12:29 <fungot> int-e: they say that a hacker named david once slew a giant. he was such a shabby monk to dinner? he invites the very devil, a founding member of the yellowish linen whereof those of the triumph of morgoth elves and men were allies and held aloft the sacred icon. the denticles on its skin muted the whoosh of its body around in such a shabby monk to dinner? he invites the very devil, an army general invited the buddhist monk, mo
17:12:44 <int-e> (and some other bots)
17:12:57 <fizzie> You can also have it ignore all mentions of your name, which is not going to be at all confusing.
17:13:08 <fizzie> Though I'm not sure how long we'll be keeping the bridge for.
17:13:25 <imode> why bother keeping it.
17:16:21 <fizzie> I think the main argument for is, it's a way to let any returning old-time regulars (who might have missed all the excitement) to know about this place. We do get some every now and then. Though it's discoverable via other means (wiki, logs page) too.
17:19:17 <nakilon> \rasel "!evila m'I"..........@/!\
17:19:25 <velik> output: "73 39 109 32 97 108 105 118 101 33 ", exit code: 0
17:20:36 <fizzie> The word EVILAPEEK_OS appears in that noisy bot's source code (in the error message if setting SO_KEEPALIVE fails).
17:23:42 <nakilon> enough amount of funge code might have all the magic words you need to spawn something evil
17:30:02 <V> would it be possible to have the bridge ignore list not mass-highlight every time it's requested? ^^'
17:30:24 <V> just print which networks you're hidden from, etc
17:30:59 <Soni> ... oh yeah that is an issue
17:31:39 <Soni> doesn't help that your nick can't be split with hidden codepoints tho
17:33:51 <fizzie> I need the ignore list to be printable in order to copy it back to the config file because persistence is hard. ;) I can make the bridge commands respond by privmsg, I made them public mostly so that people can learn how it works by osmosis. Also, if we don't keep the bridge up it'll also stop being a problem.
17:35:44 <Soni> yeah we're hoping it gets shut down in the next 3 weeks...
17:38:17 <esolangs> [[SF Code]] https://esolangs.org/w/index.php?diff=83465&oldid=83446 * JaydenIrwin * (+42) updated toggle description
17:41:14 <esolangs> [[SF Code]] M https://esolangs.org/w/index.php?diff=83466&oldid=83465 * JaydenIrwin * (+92) sf symbols link
17:50:47 -!- spirgel_ has quit.
17:54:36 <zzo38> Even on news.software.readers they write about abandoning Freenode (for the IRC about slrn), too.
17:56:46 <zzo38> I think that the bridge could be discarded soon, and the logs then being fully on this IRC only. I don't know how soon; that is up to whoever set it up
17:58:37 <nakilon> imgur refused to eat these images now
17:58:40 <nakilon> https://imgchest.com/p/pagyvmeky89
17:59:40 <nakilon> so joining them in groups gave no much profit
18:00:54 <nakilon> hm, actually those huge groups in the corner don't look right
18:05:49 -!- imode has changed nick to rasengone.
18:08:12 -!- rasengone has changed nick to imode.
18:09:04 -!- imode has changed nick to rasengone.
18:11:03 -!- ais523 has joined.
18:13:58 -!- dyeplexer has quit (Remote host closed the connection).
18:14:41 <fizzie> nakilon: I expect the proposed "remove edges implied by transitivity" (while not exactly trivial to express) trick could help declutter the dot version more, since it's particularly those edges that are a problem. Though it's not exactly representing the same thing at that point, because there's a difference in directly depending on something vs. transitively depending on something.
18:15:22 <nakilon> fizzie I'm afraid I don't really understand the "remove edges implied by transitivity"
18:15:54 <nakilon> I didn't have master thesis ..D
18:15:58 <fizzie> nakilon: Well, for example, your graph has the edges vips -> libexif, libeexif -> gettext but also vips -> gettext.
18:16:14 <fizzie> That last edge could be removed, because vips -> gettext is implied by the first two.
18:16:57 <fizzie> It may or may not really help enough to be worth the trouble, and again it'd give a bit of a skewed picture.
18:17:01 <nakilon> I'll do that after I finish this one
18:17:46 <fizzie> (Because removing the edge makes the output imply if you make vips no longer depend on libexif, it doesn't need a gettext dependency either, which isn't true.)
18:23:30 <fizzie> IME, in large build dependency graphs an interesting way to get still-understandable output is to focus on the question "why exactly does building X depend on Y" (where you pick a particular pair X, Y of interest), and then find all the edges and nodes that are in any path between those two, and keep only those. It gives you a visual indication of whether it's just one weird dependency in the wrong place
18:23:36 <fizzie> that's pulling the rest in, or whether it's something more systematic.
18:28:46 -!- ais523 has quit (Quit: sorry about my connection).
18:28:57 -!- ais523 has joined.
18:29:46 <nakilon> seems like datastructure {node->[node, node, ...], node->[ .. ], ...} sucks
18:30:10 <int-e> is that a freenode pun
18:30:15 <nakilon> gotta convert it do [[node1, node2], [node1, node3], ... ]
18:31:00 -!- ais523 has changed nick to callforjudgement.
18:31:14 -!- callforjudgement has changed nick to ais523.
18:34:01 -!- ais523 has quit (Quit: going to restart my IRC client to make sure it's configured correctly).
18:34:20 -!- ais523 has joined.
18:36:47 -!- ais523 has quit (Client Quit).
18:37:06 -!- ais523 has joined.
19:08:28 <esolangs> [[User:CatCatDeluxe]] https://esolangs.org/w/index.php?diff=83467&oldid=80754 * CatCatDeluxe * (-4)
19:08:40 <esolangs> [[User:CatCatDeluxe]] M https://esolangs.org/w/index.php?diff=83468&oldid=83467 * CatCatDeluxe * (+1)
19:09:07 <nakilon> looks like #help here now is a place for politics and shit
19:09:56 <nakilon> I'm not saying they ircops don't help when someone asks; I mean the channel looks opened for flame currently
19:10:41 <fizzie> The *help* channel is supposed to be #libera, that's what the topic of #help says.
19:10:57 <fizzie> Though #libera is, unsurprisingly, full of the same sort of discussions.
19:11:15 <fizzie> (I'm just there to lurk to get some idea about the community registration queue.)
19:11:31 <int-e> It is a hot topic. ##freenode is taking the worst of it anyway.
19:15:52 <arseniiv> could anyone advice something on representing all generalized circles (so, lines and circles) uniformly? Let’s say I have a thing which applies inversions to them and it shouldn’t try to distinguish lines from circles (and use different algorithms and representations: we’re dealing with floating point, that’d be a wrong decision!)
19:19:24 <arseniiv> I heard something about conformal embedding or like that but I don’t know where to read something clear about that. Like projective or affine stuff goes one dimension higher, this one should (if I’m not mistaken) go up two. And there’s something with null cone and projecting parabolas from it to lines and I’m afraid of that all and don’t want to rediscover it at all
19:20:23 <arseniiv> int-e: do you represent some line and circle segments in your Möbius visualizations BTW?
19:21:01 <arseniiv> my context is the same: I think about applying Möbius transformations to generalized circles in a safe and rational manner
19:21:50 <arseniiv> would we go up a dimension, I’d need to make something about generalized spheres too
19:22:06 <arseniiv> thankfully I’m not that greedy yet!
19:22:34 <arseniiv> oh right I’ll go frighten ##math
19:22:38 <int-e> arseniiv: no, there's just coordinates
19:22:40 <rasengone> arseniiv: alright, I'll bite. generalized circles?
19:22:51 <rasengone> isn't that just a single value in all dimensions, distance?
19:23:30 -!- Thelie has joined.
19:24:41 <arseniiv> rasengone: even in the circle case, we need to specify not just radius, but also its center. A line needs two points. But these ways aren’t unified at all
19:25:07 <Soni> rasen-GAN is a funny name
19:25:30 <rasengone> are lines not special cases of circles?
19:26:48 <arseniiv> in geometries which admit inversion (like this Möbius group) they are all the same, of course, but that doesn’t help by itself, it just reinforces the desire to represent them unified
19:28:23 <rasengone> well that's the thing, you can specify them by two points, still.
19:28:58 <arseniiv> though that might be a good start
19:29:02 <arseniiv> I feel there’s no way around that conformal cone stuff but I don’t want to google it potentially for hours
19:29:26 <arseniiv> b_jonas adviced a neat projective book but it’s just about that
19:35:24 <nakilon> now grouping looks correct https://i.postimg.cc/LmccZFTV/image.png and https://i.postimg.cc/6KcBFTzJ/image.png
19:35:39 <nakilon> but dot render became larger
19:41:40 <rasengone> arseniiv: what if you used a space-filling loop.
19:41:53 <rasengone> and defined lines as normalized segments of that loop.
19:49:55 <rasengone> everything is either a line or a circle.
19:52:26 <arseniiv> BTW I suddenly think I realized the basic principle there! I read something like that in physics books, the conformal geometry of the sky sphere or something. So it I get that as they intended, we take the null cone that’s alright. But then we treat null lines in it as points, like we did with projective geometry, but in this case just those lines and no other ones. They are the points of the sky sphere, it transforms conformally under Lorentz transf
19:52:26 <arseniiv> ormations (which fix the null cone)
19:52:56 <arseniiv> and now we stereographically project that sky sphere onto a plane
19:52:56 <arseniiv> bam it’s the plane which we want to describe
19:54:05 <arseniiv> though I don’t yet have stereographic transform sufficiently internalized. It’s hard to me to work with it, to write anything at all in linear algebra terms
19:54:19 <arseniiv> I also opened that projective book, maybe it contains some clues too!
19:55:31 <arseniiv> the idea “sky sphere → stereographic projection” seems palatable though. And I’m almost sure that is what I seek; circles on the sphere map to generalized circles on the plane
19:56:27 <nakilon> I think I came up with 3 algorithms for the "transitive reduction" but all they fuck up the rhombuses
19:56:36 <arseniiv> and they can grow and shrink and so any single gen. circle can map to any other gen. circle, which should be possible, a sanity check
19:56:49 <arseniiv> nakilon: do you do something with graphs?
19:57:36 <nakilon> arseniiv guys proposed to apply transitive reduction to https://i.imgur.com/MV6S0BH.png
20:00:25 -!- tech_exorcist has quit (Quit: tech_exorcist).
20:00:41 <arseniiv> nakilon: ah, reasonable! To get something like whatsitcalled… someone’s diagram. Hasse, I think. That name wouldn’t help, though, that’s just for completeness. Have you considered an algorithm which tries to assign levels to nodes and then layout them based on those levels?
20:01:40 <arseniiv> it seems that may work poorly though, conflating ways to layout almost independent nodes
20:04:50 <nakilon> I think I can breadth-first traverse down from each node discarding all edges that were walked on previous layers during this starting node iteration
20:06:03 <nakilon> *discarding edges to the nodes that were reached on previous layers
20:06:13 <esolangs> [[Talk:Unsquare]] https://esolangs.org/w/index.php?diff=83469&oldid=83417 * Bangyen * (+102) /* Examples */
20:07:20 <esolangs> [[SF Code]] https://esolangs.org/w/index.php?diff=83470&oldid=83466 * JaydenIrwin * (+201) link and overflow info
20:07:56 <nakilon> arseniiv was it undersdtandable? ..D
20:12:12 <arseniiv> nakilon: yep, I was away for a bit
20:12:36 <arseniiv> seems like a good idea which I would try too
20:20:35 <zzo38> I prefer to not have too many dependencies in computer programs that I write, and sometimes things that are small enough can be included with the program. Sometimes there are some indirect dependencies and sometimes they can be changed to avoid some of them
20:21:42 <ais523> I try to avoid dependencies that have too many dependencies of their own
20:21:51 <ais523> it seems too likely that something could go wrong in the supply chain somewhere
20:22:11 <ais523> along similar lines, I think libraries should try to minimize the number of dependencies they have (this is probably an argument for programming languages to have large standard libraries)
20:26:29 <fizzie> It's maybe also an argument for programming language ecosystems to have (at least de-facto) standard dependency management solutions, so that people can converge on a set of popular dependencies. (But it's also a *counterargument* for that, because it makes it too easy to have dependencies.)
20:27:34 <fizzie> I like Bazel in the sense that it's really pretty annoying to have external dependencies, especially "large" ones (that themselves depend on other things), so you naturally avoid it. But people are trying to "fix" that property.
20:29:31 -!- ais523 has quit (Quit: sorry about my connection).
20:30:32 -!- ais523 has joined.
20:30:33 -!- ais523 has quit (Remote host closed the connection).
20:30:55 -!- ais523 has joined.
20:30:56 <zzo38> Yes, I try to avoid too many indirect dependencies too
20:31:35 <ais523> with Rust/Cargo, it can be a particular problem because many of the de-facto agreed upon dependencies are unstable
20:31:49 <ais523> and some even have transitive dependencies with big warnings saying things like "not for production use"
20:32:06 <b_jonas> "<arseniiv> b_jonas adviced a neat projective book but it’s just about that
20:33:22 <b_jonas> "<arseniiv> b_jonas adviced a neat projective book but it’s just about that" => do you mean Jürgen ichter-Gerbert, "Perspectives on Projective Geometry", (2011) Springer? that's probably the most relevant, but I may have recommended some of my other geometry books too
20:33:24 <fizzie> Here's the full transitive dependency tree of the esolangs bot and the logs web server, on the Bazel cc_* target level: https://zem.fi/tmp/esodeps.png
20:33:30 <ais523> incidentally, apparently higher-kinded trait bounds are now stable in Rust?
20:33:46 <zzo38> Sometimes there may be the hope to fix it in future. TeXnicard currently depends on Ghostscript, although I would hope that in future a different FOSS implementation of level 3 PostScript could be substituted, and that the program could then still work. (It does'nt even use many of the features of Ghostscript, so a simpler implementation, perhaps called "PSlite", could be done maybe)
20:34:11 <ais523> I was having trouble getting a trait of mine to work, so in frustration I tried "for<'a> AddAssign<&'a Self>" as a trait bound because it's what I really wanted
20:34:18 <ais523> hoping to get more information from the error message
20:34:21 <ais523> and surprisingly, it just worked
20:35:50 <zzo38> Which de-facto agreed upon dependencies" are unstable?
20:36:08 <ais523> there's one a couple of levels out from html5ever, I think
20:36:14 <ais523> in terms of the "do not use in production"
20:36:22 <ais523> in terms of unstable, nearly all of them
20:36:26 <ais523> num-traits is widely used and has a 0. version number, for example
20:37:02 <arseniiv> b_jonas: yeah I meant "Perspectives on Projective Geometry"
20:37:06 <ais523> in fact, it's a rarity to see a version number start with a positive integer
20:37:06 <b_jonas> arseniiv: also look at Tamfang's code that he used to generate all the hyperbolic tiling images https://commons.wikimedia.org/wiki/User:Tamfang/programs and possibly some of David Madore's code eg. http://www.madore.org/~david/weblog/d.2014-12-14.2256.html
20:37:58 <zzo38> SQLite doesn't have its own dependencies, so I am glad for that and do use it in many programs; it is common, I think.
20:38:53 <b_jonas> as well as TAOCP 4A which explains a way to represent a specific tiling of the hyperbolic plane, useful combined with normal hyperbolic coordinate geometry to represent large regions of the hyperbolic plane without numeric instability
20:39:07 <ais523> one thing I would like to see is a commonly agreed upon library which does, in effect, the OS-specific parts of libc
20:39:31 <arseniiv> hopefully I have that volume of TAOCP somewhere…
20:39:37 <ais523> but not things like strchr that can be implemented in a platform-neutral way
20:39:53 <ais523> right now, almost everything depends on libc and it can cause trouble
20:40:07 <b_jonas> where the Jürgen Richter-Gerbert explains the coordinate geometry. alas I don't understand most of these topics in detail, and it doesn't seem to be as easy computationally as the Euclidean plane.
20:40:09 <ais523> a few years ago I was helping my boss debug a Haskell programming, the problem was caused by libc's stdio buffering
20:40:20 <ais523> and my boss was having trouble understanding why the Haskell program was using a C library at all
20:40:27 <arseniiv> (how to organize notes on such diverse topics? I will definitely forget all that but at least I can bookmark the code in the browser)
20:40:39 <b_jonas> oh, and http://www.madore.org/~david/weblog/d.2013-12-17.2175.trigonometrie-triangle.html might help
20:40:44 <ais523> (I explained that going via C for the operating sustem interface was the easiest way to make your language run on multiple operating system)
20:41:31 <arseniiv> b_jonas: ah, the hyperbolic cosine law
20:41:53 <ais523> also my grammar has gotten a lot worse over the last couple of years, for some reason
20:41:54 <arseniiv> hm I need to invent a way to write all tree of them as one
20:42:30 <b_jonas> "<ais523> I try to avoid dependencies that have too many dependencies of their own" => yeah, the CPAN/node.js dependency hell. usually those kinds of modules that pull in a huge dependency tree of things that seem completely unrelated to what the modules are supposed to be doing turn out to be low quality.
20:43:15 <b_jonas> ah yes, there's stuff like that in Cargo too
20:43:38 <nakilon> Taneb fizzie I guess that's it https://imgchest.com/p/pdl7px9j4ox
20:45:01 <esolangs> [[User:Ais523]] https://esolangs.org/w/index.php?diff=83471&oldid=73905 * Ais523 * (+106) update on the IRC situation
20:45:25 -!- ais523 has quit (Quit: sorry about my connection).
20:46:13 -!- ais523 has joined.
20:48:19 <nakilon> does dot have any parameter to "think harder" how to arrange things?
20:49:02 -!- moon has changed nick to moony.
20:51:05 <ais523> nakilon: I think dot's algorithm is actually deterministic, it just does a tsort and then puts arrows accordingly
20:51:31 <ais523> there is neato if you want a more complicated algorithm for arranging things
20:52:46 <ais523> (same input format as dot, same developers, but a very different placement algorithm)
20:54:31 <ais523> oh, this reminds me: I'm working on an esolang which will primarily handle integers, but I want it to be able to work with complex rationals too
20:54:47 <ais523> and I'm wondering how to implement the modulus/floor-divide operations on complex numbers (which I want to include because they're useful on integers)
20:55:27 <ais523> after researching it, it looks like "symmetric modulus" (the counterpart to rounded division) is a meaningful operation on complex numbers, but then the modulus operation will work differently on real numbers and on complex numbers, which is weird
20:56:09 <ais523> does anyone know of a sensible generalisation of floor-division (and the corresponding remainder operation) to the complex numbers?
20:57:22 <nakilon> I've just implemented RASEL in Ruby that already has Rational ..D also it has Complex IIRC but I didn't use it
20:57:56 <ais523> at least floor-division on real rationals is easy enough to implement
20:58:15 <ais523> (you divide the rationals, then floor to the next integer below if the result isn't an integer, this gives a sensible definition for the modulus)
20:59:25 <ais523> I guess you can implement modulus for complex numbers by requiring that the resulting modulus is within 90° anticlockwise of the divisor on the complex plane
21:00:11 <ais523> although, generalising that to integers, you get floor-division when the denominator is positive but ceil-division when the denominator is negative, which I guess might be a useful operation?
21:01:41 -!- sprock has quit (Quit: goodbye forever freenode).
21:02:20 -!- sprock has joined.
21:04:38 <esolangs> [[Unsquare]] https://esolangs.org/w/index.php?diff=83472&oldid=83419 * Bangyen * (+84) /* Implementations */
21:13:33 <zzo38> There are some nonstandard C functions that can be useful, such as fopencookie, which is a GNU extension. I found that it seems musl-libc also includes fopencookie, but apparently it does not provide a portable way to do arithmetic on file offsets; I fail to see how you are supposed to implement a seekable stream in that case. (Fortunately many of the cases where fopencookie is used are used for non-seekable streams so doesn't have this
21:14:22 <ais523> I have been trying to work out what a good portable system-neutral API for file-like things would look like
21:14:52 <ais523> I think it makes sense to divide files into seekable files and streams, but I don't know if you would want them to be separate APIs entirely, or if you want to merge them to cover the case of seekable streams
21:15:19 <ais523> there are some weird cases, like growing files, where you want to be able to read what you have so far in a seekable way, then monitor the end for new content, in a streaming sort of way
21:15:26 <ais523> (but of course there might be edits earlier in the file too)
21:15:45 <ais523> really the problem is that we have a few different things we might want to use files for, but we're trying to force them all into the same abstraction
21:16:30 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=83473&oldid=83425 * Aylias * (+19) /* M */
21:16:41 <zzo38> I think that the existing system is OK, except that such things as fopencookie are nonstandard and don't have a standardized way.
21:17:24 <arseniiv> ais523: how about picking a “floor quotient” q ∈ Z[i], picking it so that Re q ≤ Re (z1 / z2) < Re q + 1, and making that order linear by deciding something about picking Im q. Then on R it will give the usual floor division and so the corresponding mod too
21:17:24 <ais523> I think it's been generally agreed on that openat and friends are a better interface than their non-at counterparts
21:17:54 <zzo38> It can be used for example, I have the functions that compute hashes: int fosimp_hash_stream(int alg,FILE*echo,Fosimp_Hash*hash,FILE**fp); int fosimp_hash(int alg,const unsigned char*data,size_t len,Fosimp_Hash*hash); (the second one is a convenience wrapper)
21:19:03 <esolangs> [[MultiStacker]] N https://esolangs.org/w/index.php?oldid=83474 * Aylias * (+80) Created page with "'''MultiStacker''' is an [[Esoteric programming language]] created by [[Aylias]]"
21:19:21 <zzo38> This includes an optional echo stream, in order that you want to write to another stream at the same time while the hash is being accumulated. (You can even chain them; in the case of fossil decks, this will be the case, since you will write the cards to a MD5 stream which echoes to a SHA-1 stream which then echoes to the output stream, after closing the MD5 stream write its hash to the SHA-1 stream.)
21:19:32 <ais523> arseniiv: I was thinking along those sorts of lines, maybe even something as simple as "floor the real part and round the imaginary part"
21:20:05 <zzo38> ais523: There is the C stream objects and the POSIX file descriptors interface; they are different things and can be good for different purposes; sometimes you do want to use both and fortunately you can do so, so, that isn't a problem.
21:20:12 <esolangs> [[User:Aylias]] N https://esolangs.org/w/index.php?oldid=83475 * Aylias * (+89) Created page with "I am a high-schooler who loves to code! I have created these esolangs: * [[MultiStacker]]"
21:20:16 <arseniiv> and almost preserves conjugation in this case, ah
21:20:21 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83476&oldid=83474 * Aylias * (+5)
21:20:48 <ais523> I guess if you break ties to even, it actually does preserve conjugation
21:21:03 <arseniiv> or if you’d want to use stochastic rounding for numbers from Z + 1/2…
21:21:06 <ais523> "round the real part and round the imaginary part" (symmetric modulus / round-division) is needed to make gcd work, thoguh
21:21:17 <arseniiv> I think some esolang deserves to have some stochastic rounding
21:21:31 <ais523> generally speaking I prefer my esolangs to be deterministic unless there's some reason not to
21:21:58 <zzo38> The source code of TeXnicard defines a "fopenat" function which combines fopen with openat, since that is useful in this case (for accessing files that belong to a package).
21:22:21 <arseniiv> <ais523> "round the real part and round the imaginary part" (symmetric modulus / round-division) is needed to make gcd work, thoguh => is it related to euclidean division Knuth advocate(d|s)?
21:22:30 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83477&oldid=83476 * Aylias * (+171)
21:22:35 <ais523> I think having fopen as the main API, rather than as a wrapper for open+fdopen, was a mistake
21:23:01 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83478&oldid=83477 * Aylias * (+4)
21:23:16 <ais523> arseniiv: it's mostly just due to preventing an infinite regress; flooring an integer changes it by at most 1, but flooring the real part and rounding the imaginary part can change it by up to sqrt(3)
21:23:26 <zzo38> static FILE*fopenat(int dirfd,const char*filename,const char*mode) { int flag,fd; FILE*fp; if(*mode=='r') flag=O_RDONLY; if(*mode=='w') flag=O_WRONLY|O_CREAT|O_TRUNC; if(*mode=='a') flag=O_WRONLY|O_CREAT|O_APPEND; if(strchr(mode,'+')) flag&=~(O_RDONLY|O_WRONLY),flag|=O_RDWR; fd=openat(dirfd,filename,flag); if(fd==-1) return 0; fp=fdopen(fd,mode); if(!fp) close(fd); return fp; }
21:23:43 <ais523> and this breaks the invariant that the remainder of a division is smaller than the divisor, which the euclidean algorithm needs to be able to terminate
21:24:11 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83479&oldid=83478 * Aylias * (+96)
21:24:16 <ais523> whereas if you round both parts, the symmetric modulus will come out smaller than the divisor so the euclidean algorithm works again
21:24:25 <zzo38> ais523: Maybe it was a mistake. But, maybe having fopen separate is helpful in order to allow non-POSIX programs to work?
21:24:28 <ais523> (smaller in this case meaning smaller magnitude)
21:25:01 <ais523> zzo38: I think every major OS, and most of the minor OSes, have some sort of file descriptor concept that's separate from the concept of a buffered stream
21:25:27 <ais523> in WebAssembly, file descriptors are random numbers rather than consecutive integeres, but they still exist
21:28:16 <shachaf> That seems like an improvement.
21:29:19 <ais523> it does break the API for select(2), but that may be a good thing, because it would have helped avoid creating an API that doesn't scale well
21:30:45 -!- int-e has quit (Quit: leaving).
21:30:59 -!- int-e has joined.
21:31:13 -!- salpynx has joined.
21:31:47 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83480&oldid=83479 * Aylias * (+506)
21:35:36 -!- rasengone has changed nick to imode.
21:40:21 <salpynx> rounding discussion reminds me of this https://en.wikipedia.org/wiki/Cash_rounding I remember when it changed stores had look up tables to explain. "If the number ends in x, round to y"
21:41:19 <salpynx> ... possibly not that relevant to complex numbers though
21:42:02 <ais523> salpynx: I'm the sort of person who sometimes pays prices like £1.99 using exact change
21:42:41 <int-e> ais523: that's so satisfying
21:43:02 <ais523> it also helps to rebalance the coin mix in both my wallet and their register
21:43:08 <int-e> rarely happens though
21:43:55 <zzo38> I also prefer to pay using exact change when I can, but a law that has been introduced in Canada some time ago makes that difficult to do
21:45:22 <b_jonas> you know how I complained that there's so hard to find detailed information about the IBM Selectric typewriters on the internet that the whole thing seems to be a hoax invented about a nonexistent typewriter, possibly as Cold War propaganda about the US technological superiority? well I just found a nice high quality video that both shows a working Selectric II and talks about how it works
21:45:28 <b_jonas> https://www.youtube.com/watch?v=BJITkKaO0qA
21:47:02 <salpynx> What I remember from the dropping of 1 and 2 c coins was that prices like $1.99 still existed, so you couldn't pay exact, unless you paid electronically. I think that mean you could get things cheaper by paying cash because guidelines were to round down (to nearest 5)
21:47:41 <b_jonas> "<ais523> does anyone know of a sensible generalisation of floor-division to the complex numbers?" => J implements a weird one, but I'm not sure that it's sensible, it might be there because if you want to take the floor of the real and imaginary components separately that's easy to implement yourself so they chose to add something weirder to the floor primitive
21:48:46 <HackEso> LANG=en_NZ.UTF-8 \ LANGUAGE= \ LC_CTYPE="en_NZ.UTF-8" \ LC_NUMERIC="en_NZ.UTF-8" \ LC_TIME="en_NZ.UTF-8" \ LC_COLLATE="en_NZ.UTF-8" \ LC_MONETARY="en_NZ.UTF-8" \ LC_MESSAGES="en_NZ.UTF-8" \ LC_PAPER="en_NZ.UTF-8" \ LC_NAME="en_NZ.UTF-8" \ LC_ADDRESS="en_NZ.UTF-8" \ LC_TELEPHONE="en_NZ.UTF-8" \ LC_MEASUREMENT="en_NZ.UTF-8" \ LC_IDENTIFICATION="en_NZ.UTF-8" \ LC_ALL=
21:49:10 <ais523> b_jonas: what is J's generalisation?
21:49:20 <salpynx> that's cool that HackEso knows where you live...
21:49:23 <int-e> `` locale | grep -v \"
21:49:24 <HackEso> LANG=en_NZ.UTF-8 \ LANGUAGE= \ LC_ALL=
21:49:52 <b_jonas> it works by making floor(x+y*i)=0 :iff 0<=x+y<1 and -1<=x-y<1, with the equality possibly on the other side of the second condition, I don't remember
21:50:43 <ais523> that's just confusing, I wonder if there's a reason for it
21:50:48 <b_jonas> I am not convinced that this makes more sense than just making floor(x+y*i)=floor(x)+floor(y)*i
21:51:33 <ais523> I think I'm going to go with the floor(x)+round(y)*i approach
21:52:05 <ais523> it seems wrong to not be symmetrical around the y=0 axis
21:52:49 <b_jonas> "floor the real part and round the imaginary part" => hmm, I haven't considered that. but that seems wrong because it ruins the nice symmetry of ceil(x)=-floor(-x)
21:53:40 <b_jonas> '<ais523> "round the real part and round the imaginary part" (symmetric modulus /round-division) is needed to make gcd work, thoguh' => yes, because you want the remainder to have a magnitude less than the divisor
21:53:45 <ais523> no it doesn't? ceil would presumably be "ceil the real part and round the imaginary part", so still symmetrical, as long as you use as symmetrical rounding
21:53:51 <ais523> like round-ties-to-even
21:54:05 <b_jonas> though I will note that the weird floor from J also satisfies that
21:54:28 <b_jonas> which, now that I think of it, might be the reason why they chose that over componentwise floor, oh wow
21:56:05 <nakilon> so I was ready to pull request the --reduce option to the homebrew graph tool
21:56:16 <b_jonas> "file descriptors are random numbers rather than consecutive integers" => I think Linux folks believe that the consecutive integers thing is sort of a mistake, because in some weird heavily multithreaded cases it can cause a performance penalty, and you don't really gain anything important from the guarantee, but it's too late to change now because some existing programs can rely on it
21:56:30 <nakilon> and it appeared that there is some bug in homebrew that does not really show the full tree
21:57:04 <b_jonas> "<zzo38> I also prefer to pay using exact change when I can, but a law that has been introduced in Canada some time ago makes that difficult to do" => er, how so?
21:57:50 <zzo38> Maybe what would be better is unspecified unused file descriptor numbers with a specified minimum, but you can also specify explicitly what file descriptor number you want, and in that case it can be below the minimum number for automatically assigned numbers
21:57:52 <fizzie> When Finland switched to the euro, we never adopted the 1 and 2 cent coins, but we had prices at that level of precision, and I'm pretty sure the rounding was to nearest increment of 0.05 (which doesn't have any ties to break). And you could indeed pay with card the exact price. So theoretically you could optimize by selecting to pay cash whenever the price ended in .x1, .x2, .x6 or .x7; pay by card when
21:57:58 <fizzie> it ended in .x3, .x4, .x8 or .x9; and do whichever on .x0 and .x5. I don't think I know anyone who did that, though.
21:58:07 <b_jonas> '<ais523> ceil would presumably be "ceil the real part and round the imaginary part", so still symmetrical, as long as you use as symmetrical rounding' => hmm yes, you may be right
21:58:08 <zzo38> b_jonas: The Canadian government no longer makes one cent coins
21:58:10 <int-e> b_jonas: they round prices to multiples of 5 cents if you pay cash, or something like that... let's see how close I got
21:58:38 <b_jonas> "but you can also specify explicitly what file descriptor number you want" => we do have that in unix, it's called dup2
21:59:02 <b_jonas> it's probably better as a separate syscall than adding an extra parameter to every call that may return a file descriptor
21:59:09 <ais523> I think it's mostly intended for redirecting stdin/stdout/stderr which have fixed numbers
21:59:36 <b_jonas> ais523: but isn't it also, like, "free" in that it's something the kernel can do easily so why not expose it?
22:00:03 <b_jonas> I mean once you have a unix model of inheriting file descriptors with the same numbers to subprocesses by default
22:00:30 <b_jonas> so the kernel needs an inderection from file descriptor numbers to file descriptions, with some extra state for the file descriptors, in first place
22:00:42 <salpynx> fizzie: in NZ we called it "Swedish rounding"
22:00:44 <b_jonas> the extra state generally being just an O_CLOEXEC flag right now, but still
22:01:07 <ais523> b_jonas: seek position is a big one
22:01:25 <ais523> although, I'm increasingly of the opinion that seek position should be a userspace rather than kernelspace thing
22:01:32 <b_jonas> ais523: no, seek position is shared over inheritance or dup
22:01:36 <ais523> and the read API for seekable files should just specify the byte range (i.e. pread)
22:02:26 <shachaf> I think trying to unify files and streams is maybe not that great of a Unix decision.
22:02:39 <int-e> huh, how was I not aware of round(-x) = -round(x) as a reason for round-to-even...
22:03:15 <shachaf> What else should be in userspace that's in the kernel?
22:03:30 <b_jonas> "<salpynx> I think that mean you could get things cheaper by paying cash" => I think of it as still paying the exact amount, only the coins in my wallet now represent an approximation of how much money I have, which is fine. but admittedly shops can't quite do that, they have to know the exact amount of cash that should be in a cashier's box so that they can do an inventory check to prove to stupid
22:03:36 <b_jonas> fussy customers that the cashier did not steal their money, or to prove to themselves that the cashier did steal money from them, without security camera footage
22:03:44 <ais523> I can see arguments for TCP in kernelspace, although they aren't nearly as large as the arguments for IP in kernelspace
22:04:05 <shachaf> There are arguments for TCP in the kernel but they aren't very strong, I think.
22:04:17 <salpynx> ais523: is there a way to find "the closest" Gaussian integer to unambiguous and meaningful?
22:04:24 <shachaf> And at least the kernel should give you the option of receiving and sending TCP datagrams, even if you don't always use it.
22:04:37 <shachaf> Also TCP is a bit of a scam in the first place.
22:04:47 <ais523> salpynx: round-real, round-imaginary gives you the closest Gaussian integer by all sensible definitions
22:04:55 <int-e> oh no, shachaf is going on a rampage again
22:05:30 <fizzie> Soon all our connections will stop working, after shachaf argues TCP is logically impossible and it stops existing.
22:05:31 <b_jonas> ais523: we do more or less have such an API with explicit byte ranges for, I almost everything in unix. pread, ftruncate, etc. technically you still need the seek pointer for the SEEK_DATA/SEEK_HOLE options of lseek, I don't think that has a seekless equivalent, but that's about all I can think of.
22:05:31 <shachaf> Hmm, so what are the arguments for TCP in the kernel? Maybe I didn't think it through.
22:05:57 <shachaf> fizzie: I think of TCP as more like a deal with the devil than a logical impossibility.
22:06:36 <ais523> shachaf: it seems like at least non-root programs shouldn't have control over things like what parameters to use for their TCP connections
22:06:40 <b_jonas> "<shachaf> And at least the kernel should give you the option of receiving and sending TCP datagrams, even if you don't always use it." => I think they do that, in the sense of letting you use send and receive raw IP packets if you want
22:06:51 <b_jonas> there are like three different interfaces for raw IP already, for historical reasons
22:08:24 <ais523> shachaf: programs are competing with each other for various resources, network is one of them
22:08:40 <shachaf> Right, but why on the TCP level?
22:08:46 <ais523> and the details of TCP can have a lot of influence on how much share of a computer's network bandwidth each of the programs gets
22:08:58 <ais523> but yes, I think it might be possible to make that work on the IP level alone
22:09:10 <shachaf> I think the whole "end-to-end" thing is a great idea.
22:09:25 <ais523> in theory, if you can make it work at a lower level, that would be better, because it would leave fewer loopholes
22:10:30 <b_jonas> (continuing to watch the Selectric video) wow
22:10:50 <ais523> hmm… are TCP and UDP port numbers in a shared namespace with each other? or separate?
22:11:01 <ais523> if they're separate namespaces, that would be a good reason for the kernel to handle TCP
22:11:17 <ais523> so that it can arbitrate when two programs both want to listen on the same port
22:11:34 <shachaf> The kernel would need to handle TCP to the extent that it handles UDP, i.e. check port numbers on incoming and outgoing packets.
22:11:50 <b_jonas> ais523: separate, but for historical reasons the older assignments of well-known ports by some acronym organization (ICANN or IANNA or whatever) were given in pairs of matching tcp and udp port numbers
22:12:26 <b_jonas> then of course the 65536 port numbers easily ran out as people made more and more programs, and it no longer made sense to just assign a well-known port number to everything
22:12:34 <shachaf> I wonder whether if I make a service I can get a low port number for it nowadays.
22:13:06 <ais523> I actually check the Wikipedia article for what port numbers are in common use, when writing new programs
22:13:10 <ais523> to reduce the odds of clashes
22:13:24 <ais523> although, there was an incident recently
22:13:34 -!- xkapastel has quit (Quit: Connection closed for inactivity).
22:13:37 <ais523> where one of the Pokémon games was using the same port number as some widely deployed piece of hardware
22:13:40 <b_jonas> so we still have HTTP on 80 and some fixed port numbers for services that tell you what port to use, but most programs just assume the port number needn't necessarily be fixed, and can either be configured by user with a default or is autodetected through some other service whose port can also perhaps be configured, which isn't such an overhead if you want to configure the host as well
22:13:53 <ais523> and the hardware wasn't doing proper input validation and was crashing when the Pokémon games were played on the same network as it
22:14:13 <ais523> presumably this bug could have been intentionally exploited for years, but the accidental exploit was what got them to notice
22:15:14 <fizzie> I used to pick port numbers (for personal things) by selecting a two-character abbreviation sort of mnemonical to the thing the port was for, and then concatenatic those two characters into a 16-bit port number.
22:15:35 <b_jonas> also there's DNS, which uses both an UDP and less often a TCP port with I think the same number, and has a really good reason to be on a fixed well-known port number
22:15:56 <ais523> DNS servers also have a good reason to have memorable IP addresses
22:16:14 <ais523> fizzie: that's how Donald Knuth picks variable names in INTERCAL
22:16:16 <shachaf> Oh man, if only multibyte character literal values in C had a defined meaning.
22:16:25 <b_jonas> but with the ipv4 space so filled, that's not always so easy
22:16:25 <ais523> except he uses Baudot encoding to fit three letters into the name
22:16:47 <shachaf> I guess no one should use TCP these days because everything is supposed to be encrypted, and TCP doesn't work well with encryption.
22:16:49 <b_jonas> shachaf: people use macros for that, though I haven't seen it used for ports in particular
22:17:16 <ais523> shachaf: TLS over TCP is *really* common, though
22:17:30 <ais523> actually I'm not sure whether TLS over UDP even exists, even if it does it's much less common
22:17:46 <b_jonas> shachaf: no, quite the opposite, everyone uses TCP these days even if they don't need to, because too many routing equipment tries to be too smart and check things in packets that they shouldn't like the TCP header
22:17:55 <shachaf> Well, establishing a TLS connection over TCP takes an extra roundtrip.
22:17:55 <ais523> TLS isn't the only way to do encryption, but it does seem to be the consensus method
22:18:02 <shachaf> Which already makes it unsuitable for many applications.
22:18:25 <shachaf> TCP fast open isn't great and I think is unused.
22:18:48 <ais523> one thing I dislike about TLS is how unreliable it seems to be in practice
22:19:14 <ais523> bits of TCP communications have a tendency to go missing, even though the entire point of the protocol is meant to be to prevent that
22:19:27 <b_jonas> shachaf: may I point you to https://noiseprotocol.org/ as a nice encryption protocol in general and a possible way to avoid unncessary roundtrips
22:19:35 <fizzie> In terms of total bytes sent over the networks, I imagine YouTube must account for a rather a lot, and since I suspect pretty much no YouTube traffic from Chrome browsers (itself a pretty popular thing) uses TCP, I think it's likely there's quite a lot of non-TCP traffic out there.
22:19:41 <ais523> and so, at the application level, you're often inventing your own reliable-connection protocols (with resending, etc.) on top of TCP, which is just so upsetting that you have to do that
22:19:52 <b_jonas> "<shachaf> TCP fast open isn't great and I think is unused." => it is used by browsers these days, if both sides run modern software
22:19:52 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83481&oldid=83480 * Aylias * (+1343)
22:20:16 <shachaf> TCP fast open doesn't seem great.
22:20:26 <shachaf> It doesn't work on the first connection, and it can be used to fingerprint clients.
22:21:48 <nakilon> I opened a pull request for your idea guys https://github.com/martido/homebrew-graph/pull/14
22:22:09 -!- spirgel has joined.
22:22:24 <shachaf> I like how TCP has something called "fast open" and something called "quick start" and the two have nothing to do with each other.
22:22:47 <shachaf> Wait, was it called "quick start"? Maybe I'm thinking of something else.
22:24:22 <fizzie> It came up earlier, but there's a proposed new DNS resource record type, "HTTPS", which allows the DNS lookup to transmit enough information that a client can connect directly over HTTP/3 (or do an encrypted-from-the-start handshake) even on the first connection, among other little things like serving from a non-standard port, or allowing delegation of the zone apex (unlike CNAME).
22:25:01 <fizzie> Though I imagine for anything "non-optional" (like serving *only* from a non-standard port), you'd have to presume it's supported, which won't be feasible particularly soon.
22:25:15 <arseniiv> b_jonas: that book is golden after all. Even a hyperbolic geometry dive-in
22:26:11 <shachaf> Putting it in DNS seems OK.
22:26:41 <b_jonas> fizzie: interesting, I haven't followed HTTP/3 and even HTTP/2 only to a small amount
22:26:52 -!- DHeadshot has joined.
22:26:55 <shachaf> Hmm, are ports a good idea, or should there just be some extra addressing bits?
22:27:07 <shachaf> Is HTTP/3 the one that uses QUIC?
22:27:18 <fizzie> Yep. It's really just the new name for QUIC.
22:27:25 <fizzie> Just like HTTP/2 was the new name for SPDY.
22:27:29 -!- Thelie has quit (Ping timeout: 265 seconds).
22:27:43 <b_jonas> '<fizzie> Though I imagine for anything "non-optional" (like serving *only* from a non-standard port), you'd have to presume it's supported' => sort of, but the server could put in a fallback redirect to a longer https address with a port in it where they serve HTTP/1.1
22:28:22 -!- Bowserinator has quit (Remote host closed the connection).
22:28:23 <fizzie> https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-https/ for that DNS thing, though it's only tangentially related to HTTP/3, since you can certainly do HTTP/3 even without -- it's just that the initial connection to a new unknown server won't be able to assume it speaks HTTP/3, so has to use the `Upgrade:` mechanism.
22:28:44 -!- ffmct has joined.
22:28:47 <b_jonas> "<shachaf> Hmm, are ports a good idea, or should there just be some extra addressing bits?" => they are probably not a worse idea than partitioning the IP namespace to three parts, one where the default is 1<<8 addresses per local network, one where it's 1<<16, and one where it's 1<<24
22:29:20 <b_jonas> it's like a thing that makes configuration easier in the common case, while you can still have a computer respond to multiple IP addresses if you wish, and that often happens now
22:30:18 -!- arseniiv has quit (Ping timeout: 264 seconds).
22:31:07 -!- Bowserinator has joined.
22:32:33 <ais523> I can see some argument for putting that sort of "initial trip" information (like whether the server does HTTP/3) in the same channels as are used to spread HSTS information
22:33:31 -!- dcristofani has joined.
22:36:25 <b_jonas> arseniiv: I'm glad you like it
22:38:59 <fizzie> shachaf: Just to set the record straight, it is probably wasn't exactly correct to say that HTTP/3 is a "new name" for QUIC, for two reasons: they have been doing actual changes (not just minor incompatibilities) as part of the IETF process, so (what's now called) "gQUIC" is not the same protocol as QUIC; and as you implied, strictly speaking the IETF QUIC is the general-purpose protocol and HTTP/3 is
22:39:05 <fizzie> just the mapping of HTTP on it.
22:40:25 -!- really3 has joined.
22:42:50 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83482&oldid=83481 * Aylias * (+2015)
22:49:34 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83483&oldid=83482 * Aylias * (+82)
22:49:43 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83484&oldid=83483 * Aylias * (+1)
22:50:03 -!- ais523 has quit (Remote host closed the connection).
22:51:53 <shachaf> QUIC looked pretty complicated when I was looking at it.
22:51:56 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83485&oldid=83484 * Aylias * (+8)
22:51:57 -!- imode has changed nick to rasengone.
22:59:57 <nakilon> when esolangers say "it's pretty complicated" it means something
23:00:45 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83486&oldid=83485 * Aylias * (+1181)
23:01:02 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83487&oldid=83486 * Aylias * (+1)
23:02:46 <nakilon> https://github.com/davisonio/awesome-irc
23:03:08 <Soni> QUIC is kinda weird
23:03:16 <Soni> SCTP is way cooler tbh
23:05:20 <nakilon> https://gitlab.com/ddevault/bf-irc-bot
23:06:21 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83488&oldid=83487 * Aylias * (+430)
23:06:40 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83489&oldid=83488 * Aylias * (+1) /* Example Code */
23:11:15 <esolangs> [[MultiStacker]] M https://esolangs.org/w/index.php?diff=83490&oldid=83489 * Aylias * (+0)
23:15:13 -!- dcristofani has quit (Ping timeout: 272 seconds).
23:21:40 <nakilon> 2018-03-12: Slack is shutting down the IRC and XMPP gateways.
23:28:01 <esolangs> [[MultiStacker]] https://esolangs.org/w/index.php?diff=83491&oldid=83490 * Aylias * (+32)
23:52:40 -!- xkapastel has joined.