00:00:13 -!- MigoMipo has quit (Read error: Connection reset by peer). 00:09:11 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 00:10:00 s x y z c = x z (\xz. xz y z c); k x y c = c x 00:10:18 skk = \x c. s k (\sk. sk k x c) 00:10:28 skkFOO = \c. s k (\sk. sk k x FOO) 00:10:45 er. 00:10:45 skkFOO(id) = s k (\sk. sk k FOO id) 00:10:53 and at this point i get too lazy 00:11:03 and also, realise that each partial application needs a c. 00:11:05 probably. 00:12:26 14:33:02 Did Jesus have a sacred hammer? 00:12:27 14:34:02 Well, he was a carpenter, and a lot of people would probably consider just about anything he ever touched sacred. 00:12:28 14:34:04 So I'd have to say ye. 00:12:30 14:34:05 *yes 00:12:32 14:34:28 He was a carpenter? 00:12:34 14:34:45 O_O 00:12:36 14:35:09 How can anyone in the western hemisphere not know that. 00:12:38 14:35:55 I take it I'm in the western hemisphere... 00:12:40 14:36:07 O_O 00:12:42 14:36:25 I am stunned. 00:15:57 -!- cheater- has joined. 00:16:22 pastebin.ca is back 00:16:38 APNIC down 0.02: 256k+64k+16k+8k+4k+1k to China, 16k+1k+512 to Indonesia, 32k to China, 1k to South Korea, 2k to Vietnam, 2k to Singapore, 64k to Thailand. 00:19:06 -!- cheater00 has quit (Ping timeout: 255 seconds). 00:19:32 * pikhq_ notes that the Greek did not actually specify "carpenter". It used a more general term for what amounts to a skilled laborer. 00:19:44 Could very well have been a mason, or a smith, or whatever else. 00:20:10 15:05:02 hei 00:20:10 15:05:31 hei kipple (=rune?) 00:20:10 15:05:41 ja 00:20:10 15:06:31 det var stille her 00:20:10 15:06:54 det er ikke akkurat den mest aktive kanalen i verden nei 00:20:11 15:06:58 i wondered if keymaker was here he seemed interested in my last language 00:20:13 15:07:28 det var mer liv sist men det var litt senere på kvelden 00:20:15 15:09:47 Swedish? 00:20:16 Or just somebody who listed himself as a skilled labor because it helped him cheat on his taxes. 00:20:20 The interpretation of Jesus as carpenter is, well, fan fiction. 00:20:21 *skilled laborer 00:20:23 Gregor: I approve of this interpretation. 00:20:30 That's why he was such a dick to taxy-men. 00:20:35 Just like almost all details of hell. 00:21:02 And essentially all practices of a modern church except communion. 00:21:46 *communism 00:21:47 Oh, and baptism of believers. That's actually in there, too. 00:22:00 *baguette 00:22:01 Gregor: Communism is not a practice of the modern church. 00:22:04 YES IT IS. 00:22:09 *baptism of infants too young to be capable of having distinguished beliefs 00:22:13 Gregor: Though a form of it *was* a practice of the early church. 00:22:23 Baptism of infants is mostly a Catholic thing. 00:22:31 [[>+<-]>-] 00:22:36 well it does something i thought impossible. but is useless. 00:22:52 oh wait, ihope already wrote that. in 2006. :) 00:22:57 well, essentially that. 00:23:01 [-[>+<-]>] 00:23:03 And rejecting it is actually the raison d'etre for many Protestant sects. 00:23:12 *baptism of fire 00:23:15 *of fire of infants 00:23:24 Including, of all things, the Amish. 00:23:33 oh wait 00:23:37 can you swap two tape cells in BF? 00:23:39 without using a third value... 00:23:40 I think not 00:23:50 Without using a third? No. 00:24:22 Gregor: indeed. 00:24:26 I think you may be able to pull it off in 1-bit BF. 00:24:35 Hmmmmmmmmaybe 00:24:42 that's just 00:25:22 if { right; if {} else {flip left flip} } else { right; if {flip left flip} else {} } 00:25:36 That's almost valid PEBBLE. 00:25:38 umm, so basically if x==y then flip both :) 00:25:44 and what's ==, xor? 00:25:47 no wait xor is !=. 00:26:01 pikhq_: what's it in pebble? 00:26:10 hm wait I can do this I think 00:26:30 if { right; flip; if {left flip} else {flip} } else { right; if {flip left flip} else {} } 00:26:41 if { right; flip; if {left flip} else {flip} } else { right; flip; if {left flip} else {flip} } 00:26:58 hmm 00:27:31 * elliott looks up how to do if in regular bf 00:27:56 wait I can't use a regular if 00:28:00 ok, wait 00:28:10 if is destructive, yeah. 00:28:30 And if-else requires a temporary cell, I think. 00:28:35 while { right; flip; if {left flip **LOOP WILL END AFTER THIS**} else {flip **LOOP WILL CONTINUE AFTER THIS**}} 00:28:46 BUT 00:28:55 while { right; flip; if {left flip **LOOP WILL END AFTER THIS**} else {flip; right **LOOP WILL END AFTER THIS, BUT ONE CELL TOO FAR**}} 00:29:14 while { right; flip; if {left flip right **LOOP WILL END AFTER THIS, BUT ONE CELL TOO FAR**} else {flip; right **LOOP WILL END AFTER THIS, BUT ONE CELL TOO FAR**}} 00:29:34 while { right; flip; if {left flip right} else {flip right} } left 00:29:40 except that the else crept back in :D 00:29:41 oh wait 00:29:43 both end with flip right 00:29:43 You realise you need to actually implement if-else for that to work, right? 00:29:44 excellent 00:29:52 while { right; flip; if {left}; flip right } left 00:30:01 *unfortunately*, 00:30:06 while { right; flip; while {left}; flip right } left 00:30:07 will not work 00:30:15 since left is *true* here... 00:30:20 while {left; flip} will. 00:30:25 :P 00:30:31 pikhq_: yes, but gives the wrong result for the rest of the code :) 00:30:35 ok, wait 00:30:40 this can be done as a truth table 00:30:42 the problem is 00:30:44 either 1,1 00:30:46 or 0,0 00:30:49 will have both 1s in the output 00:31:01 even if you flip one way 00:31:08 so there is no way to do an if, I think... 00:31:16 yes, indeed 00:31:21 you can't halt after generating "1,1" with [] 00:31:29 without moving outside those bounds 00:31:33 Gregor: Alas. 00:33:13 Well, you *could* successfully flip 0,1 and 1,0 around. :P 00:33:22 flip; left; flip 00:33:26 pikhq_: *right 00:33:27 Erm, right; 00:33:30 Well, yes. :p 00:33:40 I think you can swap two bits with one extra bit trivially. 00:33:46 (initialised to 0) 00:34:44 while {right right flip left left flip}; right; while {left flip right flip}; right; while {left flip right flip}; left; left 00:34:45 yep 00:34:57 [>>*<<*]>[<*>*]>[<*>*]<< 00:35:08 or in bitchanger 00:35:25 eh, too hard :D 00:35:47 hmm 00:35:48 interesting 00:35:54 you can't swap the two registers of a minsky machine 00:35:56 i don't think 00:40:05 ǃqháa̰kūǂnûmǁɢˤûlitêǀèdtxóʔluǀnàeǂʼásˤàa̰ 00:40:06 giveMPO:4PROtwogenital:22-PASS:3stench:3DAT:3PROCOM:2fat:22 00:40:06 "Give them their stinking genitals with the fat!" 00:40:07 --Wikipedia 00:40:15 http://en.wikipedia.org/wiki/!X%C3%B3%C3%B5_language 00:40:45 What is the nonsuckiest of program argument handling libraries? 00:41:03 Or better yet, one-header macromess :P 00:41:23 Gregor: "Uh." 00:41:26 getopt usually... works. 00:41:28 glib has something. 00:41:58 Gregor: Here's a katana. 00:42:01 Gregor: But really it's one of the many simple problems that the C language has no convenient facility for dealing with: an option is essentially best described by an ADT. 00:42:23 In C, any sufficiently rich option parser will be using a big struct with a bunch of enums, which never leads to a nice API. 00:42:30 Now, to commit se'hųku properly, you need to be able to write 口 correctly... 00:42:44 Hence "nonsuckiest", not "best" :P 00:42:45 And a skilled swordsman to assist you in case you screw up. 00:44:13 Gregor: Weeeeell, since it's easy to implement there's no shortage of choices, but I don't know anything I'd consider as "good"; usually I just use getopt (even getopt_long) or hack up my own thing. Or not write the program in C (my favourite). 00:44:29 There's always the GNUUUUUUUUUUU choice: http://www.cs.bham.ac.uk/resources/courses/2005/17423/doc/libc/Argp.html 00:44:59 else 00:44:59 {{{ 00:45:00 what. 00:45:31 Yeah, I guess I'll just stick with self-hackery, just wondering if something nonsuck had cropped up while I wasn't looking. 00:45:44 What're you working on? Or just a general question? 00:46:06 Also, lol @ the idea of something new in C ever cropping up :) 00:46:19 Not since, uhhhh, Duff's Device? 00:47:14 Fythe. AKA "program you will now find some facet of to ridicule" 00:47:29 Gregor: Actually I was thinking of working on my own Fythe-esque VM... :p 00:47:39 Gregor: Remember that Fythe is essentially a slight perversion of an idea I gave you wholesale :P 00:47:44 (Obviously, I invented Forth.) 00:48:12 Actually it's turned into a huge perversion that has greater resemblance to Lisp except really has no resemblance to either :P 00:48:43 It's stack-based and words can control the parsing stream (I think); that's Forth. 00:48:58 If they can't control the parsing Scheme, way to defeat the whole point of the extensibility Forth gives you :-P 00:49:02 *parsing stream, 00:49:03 It's not stack based and word's can't control the parsing stream ... per se. 00:49:05 LISP ON THE BRAIN. 00:49:10 Gregor: I thought it was stack-based. 00:49:30 The whole point with me giving you the idea is that there would essentially be an (automatically-executed) "plof" definition that took over the parsing stream with a regular (extensible) Plof parser. 00:49:37 I know I've seen the suggestion of separate tail-cal vs. not-a-tail-call thing before, but Rust actually does it 00:49:55 elliott: Uhh, THAT'S what I already had :P 00:50:07 Gregor: Uhh, no? 00:50:22 Fythe was to add a more powerful controllable compilation layer to it such that you could create output code that doesn't suck. 00:50:28 Gregor: The point is that you could, given a Fythe REPL of some sort, write "c int main() { return 42; } HEY C WORD, THIS IS YOUR CUE TO END 1 +" 00:50:36 (Given that c pushes the return value of the program.) 00:50:42 Gregor: At least that was /my/ point. 00:50:58 elliott: Yeah, that's what I already had :P 00:51:12 elliott: Not an implementation of C in particular, but yeah. 00:51:50 I really, really like log and note 00:52:26 The problem was that the way I defined it made it much easier to do very local compilation ... basically taking each expression independently and treating its arguments as a black box. This produces shittacular code. 00:52:45 Gregor: Shittacular but elegant! 00:52:52 Yes. But shittacular :P 00:52:55 Gregor: Is Fythe JITted? If not: TOTAL OPPORTUNITY MISSED THERE YO 00:53:01 It's JITted. 00:53:01 (Wait, wait, JITting isn't ANSI C PORTABLE.) 00:53:13 The JIT in particular is GNUy :P 00:53:14 Gregor: Please tell me every damn JITting part has a huge ifdef mess to optionally not JIT :P 00:53:25 It has no non-JIT option right now. 00:53:34 GASPETHETTE 00:53:36 (Or probably ever) 00:53:54 The reason I'd do a Fythe-esque VM rather than using Fythe, apart from NIHness, is for hosted implementation of @... 00:54:26 Well, Fythe has its flaws and weirdnesses anyway, it'd be cool to see what somebody who isn't me would write with the same basic premise. 00:54:31 JITting might actually be a downside there insofar as portability would be nice, but OTOH who cares about non-Linux. 00:55:09 Uhhh, non-/Linux/? My JIT works ARM, x86, x86_64, and on Linux, Windows and Mac OS X. 00:55:15 I'm talking about mine. 00:55:23 Wrote it before your line. 00:55:32 Gregor: Sure. It'd not "really" be Fythe, though, because the language would be designed to be possible to write semi-complex pieces of software in without too much of a headache. (After all, @'s super-advanced high-level language's compiler has to be implemented in it.) 00:55:45 OTOH a lot of that could be built up in the language itself. 00:55:55 I thought @ was an OS ... so I don't understand how "non-Linux" fits in since it ... is ... non-Linux ... ? 00:56:13 Oh, HOSTED 00:56:14 Gregor: Like I said, hosted implementation of @. Like a 16-bit OS considers the BIOS, hosted @ considers Linux. 00:56:18 I totes read. 00:56:32 Gregor: This wouldn't be exclusive, just a first step, since hosted "only" OSes are just shitty programs. 00:56:59 (The idea is that 99% of @ code in the long run would be portable, so ostensibly I could just write the low level x86-64 parts in the future and it'd all work. Ostensibly.) 00:57:08 (Drivers and such might get in the way a bit. :p) 00:57:31 "The formal meaning of TC describes abstract systems that are not necessarily physically realisable. If ais523 intended the formal meaning, then "HTML+CSS+infinite starting pattern" is TC, and the fact that this is not realisable is irrelevant. He cannot use "the pattern shown there" or "the example shown" as evidence against TC-ness of the abstract system." 00:58:13 Does this person even posses... a brain... 00:58:38 NEW SOLUTION: I was planning on having a way for Fythe programs to pull arguments off the argument "queue" anyway, and Fythe programs of course have a way of parsing Fythe programs (sort of by definition), so I'll just implement the argument parser as a Fythe program. Solution problemed! ... I mean problem solved! 00:59:06 Gregor: Make it EXTENSIBLE. 00:59:12 Through ILL-DEFINED MEANS. 00:59:30 (Ponies) 00:59:31 Gregor: Like, if I want to, I can swap out any program using a common "get an option" API to use a / prefix rather than --... EVEN IF THAT PREFIX IS EMBEDDED INTO THE GET AN OPTION API 00:59:41 (Although that's easy, by just redefining it wholesale.) 00:59:48 (But it's the cort that thounts.) 00:59:55 (No court would thount.) 01:00:29 -!- oerjan has joined. 01:00:51 oerjan! 01:00:53 did you just wake up? :) 01:00:59 *MWAHAHAHA* 01:01:04 let's call that a yes 01:01:12 ØST SUCCESSFULLY CALIBRATED 01:01:19 lol 01:01:27 oerjan: what you're saying is, you didn't sleep. 01:01:51 ... ASSUMING oerjan isn't being a jerk by being inconsistent, he got up around 1:25 UTC, let's say. 01:01:59 round to 1:30 UTC. 01:02:16 given how this is going, i think i'll keep this as a challenge... 01:02:19 oerjan: what's your "natural" feeling wakeuptime 01:02:25 you know, when your 25 hour thing wraps around properly 01:02:33 ... well this is creepy. 01:02:35 like, 7 am? 9 am? 12 pm? 01:02:37 Gregor: THIS IS IMPORTANT 01:02:51 Gregor: He REFUSES to provide scientific data. 01:03:21 Gregor: How else will I make a website telling the world the current UTC offset of Oerjan Standard Time?!?!?!?!?!??!!!?!?!?!?!?!?!?!??!!?!??!?!?!?!?!!??!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?! 01:03:27 ?!?!?!?!?!?!?!!!!???!!?!?!?!?!?!?!?!?!?!??!?!?!! 01:03:27 Unknown command, try @list 01:03:32 that's it, i'm going to analyse irc logs. 01:07:44 • pikhq_ notes that the Greek did not actually specify "carpenter". It used a more general term for what amounts to a skilled laborer. 01:08:02 NEXT YOU'LL BE TELLING ME THERE WEREN'T THREE WISE KINGS, EITHER 01:08:37 and no virgins anywhere to be seen. 01:09:23 15:09:47 Swedish? 01:09:32 what is this, make ihope look stupid day? 01:09:44 yep! 01:09:47 ok let's see 01:10:25 19:14 -> 19:19 -> 18:58 -> 20:10 -> 23:44 -> gap -> 1:06 -> 2:11 -> 5:41 (?!?!?!) -> 13:50 (?!?!??!) -> 17:00 (?????) -> 15:55 -> 15:45 -> oerjan is fucking with me in the past 01:10:58 i conclude that "Good night" has no relation to (1) whether it is night; (2) whether the quit constitutes a valid ØST recalibration 01:11:01 01:03:37 And essentially all practices of a modern church except communion. 01:11:05 either that, or oerjan is just a dirty filthy liar. 01:11:08 01:04:22 Oh, and baptism of believers. That's actually in there, too. 01:11:34 i distinctly recall reading the protestants cut the sacraments down to those two presumably for that reason. 01:12:15 bah 01:12:16 this data is useless 01:12:20 i think "Good night" usually describes my intent at the moment, at least. 01:12:38 whether i actually manage to go to sleep then, may vary. 01:13:14 ok so I just need to find some samples that /do/ advance properly, and then interpolate from there ;D 01:13:24 Gregor is now edging slowly away from me. 01:14:58 i assume the fact that i even in usual circumstances frequently take a break from irc while awake does not help. 01:16:34 oerjan: that's why i only grepped for "Good night" 01:16:38 I'm a scientist, dammit 01:16:41 O KAY 01:18:44 Baptism of infants is mostly a Catholic thing. 01:18:53 norwegian church does that too... 01:19:46 oerjan: Hence why I said "mostly". 01:20:09 Some Protestant churches *do* keep many Catholic-origin traditions, after all. 01:20:32 I think you may be able to pull it off in 1-bit BF. 01:20:55 no. the cell from which you leave the last loop must have a fixed final value. 01:22:23 (for more context can you swap two tape cells in BF? 01:22:24 ) 01:22:37 indeed. 01:24:08 you can't swap the two registers of a minsky machine 01:24:18 that would seem to be a stronger version of this, yes 01:24:40 indeed, as I mentally swapped (ha!) "two values, infinite tape" and "infinite values, two-long tape" 01:24:44 *with 01:25:27 elliott: which is what i did in my previous underload construction, too 01:27:04 Now, to commit se'hųku properly, you need to be able to write 口 correctly... 01:27:11 And a skilled swordsman to assist you in case you screw up. 01:27:22 those japanese take their calligraphy seriously. 01:28:20 oerjan: Yes, you really, really do write a simple kanji in your stomach to commit seppuku. 01:28:43 ah. 01:29:26 which appropriately means "opening". 01:31:08 Actually it's turned into a huge perversion that has greater resemblance to Lisp except really has no resemblance to either :P 01:31:26 you might want to consult with someone else with a name starting in "gre" 01:38:14 8 math questions, 100 minutes 01:38:16 I can do this 01:38:36 well could, if you could stay off irc. 01:39:38 Have my SGU music playing 01:41:09 oerjan: Gre...enReaper? 01:41:53 -!- iconmaster has quit (Quit: What?! Open source isn't good enough for you? Bersirc 2.2 [ http://www.bersirc.org/ - Open Source IRC ]). 01:43:20 "Laurence "GreenReaper" Parry (born 1982) is the founder of WikiFur, editor-in-chief of Flayrah, and an amateur photographer." 01:43:27 Gregor: WELL IF YOU INSIST... 01:43:57 THAT'S THE ONE 01:44:10 Grelnakov? 01:44:44 Gregor: GOOGLE EXISTENCE FAILURE 01:45:04 Grezhnev? 01:45:57 "Grezhnev, VA (V A) :: [A device for automatic determination, calculation and storage of parameters in cardiointervalography] 01:46:00 " 01:46:41 parameters after my heart 01:47:02 GreekSalad? 01:47:08 no. 01:47:11 Grep? 01:47:16 no. 01:47:32 in fact the first one was closest. 01:47:36 Gremlins? 01:47:37 -!- iconmaster has joined. 01:47:46 just add water. 01:48:45 Oh GreaseMonkey? 01:49:04 i fail to see how these are closer than the first one. 01:49:33 WELL IDONNO 01:49:40 But will continue to guess. 01:50:24 Greuido van Rossum? 01:51:19 how can anyone be Benevolent with a name like Guido, anyway 01:51:27 grep -i '^[^ ]* Greenbeanicle? 01:52:19 Some person who has never been in this channel? :P 01:52:30 i doubt he has been here... 01:52:46 WELL THEN THE GUESSING SEEMS PRETTY HOPELESS 01:53:04 we are talking about someone with expertise in lispy perversions. 01:54:10 -!- iconmaster has quit (Quit: Darn ANSIIIIIIIIIIIIIII). 01:54:24 Oh ... then I'm unlikely to be able to guess :P 01:54:35 you just need to put the right spin on it. 01:57:47 Why would the only sideways letter in Unicode be sideways O ... 01:58:30 *facepalm* 01:58:58 well are you _sure_ they don't have sideways X as well 01:59:05 Dear Wolfram Alpha: FCUK YO 01:59:40 http://www.wolframalpha.com/input/?i=(15+choose+3)(.65^3)((1-.65)^(15-3))+%2B+(15+choose+2)(.65^2)((1-.65)^(15-2))+%2B+(15+choose+1)(.65^1)((1-.65)^(15-1))+%2B+(15+choose+0)(.65^0)((1-.65)^(15-0))+%3D 01:59:48 Why won't you accept it as choose? 02:00:03 Well, that's interesting 02:00:06 It was due to the = 02:00:56 wolfram alpha contains a bug ridden implementation of all of mathematica 02:01:40 -!- poiuy_qwert has joined. 02:02:31 http://www.iwriteiam.nl/Ha_bf_numb.html ah, this is a wonderful page, i forgot. 02:02:42 "Laurence "GreenReaper" Parry (born 1982) is the founder of WikiFur, editor-in-chief of Flayrah, and an amateur photographer." 02:02:43 Gregor: WELL IF YOU INSIST... 02:02:44 Siner :P 02:02:57 :P 02:03:26 oerjan: hmm 02:03:29 oerjan: Grerik Naggum? 02:03:53 oerjan: Grohn McCarthy?!?!??!?!! 02:04:04 oerjan: Graul Praham?! 02:04:39 hm i find it hard to believe a 40 char bf program can't generate a larger number than 1172812402960. 02:04:49 iirc dbc had some short program outputting a very large number in here years ago. 02:05:04 naggum is dead. if Gregor has means of consulting with him, be very careful. 02:05:18 sounds like he's been a busy beaver 02:05:36 bsmntbombdood: ba-dum 02:05:37 TISH 02:05:48 oerjan: HE LIVES ON IN SEXPRESSIONS. 02:09:08 thank you, i'll be here all week 02:10:41 maybe i should point out it's not the first name which starts with gre. 02:10:51 oerjan: Paul Grehem? 02:10:57 so if I got up at 10:45. hmhm 02:11:01 erm. 02:11:03 arithmetic is hard. 02:12:37 35 hours. hey, that is not bad. 02:12:40 Finishe my homework 02:13:15 well, last time it was... about 34 hours. 02:13:28 oerjan: two all-nighters in a row: best way to resynchronise? 02:14:39 elliott: i've had that backfire before 02:14:45 oerjan: howso? 02:14:52 i woke up well-rested today. thankfully. 02:15:05 the whole problem is that i overslept, waking up about an hour and forty-five minutes later than i should have. 02:15:14 and now I've been unable to get myself to bed on time (time = 1 am or so) 02:15:17 (time now is almost 3 am) 02:15:23 by oversleeping enough to flip right back again... 02:15:38 oerjan: indeed, but thankfully i already did my oversleeping 02:15:41 which is why i haven't been tired today 02:15:49 oerjan: plus, i'll likely only last until about 9 pm. 02:15:52 oerjan: or 10 pm. 02:15:53 I had a short program generating Fibonacci numbers. But that page is talking about putting large numbers in a cell, which is unportable and slow and totally the wrong way to do things anyway. 02:15:56 oerjan: so oversleeping is a /benefit/ 02:16:08 oerjan: otherwise i'd wake up at 5 am :) 02:16:27 12 hours of sleep puts me awake at 9 am, a perfectly cromulent time to get up. 02:16:48 dbc: hmm, I'm sure you had a program to do that in the logs. 02:16:54 anyway, the unportable/slowness is irrelevant. 02:16:57 the point is purely theoretical :) 02:17:05 it's basically busy beaver problem 02:17:25 since it takes cycles to generate a number, etc. 02:18:43 oerjan: also i might go out and walk about a bit in the daytime to keep me awake. (i'm more sane than to go on your pattern of "GO FOR A BRISK WALK IN THE COLDEST SEASON OF A VERY COLD COUNTRY AT THE COLDEST, DARKEST TIME OF NIGHT") 02:19:36 05:34:07 I'm in Keswick (pronounced Kezik for some reason). Bye :-P 02:19:36 THE REASON FOR ITS PRONUNCIATION IS A CLOSELY-GUARDED BRITISH SECRET. 02:21:58 obviously it was at one time conquered by a stray turkish battalion, and you are trying to hide the embarassment 02:23:16 *+r 02:24:42 Okay, I just spent a minute or so dinking with the problem afresh, without too much luck. I'll see if it's in my logfiles on this computer now. 02:26:47 Read as "drinking"; alcohol is a great way to get BF inspiration. 02:26:55 Not recent enough. 02:27:27 I could grep, but I would have trouble finding a decent regexp. 02:27:45 18:55:14 Did anyone do anything with your busy beaver task? 02:27:46 18:55:26 * immibis wonders what ihope__ and dbc are talking about 02:27:46 18:55:34 * immibis reads the irc log 02:27:46 18:55:46 * immibis sees that you are running a BF factorial program. 02:27:49 Well, that seems plausible. 02:28:17 04:43:56 !bf >>>++++++++++++++++++++++++++++++++++++++++<<<++++[>++++++++++[>++++++++++[>.<-]<-]<-] 02:28:18 04:44:00 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 02:28:19 There's that. :p 02:29:27 oerjan: If I'm yawning now things are going well, right? 02:29:42 ...maybe 02:29:58 oerjan: it's 3 am. SO gonna go outside at the crack of dawn* 02:30:00 *post-crack. 02:30:04 *like, really post crack. 02:30:12 That last one is clearly not it. 02:30:16 clearly writing this forth os will sharpen my mind. 02:30:22 dbc: Well yeah, but it's a BF program! 02:30:30 Uh huh. 02:31:00 hmm, with a bignum tape, you can do 2^x for any x with constant overhead, right? 02:31:02 i think that just calculates 4*10*10 02:31:35 so it stands to reason that M(l+k) >= 2^M(l), where M(l) is the largest integer a halting BF program of length l can leave on a bignum tape. 02:31:41 for constant k 02:32:00 2^x (or 3^x or whatever) using x commands plus constant overhead, yes. 02:32:38 elliott: um that page you linked clearly explains how to do powers 02:32:42 Or less if x is biggish. 02:32:45 dbc: Using x commands? Ah, well, right. No, what I meant was that if you have a program of length l that calculates n, 02:32:51 then you just append the 2^ code, and get 2^n. 02:32:57 So it does not even have to be a straight run of +s. 02:33:04 It could be a more compact method of generating a large number. 02:33:06 oerjan: oh did it :D 02:33:15 there is also http://www.iwriteiam.nl/D0904.html#15 02:33:42 in fact the Brainfuck constants page contains several examples of the method. 02:35:07 Meanwhile, [on googlefight] 23:37:25 whoever's repeatedly doing god vs s***n can piss off 02:35:14 Poor Stan. 02:35:19 Wait, that's two letters. 02:35:25 Poor... Santn. 02:35:32 simon. clearly. 02:35:33 Poor span. 02:35:36 oerjan: Of course. 02:35:44 23:38:28 http://www.googlefight.com/index.php?lang=en_GB&word1=jesus+porn&word2=furry+porn 02:35:45 23:38:36 That is ... frightening. 02:35:48 i mean without garfunkel to protect him. 02:36:06 Garfunkel obviously IS god. 02:36:10 it stands to reason. 02:36:19 hard to reason sitting down 02:36:55 oerjan: So did the Garfield [WORD THAT SOUNDS LIKE MINUS] Garfield thing finally die? 02:37:06 ah, "Garfield Skynet Garfield: Judgment Day" really did end them :D 02:37:23 Something like [[>]+[<]>-]>>[<[>++<-]>>] is reasonably concise, though imprecise. 02:37:24 elliott: i recall dmm saying something about taking a break at least. 02:37:37 Imprecise? 02:39:04 http://www.mezzacotta.net/garfield/comics/0629.png this is nice 02:39:09 It doesn't produce powers. It produces big power-y numbers. 02:40:41 A New Kind of Powers. 02:42:52 -> 02:51:08 http://www.mezzacotta.net/garfield/?comic=652 02:52:50 http://www.mezzacotta.net/garfield/comics/0655.png 03:04:47 -!- shachaf has quit (Remote host closed the connection). 03:09:00 12:09:16 Anything I do that's related to the silly prototype phone is probably automagically under the NDA I signed when starting there. 03:09:00 Was the phone a BOMB? 03:09:04 It's plausible. 03:18:15 He can neither confirm nor deny it. 03:20:40 11:20:10 ```si`k``si`k``sii``s``s`kski 03:20:40 11:21:06 I think that's the Church numeral for Steinhaus's Mega. 03:20:40 11:30:14 And ```si`k``si`k``si`k``sii``s``s`kski is much, much bigger... 03:20:40 12:15:32 Now here's a nice sequence: !1 = 2, !2 = 8, !3 = 402653184*2^402653184. 03:23:20 What is prefix-!? 03:28:32 -!- shachaf has joined. 03:33:23 pikhq_: WHO KNOWS 03:36:11 elliott: was it you who were trying to say something to me somewhere past my scrollback? 03:37:25 olsner: prolly 03:37:28 05:44:13 done; http://koti.mbnet.fi/yiap/stuff/selfmd5.py 03:37:29 05:45:32 it's md5 (and output) is (or at least should be) b1f532d69db9c1366389ff855da9ae04 03:37:30 wuut 03:37:49 well hexdigest of that string isn't same :P 03:37:53 *the same. 03:46:07 -!- pikhq_ has quit (Ping timeout: 250 seconds). 03:46:09 -!- pikhq has joined. 03:46:16 -!- RodgerTheGreat has joined. 03:46:40 hey dudes 03:48:22 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:54:01 -!- variable has quit (Quit: /dev/io failed). 03:55:52 "I thought 4.3 billion potential addresses would be adequate for conducting the experiments to prove the technology. If it worked, then we could go back and design the production version. Of course, it is now 2011, and the experiment never exactly ended." :D 03:56:09 nice 03:56:45 * elliott watches no red pandas do absolutely nothing -- live 03:56:48 I still contend that the ugliness of IPv6 addresses is a major stumbling block to adoption over v4 03:56:53 The wonders. Of the internet. 03:57:02 RodgerTheGreat: DNS was invented decades ago to solve the ugliness of IP addresses. 03:57:15 (he says, while hosting logs at "208.78.103.223") 03:57:45 see also LANs and a million other places where people like us work with IPs 03:58:07 RodgerTheGreat: Anyway, considering that IANA is completely devoid of IPv4 addresses (apart from strongly reserved ->IPv6 transitional blocks), and the RIRs are running out fast, quibbles like that really don't matter any more. :) 03:58:08 at the end of the day we'll have to look at the damn things 03:58:15 In that if IPv6 isn't adopted, there just is no internet. 03:58:22 RodgerTheGreat: If they are internal addresses, you can assign them how you want with IPv4... 03:58:45 IPv4 isn't going to "go away" any time in the next trillion years, it'll just be relatively useless externally in the long term. 03:59:04 I'm not saying IPv6 isn't going to be adopted, I'm saying it kinda sucks and represents a missed opportunity/misstep 03:59:15 Well. Zooko's triangle. 03:59:17 we need more space- this is obvious and inescapable 03:59:28 Secure, decentralised, human-meaningful: pick two. 03:59:32 IP addresses *must* be decentralised. 03:59:39 IP addresses *must* be secure (in that you can't just pick the same IP as someone else). 03:59:44 Therefore they cannot be human meaningful. 03:59:55 That needs to be handled at a separate layer, i.e. DNS. 04:00:05 BTW, there's no reason you can't assign internal hostnames either, at the router level. 04:00:45 tacking on another couple of .FF suffixes would've solved the problem without making them nasty to parse and look at 04:01:05 -!- augur has joined. 04:01:06 "Couple"? 32-bit vs. 128-bit :P 04:01:50 Clearly we all need to use the @DN instead. 04:01:55 Until then, IPv6 is perfectly cromulent. 04:04:36 -!- azaq23 has quit (Ping timeout: 246 seconds). 04:05:06 in other news I have built a partial implementation of itertools for forth: http://pastebin.com/kMsZRR8U 04:06:35 Wow... it'll offend both Forthers and Pythonistas (hate that term) alike. 04:06:42 Impressive :P 04:07:04 It's been a good day 04:07:14 It looks a bit un-factored, especially range/sequence/slice/filter/chain/zip having very similar structure to my eyes. But fun. 04:07:20 yeah 04:07:22 A pain to manage the memory manually though. 04:07:34 Also I think standard convention is to put the ; on the last line, but who cares... 04:07:50 well, I haven't implemented repeat and cycle, so I don't have to do dynamic allocation 04:08:15 So map destroys the original iterator? 04:08:24 more like consumes 04:08:53 In HASKELL, generators/iterators are exactly equivalent to lists. >:) 04:09:06 I am currently using defining words that build anonymous words to function as closures 04:09:27 ("newtype Generator a = Gen (Maybe (a, Generator a))" is directly algebraically transformable into the list type.) 04:09:29 yeah, well in Forth I know what actually happens when I use generators 04:09:41 in haskell your guess is as good as mine 04:09:43 I know what happens in Haskell, too. :p 04:09:50 But that's because I know the language and stuff. 04:09:54 elliott: and in PYTHON, generators are merely retarded >:) 04:10:10 olsner: Whaddya do when you have a limited set of control structures and they all suck. 04:11:05 in my language none of the control structures are primitive 04:11:30 Hey, nor in Haskell. :p 04:11:30 suck it, monolithic compilers 04:11:37 Heck, I've actually directly implemented Haskell-like lists in C. 04:11:42 ... A few different times. 04:11:55 (Well... "if x then y else z" is, but that's a wart; you can just as easily rewrite that as a function (though without the then/else, but those are warts in themselves)) 04:15:30 elliott: case 04:15:46 oerjan: well, right. but. 04:16:06 oerjan: if your language has no way to distinguish any two values, then you're not going to be able to implement every other control structure :D 04:16:17 (you could do it Church style in Haskell I guess, buuuut...) 04:16:17 forth could conceivably be extended to act like haskell. Dunno why anyone would want to do that, though. 04:16:24 RodgerTheGreat: To get a high-level language? 04:16:41 Indeed, Forth is both low-level and highly flexible. 04:16:54 Pretty much any bending/breaking of the language is permissible. 04:17:02 I like Forth, but I'd rather write a large program in Haskell than Forth by far. 04:17:12 It's just about levels of expression and abstraction. 04:17:23 At a certain point in Forth, to go further you have to write your own interpreter loop. 04:17:31 And at that point you can't reasonably claim you're programming in Forth any more. 04:17:50 forth is somewhat hampered by the general "anti-library" culture 04:18:19 RodgerTheGreat: Well... it excels in writing self-contained systems. 04:18:22 So that's hardly surprising. 04:18:26 (Embedded work is a subset of this.) 04:18:50 "It's 2011, and my IDE still doesn't have a REPL!" ;; the title of a blog post written by somebody using the wrong IDE. 04:19:32 part of this is because the language is only half of "forth". The other half is an engineering approach that is about agressive simplification. If you don't have a closed system, unnecessary complexity from the outside world will leak in and make your forth uglier and more complex 04:19:53 Sure... which is a direct argument *against* libraries. 04:20:12 That kind of thing works for many tasks, but Forth tends to fall apart when it comes into contact with large *inherent* complexity. 04:20:36 Like I said, you can do it, but you end up writing an ad-hoc, probably buggy and flawed language, and then writing your actual program in that language. 04:20:37 moore would claim no system has inherent complexity 04:20:50 Moore would hate MPEG. 04:20:53 he probably wouldn't write a web browser either 04:21:00 I don't think he would. I don't know Moore as a person who says things that are blatantly wrong. 04:21:13 RodgerTheGreat: Uh, actually, he did this talk on colorForth where he suggested someone write a web browser. 04:21:37 but his argument isn't completely flawed. Browsers could be much, much simpler than they are 04:21:41 The web is of course totally accidental/engineered overcomplexity. But not everything fits directly into Forth as cleanly as it might in another language. 04:21:58 Oh, I hate the web, who doesn't? It's incredibly badly architectured. 04:22:21 I'm imagining he'd like something more like wget with a graphics package 04:22:35 wget? That involves all the complexity of TCP. 04:22:37 Erm. 04:22:39 wget? That involves all the complexity of HTTP. 04:22:45 I meant in terms of interfaces 04:22:55 "here is a word that fetches a page" 04:23:03 I'd imagine he'd just load arbitrary Forth programs off the wire... I'm not sure he'd add any security to it either : 04:23:04 *:) 04:23:09 bingo 04:23:21 ...which is a worse design than the web, but at least a simpler one. 04:23:36 It can be critiqued in a few lines, rather than the book it'd take to dissect the web. 04:24:02 if you sandboxed it you could make that approach work 04:24:19 Right. Then the problem is transferring stuff out (but it wouldn't be too hard). 04:24:24 and given how easy forth-in-forth can be it wouldn't be that ridiculous to implement 04:24:31 RodgerTheGreat: Unfortunately a sandbox would take quite a bit of work in Forth, since words usually touch the hardware very directly. 04:24:34 I don't think it would be elegant. 04:24:40 mm 04:24:50 well think about it 04:25:09 Perhaps the worst bit of that design is that it would be very hard to design pages *well* in such a scheme. 04:25:12 if you don't care about speed it comes down to a handful of "dangerous" primitives like ! @ and execute 04:25:17 Much like HTML, to be honest. 04:25:24 RodgerTheGreat: and p@ and p! (in cforth) 04:25:26 and uh 04:25:32 c@ c! 04:25:32 probably dozens of others that access memory without asking :) 04:25:36 implicitly, that is 04:25:45 Though at least you wouldn't be spending your time working around straight-up misfeatures. 04:25:49 there are really only a handful that can't be implemented in terms of others 04:25:52 And bugs. 04:25:56 Lots of those. 04:26:09 RodgerTheGreat: So now you've complicated the problem of an information system into a Forth implementation. 04:26:14 and again, if speed is not a consideration you can build a huge percentage of a forth system in high-level forth 04:26:20 Imagine implementation incompatibilities in *that* :) 04:26:27 RodgerTheGreat: Sure, but then you're not taking advantage of Forth really. 04:26:30 You can implement Forth in anything. 04:26:36 RodgerTheGreat: Why yes, you can write a Lisp in anything. 04:26:39 :) 04:26:50 My Pet Solution to the web is simply distributed object retrieval. 04:26:55 (Where object is _not_ used in the OOP sense.) 04:27:09 (Well... slightly. But >90% of OOP is bunk.) 04:27:18 if it's a mirror of how the underlying system works, it isn't a significant increase in the complexity of the whole, which is really what I see as the issue 04:27:21 -!- copumpkin has joined. 04:27:53 One thing is that systems like Haskell seem complex and inscrutable *only* because we approach them from a background biased against them; take a look at your x86. 04:27:56 It's a C processor. 04:28:04 OOP isn't necessary for programming per se. OOP is useful for sawing up tasks and distributing them across multiple programmers. It's a teamwork methodology. 04:28:13 Consider if we all had Reducerons, a CPU with no instruction set: http://www.cs.york.ac.uk/fp/reduceron/ 04:28:19 It's a symbolic graph reducer on a chip. 04:28:26 From that, Haskell would seem a billion times more natural than Forth or C 04:28:27 *C. 04:28:40 So simplicity can often be a misleading concept, because it's relative. 04:28:55 OOP isn't necessary for programming per se. OOP is useful for sawing up tasks and distributing them across multiple programmers. It's a teamwork methodology. 04:29:03 I could believe this if people did not include inheritance in OOP. 04:29:19 elliott: I certainly don't call inheritance mandatory for OOP. 04:29:21 separation of concerns 04:29:23 No. 04:29:26 But people use inheritance in OOP. 04:29:31 Ah, true. 04:29:33 And inheritance breaks APIs. 04:29:41 Which can often cause pain and agony and sorrow. 04:29:50 Any time composition can't do something and inheritance can, that is because of a design flaw somewhere. 04:29:59 in the same sense that "integers break APIs" 04:30:01 And inheritance impedes distributed teamwork with its intense coupling of code. 04:30:03 RodgerTheGreat: Uh, no. 04:30:13 Inheritance is a tool to break an object's interface. 04:30:20 if you apply the tool improperly you will bleed 04:30:31 RodgerTheGreat: What can inheritance do that composition can't, that does not arise from a design flaw? 04:30:54 Anyway, re tool-improperly-you-will-bleed: by that argument, assembly is perfectly OK for teamwork. 04:31:09 The fact that it has a huge possibility for error and messing beyond API boundaries -- hey, apply improperly and you'll bleed. 04:31:46 inheritance and composition are of equivalent expressive power. Lemme go fire up my turing machine. 04:32:38 RodgerTheGreat: No. Because a subclass of class A can be used as an A, despite the fact that its implementation may break the Liskov substitution principle. (And this can be VERY tricky to get right, even if it does not seem so). (Note: Eiffel avoids this. Most people do not use Eiffel.) 04:32:51 Also, in many languages subclasses can access data that the rest of the world can't... which is just *wrong wrong wrong*. 04:33:15 I will parenthetically note that C++ is OOP in name only 04:34:03 Paraphrase of Alan Kay: "I invented the term OOP, and I can tell you, I didn't have C++ in mind. [laughter] Not Smalltalk, either. 04:34:12 (This is usually quoted without that last sentence; one may speculate freely on the reasons why.) 04:34:28 (I would paste the real quote but it is impossible to find; Google only yields the incomplete versions.) 04:34:31 *either." 04:39:33 optbot! 04:39:33 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | it's done, the only thing it doesn't do is annotate a paste. 04:39:36 optbot! 04:39:36 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | ;P. 04:39:37 optbot! 04:39:38 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | heh. 04:39:39 optbot! 04:39:39 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | + Nick change: AntiGarlicMonste -> ais523. 04:39:41 optbot! 04:39:41 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | its hard to see the fractals :(. 04:40:40 ^echo optbot 04:40:40 optbot optbot 04:40:40 elliott: what pikhq said 04:40:40 fungot: System to take template file and packages and build bit-exact ISO from those. 04:40:44 aww, no longer works. 04:40:52 hm 04:41:18 -!- pikhq_ has joined. 04:41:31 -!- pikhq has quit (Ping timeout: 250 seconds). 04:41:41 pikhq_: dude, you really need to do something about your net connection 04:41:47 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 04:41:53 it goes into SPACE. 04:41:57 well, ok, it used to. 04:41:59 now it just buffers. 04:42:16 It's my stepdad's new router. It sucks ass. And he thinks he's better at tech than I. And is paranoid. 04:42:22 So I can't do anything about it at all. 04:42:35 I thought you were in college now 04:42:46 I live at home, for I am cheap. 04:42:53 oh good lord 04:42:57 It's my stepdad's new router. It sucks ass. And he thinks he's better at tech than I. And is paranoid. 04:42:59 almost as bad as sgeo's! 04:43:58 in my opinion living at home to save money is a rather egregious false economy. 04:44:05 case in point 04:44:20 RodgerTheGreat: Only if you can get decent work. 04:44:26 I'm looking at you, America. 04:44:40 The money to move out isn't going to come out of thin air. And employment is hard to find ATM. 04:44:46 colleges *love* to pay students to do things 04:45:02 especially if you have enough brain cells to rub together for undergrad research 04:45:24 Community college, because I can't bloody well afford to do otherwise. 04:45:35 mm 04:45:49 "Well, at least I'm not going to Sgeo's." 04:46:17 elliott: Not even joking, an associate's from here would be worth more than a bachelor's from there. 04:46:35 IT REQUIRES MORE BUSINESS CLASSES THAN MATH CLASSES FOR GOD'S SAKE 04:46:41 Or a Ph.D. from there. God, they'll actually do Ph.D.s, won't they. 04:46:46 I'm going to go cry now. 04:57:50 -!- azaq23 has joined. 05:21:50 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | very fine... just got back from holidays.. 05:22:19 optbot: so where did you have your holiday? 05:22:19 oerjan: computer records. 05:22:26 ...i see. 05:28:39 -!- asiekierka has joined. 05:51:30 -!- augur has quit (Remote host closed the connection). 05:55:56 -!- augur has joined. 06:04:41 -!- augur has quit (Remote host closed the connection). 06:14:06 -!- asiekierka has quit (Remote host closed the connection). 06:16:11 http://imgur.com/V9aab 06:16:35 -!- asiekierka has joined. 06:17:24 what the hell 06:21:34 ? 06:23:01 that screenshot 06:23:18 I am constantly baffled at the things people post online 06:23:24 Oh, cheater spoke. 06:23:41 RodgerTheGreat: it's not about online. it's just that you only see it because it's online 06:24:07 unless people regularly tell you about people 6 degrees separated from you and how they talked to this idiotic person they know 06:24:09 thus "the things people post online" 06:24:18 I know people are ignorant and prejudiced 06:24:26 :) 06:24:41 the more ignorant and prejudiced, the less realising of that they are. 06:24:43 it surprises me that people say stuff like that in a public forum 06:25:09 it seems obvious that they thought their original point was totally unobjectionable, and then just tried to save face badly when their social peers reacted badly 06:25:11 but you're right, it shouldn't really be that hard to believe 06:25:33 I'd like to live in a world where such things _do_ elicit legitimate incredulity. 06:26:38 I'm worried about the 5 "likes". 06:27:04 Ehh, I'm sure "like" is applied to things people hate but lol at. 06:27:09 Badly named. 06:27:18 Depends on the liker, probably 06:27:19 (Someone else can confirm/deny this, I don't use facebook.) 06:27:20 There needs to be a "Fuck you" button. 06:28:05 Thought: emacs : unix :: facebook : the internet. 06:28:13 "Emacs is a great OS, but I prefer Unix." 06:28:52 06:05:03 optbot: so where did you have your holiday? 06:28:52 elliott: making this is so hard :D 06:28:52 06:05:03 oerjan: computer records. 06:28:52 06:05:10 ...i see. 06:28:52 elliott: http://www.esolangs.org/wiki/Defcalc 06:28:54 oerjan: brilliant. 06:29:03 oerjan: it traversed into another data structure :) 06:29:40 oh, the horror when people start thinking facebook "is" the internet like they think google is 06:29:47 or maybe they already have 06:30:16 olsner: Maybe they have. Let's put it this way: facebook has all but *replaced* the Internet for some people. 06:30:22 It literally does everything but packet switching. 06:30:26 And this is fucking scary. 06:31:01 (Email? Yep. IM? Yep. Usenet...sorta? Yep. Social networking? Yep. Casual games? Yep. ...) 06:34:16 How very depressing. 06:34:29 And yet I find myself spending maybe 10 minutes on Facebook a day. 06:34:51 Only really got one to shut people up. 06:35:21 Okay, well, I suppose I'm *logged in* 24/7. Logged in via Jabber and all that. :P 06:35:50 I had one, but never ever ever used it, and then one day I noticed that occasionally people actually noticed it existed, so I deleted it. 06:36:05 AFAICT this doesn't bother anyone because I'm boring anyway. 06:36:14 Man. The Simpsons has been running for *21 freaking seasons*. 06:36:36 ... And is almost exactly as old as I am. 06:37:17 And almost as unfunny HAHAAHAHHAAHHAHAHAHAHAhem. 06:37:36 elliott: For the first, oh, 9 seasons, it was brilliant. 06:37:41 I know. 06:37:47 Thus present tense. 06:38:28 we must conclude that pikhq_ was hilarious as a child. 06:38:46 HAHAHAHAHA 06:38:50 But of COURSE 06:38:56 Correlation! 06:38:57 (picking on innocents//=my favourite pasttime) 06:39:00 \o/ 06:39:00 | 06:39:01 >\ 06:39:03 wareya: IT'S CAUSATION! 06:39:24 ... If The Simpsons ends, do I die? 06:39:24 -!- augur has joined. 06:39:35 Yes. 06:39:44 pikhq_: it shall be the end of you 06:39:47 Well, slightly offset. 06:39:52 -!- augur has quit (Remote host closed the connection). 06:39:53 It is, after all, not EXACTLY as old as you. 06:39:57 -!- augur has joined. 06:40:02 pikhq_: BETTER GIVE MONEY TO RUPERT MURDOCH. 06:40:26 So, if I can just make The Simpsons about as likely to end as, say, Superman comics, I'll be immortal? 06:40:31 hm death, or money to murdoch. decisions, decisions. 06:40:43 death to murdoch? 06:41:06 olsner, always with his win-win options. 06:41:47 Step one will have to be death to Murdoch. If The Simpsons gets genuinely popular again, rather than carrying on on inertia, then it's fucked with Murdoch at the helm. 06:42:20 pikhq_: note that as the Simpsons gets shittier, so will you. 06:42:21 'night all 06:42:38 -!- RodgerTheGreat has quit (Quit: RodgerTheGreat). 06:42:38 if "The Simpsons" gets televised weekly and it's just a pile of sludge steaming for half an hour... that's what you will be. 06:42:57 elliott: Which, again, is why I must bring death to Murdoch. 06:43:06 pikhq_: note that matt groening is still mortal. 06:43:19 Fuck. 06:43:38 Okay, then I'll have to make Groening immortal somehow. 06:43:41 pikhq_: (his life depends on, believe it or not, Family Guy.) 06:43:48 Not worth it. 06:43:49 you must do a great many terrible things to stay alive. 06:43:50 :D 06:44:17 pikhq_: and Seth MacFarlane depends on goatse. 06:44:17 \ 06:44:29 Dammit, Seth MacFarlane is immortal! 06:44:35 wait i'm pretty sure matt groening is older than family guy 06:44:42 oerjan: offsets. 06:44:55 matt groening will die [the difference] before family guy ends. 06:45:09 Which would also suggest Family Guy will never end, so Groening is immortal. 06:45:28 pikhq_: 06:45:33 elliott: Memes do not die. 06:45:33 That is not dead which can eternal lie, 06:45:42 And with strange aeons, even Seth MacFarlane can get sick of the sound of his own voice. 06:45:45 Did someone say memes? 06:45:53 that guy who was born the same day as mickey mouse truly has it made. 06:45:55 LMAO 06:46:18 oerjan: Oh, dear God, he will probably outlast the heat death of the Universe. 06:46:28 indeed 06:46:28 after all atoms end 06:46:31 there will only be mickey mouse. 06:46:35 staring. in the void. 06:46:36 watching. 06:46:37 06:46:38 waiting. 06:46:45 ...for his copyright to expire 06:46:50 until his copyright _finally_ expi...dammit 06:47:08 And then he said, let there be light. And there was light, and he saw that it was good. 06:47:17 oerjan: :D 06:47:18 i guess it's not the first time we've done that meme 06:47:37 After all, Mickey Mouse will need humans around to extend copyright. 06:47:40 pikhq_: I approve of this Mickeymouseology. 06:51:17 I'll become a mickeymousetian if you set up the mickeymousefunhouse. 06:52:20 That sounds slightly paedophilic. 06:52:58 Saint Pedobear approves. 06:53:34 ok, i need to figure out how to enable bochs' debugger. this is ridiculous. 06:53:48 Sanctus Paedobarius 06:54:33 SANCTVS PAEDOBARIVS, you mean. 06:54:49 pikhq_: i don't think church latin is that capital intensive 06:54:53 * pikhq_ disbelieves in lower-case Latin 06:55:19 oerjan: I care not. 06:55:27 Church Latin is blasphemy. 06:55:45 so is molestation, doesn't stop 'em! 06:56:09 POSSUM VIDERE OMNIA 06:56:12 i'm not sure the bible outlaws molestation anywhere 06:56:14 I have the formation of the last word wrong 06:56:15 I'm sure 06:56:19 oerjan: oh. it's ok then! 06:56:30 oerjan: It outlaws sexual activity outside of marriage. 06:56:39 hm true 06:56:41 I passed latin 1 with a 60. That's how good at it I was. 06:56:52 Marriage at birth is entirely permissible, however. 06:56:55 as long as it wasn't latin 60 with a 1 06:57:02 Heheh 06:57:25 Also, the Catholic church mandates celibacy in its clergy. 06:57:26 (void in regions where lower characters are better) 06:57:33 *grades 06:58:51 wareya: i think OMNIA is perfectly appropriate plural neuter accusative 06:59:15 whether that is the form you intended, i cannot say 06:59:42 Seems good I guess 06:59:49 Also, POSSVM. 06:59:51 There is no U. 06:59:55 There is only V. 07:00:02 pikhq_: I learned church latin :< 07:00:12 BLASPHEMER 07:00:20 that's not canonical! 07:00:21 get it 07:00:25 Hahaha 07:00:29 yes, elliott. 07:00:33 wareya: That's about as valid as learning txt nglsh. 07:00:38 oerjan: that's good. it's funny!1 07:00:40 *funny!! 07:00:54 http://www.mezzacotta.net/ads/finland.png 07:00:55 ELEVEN 07:01:00 * pikhq_ especially "loves" the bit where they pronounce Latin using Italian pronunciation rules. 07:01:24 (relevant fodder for oerjan) 07:02:27 ï hävë nö ïdëä whät ÿöü ärë tälkïng äböüt 07:03:45 Ï ẗöö ẅöüld lïkë ẗö knöẅ ẗḧäẗ. 07:05:34 gah, bochs is the worst. 07:06:58 -!- asiekierka has quit (Ping timeout: 260 seconds). 07:08:56 * elliott compiles bochs 07:09:02 which is the worst. 07:09:28 how so? 07:17:34 -!- asiekierka has joined. 07:26:40 APNIC Depletion predicted 3rd June (Huston). I recall when 3rd June was predicted APNIC deplation date. 07:26:47 *IANA depletion date. 07:32:18 -!- azaq23 has quit (Ping timeout: 240 seconds). 07:34:54 how so? 07:35:12 -!- azaq23 has joined. 07:35:13 olsner: its built in debugger flags syntax error with no info on almost any input, and the inputs that do work don't give me anything helpful like, say, the line _my_ code executed, not the bios 07:35:25 (the stack trace was just a bunch of seemingly-random hexs, not related to my program locations.) 07:35:39 also even though i specify -q it still brings up a menu when it starts :) 07:36:59 yes, it's very very simple, the debugger 07:37:06 -!- azaq23 has quit (Client Quit). 07:37:13 simple in the retarded sense, I guess 07:38:04 I still find it more useful than no debugger, and I've decided not to complain about crappy debuggers but be happy about the luxury of a debugger even existing 07:40:06 olsner: I would, except I literally can't figure out how to do the simplest task 07:40:28 hmm, i miss perlnomic :( 07:40:42 hmm, that could just be you being stupid though 07:41:01 olsner: quite possibly 07:53:07 ... *What the hell George Lucas*. 07:53:20 Y'know the cantina scene in "A New Hope"? 07:53:29 That genre of music, in-universe, is called "jizz". 07:53:37 I am *not* fucking kidding. 07:54:11 next time you see it, think of it as George Lucas jizzing in your living room 07:58:52 pikhq_: yeah :D 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:34 And it's *still* less embarrassing than the Holiday Special. 08:03:15 Y'know it's bad when it makes its actors start doing crack. 08:03:33 Erm, cocaine. Not crack cocaine. 08:07:01 -!- Phantom_Hoover has joined. 08:07:24 hello Phantom_Hoover, i've not slept again, prepare for criticism 08:07:59 * Phantom_Hoover dives for cover 08:28:17 -!- wareya_ has joined. 08:30:48 -!- wareya has quit (Ping timeout: 246 seconds). 08:34:36 Database terminology is so colorful: "If the primary server fails and then immediately restarts, you must have a mechanism for informing it that it is no longer the primary. This is sometimes known as STONITH (Shoot the Other Node In The Head), which is necessary to avoid situations where both systems think they are the primary, which will lead to confusion and ultimately data loss." 08:38:16 :D 08:39:19 gah 08:39:25 do tracks/sectors/heads start from 0 or 1 08:39:28 in int13h 08:39:30 (olsner :P) 08:44:34 -!- azaq23 has joined. 08:45:56 I think the cylinder and head values are 0-based, but the sector count starts from 1. 08:46:12 The table at http://en.wikipedia.org/wiki/Logical_Block_Addressing#CHS_conversion seems to agree. 08:48:05 fizzie: THAT'S LOGICAL! 08:48:31 yay, it works now :) 08:49:29 Well, you *could* use the LBA version -- http://www.ctyme.com/intr/rb-0708.htm -- though constructing that data structure for the address would probably cost more bytes. 08:49:38 What do you need disk reading for? 08:50:33 fizzie: Boot sectory. 08:50:47 fizzie: I just want something that loads some kilobytes of kernel and jumps to it. It seems to be working. 08:50:55 (Decided the best break from a Forth bootsector is a Forth OS.) 08:51:09 It even makes a nice little | / - \ spinner while it loads, too! 08:51:18 And on real hardware you might even see that for half a second! 08:51:35 Got tired of sticking everything into 510 bytes, I see. 08:52:30 fizzie: it can be... frustrating 08:52:55 45 0000003D 64C70600007C0F mov word [fs:0], vgachar('|') 08:53:00 That instruction; it is uncomfortably long. 08:54:25 * elliott turns on a20 using the bios, because does anything NOT support that? 08:54:52 Segment override prefix (64h), opcode (C7h), modrm byte for operand (06h), 16-bit offset (0000h) and data (7C0Fh)... they do add up. 08:55:53 If you happened to have bx or si or di 0 at that point, "mov word [fs:di], ..." would be shorter. But I guess they most likely hold real values. 08:57:15 On MIPS you could use r0, the best register of them all. (It's hardwired to have the value 0.) 08:58:49 -!- asiekierka has quit (Ping timeout: 250 seconds). 09:00:24 -!- MigoMipo has joined. 09:00:46 IIRC the assembler pseudo-op "li r8, 0x1234" is internally encoded as "ori r8, r0, 0x1234" or some such. 09:01:05 If you happened to have bx or si or di 0 at that point, "mov word [fs:di], ..." would be shorter. But I guess they most likely hold real values. 09:01:17 I think si/di are free, it's just a boot sector. But it's tiny, so I don't really care that much :P 09:01:25 r0, impressive. 09:01:31 Can we get a register for every word? 09:21:07 elliott: do you know japanese yet 09:21:25 oklopol: no, been a bit busy not sleeping and such, i plan to figure out how to operate amazon with no cognition today 09:21:37 i suppose that would let me purchase book things that could be helpful 09:21:38 -!- elliott has left (?). 09:21:40 -!- elliott has joined. 09:21:45 why do keys do things when you press them 09:21:47 :so confusing: 09:22:04 everything always is 09:23:58 so what are the things, oklopol. 09:28:05 -!- oerjan has quit (Quit: Reboot). 09:32:15 -!- asiekierka has joined. 09:32:29 no things atm 09:32:39 except learning japanese, and reading a paper 09:32:46 very slowly 09:32:48 and sleeping a lot 09:32:57 general lazinessness 09:33:10 i have an exam on monday tho so will have to work a few hours at some point 09:34:29 and U? 09:34:37 erm oh right this channel exists? 09:34:42 yes 09:34:46 i'm like 09:34:48 sitting here 09:34:49 and i'm asking you what the things is 09:34:53 i haven't had much sleep. in fact, any 09:34:55 not sure if you knew. 09:34:57 12:45:10 Out of curiosity, what should happen if a Funge-98 IP were to hit the > on the line ";>#;"? (Quotes not part of the line, obviously.) 09:34:58 ooh a puzl. 09:35:18 now does # skip over ; or not, lemme check funge 09:35:30 no. 09:35:31 it does not. 09:35:36 ok so the > goes onto the # 09:35:39 then that goes on to the ; 09:35:41 which wraps around to the ; 09:35:45 and it all repeats again 09:35:48 fizzie: FUCKIN' NOTHIN' 09:35:53 a whole lotta nothing 09:35:53 # is what? 09:36:03 oklopol: ip <- ip + delta 09:36:07 *pos I guess 09:36:11 oklopol: _not_ explicitly wrapping 09:36:20 if you have "a#" on a line, it goes to a, because # moves to the space to the right of it 09:36:22 and _that_ wraps 09:36:49 oh wait 09:36:52 ;>#; 09:36:56 the # moves us into the _space_ 09:36:58 so we hit the first one 09:37:02 then the second one 09:37:04 then the 09:37:04 right 09:37:06 total interp lockup 09:38:47 23:36:20 ais523, there? 09:38:48 23:36:29 ais523, seems c-intercal was added to portage(!) 09:38:48 wonder how hideously out of date it is now 09:38:53 oklopol: logreading, i am also logreading 09:39:04 -!- azaq23 has quit (Ping timeout: 255 seconds). 09:40:12 oklopol: so any plans for december? 09:41:43 oklopol is all...what's december, right now 09:47:11 I think someone on RW is claiming to have worked out how to factorise numbers very quickly. 09:47:26 22:29:30 GregorR: computers are turing complete, and 0..2^64-1 is an infinite set 09:47:26 22:29:57 By what stretch of the imagination is 0..2^64-1 an infinite set? 09:47:27 22:30:15 GregorR: it's reeeeeally big 09:47:28 22:30:19 :P 09:47:29 Phantom_Hoover: wat 09:47:34 What's worse, it's the Microsoft fanboy. 09:47:41 link 09:47:43 elliott, http://rationalwiki.org/wiki/RationalWiki:Saloon_bar#Friday_conundrum 09:47:52 scared 09:48:03 He doesn't actually give any evidence or even any indication how fast it is, though. 09:48:06 Phantom_Hoover: Uhh, that's a joke/hypothetical. 09:48:20 I refuse to provide any more justification for this obvious fact than "Adrian Chen". 09:48:35 Hmm. 09:48:39 Well, OK. 09:49:01 Additional evidence: Nobody actually asks actual dilemma-related questions in that way. 09:49:20 Yes OK. 09:50:37 Phantom_Hoover: Who blocked pi. 09:51:02 Also this SusanG person talks way too much. 09:51:08 And has an irritatingly non-textual signature. 09:51:10 I choose to dislike her. 09:51:15 No idea; it's almost certainly one of RW's many frivolous blocks. 09:51:25 elliott, she's one of the rabider antitheists on RW. 09:51:51 "I won't comment on any LQT page. No matter how much I care about the subject. I think it's terrible as it stands." 09:51:55 Well, at least there's that. 09:51:56 "All religious people are morons" level. 09:52:08 Phantom_Hoover: http://rationalwiki.org/w/images/3/3b/Blue2pwnage.png 09:52:11 Phantom_Hoover: ENJOY YOUR BLOCK 09:52:18 All 30 seconds of it. 09:52:23 In the past. 09:53:01 Phantom_Hoover: I also like how nobody responded to that factoring thing with an even vaguely ethical response. 09:53:20 Release it publicly? 09:53:35 Well, I mean at the top level. 09:53:36 1) Tell me. 2) Exploit it for every penny you can. DeltaStarSenior SysopSpeciationspeed! 15:57, 11 March 2011 (UTC) 09:53:46 OK, so there's exactly one. 09:53:51 BUT THAT DOESN'T MATTER. 09:54:50 http://www.thesun.co.uk/sol/homepage/news/3455095/Extreme-supermoon-said-to-set-Earth-up-for-weather-chaos.html 09:55:01 anyway, Phantom_Hoover sucks, i'm coding more os 09:55:03 The Sun continues to uphold journalistic standards. 09:55:16 [[Some amateur scientists warn it could trigger extreme conditions all over the world, from earthquakes to tsunamis.]] 09:55:18 "Some amateur scientists warn it could trigger extreme conditions all over the world, from earthquakes to tsunamis." 09:55:18 BEST LINE EVER 09:55:20 amateur scientists 09:55:21 lol 09:55:34 Phantom_Hoover: It will cause them RETROACTIVELY 09:55:39 THE MOON IS MAGIC AND DEFIES TIME. 09:55:51 Oh Christ, look at the comments. 09:55:53 Phantom_Hoover: "Published: 09 Mar 2011" 09:55:56 THE SUN: Ahead of the curve. 09:56:00 [[Oh Dear. Looks like John Kettley should have listened to his physics teacher. Quakes rock Japan news just in. Gravitational force increases inversely by the square of the distance. Half the distance, and you quadruple the force between those two objects. Of course the moon can cause earthquakes and tsunamis!! The force between earth and the moon can move billions of tons of water, and the earth's mantle too!!]] 09:56:20 "Coo another excuse for them to hike petrol prices up, they don't need decent excuses you know." 09:56:30 "if it gets too close the PM will invent a tax for us looking at it" 09:56:43 "Tell the moon not to stop too close as it might get a parking ticket" 09:56:46 My god, the right wing, it hurts. 09:56:49 I'm not sure whether to laugh or cry. 09:57:11 [[Of course a planet moving closer to Earth can cause an earth quake, what would a weather man know. 09:57:11 They only get it right now because of satellite coverage, I can predict my own weather by watching live satellite imagery.]] 09:57:13 "oh no, stock pile endless cans of spam, panic buy bread and milk, nail crooked bits of wood across the doors and windows to keep out the mutant zombies, WE'RE ALL GONNA DIE......... 09:57:14 or maybe nothing at all will happen, and I can get on and watch Emmerdale..." 09:57:14 Stockpiling food for fear of zombies, and watching Emmerdale: two equally bad situations. 09:57:22 WHAT WOULD A WEATHER MAN KNOW 09:57:35 Phantom_Hoover: Sarcasm, I *think*. 09:57:39 But I'm very unsure. 09:57:48 Anyway, laugh at my hee-larious Emmerdale quip. 09:57:56 ahahahahahaha 09:58:07 "LOL the scientists say it's moving several metres a year away from us, and now they say it's the closest in 18 years? okay then, the scary thing is, that a repeat of the 2004 tsunami could happen again." 09:58:17 "The last time Haleys comet passed by the Earth it rendered me impotent for years,luckily Viagra fixed it and now the wife is over the moon !." 09:58:38 "Well I blame the Government LOL!" "I blame immigrants." ;; first one probably joke, second one joke 09:58:45 "Well personally I blame the "Global warming folks". Even George Bush knew they were nutters and now they have caused the moon to collide with Mars......Oops, sorry! I mean Earth. What are we to do? I have the answer. Let's put up some more of those wind-turbines. Perhaps we can blow it of course at the last minute. 09:58:45 I hope you will excuse me now as I have to return to the real world." 09:58:51 FSVO real world. 09:59:14 What does the 'S' stand for in that? 09:59:18 Oh, rightl. 09:59:19 Some. 09:59:20 "The moons gravity does have an effect on magma under the earth, just like the effect on water it is being pulled, therefore one of a possible number of causes of earth quakes." 09:59:33 "we will get taxed for increased flood risks" 09:59:37 "could we be taxed for this? ...like is it our fault in any way" 09:59:44 TAXES TAXES TAXES 09:59:51 "The Liberals will try and conjur another tax out of this." ;; TAXES 09:59:56 " oklopol: so any plans for december?" no 10:00:00 "They've missed an oppotunity to blame it on global warming there" ;; CLIMATE CHANGE 10:00:02 oklopol: Oh. So you lied. 10:00:23 "What's the good news, well if it happens as stated, there is nothing we can do about it, we will probably be told it is down to global warming, but, no matter what happens to this world, it' all down to NATURE, only nature will decide what will or will not happen, those who keep shouting that humans are causing the CO2 causing Global Warming are talking rubbish, one Volcanic eruption covers the world in many gases, including CO2, when Krakatoa e 10:00:23 xploded early in the 1800s, according to records, some of those gases were still in the atmosphere in 1960, since then we have had many volcanic eruptions, Iceland, Hawaii, and the ring of fire, only nature will decide in most cases whether we live or die." ;; WHAT 10:00:55 "It probably also means that people will start going mental. The human body is made up of 70% water after all..." ;; NO, JUST NO 10:01:23 "Maxnex.. No green tax but if its too close then It will be subject to Londons congestion charge!" ;; FFF 10:01:35 It is a wonder the government or the EUC has not asked the tax payers for an additional "green" tax on this. 10:01:37 oh ffs 10:01:44 shut up about taxes and global warming you shitpots 10:01:47 It's at times like this you wonder how anyone with the slightest hint of rationality doesn't go around punching people. 10:01:57 good question, right now it's because i'm tired 10:02:00 how does tomorrow sound? 10:02:16 oklopol: you know. that thing. 10:02:56 http://www.reddit.com/r/math/comments/g1r53/it_is_possible_to_translate_any_turing_machine/ 10:03:04 The first comment is gold. 10:03:13 IN MY DAY 10:03:21 (I'm using best ordering) 10:03:30 "Something tells me that Turing would have been very fond of Wang had he lived into the 1960's..." 10:03:31 HURF DURF 10:03:36 Phantom_Hoover: Which is the top comment for you? 10:03:40 elliott, the latter. 10:03:50 Phantom_Hoover: Try setting the sorting to best, it's quite good. 10:03:55 Although RANDALL MUNROE made it so it sucks. 10:04:03 O NOES 10:04:04 "Doesn't that involve solving the halting problem? Isn't that impossible?" ;; hey, i've lost the ability to rage at this 10:04:16 "Linked page says “[the halting problem] is highly undecidable” (emphasis mine). Can anyone explain to me what highly means, in that context? Isn’t a problem either decidable or undecidable?" IT'S LIQUIDS!!! 10:04:29 Well, that's just a misunderstanding and jesus I really need to get going. 10:04:37 get going for what, DEATH?? 10:04:40 we all get going for death. 10:05:12 Oh god j_random_idiot has spoken again. 10:05:16 ojooojoijojiwerwerwerefwefwefwefjooijoijoifefwefewwefwewefojiijjiooijwfewefiojojiwefweiojjiwefewfjiojiowefwefjoiowefoijoiweffweojiojiwfewfejiowefojiwefojiwfeoijojiwfewefojioijwefioi 10:05:20 Phantom_Hoover: ohgod]h;'juklo\p[p]\ 10:05:20 [ 10:05:28 no replies for me yet 10:05:41 UNINFORMED RUDENESS 10:05:47 oh. that one 10:05:51 my reply thread is better 10:05:58 Phantom_Hoover: http://www.reddit.com/r/programming/comments/g0d5g/breaking_news_html5css3_is_turing_complete/c1ker31 10:06:03 Phantom_Hoover: fun game: try and find any meaning in this comment 10:06:16 (Cook is the one who proved /rule 110/ TC.) 10:06:24 (I almost googled "Cook html css turing".) 10:07:25 So do I continue goading him into saying "I daresay I know more about this than ais" and then pounce? 10:07:35 no. 10:07:37 Aww. 10:07:46 that's a childish waste of time, even i've abandoned that alley since he didn't call me out on it :) 10:08:00 i'd just stop bothering, i've totally got it covered by way of him ignoring me 10:08:19 " oklopol: Oh. So you lied." <<< i did? 10:08:24 oklopol: yep. 10:08:26 oklopol: and forgot. 10:09:10 oklopol: 04:48:58. 10:09:16 (clog time) 10:10:37 oklopol: :) 10:12:20 i suppose i didn't make it a plan, but assumed i'll just happen to do it anyway? 10:12:30 what was it btw? 10:12:40 oklopol: it was a plan. and for it to work, you have to remember. 10:12:51 hint: 2007 10:12:52 to rape you so you won't win the 50 pounds? 10:13:02 no. 10:13:23 to... kill you so you won't win the 50 pounds? 10:13:27 no. 10:13:36 i have no other ideas. 10:13:56 -!- asiekierka has quit (Read error: Operation timed out). 10:13:59 i blame the tv 10:14:09 oklopol: you will remember, on the day. and it will be glorious. 10:16:15 holy shit qbasic has a repl 10:16:18 why did fizzie never tell me. 10:16:51 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 10:23:21 -!- Phantom_Hoover has joined. 10:30:09 [[misinformation about drugs kills infinitely more people than drugs themselves.]] 10:30:19 When that's in your opening line... 10:31:16 INFINITELY more? 10:31:26 Phantom_Hoover: When that's in your opening line what :P 10:31:57 I severely question the sensibility of the rest of the essay. 10:32:03 INFINITELY! 10:32:05 EVERYONE IS DEAD 10:35:15 -!- azaq23 has joined. 10:44:26 -!- elliott has quit (Read error: Connection reset by peer). 10:44:30 -!- elliott_ has joined. 10:44:50 -!- elliott_ has quit (Remote host closed the connection). 10:44:55 -!- elliott has joined. 11:04:34 -!- elliott has quit (Remote host closed the connection). 11:17:33 -!- elliott has joined. 11:20:51 -!- pikhq_ has quit (Ping timeout: 240 seconds). 11:21:06 -!- pikhq has joined. 11:21:39 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | Anywho, I actually wanted an ereader /primarily/ for reading. For anything else it wouldn't be worthwhile.. 11:23:49 -!- aloril_ has quit (Ping timeout: 276 seconds). 11:25:56 -!- asiekierka has joined. 11:38:10 -!- FireFly has joined. 11:48:01 -!- aloril has joined. 11:52:39 -!- asiekierka has quit (Ping timeout: 255 seconds). 11:55:34 -!- elliott has quit (Remote host closed the connection). 12:03:00 -!- elliott has joined. 12:09:32 -!- cheater00 has joined. 12:11:22 -!- cheater- has quit (Ping timeout: 248 seconds). 12:12:21 -!- cheater99 has joined. 12:14:14 -!- cheater00 has quit (Ping timeout: 255 seconds). 12:15:15 -!- aloril has quit (Remote host closed the connection). 12:24:54 -!- aloril has joined. 12:34:53 "This is my husband. His name is the Berlin Wall and he was born on August 13, 1961. I expect you've heard of him; he is quite a celebrity. He lives in Berlin. 12:34:55 I used to work in a pharmacy. Now I own a museum. My husband's job was to divide East and West Berlin. He is retired now." 12:34:58 Actual quote. 12:35:37 "It was very much a long distance romance as neither of us likes to travel." 12:38:58 Phantom_Hoover: THESE THINGS ARE NOT THINGS THAT I AM MAKING UP 12:39:31 I suspect she is joking to at least a degree. 12:39:52 Phantom_Hoover: She changed her last name to Berliner-Mauer (Berlin Wall) after getting married to it. 12:39:53 I don't think so. 12:39:56 (http://www.berlinermauer.se/) 12:40:16 "Animism is the belief that inanimate objects are sentient beings, i.e. they have intelligence, feelings, and are able to communicate. Animism is the foundation of objectum-sexuality. My belief in Animism is that artifacts (objects) have the same level of awareness as human beings. I don’t see them as superior beings, which is claimed in some encyclopedias and other literature. That I do NOT believe in. I see artifacts as equal to human beings, 12:40:16 animals and plants." 12:40:36 "We even made it through the terrible disaster of November 9, 1989, when my husband was subjected to frenzied attacks by a mob." 12:40:40 This is the best thing ever. 12:40:40 ...OK, she's nuts. 12:40:48 But hilariously so. 12:40:57 "The Berlin Wall - Brandenburger Tor - 1989 and this will be the ONLY such picture on my site. I hate to see this disaster." 12:48:51 -!- variable has joined. 12:49:02 lol 12:50:32 -!- MigoMipo_ has joined. 12:52:25 -!- MigoMipo__ has joined. 12:53:34 -!- MigoMipo has quit (Ping timeout: 250 seconds). 12:54:11 breaking news: pokemon creator died in earthquake 12:56:19 -!- MigoMipo_ has quit (Ping timeout: 264 seconds). 12:56:30 -!- impomatic has joined. 12:56:41 Hi :-) 12:57:19 Elliott: any progress on the Forth? 12:57:55 impomatic: Yes, I'm taking a break from it to write an OS with significantly more than 510 bytes to it :-) 12:58:06 But at least I think I know how I'd do a compiler compactly with quite some space left over. 13:01:06 impomatic: Any progress with yours? 13:02:28 No, I've been ill so I've had a rough week. Planning to start again on Monday. 13:04:26 Ah, ok. Hope you're feeling better soon etc. 13:04:32 My MSP430 devboard hasn't arrived yet anyway. I've bought another couple of devboards too. It's amazing how many are under £10 on eBay. 13:04:55 That interpreter word you wrote -- how do you plan to actually execute it? Running it through the compiler (written in asm)? 13:04:57 Precompiling it? 13:05:03 elliott: it's only toothache :-) At least that's what my girlfriend tells me. 13:05:09 Precompile it by hand 13:05:24 Now I just have to think of the worst possible thing a toothache could be. 13:05:40 Unless I'm seriously mistaken, toothaches can't be cancerous, so logic dictates that you're probably fine. 13:05:48 Wow I should sleep. 13:06:30 It is toothache, but with a jaw infection. I tried about a dozen different things but nothing killed the pain :-( 13:06:42 elliott, you could get septicaemia from an abcess. 13:06:52 impomatic: What PH said! 13:06:53 *abscess 13:07:02 I bet you're feeling better already. 13:07:13 impomatic, I swear I typed that before it turned out that was basically what you have. 13:07:23 Well, the abscess part. 13:07:51 -!- sebbu2 has quit (Ping timeout: 250 seconds). 13:08:16 Yes feeling better. Most of the week I was trying to sleep alway the pain. Now I'm on a couple of antibiotics and painkillers it's not so bad :-) 13:08:25 I can concentrate again! ;-) 13:09:13 -!- sebbu has joined. 13:09:13 -!- sebbu has quit (Changing host). 13:09:13 -!- sebbu has joined. 13:11:31 impomatic, but you could have died the death of TUTANKHAMEN! 13:14:16 Thankfully I didn't. I still have work to do. 13:14:44 -!- MigoMipo__ has quit (Remote host closed the connection). 13:16:14 -!- MigoMipo has joined. 13:37:37 -!- BeholdMyGlory has joined. 14:09:17 -!- cpressey has joined. 14:10:04 i'm starting to think all programming language criticism boils down to "these two things should be next to each other, but aren't" 14:11:00 the problem of course is that there are always multiple ways to sensible co-locate things 14:11:06 *sensibly 14:12:11 that sort of leads to the idea of storing the program in a database, and reading/editing it under various views 14:12:26 but that'll never work 14:12:56 cpressey: like TUNES to the max 14:13:08 TUNES stores all the objects in fancy databases :P 14:13:15 just needs the code too 14:14:18 exactly -- it'll never work ;) 14:15:10 guido's talking about stuff, something about threads and callbacks, i'm not paying attention 14:15:20 ooh, anti-TUNES slander. 14:15:25 I think I get to swat people for that. 14:15:46 tunes is a useful, not existent, system 14:15:54 *non-existent? 14:16:01 :D 14:16:16 cpressey, which two things? 14:16:33 well hey, @ matches up with TUNES in almost every aspect in which TUNES has a solid vision, so clearly that's doomed too 14:16:40 Phantom_Hoover: ... 14:16:44 -!- iconmaster has joined. 14:16:58 cpressey, what do you mean by "these two things should be beside each other"? 14:17:27 Phantom_Hoover: for some two things x and y 14:17:41 So how should they be beside each other? 14:18:21 Phantom_Hoover: never mind 14:18:30 NO I WANT TO KNOW 14:18:47 Phantom_Hoover: program more. you'll figure it out 14:21:29 by "program" i mean, make changes to >20KLoc programs 14:21:50 writing little elegant programs in scheme doesn't count 14:22:22 Oh, right. 14:23:11 -!- azaq23 has quit (Ping timeout: 250 seconds). 14:23:14 cpressey: Making changes to >20 kloc programs doesn't sound like my idea of fun. 14:23:24 (Unless they're written in Haskell maybe.) 14:23:37 (But then it's probably a nuclear reactor if it's that long, and I don't want to touch one of them.) 14:23:44 -!- BeholdMyGlory has quit (Remote host closed the connection). 14:23:59 -!- copumpkin has joined. 14:25:17 it usually isn't fun 14:25:32 thus the programming language criticism 14:28:36 I think I'd agree if you said that shallow criticism came down to that. At least I don't think you can argue asm vs. Haskell based on things being beside. 14:30:09 -!- elliott_ has joined. 14:30:09 -!- elliott has quit (Read error: Connection reset by peer). 14:30:13 i'm not sure they aren't just more abstract "things" that you want beside in that case. but i haven't thought about it much 14:30:33 http://us.pycon.org/2011/schedule/presentations/90/ looks somewhat interesting 14:31:39 cpressey: In entirely the wrong way, perhaps. 14:31:52 "This is a good thing! Only the best ideas survive the python-dev gauntlet!" 14:31:56 Or the lowest-common-denominator ones. 14:32:37 that looks like it could be interesting, because they are actually listing facts 14:32:56 oh, well obviously i wouldn't be going to it to agree with that message. rather, to get a look into their thought/selection process. 14:33:29 -!- BeholdMyGlory has joined. 14:33:32 "they rejected *that*? for *that* reason? interesting..." 14:33:57 cpressey: Well hey, Guido removed fold because "it confuses me and for loops are better". 14:34:01 At the very least it will be entertaining. 14:34:25 (I still can't believe he didn't know that TCO != TRE.) 14:35:20 i don't know what those mean either 14:35:50 total cost of ownership and thyroid response element 14:35:54 indeed 14:35:55 -!- cpressey has quit (Quit: leaving). 14:35:59 :D 14:36:04 :D 14:36:10 tail-call optimisation and tail recursion elimination 14:36:15 oh! 14:36:16 acronyms don't matter, knowing that the latter != the former does 14:36:26 guido thought that TCO was useless because "you can just use a for loop" 14:36:30 which is true for TRE only, ofc 14:36:49 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 14:37:19 all python idiots think that 14:37:57 that's a pretty ridiculous argument, yes 14:38:13 i'm not sure it's because he's confusing the terms though 14:38:23 oklopol: it was 14:38:25 oklopol: in the next post he was like 14:38:32 "o, i see, so tco is where you do MUTUAL things 14:38:35 [shows example of mutual recursion] 14:38:43 i was skooled on this, didn't know, lol, not that i'm gonna change my mind" 14:38:47 truly embarrassing 14:38:58 oh. okay. 14:40:06 Producing such code instead of a standard call sequence is called tail call elimination, or tail call optimization. 14:40:08 erm 14:40:11 oh call 14:40:15 ignore that, was a bit too hasty 14:40:18 -!- asiekierka has joined. 14:40:55 tail recursion elimination can't really be misunderstood, but tail call optimization sounds a bit more ambiguous 14:41:12 hmm. 14:41:17 well whatevs 14:42:04 oklopol: i like r5rs' solution to this, just says "when you do tail calls, the implementation has to behave exactly like it has an infinite stack" :D 14:42:27 also its approach to memory management is "Scheme is defined assuming infinite memory, and objects are never freed, you can optimise that if you want tho" 14:43:41 i assume that's always the case in high-level languages? erm, except python. and probably others 14:44:11 python doesn't even have a spec :P 14:44:16 yeah 14:44:19 i dunno about haskell, i think it's too abstract to even talk about memory ;D 14:44:32 certainlyw 14:44:36 but r5rs' wording is a bit more blunt about it than i would expect most others to be 14:44:37 *-w 14:45:14 we have a course on ml and hol soon btw. if you still care about that stuff. 14:45:17 i mean 14:45:25 if you care, that may be almost interesting news :) 14:45:37 ml doesn't really have much to do with hol, but yeah sure 14:45:39 because then i'll learn to love it 14:45:42 i haven't actually used hol 14:45:49 well you can use hol to prove ml programs correct 14:45:49 but it's a theorem prover, so yeah 14:45:56 right. 14:46:19 ML's a decent language, it has some warts and it's not as overall coherent as Haskell, but some parts are nicer. 14:46:26 but yeah maybe i should've said just hol 14:46:27 hol is cool because every theorem prover is cool :) 14:46:40 yeah 14:50:07 i'm so gonna prove that something's true 14:51:24 oklopol: i prefer proving things that are false. 14:52:11 you have an eye for them challenges right 14:56:27 oklopol: wut 15:04:34 them challenges being the provings of them false things 15:05:58 -!- pikhq_ has joined. 15:06:13 -!- pikhq has quit (Ping timeout: 248 seconds). 15:07:01 oklopol: rite 15:15:13 pikhq_: you there? 15:29:46 -!- copumpkin has quit (Ping timeout: 252 seconds). 15:30:28 -!- copumpkin has joined. 15:59:14 Delivery to the following recipient has been delayed: 15:59:15 charlesap@[redacted] 15:59:15 Message will be retried for 2 more day(s) 15:59:16 oh dear. 15:59:51 pikhq_: Pingol. 16:05:56 -!- Phantom_Hoover has joined. 16:05:58 -!- Phantom_Hoover has quit (Changing host). 16:05:58 -!- Phantom_Hoover has joined. 16:07:33 -!- Zuu_ has joined. 16:07:35 -!- Zuu has quit (Read error: Connection reset by peer). 16:08:19 -!- Zuu_ has changed nick to Zuu. 16:22:44 "Lady Gaga's approach to clothing seems like hacking to me." --rms 16:22:50 -!- Wamanuz3 has joined. 16:25:38 -!- Wamanuz2 has quit (Ping timeout: 248 seconds). 16:26:06 -!- cheater99 has quit (Ping timeout: 255 seconds). 16:29:43 -!- Behold has joined. 16:31:28 -!- cheater- has joined. 16:31:43 -!- iconmaster has quit (Read error: Connection reset by peer). 16:33:06 -!- BeholdMyGlory has quit (Ping timeout: 248 seconds). 16:33:07 -!- iconmaster has joined. 16:35:12 -!- asiekierka has quit (Ping timeout: 252 seconds). 17:05:06 -!- asiekierka has joined. 17:12:53 -!- elliott_ has changed nick to elliott. 17:12:55 -!- elliott has quit (Changing host). 17:12:55 -!- elliott has joined. 17:16:20 -!- impomatic has quit (Read error: Connection reset by peer). 17:17:37 -!- Behold has quit (Remote host closed the connection). 17:19:08 -!- BeholdMyGlory has joined. 17:21:28 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | max(X, Y) -> Y.. 17:23:33 optbot! 17:23:33 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | ^show cho. 17:23:34 optbot! 17:23:35 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | For programming or not, there is many things discussed in this channel. 17:28:33 zzo? 17:29:17 obviously. 17:30:12 quite 17:31:52 have you ever lived next to a microwave and a fridge? it's awesome 17:31:59 no, sounds nie 17:32:00 nice 17:38:13 i also live on top of an armchair, but i that's probably not at all uncommon 17:39:43 I have, in fact. 17:40:02 It's a bit more problematic living next to a 48" TV in addition to that. 17:40:07 And several game consoles. 17:40:11 In the space of a dorm room. 17:41:11 just put the tv on the floor and walk on it PROBLEM SOLVED??? 17:41:28 elliott: No. 17:43:12 -!- cpressey has joined. 17:43:30 indeed there is many things discussed here 17:43:44 実。 17:43:52 manifold things 17:45:36 this environment is making me want to design a production language & that makes me sad 17:45:41 luckily i leave tomorrow 17:45:46 ESCAPE 17:46:32 at least it's not making me want to build a python library, upload it to pypi, and promote it shamelessly 17:47:07 well it sort of is but that's easier to deal with 17:47:35 cpressey: make a binding to haskell, it'll annoy EVERYONE! 17:48:02 what does that even mean 17:49:00 cpressey: i don't know, but it'll upset the pythonistas 17:49:37 I guess something that lets you write haskell.run_io(haskell.eval("putStrLn").call(Thunk(lambda: haskell.make_string("Hello, world!")))) 17:51:56 i don't understand how people think 17:52:03 cpressey: badly 17:53:24 "The goal of the project: [...] 3. Not a goal per se, but I wanted [...] 17:53:31 if you wanted it, it was a goal 17:54:33 cpressey: now we're all stuck in a quote. 17:54:38 by a pythonista, no less. 17:55:31 fine 17:55:31 " 17:55:37 *phew* 17:55:58 now it's a misquote and *I'm* buggin' 17:56:10 "The quote problems are NEVR over. 17:56:33 " 17:56:42 Damn, you are good. 17:57:25 http://pypi.python.org/pypi/Python/2.5 <-- Python is a package for Python. 17:57:27 " 17:57:32 " 17:57:32 " " 17:57:42 cpressey: :what: 17:57:46 — #esoteric 17:58:01 ( Quotes are the least of your problems. 17:58:03 ) 17:58:06 cpressey: I like how it explains Python in depth. 17:58:18 cpressey: if you liked Python, why not try Python, an interpreted, interactive, object-oriented programming language [...] 17:58:36 ( " ' [ { < 17:59:14 > } ] ' " ) 17:59:15 : parse error on input `}' 18:00:04 ) BWAHAHA 18:00:38 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 18:00:53 Quick, you must go back in time! 18:01:17 Can anyone loan me a time machine? 18:02:28 feather isn't done yet, you fool! 18:05:41 We need a language where all parens must be unmatched. This would make annoying-looking code. 18:06:02 Sorta kinda like nopol :P 18:06:11 Imah call it ']' 18:06:22 FFFFFFFFFFFFFFFFFFFF 18:06:36 Whoops. 18:07:31 Once I make the language, I will paste programs here and wreck unprecedented havoc. 18:10:33 []{}<>() would be 8 commands, so ] would be a good BF variant... but i'm going for something more original. 18:13:10 ok, apparently being a pythonista causes you to forget that '**' is a workaround for environments where you are not able to depict an actual superscript. 18:13:17 slides are not such an environmen 18:13:18 t 18:13:48 :D 18:13:55 notation hipster 18:15:27 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 18:18:08 so, a talk on continuous deployment which didn't really address any of the hard issues about continuous deployment 18:18:33 "deploy to a few machines first in case theres a regression" was about it 18:18:41 cpressey: continuous deployment and continuous integration sound like they should be much better concepts than they are 18:18:51 I'm thinking every single fraction of a diff is integrated and deployed 18:18:52 oh yeah, neither is actually continuous 18:18:58 even if you only change one character 18:19:06 it ends up integrating half-a-character change 18:19:10 it would be beautiful and make no sense. 18:19:12 "frequent integration" doesn't sound sexy enough 18:19:35 yes, that... is... beautiful nonsense 18:19:46 " Sorta kinda like nopol :P" toi has that ({} thing 18:20:06 cpressey: yes. i eagerly await your esolang based on the noise. 18:20:32 eugh, mistranslated prepositions... "waiting on a friend" 18:20:34 oklopol: so about Clue ;D 18:20:43 olsner: um that sounds ~right to me 18:21:06 gwwmmkmkmkmkgwwwmmmwmmmm 18:21:13 elliott: really? isn't waiting "on" people what a waiter does? 18:21:24 well, yes. 18:21:36 but you can definitely wait on an event and/or person 18:21:36 and you'd generally be more likely to wait *for* a friend 18:21:48 waiting on your friend means you're on top of your friend, waiting for something 18:22:10 oh, didn't know 'on' worked like that too 18:22:14 don't think I've seen that 18:22:50 err. 18:22:50 yes, "on" can mean "on" sometimes 18:22:54 oklopol is wrong :P 18:22:59 and you'd generally be more likely to wait *for* a friend 18:23:00 oklopol is funny 18:23:06 erm what? i'm certainly not wrong 18:23:08 "oh, yeah, i have a commit to do that, but I'm waiting on dfgjiodfg to approve it" 18:23:25 oklopol: well. yes it's technically correct, it could mean that. no, nobody has ever, or will ever, say that and mean that :) 18:24:20 well after saying "on top of a friend" a few hundred times, it gets kinda annoying. 18:25:19 "are you waiting on a table or a shelf btw?" "neither, actually, i'm waiting on a friend" 18:28:03 -!- cpressey has quit (Ping timeout: 276 seconds). 18:29:29 also if you can "cheer someone on", in a race, you can naturally also "wait someone on" in a race, waiting can be encouraging 18:29:39 but i'm not sure wait on a friend is very natural then 18:29:45 well why not 18:30:13 pikhq_: should I even bother getting rtk3, or should I just buy rtk1 and rtk3 later if I feel the need? 18:30:15 "why are you waiting?" "my friend is running a marathon, so we're all waiting him on" "oh, waiting on a friend i see, i'll join ya" 18:30:17 moneys ;\ 18:30:57 i should write an english a learn it book 18:32:27 elliott: RTK3 isn't particularly necessary. 18:32:55 pikhq_: Yah, but I save on shipping if I buy it now, so if I'm *likely* to find it useful, I'd like to buy it now ... 18:33:15 By the time you're done with RTK1, you'll be automatically decomposing kanji and memorising them that way, so it's not like you'll be using it for anything more than a list of kanji Heisig felt were important. 18:33:35 pikhq_: should i maybe buy a golden cape for when i become the king of the universe? 18:33:50 oklopol: NO! 18:33:54 oklopol: Only iridium! 18:34:18 alright. i'm just wondering since i'm buying a pizza and it's easier to buy those two together than to go to the shop twice 18:34:32 pikhq_: How long will it take me to be done with RTK1 anyway? :-P That is, define "done". 18:34:47 If "done" by your definition = a few weeks, I'd prefer to get RTK3 now. If it's more like a month or two by your definition, I'll get it later. 18:34:50 (If I do at all.) 18:35:00 pikhq_: will it take me long to finish the pizza btw? would be nice to get to that king stuff as quickly as possible 18:35:13 wait why am i doing this 18:35:19 pikhq_: why am i doing this? 18:35:21 oklopol: SHIPPING COSTS K 18:35:35 bewks are not cheep o'er 'ere. 18:36:17 elliott: Month or two. 18:36:43 rite, i'll just buy rtrkjtkrtjkrtkrtjkrtkjrktjkrjtkrtk11111111111111111111 then 18:36:51 hey free shipping if i get it from amazon 18:36:53 \\\\BEST DAY//// 18:37:04 -!- cpressey has joined. 18:37:59 I would say I'm waiting for dfgjiodfg to approve it, but *it* is waiting *on* dfgjiodfg's approval 18:37:59 good ol' dfgjiodfg 18:38:15 anyway it occurs to me that i've never bootstrapped a compiler for a high-level language 18:38:39 cpressey: PIXLEY! given a specialiser. 18:38:43 ok that doesn't even vaguely count. 18:38:50 int is 12 bytes in python. jeez 18:38:55 *takes up 18:38:59 who cares :) 18:39:38 oh, i was more surprised when i thought it was 12 bits 18:39:38 (at the risk of mentioning one thing TOO MUCH in too short a span of days, first quote from http://prog21.dadgum.com/39.html is relevant) 18:40:35 :D 18:40:52 pikhq_: what's the good and bad std for snes roms again. istr something like that. so complicated. 18:40:56 is goodsnes the one that's the bads 18:42:08 i'm pulled in too many different directions now 18:42:23 cpressey: like python!! what? 18:42:35 cpressey: ooh, ooh, bootstrap a compiler for a python subset. to maximise self-hatred. 18:42:51 GoodSNES is terrible. 18:43:03 pikhq_: what's the good one. 18:43:08 NoIntro. 18:43:55 elliott: icould skip a step and just hate rpython, it wdoul save time 18:44:02 hi non-woking keyboard i missed you 18:44:17 cpressey: tinypy is more what i was thinking. 18:44:19 that's bootstrapped too. 18:44:51 pikhq_: hmm, nice, europe vs. usa versions of the same game, that's... so easy to decide :D 18:45:31 look at http://esolangs.org/wiki/Right_bracket ) 18:45:59 Imah make examples now. 18:46:08 -!- copumpkin has quit (Ping timeout: 246 seconds). 18:46:35 -!- GregorOpMonger has joined. 18:46:40 -!- Gregor has set channel mode: +o GregorOpMonger. 18:46:53 Just protecting a scarce resource :P 18:47:02 -!- copumpkin has joined. 18:47:08 pikhq_: How big is that torrent of aaaaaaaaaaaaaall the SNES games? :P 18:50:28 so,the productive suffixes of fans of programming languages: "-ista", "-ist", and "-er" at least 18:50:46 elliott: Something like 8 gigs? 18:50:46 i want there to be a "-nik" but i will be disappointed 18:50:54 like, "Haskellnik" 18:51:16 chris. did my friend find you? 18:51:47 oh lord. 18:52:07 quintopia: i gather from your statement that you told a friend of yours who is at PyCon that I am at PyCon and that he or she should look for me 18:52:20 pikhq_: Hmm, I can only find 2.6 gigs... 18:52:26 i gather from your statement she did not 18:52:31 Okay, so I seriously overestimated. 18:52:39 pikhq_: http://torrentz.eu/6a74b187e40ef0414b52588eb3d1a36b47f3f97a 18:52:41 Right. :p 18:52:46 Guh. 18:52:47 No trackers. 18:53:06 pikhq_: Oh, there's this smaller one: http://torrentz.eu/f525add4936c1b11853b5a96247a98961ced6dda but I know not what "(merged)" means there. 18:53:12 And also seederless. 18:53:19 quintopia: does your friend have any interest in esolangs? 18:53:47 cpressey: BAND TOGETHER AND OVERTHROW PYCON 18:53:54 the perfect coup 18:53:59 cpressey: ruby is an esolang, right? 18:54:09 /ragequit 18:54:10 oh boy. 18:54:29 SO CPRESSEY 18:54:31 HAVING A FUN TIME? 18:54:54 -!- asiekierka has quit (Ping timeout: 248 seconds). 18:55:10 enjoy your pizza and beer at the tip bof 18:55:13 bai 18:55:15 fun was not expected... i'm surviving, that's all i ask 18:55:18 quintopia: no beer 18:55:24 according to otganizatre 18:55:27 *organizer 18:55:30 but thx 18:55:35 cpressey: what kind of insanity made you think this was in any way something you could do? 18:56:01 pikhq_: I conclude you got them from a wizard. 18:56:27 elliott: long story 18:56:37 cpressey: boring! 18:56:42 how many kazoos does it involve? 18:56:57 i'll probably be attending 2 other conferences this year, both very different -- more academic 18:57:42 hose won't be for work 18:57:44 "Theoretical BDSM" and "The Python-induced Crippling Alcoholism Support Group". 18:58:21 pikhq_: ;_; 18:58:25 Wizardry should be illegal. 19:00:32 optbot: what do you think of wizardry? 19:00:32 elliott: http://zem.fi/~fis/cont.png -- none of those look very non-essential to me. Although I'm not quite sure what "Program handler" does. 19:03:47 "Oh well", I'm sure 20080712 is new enough. 19:04:04 Hmm. 19:04:06 No seeders. 19:04:13 Woe's me. 19:05:24 i've noticed that when i have irssi running, when a talk gets dry, i can't concentrate on it 19:05:40 ah well most of these could be compressed to 10 minutes anyway 19:06:46 also 19:06:52 i have an idea for an esolang 19:07:07 zomgz! 19:07:19 also, the sky? blue. 19:08:10 wow. 19:08:12 hg clone http://hg.python.org/cpython/ 19:08:16 oops 19:08:20 why. 19:08:22 why, cpressey, why. 19:08:44 to make random changes to it 19:08:54 and 19:08:58 to saturate the network 19:09:07 cpressey: please tell me you're going to crash some ad-hoc meetup where they're sharing code and go all "oh this doesn't work in my cpython" 19:09:08 with a plausibly innocent act 19:09:13 and it's because you've added a prng to every damn function 19:09:21 and nothing does what it's supposed to any more 19:09:38 *sigh* ONE DAY i'll go to python conferences ON MY VERY OWN and prank them all. 19:09:42 i didn't have that in mind but i will admit it is brilliant 19:10:32 "i installed the included batteries backwards" 19:10:36 :D 19:10:52 oh, the re module? yeah, a bunch of functions for Religious Education... this _is_ a library after all 19:11:25 "well what did you *expect* 2.0 + 2.0 to give apart from 5? this is floating point you know, it's imprecise!" 19:11:53 pikhq_: WHY ARE YOU THE BAD 19:12:02 floating point gonna float 19:12:43 wait, is optbot a bot 19:12:44 cpressey: as a toggle marker 19:12:51 i thought it might be fizzie 19:12:53 cpressey: um yes. he used to be here a while back. 19:12:55 i revived him. 19:12:57 -!- oerjan has joined. 19:13:00 cpressey: it sets the topic every 6 hours 19:13:03 and also when you say "optbot!" 19:13:04 elliott: it is not ransom 19:13:08 and also replies to mentions of its name. 19:13:14 all messages come from random log entries 19:13:23 it was what inspired fungot's babble generator. 19:13:23 elliott: a yucca clone might be nice to them. 19:13:47 what's it written in? 19:13:56 cpressey: um. 19:13:59 it used to be ruby. 19:14:03 this time it's... python BUT 19:14:05 I have a DEFENCE 19:14:14 I was trying to think of the language most amusingly unsuited to the task at hand 19:14:21 but rejected Fortran and J for just being WAY TOO MUCH OF A PAIN 19:14:25 so I picked the next best thing, Python 19:15:50 i think cpressey is still judging me. 19:15:59 ett's ssseeeeeeeeeeeeeeee if mmmmmmmmmmmmmmmmmmmmmmmmmmmmy hg clone makes any progres by time this tkis over 19:16:13 -!- pikhq_ has quit (Read error: Operation timed out). 19:16:18 -!- pikhq has joined. 19:16:20 your keyboard. it's impressive. 19:16:26 elliott: you should come here, give talk on it 19:16:44 heh 19:16:50 i suspect the keyboard driver for this laptop in ubuntu is not perfect 19:16:51 def random_line(): 19:16:52 line = random.choice(lines) 19:16:52 return re.sub(r'^[a-zA-Z\\[\]\\`_^{|}][a-zA-Z0-9\\[\]\\`_^{|}]+:\s+', '', line) 19:16:53 pythonic. 19:20:31 gmail's keyboard shortcuts are awesome. 19:21:07 >>> f = { 2.0: 'k' } 19:21:07 >>> f[2.0] 19:21:07 'k' 19:21:11 so pythonic 19:21:45 yes. 19:25:46 f[2] is also 'k' 19:27:28 ooh, i have cpython src now 19:27:36 configuring and building this puppppp 19:27:41 *pupppppppppppppppppppppppppppppppppppppp 19:27:47 *puppy 19:29:04 write a python->pixley compiler!!198379328 19:29:10 -!- ChanServ has set channel mode: +o oerjan. 19:29:18 er. 19:29:18 -!- oerjan has set channel mode: -o GregorOpMonger. 19:29:23 *gasp* 19:29:29 Gregor: INJUSTICE 19:29:30 BAN OERJAN 19:29:44 -!- oerjan has set channel mode: -o Gregor. 19:30:00 -!- oerjan has set channel mode: -o oerjan. 19:30:08 i think that got a little out of hand. 19:30:10 oerjan: Y U NO FUN? 19:30:19 glumpwhenge 19:30:27 cpressey: what 19:30:41 hardwire my monkeypatch 19:30:47 yes. 19:31:00 cpressey: quick, change the lexer to parse { as INDENT and } as DEDENT 19:31:03 and ignore whitespace 19:31:21 then add a semicolon at the end of the statement rule 19:32:36 Python 3.3a0 (default:9e70e818d434, Mar 12 2011, 14:13:12) 19:32:36 [GCC 4.4.3] on linux2 19:32:39 "woot" 19:33:20 looking through source dir for interesting source file to modify 19:33:44 cpressey: excuse me i just gave you the best ideas? 19:33:54 also swap [] and (), just because. 19:34:05 if hello == 4: { 19:34:14 print["good morning", "abc"(2)]; 19:34:18 print["goodbye"];}; 19:34:25 ten times better already 19:34:51 ok, fine. syntax. 19:35:09 cpressey: yes. the most boring part of an esolang. 19:35:15 (&#&)@^ have to modify both the grammar and the parser??? 19:35:18 but also the easiest, and who wants to waste time on python 19:35:20 cpressey: I doubt it 19:35:25 no, that's what it says 19:35:36 heh 19:35:38 it might think i want to do a more than trivial change 19:36:09 gonna start small 19:36:16 changed the syntax for newstyle classes to 19:36:23 class Foo[Bar]: 19:36:32 see what happens 19:36:47 i'm joining in the fun too 19:37:15 yeah, it can't even finish building because it tries to load existing python code, looks like 19:37:25 cpressey: just add it as an alternative >:D 19:37:38 -!- Lymia has quit (Ping timeout: 250 seconds). 19:37:42 File "", line 1 19:37:42 class CacheInfo(tuple): 19:37:42 ^ 19:37:42 SyntaxError: invalid syntax 19:38:05 pikhq pikhq pikhq 19:39:20 elliott elliott elliott 19:39:46 pikhq: WHENCE DO I ILLEGALLY PROCURE AT A SPEED GREATER THAN THAT OF A TORTOISE THIS MYSTICAL COLLECTION, FOR THE BITS, THEY RUN TRY EVERYWHERE THE GOOGLES CAN LOCATE 19:40:13 I REMEMBER NOT 19:40:35 pikhq: FFFFFFFFF 19:40:46 pikhq: Shoot me Chrono Trigger or something so I can test this bsnes build? :-P 19:40:59 File "", line 1 19:41:00 class CacheInfo(tuple): 19:41:00 ^ 19:41:00 SyntaxError: invalid syntax 19:41:05 grr 19:41:22 poor cacheinfo 19:41:26 >>> class Foo*: 19:41:26 ... a = 1 19:41:27 ... 19:41:27 Fatal Python error: Non-statement found: -13824 8308512 19:41:27 Aborted 19:41:33 :D 19:41:39 I added an '*' alternate to the grammar 19:41:42 cpressey: THIS IS SO MUCH FUN 19:41:50 cpressey: embed HQ9+ 19:42:01 stop making such good suggestions! 19:42:17 :D 19:42:23 ok here's a bad one 19:42:25 maybe i'll go to the ast talk after all 19:42:26 cpressey: embed Funge-98! 19:42:31 actually that's like 19:42:33 the best suggestion 19:42:36 but unfortunately, the most difficult. 19:42:50 in docstrings? but that would be so cheating 19:42:55 no 19:42:56 in the raw code 19:42:57 yeah, no 19:43:00 yeah 19:43:01 no. 19:43:06 you're lame. lamest. 19:43:09 maximising lame! 19:43:10 :P 19:43:18 oh god 19:43:20 this lexer is insane 19:43:21 well actually 19:43:30 yield_expr: 'yield' [testlist] 19:43:30 ok 19:43:32 let's make this 19:43:39 it might be easier here than in a non-offside-rule langauge 19:43:41 | 'dleiy' [testlist] 19:43:43 that might work. 19:43:52 cpressey: python isn't really offside rule though in the way haskell is 19:44:06 no, but i only mean, it cares more about the column than, say, ruby does 19:44:23 right 19:44:28 ok! 19:44:30 ./configure && make -j3 19:44:59 cpressey: what does the * do? 19:45:25 cpressey: here's an idea. 19:45:36 every function call f(x,y,z) becomes x.__getfunc__('f')(y, z) 19:45:44 object.__getfunc__('f') just returns the global symbol f by default. 19:45:54 unless f is an attribute of this object and a function 19:45:56 cheater-: make cpython crash, apparently 19:45:57 in which case it returns that 19:46:09 so f(x,y,z) == x.f(y,z) if f is defined on x 19:46:25 and f(x,y,z) and f(x',y,z) can behave totally differently according to x and x''s whims!! 19:46:29 OH GOD IT'S SO BEAUTIFUL. 19:46:42 jesus hrist 19:46:52 i'm a fuckin' visionary 19:47:18 >>> dleiy 3 19:47:19 File "", line 1 19:47:19 SyntaxError: 'yield' outside function 19:47:19 bitching. 19:48:02 suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT | NEWLINE '{' stmt+ '}' 19:48:09 ;D 19:48:27 nice, had to make twice to get it to recompile 19:49:17 blurg need to shut down again battery gasping 19:49:21 hmm, doesn't work, oh well 19:49:36 pikhq: So disappointed in you. SO disappointed 19:50:15 -!- Lymia has joined. 19:52:52 https://lh4.googleusercontent.com/-VWFCAOgti6g/TXqUxvpr9lI/AAAAAAAACdQ/mdX79YsluRY/s1600/google_vintage.jpg 19:53:54 -!- cpressey has quit (Ping timeout: 255 seconds). 20:17:14 pikhq: *sob* 20:18:15 all this sobbing, there's a person at the centre of this sobbing, who doesn't care, that person is pikhq, folks 20:19:58 -!- ais523 has joined. 20:20:03 pikhq: sob. 20:20:06 hi ais523 20:20:09 pikhq is an evil space demon 20:21:19 悪宇宙鬼? 20:22:13 pikhq: Yes. 20:22:27 My bsnes compile remains UNTESTED, my computer's performance UNCERTAIN. 20:22:37 All because of evil space demons. 20:23:06 elliott: they clearly had to think of something that could top that earthquake they made 20:23:14 yeah. evil pikhq. 20:23:30 Fukushima-Daiichi reactor explosion. 20:24:13 Appears to have just affected an outer wall. Still, eeek. 20:24:41 i'd expect the japanese to take some care while building reactors. 20:24:56 Yes. They didn't expect a 9.0. 20:24:56 pikhq: ONE MEASLY LITTLE ROM 20:24:58 I BET YOU'RE A 20:24:59 A 20:25:06 A TOOL OF BIG COPYRIGHT 20:25:08 WHICH IS NOW A THING 20:25:12 (SO TIRED) 20:25:17 pikhq: um this is JAPAN. how could they not expect it. 20:25:25 oerjan: because japan doesn't get 9.0. 20:25:32 oerjan: What, one of the largest earthquakes ever? 20:25:40 it's actualy 8.8-8.9 but w/e 20:25:52 Significantly larger than it was previously believed *possible* to get there? 20:25:59 O KAY 20:26:09 hi elliott 20:26:16 they really should expect the largest earthquake ever, because they regularly get those 20:26:22 ok, so pikhq is an undercover agent of the MPAA. 20:26:24 except... for software. 20:26:58 hmm, time to write a compiler backend from desugared Algol 60 syntax trees, minus recursive data types or any sort of memory allocation, but including recursion, to hardware: 2 days 20:27:18 I'm quite proud of that, although it explains why you haven't heard much from me recently 20:27:21 It's also the largest earthquake to ever hit Japan... 20:27:30 what's the world record 20:27:49 9.5. 20:27:54 there's this guy in finland who SWEARS he once felt the earth move a bit 20:28:16 i'd totally ask random people for the rom except i distinctly recall asking before and only pikhq had it >:) 20:28:19 that was big news some years back, i hear 20:28:35 oklopol: :D 20:28:53 this is one damn exciting country 20:29:23 also this one time it rained so much there was a 5x5 meter pond outside, pretty insane 20:29:35 http://en.wikipedia.org/wiki/2008_Skåne_County_earthquake 20:29:41 sweden has earthquakes too! 20:29:45 :o 20:29:50 oklopol: i thought finland had plenty of water... 20:30:09 oerjan: well yes but not disasterous INTERESTING water 20:30:51 pretty sure pikhq caused the tsunami. 20:31:28 norway isn't actually earthquake territory either. on some outlying islands they sometimes feel a bit, i think. 20:31:37 *exactly 20:31:42 -!- cpressey has joined. 20:31:49 also this one time it rained so much there was a 5x5 meter pond outside, pretty insane <-- for some reason that implies to me that the pond was exactly square 20:31:52 which would indeed be insane 20:31:56 "The Oresund Bridge between Sweden and Denmark was investigated for cracks and other problems but nothing was found." holy SHIT, and here i thought scandinavia was a safe place 20:31:57 elliott: no it was his mom taking a dive 20:32:02 oh snap. 20:32:17 but no, a bridge was almost damaged 20:32:17 i figured out what class Foo*: should mean. it should mean that Foo inherits from itself. 20:32:30 does that operation actually do anything, though? 20:32:32 cpressey: you are truly a great visionary of our time 20:32:36 ais523: Minecraftian pond. 20:32:42 it'd cause the equivalent of super() to go into an infinite loop, and make no difference the rest of the time 20:32:53 CONCEPTUALLY IT IS PERFECTLY WELL DEFINED 20:32:56 ais523: he's hacking up cpython, he can do whatever he wants! 20:33:05 I suppose that makes perfect sense in an esolang 20:33:12 pikhq: minecraftian ponds in the real world would be rather lovecraftian. despite being euclidean. 20:33:13 yes, like Python 20:33:16 much like Claudio Calvelli's unary division 20:34:11 (defined as (x / (x >> 2)), which nearly always returns 2 except for when there are rounding errors) 20:34:35 hmm... IIRC, the behaviour is "normally return 2, except occasionally return 3 or crash" 20:34:52 :D 20:34:57 best function ever 20:35:34 -!- cpressey_ has joined. 20:35:45 :D 20:36:14 idgi, why 2? 20:36:48 x>>2 = x/4 20:36:55 thought you shoud know 20:36:55 oh, I meant x >> 1 20:36:58 oh 20:37:00 said the wrong thing 20:37:01 right 20:37:03 well right 20:37:07 all unary ops in INTERCAL are op(x, x>>1) 20:37:21 i haven't actually used these silly operators, because bits are so 50's 20:37:28 except there's some sort of rotation involved too 20:37:30 which I forgot to allow for 20:37:34 hmm, now I'm confused 20:37:34 so i figured maybe i don't understand how they work 20:37:51 oklopol: TriINTERCAL uses trits instead, and unary division is well-defined there too 20:37:56 although still pretty useless 20:38:27 ais523: (x>>1) | ((x&1) << 31) ? 20:38:45 ah, I just looked it up 20:38:54 it normally does a pure rightshift in inconsistency to the rest of the INTERCAL 20:38:59 but you can change it to a rotation with a compiler option 20:39:03 *to the rest of the INTERCAL operators 20:39:19 CLC-INTERCAL 1.-94.-4 introduced a new unary operator, division. This differs from normal unary operators because it is arithmetic, not bitwise. The operation is as follows: the operand is shifted right arithmetically, then the original value is divided by the result of the shift and truncated to an integer. Note that the most frequent result is the base, since a right shift is equivalent to a division by the base, truncating the result to an 20:39:21 integer. For example, in base 5, unary division of #62 is #62 divided by #12, which just happens to be #5. However, the operation can also return other values, for example in base 5 unary division of #12 is #6. And of course any value smaller than the base produces a division by zero splat. A compiler option, bitwise-divide, changes the unary division to behave like a normal unary operation, performing a bitwise rotate of its operand and so on. You 20:39:22 can figure out what it does. 20:39:59 Why hasn't somebody written fuse-hg yet >_> 20:40:00 -!- cpressey_ has left (?). 20:40:21 cuz hg sux 20:40:27 obviously! 20:40:46 12/2 == 6, hm 20:40:55 PEP 336: "Make None Callable" 20:41:06 elliott: AFAICT there's no good gitfs either. 20:41:12 no, just sgfs 20:41:15 cpressey: wat. 20:41:26 > [x `div` (x `div` 2) | x <- [1..]] 20:41:26 [*Exception: divide by zero 20:41:29 This PEP is rejected. It is considered a feature that None raises 20:41:30 an error when called. The proposal falls short in tests for 20:41:30 obviousness, clarity, explictness, and necessity. The provided Switch 20:41:30 example is nice but easily handled by a simple lambda definition. 20:41:30 See python-dev discussion on 17 June 2005. 20:41:33 > [x `div` (x `div` 2) | x <- [2..]] 20:41:34 [2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,... 20:41:34 i'm in the "myopic language improvement suggestions" talk 20:41:46 > filter (/= 2) $ [x `div` (x `div` 2) | x <- [2..]] 20:41:50 mueval-core: Time limit exceeded 20:41:50 ais523: not very much 3 there... 20:41:54 wtf? 20:41:56 that should at least produce [3, 20:42:26 elliott: If you get sgfs working, I will switch Hackiki to Scape🐐 20:42:35 elliott: no, 2 / (2 / 2) is 1 20:42:37 Gregor: DONE. 20:42:41 ais523: [2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,... 20:42:43 ais523: there's a 3 there 20:42:47 it should produce [3, before timing out 20:42:48 by definition 20:42:53 all i added was a filter 20:42:53 -!- zzo38 has joined. 20:42:57 ais523: are you sure 2/2/2 is 1 20:43:01 err, 2 20:43:12 but 3 / (3 / 2) is 3 if you use integer division 20:43:20 your points are rather floaty today 20:43:20 and 1 / (1 / 2) is divide-by-zero 20:43:53 > 1:let f x = f (x+1) in f 1 20:43:57 Now I completed making a chess program with TeX. http://sprunge.us/QSWX http://sprunge.us/MdJW http://zzo38computer.cjb.net/img_13/texchess1.png 20:44:11 elliott: btw, I have no idea what the conceptual advantage of Scape🐐 is over any other VCS :P 20:44:12 Probably the pieces is a bit too small? 20:44:13 now what 20:44:14 "hiding flow control inside of macros is a bad idea" -- raymond chen 20:44:19 yeah 20:44:20 sure 20:44:21 thread killed 20:44:23 zzo38: does it generate the annotations itself? 20:44:26 Nor, really, what concept is unique to Scape🐐 at all. 20:44:27 oh hm 20:44:36 Gregor: It's FRACTAL. 20:44:41 ais523: No. 20:44:41 what is that character after Scape? 20:44:47 cpressey: C-INTERCAL not only hides flow control inside macros, but hides it inside a postprocessor 20:44:50 Gregor: Explaining it more in-depth has been known to put people who aren't me and ais523 to sleep, so I won't bother. 20:44:50 elliott: Mandelbrot is dead. 20:44:52 But it does parse the moves itself and draw the board itself. 20:44:54 cpressey: nice, I guess he uses only inline-assembly for control flow then 20:45:13 > 1:let f x = f (x+1 :: Double) in f 1 20:45:14 don't ever hide anything ever 20:45:23 Gregor: The end effect is that it does merging properly :P 20:45:26 mueval: ExitFailure 1 20:45:26 mueval-core: Time limit exceeded 20:45:28 And branching. 20:45:52 elliott: i think it's just that lambdabot doesn't produce anything if it times out before filling the output buffer 20:45:54 How properly is "properly" :P ... I mean, neither git nor hg SUCK at branching and merging, though there's always room for improvement. 20:46:15 elliott: ah, is it just that my attention span is so variable that it's impossible to tell if I'm paying attention or not? 20:46:29 ais523: If you want to see what the TeX chess generates, look at the example source file, everything not typed in the example file but is shown in the picture, is the things it makes by itself. 20:46:30 ais523: Err, I meant people who aren't either me or you 20:46:32 Gregor: git and hg both have a "dumb" view of the repository: they just see it as a bunch of trees stuck together. All the knowledge of patches is hacked on to this. 20:46:47 Gregor: This is inherently more limited than scapegoat, which keeps track more than just the textual content of lines changed in its patches. 20:46:51 elliott: I know, I was trying to figure out why I'd been singled out as an exception? 20:47:00 ais523: because you're the one who explained it to me 20:47:03 and I assume you didn't put yourself to sleep 20:47:05 ah, is Scape a sort of easier-to-implement version of Scapegoat? 20:47:11 I hadn't noticed the name connection 20:47:15 err, no 20:47:19 that's scape[unicode goat character] 20:47:23 blame Gregor :) 20:47:35 no problem 20:47:36 oh, I see 20:47:38 that's usually who i blame 20:47:43 ais523: I call Scape🐐 Scape🐐 because Unicode goat > Unicode 'g' 'o' 'a' 't' :P 20:47:45 that character isn't parsed by my client 20:47:50 nor mine 20:48:01 Then your clients suck ... mine can't render it, but it knows that it's there :P 20:48:07 Gregor: Basically, instead of having patch operations like "insert STRING between STRING and STRING in FILE", it has "insert STRING between CHANGE and CHANGE". 20:48:19 as in, it doesn't even figure out the encoding correctly 20:48:23 everything that hides anything anywhere sucks 20:48:29 Gregor: Each file has its own SOF and EOF changes. 20:48:40 My client does display the unicode correctly but I have no font to display it. 20:48:54 cpressey: does this guy prefer copy paste over functions? 20:49:08 elliott: "insert STRING between CHANGE and CHANGE" <-- more details plx 20:49:26 oklopol: raymond chen? i have no idea; that quote influenced someone else to reject a proposed feature 20:49:35 i hear raymond chen is awesome but i forget who he is 20:49:40 Gregor: Change := start of file | end of file | insert string between change and change | replace change with string | delete change | move (change,change) between (change,change) 20:49:44 etc. 20:49:47 cpressey: the old new thing 20:50:00 Gregor: Basically, sg changes have a very trivial merging algorithm (topographically sort each change by its dependencies (changes it mentions), apply in order; if a patch fails, there is a conflict), that can trivially be shown to never "do the wrong thing". 20:50:02 i didn't say i wanted to remember 20:50:20 When trying to look up "Raymond Chen" in Wikipedia I get "MSDN Blogs". So maybe that is who Raymond Chen is. 20:50:25 zzo38: it is 20:50:25 Gregor: Basically, 20:50:30 Gregor: A line is identified by the change that creates it. 20:50:45 Gregor: So consider "insert 'hello' between (SOF,EOF)". Call this change . 20:50:46 It is "The Old New Thing", according to Wikipedia. 20:50:51 zzo38: indeed 20:50:53 Gregor: Let's say you turned this file into 'hello\ngoodbye'. 20:50:53 ugh this is painful (not the talk, it's interesting, it's what it's making me think about language design 20:50:55 I think I'm starting to conceptualize it here ... in a sense the repository ends up forming an (implicit) lattice instead of a tree. 20:51:02 and for elliott's benefit: ) 20:51:02 Gregor: The corresponding change is "insert 'goodbye' between (,EOF)". 20:51:09 it's one of the better MSDN blogs 20:51:25 Gregor: (In practice, you give a hash to every change and identify changes with that.) 20:51:33 cpressey: heh, those unbalanced parens were worrying me too 20:51:52 Gregor: Changes can also be a set of changes, and in fact the change "changeset {c1,c2}" produces a merge of c1 and c2. 20:51:57 cpressey: is that a talk available online somewhere? 20:52:07 elliott: And so, you don't create false dependencies just because you happened to make a change in one branch, even though it applies to all branches. 20:52:16 olsner: it might be, in the future, but i can't find them online yet 20:52:21 hmm, I'm not quite sure what you mean by that, maybe ais523 knows because he's slept :) 20:52:39 Gregor: The same basic principle with changes on files is applied to directories, except that since directories are unordered, you say "insert into ". 20:52:44 Where can be e.g. an empty directory itself. 20:53:02 elliott: Well, I frequently fix something in hg, then go "aww shit I fixed it in branch but I should have put it in default so that things will merge properly" ... but your changes aren't assigned to "branches", they're just assigned to dependent changes, so fixes like that wouldn't be so affixed to the branch you happened to be working in. 20:53:21 Gregor: yes, it avoids the problem where a VCS doesn't have enough context to know what a chain means 20:53:23 Right, in fact with scapegoat there's not much of an explicit concept of a branch... 20:53:24 *change menas 20:53:27 *change means 20:53:31 In fact all possible changes platonically exist in every repository :-) 20:53:41 (And the One Big Repository has shitloads of branches.) 20:53:44 the definition's done the other way round, a branch is defined by which changes you happen to allow into it 20:53:48 The question is just what you whitelist. 20:53:53 elliott: Well, I would hope that you could label a set of changes in some way, then call that a "branch", just for human convenience. 20:54:03 elliott: Although like I was saying above, if it's a lattice then conceptually there's a shitload of branches. 20:54:07 Gregor: This can also be extended to language-aware changes -- consider "insert argument between and ", where y and z are arguments to some application. 20:54:18 Whoaaaaaaaaaaaaah 20:54:20 *brain axplote* 20:54:44 Gregor: This would produce totally kickass merging, but it would be a pain to get the mode resilient :P 20:54:54 (But really you shouldn't be committing invalid code.) 20:54:56 i don't know what you two are talking about but it is awesome, please continue 20:55:01 cpressey: Scapegoat!!!!! 20:55:13 (Scape🐐) 20:55:29 Gregor: BTW most of this stuff are ais523's ideas, I just kept prodding him with questions until I had a vision of a coherent system in my head :P 20:55:32 *almost all of 20:55:33 i didn't say i wanted to know 20:55:42 cpressey: Unfortunately I must tell you everything. 20:55:43 elliott: Yeah, so I was told :P 20:56:11 elliott: You realize of course that now that I'm starting to have some conceptualization of it, I'll go implement it and trounce your implementation and you'll go "awwww no" 20:56:20 Gregor: Yeaaah, good luck with that. 20:56:30 Gregor: There is a lot more :P 20:56:40 Naturalismo :P 20:56:46 For instance, in a theoretical platonic model, you can define a branch as a predicate that takes a patch and returns whether it's in the branch or not. 20:57:01 (Whether this is feasible or even useful in an actual implementation is up for debate.) 20:57:49 There is a correctness criterion for said predicate, namely that if it evaluates to true for change X, it evaluates to true for all parents of X, and as a result I question the value of defining it so abstractly. 20:57:53 Gregor: Oh, and one of the parts of sg I made was that you can push ANY changes by simply recursive cp. 20:58:18 Gregor: (Assuming a directory-based store.) 20:58:23 (If not, there'll be a trivial command to merge two databases.) 20:58:40 Basically every object in the database is assigned a longcat hash, and things are never addressed without it :P 20:58:45 There is a correctness criterion for said predicate, namely that if it evaluates to true for change X, it evaluates to true for all parents of X, and as a result I question the value of defining it so abstractly. 20:58:47 Define "parent" 20:58:51 I HAVE TO MOVE TO ANOTHER ROOM NOW 20:59:21 no, i'm wrong 20:59:38 so scapegoat is some kind of VCSWiki 20:59:39 elliott: Dependency. I suppose "parent" is a bit of a strong implication for that, but *eh* :P. A change named by the given change. 20:59:48 ... wiki? ... no 20:59:50 with a language for describing changes 20:59:53 cpressey: Mmm, if by VCSWiki you mean nothing like a wiki at all, then yes, absolutely. 21:00:08 i thought Gregor mumbled something about replacing giki with it 21:00:12 no, not giki... 21:00:14 whatever that is now 21:00:16 They do describe thing about broken stack in MSDN Blogs, which is something I have sometimes had problem with too (although I was using gdb instead). 21:00:17 Hackiki. 21:00:21 Gregor: I've been thinking of those as "dependencies", but they are pretty close to parents. 21:00:21 Hackiki. 21:00:24 Yes thank you elliott 21:00:34 Gregor: It's just that most VCSes don't have like fifty parents per change :P 21:00:46 elliott: True :P 21:00:49 So that just means he'd just be dropping the wikiness from his site, I guess? 21:00:55 Gregor: (Consider that every individual line insertion is addressable, as it must be to be referencable in further commits.) 21:00:58 cpressey: I'm talking about replacing one COMPONENT of Hackiki, and sg is just a thought. 21:01:09 Gregor: (An efficient way to store this -- probably inline with some kind of lookup table -- will have to be found.) 21:01:12 cpressey: Hackiki uses a VCS as its store. 21:01:21 (This would cause ridiculous inode blowup, thus why I'm partial to using an object database file.) 21:01:23 Gregor: ok, understood now 21:02:26 Gregor: A nice thing about the "you can literally just shove any two repositories together" thing is that a hypothetical ScapegoatHub can just store everything in one big honking repository and get deduplicative storage of forks for free :P 21:02:52 elliott: Of course, naming the "repository" (in the classic sense) that you want to check out is a bit painful :P 21:03:08 Gregor: Well, a "repository" is essentially defined by its tip commit. 21:03:11 You work backwards from there. 21:03:16 elliott: btw, git starts blowing up at around 30 parents of a commit 21:03:28 Gregor: Note that in the naïve case, checking out an sg commit is slooooooooooooow, because you have to simulate every change back to the beginning of time. 21:03:38 Gregor: A sane implementation would store full copies of files every N revisions or so. 21:03:56 you should be able to uncheckout as well as checkout and it should keep reference counts and should garbage collect changes that no one is using 21:04:05 and with that, bbl 21:04:12 A garbage collect is basically copying the tip and all its dependencies to a new repo, then removing the old one. 21:04:13 Like a copying GC! 21:04:14 elliott: But there are no commits, only changes, so a "tip" commit is artificial on top of that. You can't from any given change (thinking of them as lines for ease) necessarily trace your way back to every other change, since you'd have to trace forwards too ... 21:04:19 Gregor: Commit == change. 21:04:28 elliott: Commit == multiple changes 21:04:30 ais523 defined the tip precisely, I think. 21:04:34 In classical parlance 21:04:47 The oldest commit with most dependencies? 21:04:50 Or was it the newest... 21:04:55 Presumably it would be the set of all changes representing the current view with no dependents. 21:05:01 Basically it's "good practice" in sg to commit two conflicting changes to the tip without merging immediately. 21:05:06 And you don't want either to become the tip. 21:05:14 So you have to be careful with the definition. 21:05:14 elliott: you don't have to store forward deltas though - e.g. git will usually store the head as non-delta, then make older commits deltas of newer ones 21:05:22 (Consider that "conflicting changes" is basically the definition of an sg branch.) 21:05:33 olsner: Indeed, but, eh, that's "implementation details". 21:05:34 olsner: That becomes a bit tricky with this design, it's not so linear. 21:05:50 Right, sg sorta discards conventional notions of time and whatnot X-D 21:05:57 :D 21:06:08 Every possible change exists, and you just pick which ones you like. 21:06:10 -!- zzo38 has left (?). 21:06:15 Usually by making them manually and running "sg commit". 21:06:59 Gregor: An sgfs could, I think, work, but I have no idea what you'd actually expose via it... 21:07:16 A scapegoat repository is essentially a big hash-indexed object store. 21:07:21 There is a correctness criterion for said predicate [...] <-- hm a closed set in a finite topological space... 21:07:26 -!- Mathnerd314 has joined. 21:07:42 oh dear god 21:07:47 ais523: oerjan is now going to ruin our version control system. 21:07:50 Soon it will become topology. 21:08:16 elliott: don't worry, he'll end up getting stuck into trying to work out the theoretical basis behind darcs 21:08:34 THEORY OF PATCHES 21:08:36 -!- cpressey has quit (Ping timeout: 252 seconds). 21:08:39 ais523: He's a theoretical mathematician. He hand-waves over the utterly nonsensicality of his models on a *daily basis*. 21:08:46 ;-) 21:09:42 Gregor: sg was apparently born after the TAEB guy looked into darcs and concluded its merging algorithm made no sense at all, FWIW :P 21:10:06 not the main TAEB guy 21:10:07 I thought it was born after ais523 went "lol VCS sux I'mma make my own" 21:10:19 Gregor: Note that in the naïve case, checking out an sg commit is slooooooooooooow, because you have to simulate every change back to the beginning of time. <-- isn't this like a problem with darcs too, without further optimization? 21:10:20 it was the other person working on TAEB::AI::Planar, which is a side project of mine 21:10:34 oerjan: well, obviously 21:10:40 it's a problem even with CVS in the really naive case 21:10:40 Gregor: I would like to take credit for convincing ais523 that for the time being, the turtles do not have to go down to per-character-change granularity. 21:10:50 (With complete editor integration on every keystroke) 21:10:53 wait, are they still called turtle? 21:10:57 *turtles? 21:11:04 ais523: I was implicitly invoking the all-the-way-down story. 21:11:05 do we really not have a better name for them? 21:11:07 Per ... modified block? 21:11:11 ais523: I'm calling them changes :P 21:11:26 Gregor: As in, every single character insert or removal generates a commit. 21:11:33 It should be noted at this point that ais523 is slightly insane. 21:11:42 elliott: Yeah, but what is the current thoughts on it? 21:11:43 if sg is as general as that would imply, it'd be neat to actually call them turtles 21:11:53 Change = "sequence of modifications with no intervening unmodified character"? 21:11:55 Gregor: Commits happen only manually, and line-basedb y default :-P 21:12:00 *line-based by 21:12:13 Well, commits happening manually is totes acceptable :P 21:12:14 I'm open to non-line-based suggestions, but it's what every VCS uses, and it's hard to merge two changes to the same line. 21:12:25 The ideal solution is language-aware change types. 21:12:32 Gregor: changes are mostly defined recursively as bundles of other changes, although there has to be a bottom level somewhere 21:12:44 elliott convinced me that it's best to be flexible about where it is, depending on what you're versioning 21:13:01 There needs to be a common solution too, you can't integrate every language :P 21:13:08 Gregor: Well, yah. Line-based. 21:13:13 But really, why can't you? There's an Emacs mode for every language. 21:13:16 for the time being we're basing it on lines, as they're the most commonly meaningful 21:13:20 so then there's a bottom level, and it's turtles all the way *up*? 21:13:26 But yeah, this is pie-in-the-sky talk for now. 21:13:30 elliott: I'mma go write a new language HEY WHERE'S MY EMACS MODE 21:13:32 olsner: heh, that's one way to describe it 21:13:42 Gregor: I can ship you a copy of brainfuck-joust-mode if you like 21:13:48 Gregor: Oh, and the SOF/EOF commits created for each file use the file identifier... and the file identifier is just the hash of the {directory-change} that added the file to a folder. 21:13:50 *directory. 21:14:08 Soon it will become topology. <-- finite topological spaces are rather trivial, that "including ancestors" or "including descendants" thing is basically all there is to them. also, this is the same as a finite partial order. 21:14:10 I wrote it in the latest BF Joust spate, in order to get decent syntax highlighting and indentation 21:14:51 Gregor: Oh, and technically the directory change structures would be POSIX-specific at first... mostly because if you cater to working well on Windows, you can't version things like symlinks, and that's incredibly irritating. 21:15:07 I suppose you could translate them to NTFS links or whatever, but at the present time the amount I care about Windows is ~0. 21:15:25 Windows is made of fail, nobody cares. 21:15:31 NTFS links don't work like symlinks anyway 21:15:41 only kind of similarly in certain circumstances 21:15:44 ais523: btw, I really like how sg's merge algorithm can be implemented in a dozen lines in just about any language :) 21:15:48 without even a built-in topological sort 21:16:01 implementing it efficiently is rather harder 21:16:10 Topological sort by dependencies, apply each in resulting order; if any fail, the changeset fails. 21:16:20 but it's got the property of Underlambda that I like: easy to implement, possible to implement efficiently 21:16:34 -!- fungot has quit (Quit: server upgrade time). 21:16:56 wow, that quit message from fungot seemed almost intelligible 21:17:38 ais523: har har har 21:18:45 Gregor: Anywho, implementing scapegoat's basics is really quite trivial, it's making it actually "work" that's significantly more difficult. 21:19:07 I mean, for one, the change-generator needs to recognise moves, replacements, etc. 21:19:18 Gregor: (Note: sg is the only VCS I know of to handle splicing a file properly :P) 21:19:21 elliott: remember we were discussing Paul Levy a few days ago 21:19:27 i.e. splitting x.c into a.c and b.c 21:19:29 he unintentionally gave me some advice on Feather 21:19:33 git, for instance, sees it as renaming x.c to one of them 21:19:36 and creating an entirely new file for the other 21:19:42 in sg, you move both halves of the file out to the new one 21:19:45 then remove the resulting empty file 21:19:46 ais523: heh, nice 21:19:48 ais523: what exactly? 21:20:01 he was explaining the theoretical basis behind continuation-passing-style 21:20:33 "It's all about call-by-push-value, you see." 21:20:45 "And call-by-push-value's theoretical basis is itself." 21:20:55 and I realised that although it's hard to track the control flow of a program when you retroactively modified what it was doing, it's much easier to track it in CPS 21:20:56 -!- cpressey has joined. 21:21:17 (the problem is: if you retroactively modify a program, what in its new execution corresponds to what in its old execution?) 21:21:38 -!- pikhq_ has joined. 21:21:39 elliott: no, it has to be reference-counted, so every repo knows who has cloned what from it 21:21:52 because otherwise it's not insane enough 21:21:58 cpressey: err...certainly. in the wiki, yes. 21:21:59 cpressey: this is meant to be practical 21:22:06 oh dear 21:22:09 -!- pikhq has quit (Ping timeout: 276 seconds). 21:22:42 At least as practical as Haskell!111 21:22:50 in that case i am totally designing a language 21:22:50 Gregor: So what would you actually want out of an sgfs or whatever? 21:23:44 What I want out of FS is the ability to mount a particular revision as a filesystem, make any (or no) changes, then commit as part of unmounting. 21:24:13 I want this to be done without writing to the real filesystem if I don't write to the mounted filesystem, making it potentially faster than just a checkout. 21:24:28 Err, does every page load involve a commit in Hackiki or something? 21:24:36 -!- cpressey1 has joined. 21:24:39 Don't quite see why you want it to support doing nothing so efficiently :P 21:25:14 optimizing the common case? 21:25:22 Yeah, but why would that be common? 21:25:26 (that was an attempt at a joke) 21:25:31 oh 21:25:32 ha 21:25:34 ahem 21:26:06 * Gregor reappears. 21:26:14 Gregor: I am INTERROGATING your usecase. 21:26:18 Like Pythoneerstas do. 21:26:23 elliott: Most pageloads don't involve a commit, I'm optimizing for the NO-commit case. 21:26:26 -!- cpressey1 has left (?). 21:26:30 Gregor: Oh, I see. 21:26:38 elliott: A checkout involves HD write, HD write is bad. 21:27:03 every pageload would mount a FUSE-backed fs...? 21:27:05 Gregor: I'm not sure scapegoat checkout can be very lazy. 21:27:12 I just can't have them all trouncing around in the same repo since one of them MIGHT write. 21:27:15 Gregor: Is it OK if it checks it all out into memory before the mount completes? 21:27:21 (In a realistic sg implementation, this would not take long.) 21:27:31 elliott: Memory is fine. 21:27:39 cpressey: Presently every pageload (modulo caching) triggers a hg clone. 21:27:57 Gregor: What if you had to explicitly tell it to commit on unmount so I don't have to keep track of a dirty flag X-D 21:28:09 elliott: Also fine, I know if it wrote or not. 21:28:34 Gregor: Then that should be pretty easy, really; sg already _has_ a mental model of the entire directory tree. 21:28:47 Gregor: (Fun thing about sg: You can move the / of a repository into a subdirectory of another) 21:28:51 And vice-versa. 21:29:01 So you can move your libvm/ subdirectory out into another repository :P 21:29:33 Gregor: What happens when Hackiki gets a conflict? 21:29:35 Just yells at you? 21:29:54 Gregor: I'm assuming that it always commits from the commit you checkout, not from whatever the tip happens to be when you unmount. 21:30:15 (Multi-process safe writing to object databases, hooray X_X) 21:30:24 elliott: It commits to that, then tries to merge; if the merge fails, too bad, your commit goes away. 21:30:38 Right. 21:31:03 I think sg tends to in theory flag up more conflicts than most VCSes, but in practice it shouldn't matter. 21:31:22 (Purely in that editing the same few lines of a file is likely to mess the ordering up and thus cause a conflict.) 21:31:39 how built is this thing 21:31:48 * Gregor doesn't follow ... 21:31:52 cpressey: In theory, 70%. 21:31:55 In practice, 3%. 21:32:03 In reality, -0.25% :P 21:32:09 No, I implemented some algos. 21:32:23 Gregor: Say you have a file [a, b, c] (those are lines). 21:32:39 Say one commit inserts a line so it becomes [a, b, d, c]; insert d between (b,c) 21:32:57 Say another commit replaces b with q so it becomes [a, q, c]; replace b with q. 21:33:00 These two commits conflict. 21:33:11 Same if two commits inserted a line between b and c. 21:33:17 Those two commits conflict in almost /any/ VCS. 21:33:33 almost? 21:33:42 Mm. I don't really have many experiences with conflicts in practice because I dont work on any large-number-of-developer projects. 21:33:43 Actually, make that every VCS, ever :P 21:33:48 But scapegoat is definitely very anal about its ordering. 21:33:53 I possibly did not pick the best example. 21:34:06 Gregor: OK, how's this for you: 21:34:19 Gregor: In scapegoat, two people can start a repository with a file "foo" in it. 21:34:25 elliott: Think of every major VCS' merging algorithm as just taking two unified patches and trying to apply them both. That's pretty much all you get, with a little bit more cleverness sometimes. If your context changes, you fail. 21:34:28 John can insert [a,b,c] into foo. 21:34:35 Anne can insert [a,b,c] into foo. 21:34:38 They both commit, and try and merge. 21:34:41 In scapegoat, this is a conflict. 21:34:50 No other VCS does THAT :P 21:34:58 I'll bet there's at least one that does! :P 21:35:13 (Because the hash of John's and Anne's changes will be different, because it involves the timestamp, their name, summary, etc. etc. etc.) 21:35:21 gehhh... what does "merge" mean here if that is the case 21:35:29 nothing can be merged, effectively 21:35:33 cpressey: Completely false. 21:35:47 cpressey: The fact is that this is an unrealistic scenario. 21:35:55 Two people never independently reinvent a file from scratch. 21:36:10 Scapegoat is based on blame; merging works based on the common ancestors that identify each line. 21:36:29 ok, whatever 21:36:44 cpressey: No, but really: If foo started off as [a,b] 21:36:48 And John changed it to [a,x,b] 21:36:52 And Anne changed it to [a,b,y] 21:36:58 Then they'd merge successfully into [a,x,b,y]. 21:37:05 Because the a and the b are the asme in both cases. 21:37:26 The thing is that John's and Anne's a, b, and c are different in that above example, because scapegoat doesn't just work on the literal bytes of the line, it works on the change that produces them. 21:37:27 *produced 21:38:06 elliott: and ofc if your users have the habit of doing this sort of thing, it's entirely possible to generate a merge conflict resolution automatically, or automatically-with-confirmation 21:38:14 ais523: Oh, of course. 21:38:20 You should probably slap such users, of course. 21:38:26 indeed 21:38:28 Yeah, clarification, by conflict I don't mean you can NEVER COMMIT THEM EVER :P 21:38:45 In this case, you'd just have to pick one of John's and Anne's a, b, and c. 21:38:54 The decision is essentially arbitrary. 21:39:04 or resolve it any other way you like 21:39:16 so to clarify: when you said "hash of the timestamp, name, summary" you meant of these properties when the file was created, not properties of the change? 21:39:18 Although then commits to Anne's branch wouldn't get merged in properly... but basically this is the least realistic scenario ever. 21:39:23 cpressey: The properties of the change. 21:39:29 cpressey: Every single change is a change. 21:39:38 Of course "add line X between Y and Z" is unlikely to have a summary. 21:39:39 ok, then i still don't understand, but i don't care enough to commit the brainpower to trying 21:39:45 But it'll have the author, and the timestamp in it. 21:39:57 cpressey: Most VCSes have change = author + timestamp + diff. 21:40:08 Scapegoat has patch = author + timestamp + change. 21:40:21 Where change = insert string between patch and patch, delete patch, ..., changeset (set of patch) 21:40:29 -!- Lymia has quit (Quit: ==(>^w^)> ==(> >.<)>). 21:40:33 You almost always commit changesets (implicitly, by making multiple changes). 21:40:42 elliott: you can stop typing if you like-- see my previous line 21:40:48 cpressey: Just trying to help. 21:40:53 me too 21:40:55 he's monologuing in case anyone reads the logs 21:41:13 ais523: I think it might also be for my own benefit :P 21:41:22 And for Gregor's in case he's still listening. 21:41:26 that would make sense, since you're the main consumer of the logs 21:41:28 well, you're an avid logreader :) 21:41:34 gah, cpressey beat me to the joke 21:41:48 -!- Lymia has joined. 21:41:59 I'm the channel's official Historian, I have to be! 21:43:06 Gregor: ...to summarise, AFAICT implementing scapegoat efficiently basically involves lots of caching. 21:43:09 Ludicrous amounts of caching. 21:43:28 ais523: BTW, I was thinking that changes should be signed with the author's GPG key... 21:43:37 With the GPG public key stored in the author object. 21:43:46 And perhaps some sg magic to automatically migrate any seen author objects to a common store. 21:43:55 what if someone's GPG key changes or expires? 21:44:08 ais523: then they become a new person-hash (but the same happens if they change their email, etc.) 21:44:17 hmm, that's acceptable 21:44:27 ais523: maybe there'll be some way an author can give everyone an "i'm this person now" object 21:44:40 or maybe it could just be left for people to work out; it's not a big issue, IMO 21:44:56 ais523: Automatic migration would be a security hole if you first saw an author in a malicious repository though. Anyway. 21:44:59 are we discussing the new dvcs you're making? 21:45:01 You couldn't sign every single change... 21:45:06 because that'd include every single line touched. 21:45:14 But I'm not sure how to do it more granularly without breaking the object-hash structure. 21:45:18 coppro: yep 21:45:27 what are we calling it again? 21:46:13 sg 21:46:16 (= scapegoat) 21:46:27 * iconmaster just noticed that he has invented 27% of the 2011 esolangs. 21:46:41 It's only March :-P 21:46:42 elliott: hmm, if you sign something won't you implicitly be signing all its parents? 21:46:54 olsner: err, no, considering that other people write the parents 21:46:57 although hmm 21:46:57 I'm going to invent MOAR languages 21:47:00 do you mean that it counts as like 21:47:17 "I verify that the authorship information contained in these depended-upon commits is accurate"? 21:47:27 something like that 21:47:29 so then things committed as changesets would just get unsigned constitutents, and the whole thing would be signed as a seal of approval 21:47:31 intriguing idea 21:47:39 the only problem is that, looking only at a subcommit, the system would not know it is signed 21:47:43 without traversing up the graph 21:47:45 which is probably slow 21:47:59 yeah, it's slow unless you make it fast 21:48:24 more caching :) 21:48:32 -!- cpressey has quit (Ping timeout: 240 seconds). 21:48:50 olsner: can't just cache everything, dude :) 21:48:56 why not!? 21:48:59 * iconmaster is writing to Esolang all the languages he hasn't bothered to put down there yet. 21:49:01 Gregor: Well, I think sgfs should be perfectly feasible to do efficiently. 21:49:33 Gregor: I refuse to accept Hackiki's legitimately unless it draws fancy dependency lines in the revision history and has a merge conflict settler interface, though :-) 21:49:42 sgiki. 21:49:51 iconmaster: I should do that sometime 21:50:02 I haven't documented DownRight anywhere, and it's been finished for ages 21:50:14 -!- Phantom_Hoover has joined. 21:50:19 ais523: DID YOU USE MY AMAZING SYNTAX IDEA 21:50:28 what was it? 21:50:33 oh right, syntax 21:50:36 HELLO GUYS I AM BACK 21:50:39 I keep forgetting that languages need one of those 21:50:53 (the compiler I wrote this weekend doesn't have one, you feed it ASTs as an argument) 21:51:09 ais523, that is the best thing ever. 21:51:18 Wait, that already exists. 21:51:22 It's called "Lisp". 21:51:25 Gregor, comment! 21:52:10 even Lisp has a syntax, although a very lightweight one 21:52:40 It's basically just a syntax for serialising ASTs, though. 21:52:48 so is all syntax 21:55:53 Phantom_Hoover: it has quotes 21:56:03 which are something which seem relatively Lisp-specific, in that context 21:56:25 * Phantom_Hoover ponders how one can not have a syntax, then. 21:56:35 just use (quote x) directly 21:56:42 How do you store the ASTs you pass to the compiler? 21:56:55 ((LAMBDA (X) (LIST X (LIST (QUOTE QUOTE) X))) (QUOTE (LAMBDA (X) (LIST X (LIST (QUOTE QUOTE) X))))) 21:56:59 Phantom_Hoover: @. 21:57:00 why is it always ast, why never a general asg :\ 21:57:07 you just construct an ast object 21:57:10 and then pass it to the compiler 21:57:10 easy 21:57:15 oklopol, because how would that even work. 21:57:22 um 21:57:24 lisp is a graph 21:57:34 Phantom_Hoover: u r stupid 21:57:41 '#1=(1 . #1#) 21:57:42 IIRC 21:57:45 I forget the exact syntax 21:57:47 sure 21:57:49 Oh, you mean that thing? 21:58:09 Ahh, right, forgot that conses can have cyclic links. 21:58:26 -!- cpressey_ has joined. 21:58:32 cpressey_! 21:58:42 Have you escaped the Pythonistas? 21:58:46 can you write a lisp loop that's just code that's a cycle? 21:58:49 i mean 21:58:58 without quoting 21:59:00 Lisp is as close to syntax-free as you can POSSIBLY get, although I'll admit that quoting (as opposed to the list constructor) is borderline syntaxy. BORDERLINE. 21:59:26 oklopol, you mean use cyclic conses to loop? 21:59:31 Gregor: Uh. 21:59:32 Forth. 21:59:47 elliott: OK, Forth is definitely less ensyntaxed than Lisp :P 21:59:55 Forth has literally no formal syntax, it's just a system that starts in a mode that: Reads a bunch of letters or digits; stops on a space; executes it; and repeats. 21:59:56 Phantom_Hoover: what else 22:00:02 I doubt it, since Lisp is applicative order (henceforth to be known as boringplative order). 22:00:18 eval would try to walk the entire graph and just get stuck in a loop. 22:00:25 bleh... 22:00:30 that's a bit homo 22:00:32 Although that's a cool esolang idea and one which must be done. 22:00:34 not if you used a special form 22:00:35 i.e. begin 22:00:42 mm but that's ugly 22:00:46 #1#=(begin (display "fart") (newline) #1#) 22:01:15 hihi 22:01:22 such a cute idea 22:01:34 hihihiiiiiiiiiiiiiii 22:01:39 Hmm, would code be able to alter itself? 22:02:59 of course not 22:03:12 I have a feeling that would end up being boring... right. 22:03:12 I suppose, where Lisp is "please hand my your AST as I am too lazy to parse a language", Forth is "please hand me your bytecode as I am too lazy to deserialize an AST" 22:03:17 purely functional 22:03:43 #1#=(set-car! #1# set-cdr!) 22:03:58 #1#=(begin (set-car! (cadr #1#) set-cdr!) #1#) 22:04:31 elliott, let's assume it's not boringplative order. 22:05:02 -!- TLUL has joined. 22:07:20 -!- fungot has joined. 22:07:39 -!- zzo38 has joined. 22:08:27 So, erm, is this going to be a graph reduction language where cyclical graphs are allowed, or...? 22:10:23 just scheme where you can write code with loops with ease + magic 22:11:07 let's not start bikeshedding details like what the language is like. 22:11:20 Hmm. 22:11:46 elliott's two examples are kind of tricky, though, since it's unclear how evaluation proceeds. 22:12:17 badly 22:12:23 literals like that are immutable i think :) 22:13:06 in theory, it should just recursively evaluate children, and apply the function in the parent. 22:13:32 oklopol, which doesn't work because you end up trying to walk an infinitely deep tree. 22:14:16 elliott: so ok. john changes [a, b, c] to [a, e, c]: it has hash 1234. anne changes [a, b, c] (same as john's starting point) to [a, e, c] (same as john's end point): it has hash 8765 (because anne != john). scapegoat merges these in some way that is not based on the contents, i.e, it does not look at e and compare e with e. explain how 22:14:24 er. 22:14:29 each individual element of that list has its own hash. 22:14:35 well yeah but only a COUNTABLY infinite tree, so it shouldn't be that hard ay 22:14:37 which is the important thing. 22:14:40 the list doesn't really exist 22:14:40 which does not contain the author? 22:14:43 um. 22:14:46 yes contains the author. 22:14:51 cpressey_: like i said, there ARE no lines 22:14:53 there are only changes 22:14:58 hash(e, john) == hash(e, anne)? 22:14:58 lines are identified by the commit that creates them 22:15:01 no. 22:15:04 by design. 22:15:13 so these can't be merged afaics 22:15:15 Ooh, Scapegoat! 22:15:22 The awesome thing I don't understand! 22:15:25 cpressey_: not automatically 22:15:30 cpressey_: by the scapegoat auto-merger 22:15:35 This basically sums up half of what happens in this channel. 22:15:40 cpressey_: but you could _trivially_ have a merge handler that just chooses one of two identical nodes. 22:15:41 elliott: what kind of change could be? 22:15:49 cpressey_: any change not like that. 22:16:02 *two people never modify a file in the exact same way*; that's not a realistic user case. 22:16:13 cpressey: No, but really: If foo started off as [a,b] 22:16:13 And John changed it to [a,x,b] 22:16:13 And Anne changed it to [a,b,y] 22:16:13 Then they'd merge successfully into [a,x,b,y]. 22:16:13 Because the a and the b are the asme in both cases. 22:16:21 this is far more representative of how changes are actually made 22:16:55 basically, if two scapegoat commits don't conflict, then they fit together perfectly; otherwise, they might have a perfectly reasonable resolution, but no objectively correct one; what happens next is up to you 22:17:22 ok 22:17:42 that's why i initially asked: what's the definition of "merge" here 22:17:57 cpressey_: merge simply means that (changeset {c1,c2}) is valid 22:18:02 i.e. can apply properly. 22:18:10 you speak in riddles 22:18:12 er, that is 22:18:20 can apply properly to any input that c1 and c2 can apply to. 22:18:23 ask ais523. 22:18:26 i'm no good at the explainy. 22:18:29 successful merge is successful 22:18:37 now, to eat! 22:23:31 -!- cpressey_ has quit (Ping timeout: 260 seconds). 22:25:28 -!- elliott has quit (Ping timeout: 240 seconds). 22:25:34 Bleh, I think Rust may really be better with just immutable and state, rather than immutable, state, gc 22:25:52 How regularly are Phantom Types used in Haskell? 22:29:07 oklopol, so, uh, circuscheme. 22:32:12 How do you have an uncountably infinite tree? 22:32:39 hm 22:32:39 -!- azaq23 has joined. 22:32:57 what would be interesting would be if someone managed to abuse terminology cleverly enough to get an uncountably finite something 22:33:12 Heh. 22:33:17 Weell... 22:33:29 I think it's mutually contradictory 22:33:40 but who knows if someone really cleverly abuses terminolgoy 22:33:44 You can have sets which are countably infinite, but with uncomputable countability, sooo... 22:33:51 true! 22:33:52 Zwaarddijk: it's possible if you don't have the axiom of choice 22:34:01 ais523: ah, this sounds interesting. 22:34:03 tell me more. 22:34:10 as you can have two things that can't be put into one-to-one correspondence with {1,2} because there's no way you can decide which one goes to which number 22:34:14 and you can't make an arbitrary choice either 22:34:27 ah, so cantor's diagonalization breaks down 22:34:44 hmm, that might be one reason why people like axiom-of-choiceless systems 22:34:50 even though they don't seem to correspond to reality too well 22:34:55 ais523, is the arbitrary choice the bit that needs C? 22:35:03 yep 22:35:04 or like, diagonalization gets too powerful, rather 22:36:36 But if you do have C? 22:36:38 (is that the right interpretation?) 22:36:50 Hmm... perhaps you could do something silly with computational equivalence. 22:37:53 Like, you have a set defined as {x : x = f \/ x = g} where f and g are arbitrary functions, and you can't tell if that set has 1 or 2 members 22:39:00 wouldn't that just be an uncomputable set? 22:39:04 I don't see why that would make it uncountable 22:39:12 Yes, it was just a start. 22:39:30 OTOH, is it countable if it's uncomputable? 22:42:44 I don't see why the two things have to have anything in common 22:44:15 Wait, countability is impossible for finite sets. 22:44:36 "Countable" = "is bijectible with N". 22:45:38 -!- azaq23 has quit (Ping timeout: 250 seconds). 22:47:06 -!- azaq23 has joined. 22:47:12 Zwaarddijk, there you go. 22:47:19 Even abuse of notation won't work. 22:47:31 Or, wait. 22:47:35 It *does* work. 22:47:47 Zwaarddijk, conclusion: *all* finite sets are uncountable. 22:48:19 -!- augur has quit (Remote host closed the connection). 22:49:46 -!- poiuy_qwert has quit (Ping timeout: 255 seconds). 22:53:42 *two people never modify a file in the exact same way*; that's not a realistic user case. <-- um what if there's a single, obvious fix to a bug? 22:53:56 -!- ais523 has quit (Remote host closed the connection). 22:53:59 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:54:57 -!- poiuy_qwert has joined. 22:55:40 and you can't make an arbitrary choice either <-- you don't need the axiom to make a finite number of arbitrary choices 22:57:24 "Countable" = "is bijectible with N". <-- countable usually includes finite sets as well, iirc 22:57:36 oerjan, abuse of notation! 22:58:24 what abuse? 22:58:36 To allow uncountable finite sense. 22:58:43 "In mathematics, a countable set is a set with the same cardinality (number of elements) as some subset of the set of natural numbers." 22:58:48 Taking "countable" to mean "countably infinite". 22:59:12 Phantom_Hoover: well without the axiom of choice you can have uncountably finite sets, as said 22:59:32 it's just a bit more complicated than not selecting between two elements 22:59:38 oerjan, you just said you couldn't... how? 23:00:08 the trick is that there are two possible definitions of "finite", which don't agree if you don't gave AoC 23:00:18 Ah. 23:00:22 What are they? 23:00:44 one is "same cardinality as some {1,...,n} where n is a natural number" 23:01:04 same cardinality as == has bijection with 23:01:13 Yes, I know that. 23:01:32 the other is "contains no proper subset of the same cardinality as itself 23:02:14 you can have a set of the second type which has no bijection with any subset of the natural numbers 23:02:51 *without C, presumably? 23:02:58 yes, of course 23:03:55 the axiom of choice allows to keep selecting elements of a set until you either run out or have got a subset matching N 23:05:03 in fact if you _do_ have a proper subset with the same cardinality, you don't even need the axiom to get such a subset 23:06:26 just let f : A -> B be the bijection, let x in A - B, and select {x, f(x), f^2(x), ...} 23:09:17 (mind you the axiom does not allow selecting elements _directly_, you need to prove the corollary of dependent choice first) 23:09:25 *those elements 23:17:35 -> 23:21:17 -!- optbot has set topic: logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D and http://208.78.103.223/esoteric/ | but using small numbers like 4. 23:23:04 -!- wareya_ has quit (Quit: leaving). 23:24:22 -!- wareya has joined. 23:31:31 -!- wareya has quit (Read error: Connection reset by peer). 23:33:16 -!- wareya has joined. 23:40:20 http://en.wikipedia.org/wiki/Aomori_Prefecture 23:40:32 I like the way their symbol is just the province drawn simply. 23:40:39 s/province/prefecture/ 23:41:55 -!- augur has joined. 23:51:23 * Phantom_Hoover → sleep 23:51:35 -!- Phantom_Hoover has quit (Remote host closed the connection). 23:57:08 -!- poiuy_qwert has quit (Quit: Leaving).