00:06:31 OK, I've exported the essay to LaTeX... 00:10:07 TODO: make the display of branches somehow a table. 00:10:59 So, who wants to see the stupidity I make up when scrambling to finish an essay at 12 o'clock? 00:12:17 Yes. 00:13:24 What's that command-line pastebin? 00:13:32 -!- TLUL|afk has changed nick to TLUL. 00:14:38 Ah, sprunge. 00:16:23 http://sprunge.us/SRKV 00:16:45 Advice welcome, since I suspect I'll have to hand this in for some exam or other. 00:22:42 -!- hagb4rd|afk has joined. 00:27:58 hagb4rd|afk: HOW CAN YOU JOIN WHEN YOU'RE AFK, THIS NO SENSE MAKE 00:29:25 oerjan, he joined with his mind. 00:29:31 ooh 00:30:39 Phantom__Hoover: I refuse to review anything other than the originale ssay. 00:30:43 *original essay. 00:31:00 elliott, that is essentially it. 00:31:09 Phantom__Hoover: \author{Phantom Hoover} 00:31:10 I doubt! 00:31:29 I made no alteration to the text other than to change \author from my real name to... NOT GOING TO BE THAT EASY 00:32:00 :D 00:32:05 oerjan: what were those two name possibilities again 00:32:13 Phantom__Hoover: FWIW, OS X has only had Comic Sans as of very recently, and Unix machines rarely ship with it. 00:32:18 So I don't get this "every computer" stuff. 00:32:27 "other operating systems rapidly followed suit" -- no they did not 00:32:31 elliott: wat 00:32:41 elliott, WROTE IT IN 2 HOURS 00:32:50 oerjan: of the two possible names ph can be 00:32:52 or did fizzie get that 00:32:59 FACTUAL ERRORS ARE FORGIVEABLE UNLESS BLINDINGLY CLEAR 00:33:06 * oerjan doesn't recall 00:34:02 elliott, also, it's an ENGLISH essay. 00:34:08 Facts are irrelevant. 00:36:31 You may lie as much as you wish, as long as your grammar and spelling is impeccable. 00:36:48 Which they are! 00:36:55 -!- Wamanuz has quit (Ping timeout: 255 seconds). 00:36:56 Except for the semicolon splices. 00:38:36 -!- cheater00 has joined. 00:39:43 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 00:40:19 -!- hagb4rd|afk has changed nick to hagb4rd. 00:40:43 * Phantom__Hoover → sleep 00:41:26 -!- Phantom__Hoover has quit (Quit: Leaving). 00:41:28 sry oerjan.. i was afk before i quit 00:41:33 Vorpal: http://www.minecraftforum.net/viewtopic.php?f=25&t=128995 00:41:34 Vorpal: yes! 00:41:39 -!- cheater- has quit (Ping timeout: 240 seconds). 00:42:28 but to answer your question: remote control :p 00:43:44 Vorpal: yeah from screenshots this relaly makes everything smoother 00:43:46 *really 00:43:58 ah phantom did it 00:44:04 damn :/ 00:44:05 hagb4rd: what a ridiculous concept! 00:44:16 did whata 00:44:31 concept would go too far 00:44:52 Vorpal: also http://www.minecraftforum.net/viewtopic.php?f=25&t=128043 arbitrary shader mod! 00:45:08 Vorpal: http://img443.imageshack.us/f/screenshot20110108at101.png/ if better light is better light, what is this? perfect light? 00:45:09 lets call it 'the creative moment of superposition' 00:45:36 ME GO TOO FAR! 00:45:48 hahahahahahahahahaaa: 00:45:50 [[Do not distribute anything I've made. This includes the client and the server software for the game. This also includes modified versions of anything I've made.]] 00:45:57 you can't redistribute the minecraft server which is available for free download 00:45:58 :D 00:47:56 kind of inviting 00:48:48 maybe me/you leak on trust for the culture of white man 00:52:06 [pretty nice track: http://www.youtube.com/watch?v=egdOBB-Z16c&fmt=18] 00:53:02 hagb4rd: what 00:53:26 minima lelectro music 00:53:43 feel free to ignore it 00:53:44 http://www.youtube.com/watch?v=7jzsrnTFhyQ I think I prefer this. 00:55:08 Aza's texture pack looks nice... 00:55:08 oh.. u mean my mistranslated thompson quote :> 00:55:15 indeed. 00:55:18 that is what i mean 00:57:34 * elliott tries to flesh out list semantics. 00:58:00 nice1 pikhq :) 00:58:01 A list has a current selection. The arrow keys move this selection up/down or left/right (same thing) the list of focusable children. 00:58:26 The E key can be pressed to cause the current selection to be focused. Before this, the current selection stays as the list's widget. 00:59:06 The current selection's border is blue; other selections' borders are light grey. I might have some extra border colour for "selected and focused", but this is not very relevant, since you could tell by seeing whether there are any highlighted borders inside it. 00:59:42 The D key defocuses the current selection, and returns to the list, with it still selected. 00:59:45 Focusing a number makes it become blue-bordered, say, and then typing overwrites that number. 00:59:57 So e123d, when a number is selected, would turn it into 123. 01:00:49 The + or = key (not sure which) adds a new element after the current one in a list and selects it (but does not focus it, I don't *think*.) 01:01:02 I should probably have an "insert before" key so that you can insert at the top of a list. 01:01:13 If I do, then probably = should be insert after, and + should be insert before, since + is shifted = for me. 01:01:34 So in an argument list, +e123d adds 123 as an argument after the current one. 01:02:04 (Perhaps I should make sure that all examples have the same number of arguments? That could be a pain (although maybe not), but it would be nice if it could do that somehow and... automatically add blank arguments to the others? Not sure.) 01:02:11 Actually, it would be +ie123d. 01:02:28 Since + would take the type in an argument list; either integer (i) or list (l). 01:03:06 So +le+ie123d+ie456d+ie789d adds the list [123 456 789] after the current argument. 01:03:12 Or perhaps e should be implicit after +. 01:03:23 In that case, it would be: (oh, and I'm using + to mean = here, i.e. insert after) 01:03:35 +l+i123d+i456d+i789d 01:03:41 That's certainly nicer, but perhaps more confusing. I'll have to see. 01:03:54 Backspace or something deletes the current selection. 01:04:11 In a set, obviously, everything gets sorted, so no matter where you add an element, it'll move to the right place after you enter the name. 01:04:23 On that note: in a bag, there's an extra type other than i and l, f for function. 01:04:43 But is used in place of d when writing a string. (Perhaps should be a synonym for d everywhere.) 01:05:00 So +fesucc or +fsucc (if e is implicit) adds succ to the current bag. 01:05:03 I like it. 01:05:23 Other things I should probably have: keys to jump to the branch list and bag of the current function, no matter where you are in it. 01:05:35 Also, a command called / which has you type in a function name, press enter, and it jumps there. 01:06:02 I think this could actually work! 01:06:14 Also, s or Cmd+s or whatever saves. Obviously. 01:06:27 Saving will have to exit the current item if it's an integer or string to make sure it gets updated properly... 01:06:41 I should probably also store history here, but I'm not sure how. Maybe just copy the whole thing on every change and store it in memory, the ghetto way. :p 01:11:12 Also also, the focus starts on the program object, which is just a set of functions (well, really a dictionary, but you don't see that). 01:11:36 There, + just takes a name and creates a function. Perhaps it should actually do an implicit "ee", i.e. enter into the function, and enter into the name. 01:11:44 Obviously it would remove it if you try and name a function an existing name or whatever. 01:11:47 Or don't give it a name. 01:13:20 http://www.minecraftforum.net/viewtopic.php?f=31&t=11997 The Minecraft Society of Blowing People's Chests Up. 01:13:25 I wholeHEARTEDLY approve. 01:15:09 http://www.reddit.com/r/Minecraft/comments/ez76j/living_underground_playing_minecraft_in_moleman/ 01:15:15 I really want to do this as a two-person SMP thing. 01:15:19 Maybe I'll convince PH. 01:48:59 ...so basically, I keep a list index (or object references for sets? Or for everything? I have no direct object duplicates... eh, TODO: figure this out.) in each list object. 01:49:08 And make sure it all gets highlighted and have bindings to move around that list. 01:49:14 Then I just have a binding to focus the current index/whatever. 01:49:28 Each widget itself has a key to focus its parent, which accomplishes "going up" one, i.e. exiting (d). 01:49:32 (And ). 01:49:36 (And perhaps .) 01:49:38 *.) 01:49:43 Yeah, this could work. 01:50:09 Obviously integers just have to snarf the keys 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and - when they're focused and do the obvious (*10)+. 01:50:16 Although - might require some trickery. 01:50:26 Maybe I should keep it as a string until the whole integer's written. 01:50:29 Or maybe not. Whatever. 01:53:10 hello 01:54:13 -!- TLUL has quit (Read error: Connection reset by peer). 01:54:45 -!- TLUL has joined. 01:57:14 [["We" don't make us Ninjas or Rockstars - we still have the notion of "Monks". You might think this is stupid - on a cultural level you're basically comparing living the boheme with celebacy - guess what speaks to 01:57:14 people?]] 01:57:16 this is the silliest article ever 01:58:56 "Ah Perl, a ... weapon ... from an ... age." —reddit 02:02:41 http://www.youtube.com/watch?v=D1sXuHnf_lo Deldo, teledildonics for Emacs. WJW. 02:03:58 Oh god he's having sex with Steve Yegge via Emacs. What is this. 02:06:01 bahahaha networked teledildonics 02:07:53 He's proposing teledildonical eugenics to wipe out vi. 02:11:12 -!- luatre has quit (Remote host closed the connection). 02:11:15 -!- elliott has quit (Remote host closed the connection). 02:23:18 -!- TLUL has changed nick to TLUL|afk. 02:31:17 would a language that does a random walk among all its instructions (and otherwise TC) be considered TC because it will *eventually* perform whatever it is that you actually intended 02:36:12 well that sounds like it would be an infinitely long computation, wouldn't it? and defining what it means for infinite computation models to be TC is very subtle 02:37:05 the thing is that you need some kind of output translation algorithm to look through the actual random walk to say what the final result is 02:38:12 and the question is then, is it your random walk or the output translation that is doing most of the _real_ computation? 02:39:11 this is a problem for such things as rule 110 cellular automaton and that minimal turing machine which ais523 proved 02:42:33 both of which require an infinite setup which calculates forever 02:42:45 variable: ^ 02:44:06 rule 110 cellular automation ? 02:44:09 * variable googles 02:44:51 also to be nitpicking, theoretically TC should always be about computing a result somehow, whether it is also performing "actions" is fairly irrelevant 02:46:23 for the other one see http://www.wolframscience.com/prizes/tm23/solved.html 02:46:24 oerjan, so my question should have been "since it will eventually compute whatever it is you intended" 02:46:36 ps - nitpicky is good for me - it helps me learn 02:46:50 variable: well you see you have to have some way to decide on _one_ result to get out of it 02:47:29 (warning, everything wolfram is embedded in an ocean of hype) 02:49:48 it might compute as many other things it wants, but at the end you have to have a way to choose, and if that way is itself too computationally complex it is too easy to cheat 02:50:24 oerjan, so what your saying is that the chooser itself becomes what becomes TC so the random walk doesn't matter 02:50:47 that can happen yes. although sometimes there is a combination. 02:52:33 for the rule 110 automaton you need infinite setup and extraction of result but each of those is essentially still a finite state automaton (i think) 02:53:21 so in some sense they're still "simple" 02:54:54 for the 2,3-turing machine case the setup is even more complicated, and there was a debate about whether it was simple enough 02:55:55 (i recall ais523 telling that the output extraction was still a very simple check) 02:56:11 ah 03:51:37 -!- pikhq has quit (Ping timeout: 276 seconds). 03:52:04 -!- pikhq has joined. 04:03:50 o 04:04:58 i think ive started to understand how continuation based backtracking works 04:04:58 :T 04:09:00 -!- TLUL|afk has changed nick to TLUL. 04:10:27 -!- hagb4rd has quit (Ping timeout: 240 seconds). 04:11:37 -!- azaq231 has joined. 04:11:39 -!- azaq231 has quit (Client Quit). 04:11:50 -!- azaq231 has joined. 04:12:04 -!- azaq231 has quit (Changing host). 04:12:04 -!- azaq231 has joined. 04:13:05 -!- azaq23 has quit (Ping timeout: 276 seconds). 04:15:38 here's my essay about comic sans: "Comic Sans is not monospaced, nuff said." 04:16:17 "Comic Sans is not monospaced", Nuff said. 04:16:56 * pikhq finds it funny how bad people are at driving in snow. 04:17:18 "Oh my god there's half an inch of snow! I CAN'T DRIVE!" 04:17:25 (for you non-Americans, that's 1 or 2 cm) 04:18:50 1.27 04:19:33 oerjan: Ballpark figures get ballpark conversions from me. 04:20:05 1.270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 04:20:19 The 0s are irrelevant digits! 04:20:25 -!- poiuy_qwert has joined. 04:20:33 YOUR digits are irrelephant! 04:20:34 augur: congratulations 04:20:38 An inch is *defined as* precisely 25.4e-3 m! 04:20:48 i know. 04:20:53 oklopol: :D 04:20:54 <3 04:20:56 that was sort of his point 04:21:25 Bah. 04:21:45 Anyways. 04:21:55 I actually saw people *parked on the side of the road*. 04:22:21 what's the significance of that, said the foreigner? 04:22:40 do americans only use fancy big parking lotw 04:22:41 *lots 04:22:51 oklopol: Their thoughts were "Oh fuck it's too bad I'm going to wait this out". 04:23:02 oh like just a random road 04:23:09 oklopol: Meanwhile I'm driving by at ~45 mph (~70 kph). 04:23:19 i suppose that's sort of the definition of road 04:23:49 we rarely have half an inch of snow on the roads because people drive about as much as in the summer 04:24:11 well. probably much less, but you don't need that many cars to remove the snow. 04:24:32 It happens when it's snowing pretty well, and it's evening. 04:24:42 i suppose it might 04:24:46 i don't actually own a car 04:26:13 should prolly go to uni and try to study a bit 04:29:14 oerjan: i think i now understand the green's stuff completely, the lemmas are just because you first prove that there is a kind of inverse element for each *pair* of identity elements in the same D class, for D = L \circle R (an eq relation), that is, for each x, eRx, fLx where e and f are idempotents, there is a unique fRyLe such that xy=e, yx=f 04:29:48 which is actually pretty easy, but you have to guess what y is, by building it from the elements used in the implementations of L and R relations 04:30:04 with the same meaning of implementation as i used yesterday 04:30:43 so xRy ~ xs = y, ys' = x would mean s and s' implement the relation, not sure that's a good term but anyhows 04:31:25 and the really complex looking lemma i listed yesterday is actually very simple when you think of it in terms of these diagrams representing D classes 04:32:31 D = R \circle L so have R classes as rows and L classes as columns, then what the lemma says, or on of the things, is that if left multiplication takes an element in an R class a to another R class b, then actually the whole class a is bijected onto b 04:33:18 -!- hagb4rd has joined. 04:33:49 and L classes are preserved when multiplying a's elements from the left (by that element we chose), since well obviously because there's another element whose multiplication from the left inverts the operation 04:33:50 well 04:34:10 it's not really very clear this way either, but trust me, it's clear when you draw a diagram and move your fingers along it! 04:35:41 anyhow so in short, H classes within one R class a are bijected onto H classes of the other R class b, if you multiply from the left by an element implementing the L relation between two elements x \in a, y \in b 04:36:31 i think i'll run away screaming now 04:37:00 :D 04:37:22 the stuff in the inverse semigroups chapter is waaaaaaaay more complicated 04:38:13 i'd love to rant about it but 04:38:19 i should probably read it once more 04:38:26 and to do that, i should probably leave 04:38:43 anyway in short: 04:38:59 inverse element of x is y such that xyx = x, yxy = y 04:39:08 inverse semigroup = all have unique inverses 04:39:30 in short my brain is not capable of this stuff today 04:39:47 the trace of a congruence is the restriction of it on the semilattice of idempotents (nontrivial that it's a semilattice, essentially needs the same proof we spend hours on back when) 04:39:51 :D 04:39:59 well i don't really care! 04:40:03 so umm 04:40:04 where was i 04:40:10 yeeeeeah 04:40:13 as long as you don't mind speaking to yourself 04:40:17 now for each congruence on an inverse semigroup 04:40:26 well you might not be listening, but others might! 04:40:32 :DDDDDDDDDD 04:40:34 anyway so 04:40:41 SUUUUURE 04:41:33 http://www.ninjapirate.com/newcomputer.html 04:41:36 let p be a congruence, we can define p_{min} = complicated shit; then we can prove, using a page of dense impossibl- to-understand algebration, that p_{min} is the smallest congruence with the same trace 04:41:39 same for p_{max} 04:41:57 and that's the greatest sexiness eva 04:42:45 such a uniqueness of minimul suchness is not the case for all regular semigroups 04:42:58 and in the case of groups, that is an empty definition 04:43:04 as is usually the case in semigroup theory 04:43:11 which is essentially the theory of idempotents afaiu 04:43:36 okay rant over, you don't have to feel bad about me wasting my time anymore 04:43:53 YAY 04:53:22 -!- pikhq has quit (Ping timeout: 250 seconds). 04:56:38 i'll continue after the exam, try to get your brain up and running with puzzles and shit while i'm gone k?! 04:58:10 NEVER 04:58:22 :((( 04:58:31 ok MAYBE 04:58:50 :P 04:59:26 i should actually try to clean up this place, i moved about a week ago, and i still haven't moved a single object 04:59:32 well, maybe like 5 objects 04:59:33 anyhow -> 04:59:36 i mean 04:59:40 should do that today 04:59:48 good luck on the exam 04:59:52 so it's possible i won't be here all day 04:59:54 thanks 05:00:02 apparently it's super hard 05:00:05 i mean 05:00:08 -!- Wamanuz has joined. 05:00:25 according to the guy who deduced how clue works from ski 05:01:25 but i'm sure i'll manage with 5 hours of sleep 05:02:12 -> 05:07:53 My new favorite game is Super PSTW 05:08:10 we'll have to update shutup then 05:08:16 * oerjan ducks 05:08:17 * Sgeo was joking 05:08:31 * oerjan has no idea what Super PSTW is anyhow 05:08:38 http://www.newgrounds.com/portal/view/495903 05:11:27 -!- pikhq has joined. 05:14:38 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 05:18:04 -!- pikhq has quit (Ping timeout: 250 seconds). 05:59:35 Oh no 05:59:40 Mercury 06:00:16 The Evil Planet 06:00:28 or wait, uh uh 06:01:00 _definitely_ time to update shutup 06:01:50 oerjan, it will need to be provided with an AI capable of determining when I'm expressing an interest in something new. 06:02:15 sounds plausible 06:05:12 Well, this sounds like a lot of redundant typing that Haskell eliminates via the IO monad 06:05:20 -!- Wamanuz has quit (Ping timeout: 264 seconds). 06:05:47 [Mercury IO predicates manually take in and give back the state of the world] 06:06:22 " 06:06:22 Naming all these intermediate states quickly becomes tedious, so Mercury 06:06:22 provides us with syntactic sugar in the form of state variables" 06:06:23 Oh good 06:10:29 I'll look at it in more detail tomorrow 06:10:37 Just got confused by a line that looks backwards 06:14:02 -!- FireFly has joined. 06:27:10 -!- oerjan has quit (Quit: leaving). 06:32:08 -!- TLUL has changed nick to TLUL|rlybusy. 06:33:14 -!- Wamanuz has joined. 06:51:42 -!- oerjan has joined. 07:01:29 -!- Zuu has quit (Read error: Connection reset by peer). 07:01:40 -!- Zuu has joined. 07:05:10 -!- zzo38 has joined. 07:07:25 Quick! Everyone count to zero! 07:07:32 -!- zzo38 has changed nick to Quick_Everyone_c. 07:07:34 -!- Quick_Everyone_c has quit (Client Quit). 07:08:11 at last a request we can fill 07:12:30 i didn't do it though. this isn't #irp 07:12:46 yes you did. 07:13:14 you lie. 07:13:32 watch me count to zero again: 07:14:28 > [1 .. 0] 07:14:28 [] 07:14:32 -!- Wamanuz has quit (Ping timeout: 240 seconds). 07:14:51 he didn't say to start counting at 1 07:14:59 most computer scientists start at zero 07:15:03 that's the default duh 07:15:05 and that requires counting at least zero 07:15:37 ...you show me an average computer scientist who starts at zero when counting actual items 07:16:14 he didn't ask anyone to count actual items 07:16:32 stop making up arbitrary situations where you're right and i'm not :P 07:16:42 *MWAHAHAHA* 07:19:07 oerjan, me, out of habit, on occasion 07:19:25 *counting chairs to remember where I sit* 0, 1, 2, 07:19:27 Sgeo: I SAID AVERAGE 07:19:41 supergeeks don't count 07:21:01 i have an annoying bug or something that is pissing me off. my microSD card unmounts always and only when i copy files to it 07:21:06 * oerjan reads up on the no true computer scientist fallacy 07:21:13 ^ lie 07:21:14 creating files on it is fine, copying files from it is fine. 07:21:38 i want to punt it but then i'd lose it...it's too small 07:22:03 * oerjan suggests cat > 07:22:19 * quintopia tries 07:24:57 still fails and unmounts but takes longer in doing it 07:25:04 huh 07:25:24 what about touch followed by cat >> ? 07:25:34 (FOR SCIENCE!) 07:26:20 failed fast again 07:26:35 does the size of the file copied matter? 07:26:36 (the touch worked though) 07:26:48 well, i tried a pretty small one and it failed 07:26:54 let me try an uber small one 07:27:47 alright, a 4byte file copies fine 07:28:54 How about a slow-speed write with something like perl -e 'open IN, "<:raw", "/input/file"; open OUT, ">:raw", "/output/file"; while (read IN, $data, 512) { print OUT $data; sleep 1; }' -- that's half a kilobyte per second. 07:29:55 apparently half a kilobyte is too big 07:30:08 is that the block size? 07:30:12 i just tried to echo 10 lines of t's into a file and it failed 07:30:34 what happens if you echo >> 10 times? 07:32:23 it appears to fail as soon as the file reaches a certain (extremely small size) 07:32:29 lemme try again slower 07:33:21 i'm just wondering if it's absolute file size or just amount written in one go 07:34:10 apparently if i wait long enough between appending 80 or so bytes at a time i can make big files 07:34:19 heh 07:34:38 * quintopia tries the perl script with a 80 byte rate 07:34:40 oh so it's not enought to close in between, you have to wait? 07:34:51 yep 07:35:03 echoing really quick in a row still breaks it 07:35:20 You could try echo + sync + echo + sync; though that sort of thing is probably going to wear out the card quicker. 07:35:31 They have to always erase a full block when writing, after all. 07:36:08 odds are it's an issue with the card reader 07:36:23 i know the card is fine 07:40:15 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 07:40:49 -!- Phantom_Hoover has joined. 07:41:34 * quintopia is now writing a file at 40 bytes/sec >_> 07:42:57 now if this slow speed means it syncs so that it does that erase a full block everything thing... 07:43:20 *everytime 07:43:24 yeahhhhhhhhhhh... 07:43:36 just for science anyway 07:45:43 What're you doing? 07:46:29 running fizzie's perl script 07:47:55 Phantom_Hoover: MINDLINK. I had committed-and-pushed a (very preliminary probably broken) //save command (which saves the so-far received block data, sans signs, furnaces and chests, into a hopefully Minecraft-compatible world-dir) about an hour before you had that feature request. 07:47:57 * oerjan discovers r/inglip 07:48:40 fizzie, HOW DARE YOU STEAL MY THOUGHTS BEFORE I EVEN THINK THEM 07:48:52 If it's any consolation, it probably doesn't work. 07:49:46 * oerjan wonders if he is witnessing the birth of a meme 07:50:15 I've only tried the resulting world with pynemap, and, well, http://zem.fi/~fis/pynemap.png -- there's a bit of it that's missing. 07:50:40 Also the lighting values are likely to be very worng. 07:51:06 And the heightmap I know is mirrored over the x=z line. 07:51:34 (The heightmap is used as a speedup for computing the final light values from block-light and skylight, or some-such.) 07:51:58 oerjan, inglip? 07:52:55 the perlscript expt failed 07:53:07 Phantom_Hoover: http://www.reddit.com/r/fffffffuuuuuuuuuuuu/comments/eybba/dark_captcha_magic/ 07:53:16 fizzie, it's good enough for my plot to blow up Mt. Vorpal locally. 07:53:31 -!- azaq231 has left (?). 07:53:51 and of course http://www.reddit.com/r/Inglip/ 07:53:52 Phantom_Hoover: You shouldn't say stuff like that before actually verifying whether it works in the actual game at all. 07:54:16 oerjan, ah, it's Zalgo 2.0. 07:54:22 fizzie, I WILL 07:54:27 Phantom_Hoover: possibly 07:54:39 hm i guess that means it may have troubles competing 07:55:22 Zalgo does have something of a monopoly on the field of memetic Lovecraftian horrors. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:01 this Inglip seems a teeny bit reluctant though 08:02:24 *this Inglip daemon 08:02:26 -!- FireFly has quit (Quit: swatted to death). 08:03:57 fizzie, I'll try out the saved world now... 08:05:30 Phantom_Hoover: It is possible you may fall into your death. 08:06:08 I'd have tried it myself, but I always get queasy when there are glitches in 3D-y games. 08:06:27 fizzie, I can confirm that it does indeed work. 08:06:40 Oh no! Wait, what? Where's the "not" in that sentence? 08:06:41 I spawned on Mt. Vorpal, and I saw the skyway in the distance. 08:07:13 Then what happened? 08:08:02 The experience must've been so horrible, it robbed him of the power of speech. How tragic! 08:08:12 Heh, it even captured the front half of nailor's cabin. 08:08:17 It looks a bit forlorn. 08:08:42 How's the lighting? 08:10:15 Fine. 08:10:21 Weird. 08:10:29 Although I only explored the overground bits. 08:11:04 At this point I just want to load hMod locally and give myself a load of TNT. 08:11:35 You can server-command-'give' yourself 64 blocks of TNT even without any hMods. 08:12:01 The //save-enabled mcmap build will use 2.5 times as much memory as the normal version, which is a bit of a shame. I should possibly do the whole "persist far-away chunks to file" thing the usual client does; then there wouldn't be a separate //save, it'd be intemagrated. 08:13:02 use mmap:ed memory for everything? :> 08:13:37 fizzie, yes, but I want to turn health off. 08:14:25 olsner: Just plain old data-structure dumps won't be combattible with the official client on-disk formats, unfortunately. 08:14:58 well, yeah... unless your memory format is compatible 08:17:06 The NBT thing it uses is a bit uncomfortable to work with. 08:17:10 Oh, and it needs to be gzipped. 08:21:22 oh, screw that then :) but you can always build converters from your format to official-client format 08:41:46 -!- wth has joined. 08:46:20 -!- wth has left (?). 08:57:48 Huh. Dynamite disappears after a short time, and doesn't do anything when punched. 08:59:46 Only happens in some chunks. 09:12:31 -!- wth has joined. 09:13:13 -!- wth has quit (Remote host closed the connection). 09:13:35 -!- wth has joined. 09:14:30 -!- wth has quit (Remote host closed the connection). 09:18:18 -!- GreaseMonkey has quit (Quit: ilua). 09:22:44 fizzie, your house is next. 09:23:35 I just hope you don't get confused, accidentally connect to the real server, and then explode the *beep* out of it. 09:28:26 fizzie, I don't have 5 stacks of dynamite on the real server. 09:28:59 Also, the amount of TNT I used on your house seems to have broken the world... 09:31:22 So this is how the world ends. 09:37:29 Not with a bang but with a NullPointerException. 09:49:27 -!- quintopi1 has joined. 09:50:10 -!- quintopi1 has quit (Client Quit). 10:20:41 Heh, look at this: http://goo.gl/4yVWN 10:21:14 * TLUL|rlybusy has ruined breakfast for some of you 10:24:50 I have HAD breakfast, fool! 10:25:50 it's 5:30, fool 10:26:07 europenub 10:30:01 12:30, more like. 10:40:30 10:38! 10:43:23 -!- copumpkin has quit (Ping timeout: 240 seconds). 10:43:59 -!- copumpkin has joined. 10:44:01 -!- copumpkin has quit (Changing host). 10:44:01 -!- copumpkin has joined. 10:50:05 fizzie, oh it saves now? excellent. 10:50:48 It seems to sorta-work for some purposes, but it's all reasonably experimental still. 10:51:26 fizzie, how does one enable this saving? 10:52:38 There's just a command to dump the currently-in-memory world into a directory. "//save" (which uses "world" in current dir), or "//save dir" if you want to specify where it goes. 10:53:06 fizzie, also how comes that part of the --help output is localised to Swedish? 10:53:17 That's from glib. 10:53:19 ah 10:54:26 fizzie, hm is it able to dump a larger area than that which the server lets you see at a single point in time? 10:55:21 It dumps whatever you have seen during the "session". 10:55:30 ah nice 10:56:45 I'll probably make it also load an existing dump and in general auto-persist the world on disk at some point, in order to reduce memory use for long-running game sessions where you wander around far and wide. 10:57:07 (Plus that way you'll have the map from the previous session as "background"; should probably shade it or something to indicate it may be out-of-date, though.) 10:57:33 fizzie, might be a good idea to be able to turn off this tracking in case you don't want that memory overhead. Like when I play on my local test server. 10:58:18 There is currently no way for it to forget any chunks, but there probably should. 10:58:51 fizzie, any way to tell when it finished saving? 10:58:58 oh wait, there it comes 10:59:05 (that took some time) 10:59:12 Yes, it's suspiciously slow. 10:59:14 Vorpal, http://imgur.com/3Wjwh 10:59:44 Phantom_Hoover, well it is your local copy. As long as it doesn't happen on the actual server. *shrug* 11:00:14 * oerjan has a feeling Vorpal wasn't supposed to have noticed that :D 11:00:24 Phantom_Hoover, I did read scrollback :P 11:00:30 I have since corrupted the copy, though. 11:00:30 err 11:00:31 oerjan, ^ 11:00:46 Phantom_Hoover, hm? 11:01:14 Vorpal, I used an insane amount of TNT on fizzie's place and it corrupted the world data after crashing the server. 11:01:27 Phantom_Hoover, ouch. 11:01:39 Phantom_Hoover, did you find fizzie's hidden chest by any chance? 11:01:59 Phantom_Hoover, another question: do signs and such things work? Chests? 11:02:07 or do you get empty signs and chests? 11:02:11 Vorpal, no, although I did find two of yours. 11:02:18 They're empty, though. 11:02:35 (Although I still looked inside them on the actual server.) 11:03:26 Phantom_Hoover, I don't care what you do with your local copy as long as you don't steal anything on the actual server and don't mess it up there either. 11:04:15 Phantom_Hoover, notice I have never messed up your place so far, so I assume you won't mess up mine. :) 11:04:41 I'll be picking apart fizzie's house soon, though/ 11:04:53 Phantom_Hoover, not on the actual server I presume? 11:05:00 Chests will be empty, and signs will be gone completely. 11:05:10 Also furnaces should disappear. 11:05:18 (For some values of "should".) 11:05:25 Possibly just their contents. 11:05:28 maybe we need an extension like realms or similar. I hope we don't 11:05:34 fizzie, they still exist. 11:05:40 Okay, then it's just their contents. 11:05:55 fizzie, what about crops? 11:06:01 Those should be there. 11:06:14 fizzie, but isn't the growth stored as aux data? 11:06:18 do you track that? 11:06:24 Yes, nowadays. 11:06:27 hm 11:06:44 You can compile-time disable that, though it will also disable //save. 11:06:51 mhm 11:09:25 What will not be stored in the //save dump are Entities (mobs, items, paintings, vehicles, primed TNT and currently falling sand) and TileEntities (furnace and chest contents, signs, mob spawner details). 11:09:43 fizzie, wait, paintings are entities!? 11:09:51 that explains why they don't work on SMP 11:12:27 fizzie, FWIW, test 2 of //save was far less positive. 11:12:35 Phantom_Hoover, what happened? 11:12:42 It's a jumbled mess of saved chunks and generated ones. 11:13:00 fizzie, btw: any progress on the surface-and-heightmap corruption bug? 11:13:11 Phantom_Hoover, huh, did you save before everything loaded? 11:13:27 Dunno. I'll retry... 11:13:33 Vorpal: Not really. I stared at it, but didn't figure it out. 11:13:46 Yes, it's probably best to wait that the situation is "stable". 11:14:21 The hashmap walk will probably fail in the middle of the save (silently, to boot) if it's modified (read: chunk-update for a so far unseen chunk) during the save. 11:15:45 Except that saving and updates are done by the same thread, so that shouldn't happen. 11:15:45 fizzie, that must happen a lot since the save takes like 20-30 seconds? 11:15:47 OK, I have a nice square area. 11:16:28 Saved it, will start blowing stuff up. 11:16:55 have fun in your local copy 11:17:50 Phantom_Hoover, remember that you only need 5000 TNT going off at once to blow up one obsidian! 11:18:48 Phantom_Hoover, to make sure they go off at once I suggest redstone wiring. Be sure to time them right when it comes to inverters (so every TNT have the same number of inverters on the path to it) 11:19:19 however I'm not sure what this will do to the server 11:19:31 fizzie, is door position saved btw? 11:19:36 Erm. Some chunks have spawn-like protection on them. 11:19:54 Phantom_Hoover, well, where is your local spawn then? 11:20:10 Phantom_Hoover, presumably the area around that spawn is protected 11:20:20 That doesn't really explain it; some other chunks are unprotected. 11:20:27 Er, *protected. 11:20:31 Phantom_Hoover, huh 11:20:43 Phantom_Hoover, do you have admin rights on your local hmod server? 11:20:59 No, but again, that doesn't explain *why* they have the protection. 11:21:14 And I got another world-destroying NullPointerException. 11:21:18 Phantom_Hoover, any weird plugins? 11:21:32 Phantom_Hoover, I assume you made a copy before starting the local server? 11:21:36 if not do that for the next time 11:21:39 Phantom_Hoover: The world spawn position may be set to something rather weird. 11:21:58 fizzie, such as? 11:22:22 Well, it's supposed to be set to wherever you appeared first when connecting. 11:23:01 (I just took the first PLAYER_MOVE packet sent by the server.) 11:23:54 fizzie, hm 11:23:55 I should probably take the last seen SPAWN_POSITION packet. (Currently I don't look at those at all.) 11:24:19 Though then it'd be the regular spawn, which might easily be outside the //save'd region. 11:24:27 Well, I think I found fizzie's secret chest. 11:24:28 Possibly I could just use player position at //save time. 11:24:42 Phantom_Hoover: In the house or in the bunker? 11:24:50 fizzie, in the house. 11:24:57 Then it's empty on the real server too. 11:25:05 Well, I detonated a TNT charge in it and I found a chest. 11:25:08 based on checking with the interactive map viewer minutor (rather good, and very quick and responsive) the dump I made worked fine 11:25:15 TIME TO SEE HOW THE BUNKER HOLDS UP 11:26:07 Phantom_Hoover, the TNT room will hold up just fine. And in case of nuclear war I have always planned to block the door up with obsidian. (since steel door won't last for long against TNT) 11:26:44 fizzie, does the server send the random seed to the client or? 11:26:52 Well, I just got into the bunker without even bothering with the doors. 11:27:02 The storeroom is ridiculously easy to break into. 11:27:21 Phantom_Hoover, fizzie's bunker you mean? 11:27:22 yeah 11:27:43 Yes, it's like single block of stone and one layer of dirt. 11:27:47 And yes, the random seed is sent. 11:28:10 btw it seems you can get bedrock holes again in recent versions 11:28:27 you know those underground lakes? And lava lakes at non-standard altitudes? 11:28:43 Yes, I've heard you can get a lake over bedrock. 11:28:47 they can result in holes in the bedrock when they end up at a suitable altitude for that 11:29:07 Re the random seed, you'll of course get post-halloween map-generation even on blocks that would be pre-halloween on our server, if they don't end up in the //save-dump. 11:30:16 I didn't have mcmap when I started with the bunker, which sort-of explains why it's so near the surface. Didn't bother thinking about where I were inside the mountain. 11:30:35 That's also the reason the storage room is L-shaped; I was making it a long I-shaped one, but I hit the mountain wall. 11:30:58 heh 11:32:55 fizzie, an idea for mcmap which would be cool but is not really high priority: ability to load an image and overlay it on terrain with, say, 25% alpha or such. Perfect when you are doing mega-engineering. Currently I did this with cartographer + gimp but cartographer takes ages. 11:33:40 it is also useful to check that you did indeed get it right between the point of planning it and it being finished. So you can check the dimensions halfway 11:34:41 (still the map corruption bug is more important than that idea) 11:34:46 (way more important) 11:36:45 Mhm, well, sure; that could be done. 11:37:06 fizzie, found it. 11:37:14 In the cactus farm? 11:37:24 Phantom_Hoover: Well done. Though blabbing on-channel is a bit impolite! 11:37:40 Now someone will steal all my treasureres. 11:37:45 THAT WAS A LIE I FOUND NOTHING 11:37:46 fizzie, let me tell you that it would be a sanity saver when working on a 200x200 sized structure. :P And so would fixing the corruption bug when working on the upper parts of said structure 11:38:22 fizzie, really it was quite easy to find it already with mcmap 11:38:51 fizzie, I had a hunch it was around there since some time when I had mcmap in mode 2 when visiting you and noticed a 1x2 black thing in the wall 11:45:16 Death to the subtree! 11:46:52 Well, for the hell of it, I'm going to send down a 5x5 raft of TNT. 11:47:04 This will probably break the server. 11:47:04 Phantom_Hoover, raft? 11:48:35 Well, that's that. 11:53:27 -!- TLUL|rlybusy has quit (Quit: *disappears in a puff of orange smoke*). 11:54:56 hm is the area around spawn never unloaded on servers? 11:55:17 if so that is the perfect place to place some redstone stuff that should run all the time 11:57:15 "NOTE: This event is not suitable for undergraduate students". I wonder what sort of DIRTY PORNOGRAPHY they're going to show in this three-hour MathWorks-given "Programming Techniques to Speed up MATLAB/Parallel Computing with MATLAB/Symbolic Computing with MATLAB" seminar. 11:57:18 What like? 11:58:47 fizzie, you have a rather strange mind. Personally it seems perfectly innocent to me. Just meaning "this is too technical for that group" or such 11:59:37 There's no chance whatsover that a three-hour PR session is going to be "too technical" for undergraduates; there must be another reason. 11:59:56 fizzie, PR? 12:00:27 They're not going to come here just out of a desire to be helpful. 12:00:38 fizzie, are you going to go there? 12:01:04 I don't know. It's three hours I'd never get back; and ineiros attended the previous one and I think it was a bit "meh", IIRC. 12:01:18 ah 12:01:40 On the other hand, there's a half-hour "Break", which might include free cookies. 12:02:49 On the third hand, I didn't know people were actually doing symbolic stuff with MATLAB; that smells a bit desperate to me. 12:03:52 Apparently they've (MathWorks, that is) bought a symbolic algebra company and "integrated" their product as a MATLAB Toolbox now. (Well, now == 2008 in this case.) 12:03:58 (Cf. http://en.wikipedia.org/wiki/MuPAD) 12:07:39 heh 12:07:53 fizzie: They had some useful advice. 12:08:18 ineiros, hi there 12:08:30 fizzie: Though you could get 85% of the information in 15 minutes by reading the slides they provided. 12:08:54 Gawds, I hate the parcel-tracking of the Finnish post office; it has a textfield which auto-empties itself whenever it gains focus. So if you have, say, a parcel ID code in another browser tab in a non-pasteable form, you have to either remember the whole 17-digit number, or transcribe it elsewhere first for pasting. (Because if you write down only part of it, it'll get erased when you switch back to the tab.) 12:12:36 At least it's just the front-page quick-link textfield that does it; the actual tracking-page field doesn't. 12:17:53 fizzie, in a non-pastable form? 12:18:59 fizzie, like an image? 12:19:01 if so wtf 12:19:29 Yes. For some unfathomable reason, the "delivered via the web-e-post-system" hey-we-have-your-parcel notes are scan-like images of the ones they deliver on paper. 12:20:16 I guess they're not really scans, since evince does manage to extract text from the "open as PDF" version. 12:20:37 But the thing shown in the web-system is a bona-fide image. 12:21:27 I guess they are "imagey" because they want the bar code to appear properly, and there are form fields for signatures and whatever on it. 12:21:49 Also, the PDF variants have the dubious distinction of being unprintable from Evince. 12:25:47 heh 12:26:07 fizzie, evince respects copy protection? 12:26:09 I'm surprised 12:26:23 No, it just prints them... well, I'll take a photo. 12:26:31 fizzie, garbled? 12:26:44 fizzie, does it work in other pdf viewers, such as okular? 12:26:56 It works with acroread. 12:26:59 Haven't tried others. 12:27:13 I had problems printing pdf on some computers but not on other ones 12:27:21 It also shows up just fine on-screen in Evince, it's just the printout that turns out like http://users.ics.tkk.fi/htkallas/20110110_001.jpg (the red blocks are my own redactions). 12:27:39 mostly from my desktop running arch, and it seems to have been related to a cups upgrade. 12:27:45 (it seems to work again now) 12:28:15 fizzie, ah different type of garbling 12:28:17 The barcode in the Evince print is correct, so theoretically speaking it might be that I could use that printout to claim the parcel; I've never bothered to try, though. 12:28:30 fizzie, also I see some was *red*acted ;P 12:28:56 That was just my name and address, and I'm not exactly sure why I bothered, since it's not especially difficult to find out. 12:29:00 ah 12:29:21 Well, also the sender company's name. 12:31:06 fizzie, hm. Must have been some dirty MathWorks thing then ;P 12:32:04 You caught me: it was a package full of toolboxes. (Well no, not really.) 12:41:41 -!- cheater- has joined. 12:42:52 -!- cheater00 has quit (Ping timeout: 240 seconds). 13:03:39 -!- cheater- has quit (Ping timeout: 240 seconds). 13:04:53 -!- cheater- has joined. 13:09:21 Phantom_Hoover, speaking of movecraft and chests: worldedit managed to move a chest with the //move command just fine. So probably isn't too hard 13:19:28 I have a feeling that in these server-side inventory times, chest contents are only sent on-demand, so //save can't dump chest contents unless the player actually looks inside. 13:20:44 probably 13:23:12 fizzie, btw if it helps: the map corruption bug doesn't happen only when placing blocks up high through the client. If you use worldedit to set a block at similar altitudes it also happens. So presumably related to chunk update rather than sending "place block here" kind of message 13:24:46 I've been dumping the chunk-update/set-block/multi-set-block messages, but haven't figured it out yet. I think next thing I'll try (later, though) is to dump only those packets that actually cause map-visible changes. The server keeps sending all kinds of inconsequential block-set packets quite often. 13:24:58 Like setting empty blocks to air, or grass to grass, or leaves to leaves. 13:26:10 Was it so that the topo-map also got corrupted? 13:26:34 fizzie, yes 13:27:05 fizzie, haven't seen mode 2 or 3 get corrupted though 13:27:35 fizzie, so maybe it is not a bug in how you handle the messages but in how you update the surface map? 13:27:43 Yes, probably. 13:28:12 fizzie, tried valgrind? Otherwise I'll do it if you tell me how to make a debug build of mcmap 13:29:30 At least a short "okay, it got corrupted" test got no valgrind errors. But of course most of the memory around there is allocated as largeish blocks, and valgrind can't really notice if I just mess up indexing or something. 13:30:11 fizzie, valgrind in memcheck mode won't tell if you enter another valid object 13:30:14 fizzie, so hm 13:30:28 fizzie, exp-ptrcheck or ptrcheck-exp or whatever it was called 13:30:32 for the --tool parameter 13:30:41 (note: probably even slower than the default memcheck) 13:30:50 that tracks pointers jumping between objects 13:30:56 I'll check at home. 13:31:55 The current surface-map update logic is approximately: if placing a block with type T and Y >= current topmost non-air block: set surface on that point to T and height to Y. Then if T was air: rescan from Y down to 0 to find the highest non-air block. Set surface map to that block, and height to that height. 13:32:19 fizzie, also something I noticed is that the orientation of the player marker seems to lag behind when you rotate the view while in a boat 13:32:53 Mhm, yes, I don't think I track the "entity-look" packets at all. 13:32:55 hm 13:33:09 fizzie, well it does change, it just lags behind a bit 13:34:59 fizzie, hm what happens if you try to teleport with mcmap while in a boat? 13:35:35 I don't really know how it sends looking-around while in a vehicle. For location once you've "attached" to a vehicle, it will send only (0, -999, 0) or some-such as the location; for the view direction it might be more complicated, since there's both the current boat-direction as well as the player view direction. 13:35:38 I have no idea. 13:35:52 Perhaps an "illegal move" and a blocked teleport. 13:36:00 fizzie, -999, how strange 13:36:08 Yes, it was some sort of a nonsense value. 13:36:53 fizzie, that kind of "explains" that "placing block in the 999 bug z plane"-bug I read about recently though. For some very weird values of explains. 13:37:25 I don't know what sort of packets the client sends when you're "driving" a boat, either. 13:37:43 hm 13:38:15 The usual entity-move packets are all marked as server-to-client only. 13:39:03 fizzie, in mcmap or in protocol docs? 13:39:16 In protocol docs, though of course those aren't any more official. 13:41:55 -!- oerjan has quit (Quit: Good night). 13:51:05 fizzie, yeah exploring with mcmap made the system swap trash now 13:51:42 fizzie, how did you say you disabled this at compile time? 13:52:01 Comment out the FEAT_IFORGETTHENAME #define in config.h and rebuild. 13:52:07 ah 13:52:13 FULLCHUNK or some-such. 13:52:43 yeah there is only one there, not too hard to find 13:53:09 The forthcoming "unload far-away chunks on disk" code will probably make it easy to also provide a (runtime) mode where it just forgets faraway blocks. They're always re-sent by the server for the client, anyway. 13:54:20 (Though the hash-map based chunk storage isn't the best one for a "which chunks are outside this box?" query.) 14:06:17 fizzie, hm is it just me or were the pre-halloween seas much larger than the ones you get nowdays? 14:06:42 I haven't really looked at any large-scale maps. 14:08:51 Heh, there's a (custom) minecraft terrain generator that comes with a FUSE filesystem module; you can mount it into a "world" directory and that way get on-the-fly terrain generator inside an unmodified client. That's quite a clever (if weird) trick. 14:09:18 not only weird, crazy 14:09:22 fizzie, link to this? 14:09:31 http://www.nuke24.net/projects/TMCMG/ 14:09:38 I don't know about the quality of terrain it generates. 14:10:46 -!- FireFly has joined. 14:12:33 fizzie, well the current terrain generator in beta have some issues with desert biome edges. Looks like blocks that contain both sand and grass ends up with wrong rotation. So that the edge blocks are rotated away from the desert. 14:12:40 at least it looks like that on a map 14:13:00 Yes, I've wondered about the edges on the map too. 14:19:09 fizzie, that's brilliant... 14:21:42 Phantom_Hoover, that site needs example screenshots from minecraft of the results of using it 14:22:08 Vorpal, it gets off due to being AWESOME 14:22:20 Phantom_Hoover, hard to tell how awesome it is 14:23:11 fizzie, uh, fuse is on the todo list? https://github.com/TOGoS/TMCMG/raw/master/doc/todo.txt 14:23:25 It also exists already. 14:23:32 heh 14:23:41 https://github.com/TOGoS/TMCMG/raw/master/README "Using with GeneratorFS" 14:24:38 fizzie: coordinates by any chance? 14:25:18 oklopol: No coordinates for you! (That is, I don't really know what's causing the crash in the Windows version.) 14:25:34 How does it fail for you, anyway? For me it just seems to go into a 100% CPU-wastage loop and hang up. 14:25:47 oklopol, didn't it work when you used it last time and other people spoke? 14:30:16 Well, I'm going to try that terrain gen thing. 14:31:54 Great, fuse requires root access. 14:33:00 fizzie: timeout in mc, and the program just disconnects and crashes after a while afaiu 14:33:01 *afair 14:33:07 but i could check at some point 14:33:16 Vorpal: it worked for a while 14:33:32 so the bug can't just be that when people talk, it crashes 14:33:39 that's kinda important, maybe, fizzie 14:35:10 Yes, it's a bit of a show-stopper, admittedly. 14:35:11 " http://www.nuke24.net/projects/TMCMG/" " I don't know about the quality of terrain it generates." <<< it's a programming language, it generates what you ask 14:35:17 but basically what you can do is 14:35:50 you have the perlin function, which is a pseudorandom function that gives you random constant size bumps, you can scale it, and gets big bumps and small bumps on top. 14:36:27 and things like cutoffs for different kinds of terrains are easy to do as well, although it's one of the horriblest languages out there 14:36:33 made a couple levels for friends 14:36:50 or one level for them, and a couple for myself, rather 14:37:07 fizzie: i meant, knowing that may be important 14:38:03 maybe the most retarded thing is that you actually have the 3d perlin function 14:38:15 Great, fuse requires root access. <-- hm... so it does. But I thought only for the initial mount, and for the unmount. Not in between? 14:38:26 but you can't actually say things like insert the 3d coordinates to perlin, and if it goes over cutoff, put diamond here 14:38:38 so you have to reimplement the whole 3d perlin idea by using 2d perlin 14:38:44 or at least, i couldn't find a better way 14:39:16 Oh. Right, right. I'd try a debugger to see where it's hung up, but I don't quite know how to debug a wine-running executable. I'm sure it's somehow possible, though. 14:40:18 also the "fractal" command is quite a letdown in tmcmg 14:40:23 OK, testing it... 14:40:47 it just means you constant amount of levels of smaller and smaller grained bumps 14:40:59 *you add together a constant 14:41:59 unless i misunderstood it, i never actually tried it because if i understood it correctly, it's pretty useless 14:42:51 oklopol, how comes you know so much about TMCMG? 14:44:27 i know pretty much everything about it because i read the documentation so i could make a level with it 14:44:36 the docs are like one page 14:44:51 oklopol, did it work well in the end? 14:44:52 you can call the perlin function, and do basic math on the result. 14:45:19 well i just wanted a world mostly full of sand, so yeah i succeeded well enough :D 14:46:23 there were also some oases 14:46:44 so i made a cutoff that added water and dirt 14:46:53 the perlin function idea makes randomness very nice to handle 14:47:48 because like water and dirt can just look for the same cutoff, and add themselves on different levels below sand level 14:48:06 hm nice worldedit has a //smooth command that you can use to patch up heightmap edges in the scenery. Mostly for the halloween ones. It seems to work decently when the difference in height is 0-20, but doesn't work very well if more than that. At least not when you only select like 10 blocks on each side of the border. (Tried it on artificial border since my local testing server doesn't have any pre-hal 14:48:06 loween scenery) 14:48:24 oklopol, nice 14:49:10 oklopol, so for a given x,y,z perlin always return the same value? 14:49:14 yes 14:49:33 but 14:49:40 oklopol, any way to add a fourth parameter if you want to randomise different things for the same coord. 14:49:49 you can just add 10000 to the y coordinate to get another perlin function 14:50:12 oklopol, hm 14:50:18 because you'll actually be using the 3d perlin function to get *heights* of ground at different x, z spots 14:50:33 hm I see 14:50:57 i don't know if that y+100000 thing was the author's idea originally, to me it seems kinda retarded that you can't just say "put sand where 3d perlin spikes" 14:51:04 but instead 14:51:18 you have to have put sand from 1 to perlin height 14:51:30 i mean, in certain cases the former is much better 14:51:34 like in the case of resources 14:51:38 heh 14:51:43 so what PRNG algorithm is this perlin? 14:51:55 it's a well-known algorithm i first heard about when i read that documentation 14:52:02 oklopol, :D 14:52:05 of course, he doesn't say anything about the grain size 14:52:28 It's a well-known algorithm I first heard about when I was looking at landscape generation ages ago. 14:52:35 so you have to trial and error that out, unless you know what the standard size is in perlin implementations (he surely didn't write the prng himself) 14:52:39 (because he sucks) 14:52:46 But it does appear in things like procedural textures quite often. 14:53:02 do you know how it works? 14:53:19 take a random map of 0 and 1, and add smooth transitions? :P 14:53:22 Y'know what would make SSP so much cooler? 14:53:24 oklopol, you could check the source to find out what the grain size is 14:53:35 "The implementation [of simplex noise] used by TMCMG seems to have lower average amplitude than perlin noise, so you may want to multiply the output more to get a similar effect." -- yes, I don't think either one was written by the author here. 14:53:36 If it added the wreckage of a spaceship to your spawn point. 14:53:51 Phantom_Hoover, being less laggy is like 1000 times more important atm 14:53:54 Vorpal: it's not necessarily easy to see there 14:54:02 oklopol, true 14:54:04 Vorpal, it's not that laggy for me. 14:54:12 Phantom_Hoover, better cpu maybe 14:54:19 fizzie: was that from the tbtmbmtmbtmb page? 14:54:44 oklopol: From it's readme, yes. 14:55:14 Phantom_Hoover, SMP works fine but in SSP it stutters a lot. And no it isn't low FPS as such, but seemingly random delays a few times every second. Between the FPS seems decent 14:55:48 that comment is a bit ridiculous, since you'll have to adjust your intuition on what perlin looks like to fit the mc scale anyway 14:56:14 unless he means the hills are actually different shape or something, in which case multiplication doesn't help 14:56:22 oh hmm 14:57:27 fizzie, that is for simplex. He is just comparing perlin to simplex? 14:57:48 Yes. But it sounds like both implementations come mostly-cribbed from some external source. 14:57:55 true 14:58:21 -!- MigoMipo has joined. 14:58:23 you can tell by the programming language that he either doesn't have a very firm grip on what he's doing, or the project was a really really quick hack 14:58:29 the idea of that program is good but the implementation seems poor. I guess it is a perfect fit for minecraft then 14:58:36 hah 14:59:19 the language is just silly, or, well, tell me if you like the way argument passing is handled, in my opinion it was really annoying to use 15:00:20 wikipedia on perlin noise: "The function has a pseudo-random appearance, yet all of its visual details are the same size (see image)." <-- the image doesn't explain what it means here. Exactly what is a "visual detail" and how do you measure it. 15:00:48 look at the image 15:01:03 i doubt there's a definition that makes it more clear than that 15:01:19 oklopol, do you mean the width of the white parts such? 15:01:38 -!- Wamanuz has joined. 15:01:40 which is approximately the same it seems. 15:01:45 yeah 15:02:01 it's not white noise, it's a desert 15:02:07 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 15:02:23 oklopol, uh does "desert" have some technical meaning in this context? 15:02:30 no 15:02:33 ah 15:02:36 just a desert. not really the best possible way to put it. 15:02:44 because 15:02:58 deserts have waves, not bumps 15:04:07 hm 15:05:01 oklopol, deserts can have that but there are different types. Stony ones for example. 15:07:41 Vorpal, surely it's clear what visual details means here. 15:07:54 Phantom_Hoover, but is it rigorous? 15:08:14 Vorpal, you could formulate it in terms of self-similarity. 15:08:42 Phantom_Hoover, hm. That might work yes 15:13:04 i would formulate it based on some sort of second order differential, how fast, on average, the slope is changing 15:13:15 dunno what you mean by self-similarity 15:13:35 -!- BeholdMyGlory has joined. 15:14:23 slope change + average i suppose 15:14:46 well, dunno if that works, it's a characteristic but maybe not really sufficient 15:15:27 oklopol, I assumed he meant to define it by the fractal nature of it somehow- 15:15:52 it has fractal nature? 15:16:07 oklopol, hm maybe not. 15:16:11 your way sounds better 15:16:13 isn't that exactly what it doesn't have 15:16:22 -!- Mathnerd314 has joined. 15:16:34 because if you look at it from further away, it will look *different*, bumps are smaller 15:16:45 oh good point 15:17:06 oklopol, so define it by the lack of fractal nature? 15:17:11 :D 15:17:13 maybe, maybe 15:18:18 it has fractal nature? ← that's my point, there's no fractalness. 15:18:20 it's just "fractal nature" and fractals in general make my "meaningless bullshit" sensor tick, sort like turing completeness, heard one meaning less too many 15:18:26 Phantom_Hoover: ah 15:18:29 so what Vorpal said 15:18:37 You can't make it look the same by scaling up or down. 15:19:27 Phantom_Hoover, but since it is PRNG won't it eventually cycle? Given a large enough region. 15:19:52 first of all a prng doesn't have to cycle even if it's just a function from integers 15:20:01 second of all, no 15:20:29 hm 15:20:45 at least not in a sense that would mean grains appear again 15:20:55 say when you zoom 15:21:12 right 15:21:47 oklopol, however I guess it might when expanding to a larger region being generated at the same zoom level. 15:21:50 secret maryo is fun 15:22:06 what is true is that if you hold a constant size slot of bits B, compute some random value, and recompute the contents of B to get a new seed, then certainly the random values will cycle 15:22:21 Vorpal: might, doesn't have to tho 15:23:00 ohm 15:23:02 hm* 15:23:04 it could increase state as it moves further, and do more complicated computation 15:23:04 brb 15:23:32 helloklopol 15:23:42 if nth bit can be computed in O(1) after computing the n-1 first ones, then it'll eventually cycle, i think 15:23:54 but not sure if that's amortized 15:24:08 really i'm so tired i might be spouting complete bullshit here. 15:24:15 cheater-: helloes. 15:24:30 *not sure that's true if the O(1) is amortized 15:24:35 oklopol: yes 15:24:46 it's not even true if it's not amortized, actually 15:24:55 for instance you could have it print 01001000100001 etc 15:25:01 oklopol: http://www.secretmaryo.org/index.php?page=game_downloads 15:25:02 or a similar sequence 15:25:05 by moving a marker 15:25:23 that constant sequence is not very random, but at least my theorem is not true 15:25:42 so yeah, spouting bullshit here, you may just as well ignore me till tomorrow 15:25:57 -!- copumpkin has joined. 15:25:59 so the usual situation :D 15:26:08 ? 15:26:15 i'm rarely wrong 15:26:31 no i mean the "ignore until tomorrow" 15:26:35 j/k :3 15:26:40 cheater-: what's that? 15:26:47 why did you give it to *me*? 15:26:55 oklopol: you were in the blasting radius 15:27:00 cheater-: i was just kidding too, i'm very often wrong 15:27:09 oklopol: not true! you're always right. 15:27:19 fuck you man 15:27:25 that's hurtful 15:27:57 gah where's oerjan 15:28:01 i wanna talk to him about semigrops 15:28:03 *groups 15:28:15 oh right, i told him i would, so he's probably in a bunker somewhere 15:31:09 What is there to discuss about semigroups? 15:31:28 Have all of the things to say about semigroups not already been said? 15:31:59 :D 15:32:03 possibly! 15:33:17 iirc at least one of the branches of the current theory is about a very special case of inverse semigroups, which are exactly semigroups of partial injective functions 15:33:24 *exactly the 15:34:08 should know what that special case was 15:34:23 but anyway it's a reeeeeally beautiful theory 15:34:30 inverse semigroups are much sexier than groups 15:34:48 (they are a superset of groups tho) 15:35:09 oklopol, out of curiosity, what exactly is a semigroup? 15:35:20 a set and an operation 15:35:24 set is closed under the op 15:35:24 and 15:35:28 associativity 15:35:31 is present 15:35:37 oklopol, isn't that what a group is? (set + operation)? 15:35:50 associativity means (a*b)*c = a*(b*c) 15:36:01 I know what associativity is in general yes. 15:36:30 Vorpal: groups always have inverses, and they always have an identity element 15:36:37 ah 15:36:46 and a semigroup with identity but not necessarily inverses is a monoid 15:37:17 oklopol, "not necessarily" as in "some members of the set might have inverses"? 15:37:40 yes 15:37:44 it's not forbidden 15:37:53 thus groups are monoids 15:37:58 and monoids are semigroups 15:38:02 hm 15:38:36 I don't get "semigroup". 15:38:46 It's more of a third of a group, not half a group. 15:38:48 it's just a name 15:38:57 An INACCURATE one! 15:38:58 yeah 15:39:22 it's a weird name, i didn't like it at first, but now it's just a name to me 15:40:24 Vorpal: regular semigroups on the other hand have inverses (with a different definition), but not necessarily an identity element 15:40:30 oklopol, would the set of all nxn matrices for a given constant n and the operation matrix multiplication be a semi-group? 15:40:41 (in fact if they have an identity, they are just groups) 15:40:47 (or monid even I guess) 15:40:55 yes 15:41:01 monoid, but not a group 15:41:11 why not a group? 15:41:14 oklopol, oh, so it's two thirds of a group. 15:41:17 (homework) 15:41:18 oklopol, well obviously not a group indeed. Not all elements have inverses 15:41:25 oklopol, *that* bit is trivial :P 15:41:28 Phantom_Hoover: no monoid is 2/3 isn't it? 15:41:54 Vorpal: what is not trivial then? the fact that matrix multiplication is associative is pretty obvious if you think of them as linear transformations 15:41:56 Oh, *regular* semigroups. 15:42:09 Wait, how do you have inverses without an identity? 15:42:10 oh sorry 15:42:17 oklopol, well, I was just wondering if there was some other snag. 15:42:22 Phantom_Hoover: x's inverse is a y such that x = xyx 15:43:04 or maybe it's not strictly obvious that it's associative even if you think about them as linear transformations, but anyhow everyone knows that! 15:43:20 oklopol, but not such that forall y, x*x^-1*y = y? 15:43:20 oklopol, hm x = xyx doesn't imply y = yxy in such a case I guess? 15:43:39 Phantom_Hoover: inverse semigroups are when you assume a *unique* x^-1 such that x and x^-1 are each other's inverses 15:44:15 Vorpal: it doesn't, necessarily, although you can prove that in a regular semigroup, all elements x have a pair y such that x = xyx, y = yxy 15:44:51 oklopol, what property guarantees that? 15:44:55 in fact, if x = xyx, then x = xyx = x.yxy.x, and yxy.x.yxy = yxy, so yxy is such a pair 15:45:04 Vorpal: my proof guarantees it 15:45:22 i can clarify if you're not used to following that kind of stuff 15:45:38 well maybe that's easy to read 15:45:39 oklopol, what is the . there in that notation 15:45:45 oh just an explicit * 15:45:49 * was harder to write 15:45:50 ah 15:45:50 ... 15:45:51 :D 15:46:03 -!- elliott has joined. 15:46:26 oklopol, you need to drop associativity for that to no longer work I guess 15:46:48 yeah associativity is very crucial, because it allows rewriting strings context-freely 15:46:51 erm 15:46:57 i mean context sensitively 15:47:00 in the sense that 15:47:16 you can rewrite something, and then use parts of it in another rewrite 15:47:17 like 15:47:58 like? 15:48:18 in xyx = x.yxy.x, i rewrite the x.y.x to x.y.xyx, but then i split the result in a different way to obtain x.yxy.x 15:48:19 i mean 15:48:24 oklopol, well yes 15:48:34 oklopol, I never disputed this 15:48:41 not a very good example because i don't actually use that new decomposition for anything, but that was all i had 15:48:57 Vorpal: just trying to make it clear what i mean 15:49:14 because IT WAS SOOOOOOO COMPLEX 15:49:42 oklopol, not really no 15:49:52 oklopol, it was clear once you said what you meant by . :P 15:50:33 oh, when i said why associativity is crucial, i wasn't talking about that example, but proving things for semigroups in general 15:50:49 oklopol, oh okay 15:52:02 so a semilattice is a semigroup such that all its elements are idempotent x^2 = x, and its elements commute, xy = yx; let S be an inverse semigroup, let us prove its idempotents form a semilattice under the semigroup operation 15:52:09 let e, f be two idempotents 15:52:17 consider the unique inverse x of ef 15:52:32 -!- copumpkin has quit (Ping timeout: 246 seconds). 15:52:43 ef = efxef = ef.xe.ef = ef.fe.ef by the fact e and f are idempotent 15:52:44 oklopol, err can't say I'm very familiar with lattices 15:52:57 21:00:25 according to the guy who deduced how clue works from ski 15:52:57 how 15:53:10 also xe.ef.xe = x.ef.xe = xe because x is the inverse of ef 15:53:30 similarly, fx.ef.fx = fx 15:53:41 hm 15:54:00 now, xx = xe.fx = x because x is ef's inverse => x is an idempotent 15:54:19 but if x is an idempotent, then x^3 = x, and so x is its own unique inverse, which must mean x = ef! 15:54:30 therefore, the product of two idempotents is idempotent 15:54:36 now, let's prove commutativity 15:55:00 oklopol, so what is a lattice then? (And isn't that word used for different things in different areas of mathematics) 15:55:05 ef and fe are idempotent by what we already proved, ef.fe.ef = ef.ef = ef by the fact e and f are idempotents 15:55:11 similarly, fe.ef.fe = fe 15:55:18 so ef and fe are each other's unique inverses 15:55:25 but again, they are also their own inverses => ef = fe 15:55:27 w.e.d. 15:55:28 *q.e.d. 15:55:32 right 15:55:48 elliott: not completely, he knew the basic idea. 15:55:52 Vorpal: wtf happened to your throne room 15:56:00 elliott, something happened to it? 15:56:06 Blown up. 15:56:06 Vorpal: you don't have to be familiar with lattices, since i was talking about semilattices :D 15:56:11 and i defined them! 15:56:52 a lattice is something more complicated, if you remember what boolean algebras were (the abstract axiom-based definition), lattices are boolean algebras with a few less axioms. 15:56:57 elliott, I'll check soon. Minecraft.net seems down. But then I suspect PH. He talked about doing it in a local copy saved with mcmap (it has that feature now) but if he did it on the server then fuck him. 15:57:18 basically, there isn't necessarily a "0" or "1", and there is no complementation 15:57:27 just union and intersection 15:58:08 (that have to satisfy a series of axioms, they don't actually have to be unions or intersections on a set though, just arbitrary binary ops that satisfy the axioms) 15:58:10 wow the lag 15:58:43 elliott, not blown up? 15:58:54 anyhow that's one of my favorite proofs, why aren't you more excited :( 15:59:19 have to wait for oerjan 15:59:22 Vorpal, yeah, I was just playing a trick on him. 15:59:22 oklopol, hm 15:59:30 Phantom_Hoover, oh elliott? 15:59:31 Phantom_Hoover, hah 15:59:38 Vorpal: Actually I knew. 15:59:43 I just wanted to see if you'd freak 15:59:45 *freak. 16:00:13 elliott, hardly more than you would if told that the cube was blown up (once done). You would probably also go online to check :P 16:01:10 Vorpal: No, I'd go online and immediately destroy Mount Vorpal, most likely. 16:01:16 also everyone knows elliott is a crazy mythomaniac 16:01:17 NOTE TO PEOPLE WHO WANT TO BLOW UP THE CUBE: probably a bad idea. 16:01:41 oklopol: so anyway i designed cled in the logs 16:01:47 elliott, why on earth. It could have been nailor. 16:01:57 too UNINTERESTING; didn't read 16:02:12 elliott, and I wouldn't blow it up. I'm not like you. 16:02:30 Vorpal: It's more like an incentive for everyone because they'd have to listen to you scream if it happened 16:02:33 Phantom_Hoover: So how fucked up is the lighting? 16:02:33 nailor's door was locked :( 16:02:43 elliott, not very, 16:02:48 Not at all, in fact. 16:03:01 Why would it be? 16:03:22 fizzie said they were. 16:03:26 Vorpal: No, I'd go online and immediately destroy Mount Vorpal, most likely. ← did that on the local copy. 16:03:40 I ended up corrupting the world file due to Notch-quality engineering. 16:03:42 :D 16:04:18 I also blew up the wooden house. 16:04:26 Wait, the charge in that was what broke it. 16:04:50 02:56:45 I'll probably make it also load an existing dump and in general auto-persist the world on disk at some point, in order to reduce memory use for long-running game sessions where you wander around far and wide. 16:04:52 -!- copumpkin has joined. 16:05:00 fizzie: Do it the sane way; just use mmap and let the OS handle it for you. 16:05:22 elliott, you realise that isn't sane when there is a shitload of small files? 16:05:31 as opposed to a number of large ones 16:05:42 Vorpal: Umm, he should store them in one file and then convert for //save, duh. 16:05:48 No reason to be as stupidly-architectured as the client. 16:05:51 elliott, many files are smaller than the page size. Besides they are gzip compressed. 16:06:01 And mcmap's internal data structures are different to MC's internal ones. 16:06:07 elliott, still, do you suggest storing them uncompressed? 16:06:11 Yes. 16:06:15 elliott, that would be huge. 16:06:22 It's just for what you've seen in the current session... 16:06:42 elliott, no? 16:06:48 Yes, it is. 16:06:49 See logs. 16:07:03 yes it sounds like it would be able to load dumps when starting? 16:07:16 Yes, and? 16:07:27 meaning they would be between sessions 16:08:35 elliott, to get something like Slate working on Windows, would I compile using Cygwin, or MinGW? 16:08:42 * Sgeo barely knows the difference 16:08:58 fizzie: mcmap -c on OS X gives me unloaded chunks all around my current location. 16:09:02 Sgeo: try mingw first. 16:09:08 Ok, ty 16:09:16 Sgeo: or just use linux, it's unlikely to work on win. 16:10:25 fizzie: Dude, is it totally broken for everyone else? 16:14:40 -!- Sgeo_ has joined. 16:16:11 Vorpal: to build debug mcmap, make debug=1 16:16:31 well 16:16:34 make clean; make debug=1 16:17:08 hm 16:17:16 -!- Sgeo has quit (Ping timeout: 240 seconds). 16:17:22 elliott, I guess the symlink at ./mcmap will no longer work? 16:17:39 I refuse to answer that yourself since you can figure it out in 3 seconds. 16:17:47 elliott, do you know Mercury? 16:17:48 Also, separating normal and debug builds is a good thing. 16:17:51 Actually, you don't need to clean. 16:17:55 make debug=1 will put it in _debug. 16:18:01 So you can keep your current build. 16:18:01 elliott, yes it is a good idea to separate them 16:25:48 so oklopol 16:25:50 cled 16:25:51 best or best 16:32:56 -!- Wamanuz has quit (Ping timeout: 264 seconds). 16:54:21 Phantom_Hoover: if you still come back, wanna tell me if i'm on your map? 16:54:50 i didn't go *that* far, and i was thinking settling down 16:55:21 oklopol, where'd you go? 16:55:33 (I'm blowing up the spawn area right now.) 16:55:40 to a random place 16:55:58 you're blowing it up locally or what? 16:56:03 Yes. 16:56:31 just checking, not a good time building a home if you're abandoning the world or something 16:57:18 oklopol: cleddy cled 16:57:24 also oklopol building a house? weird 16:57:34 "house" 16:58:40 -!- poiuy_qwert has joined. 17:00:11 -!- Vorpal has quit (Ping timeout: 272 seconds). 17:00:13 oklopol: so, i heard i was trying to disprove clue works at all 17:00:34 elliott told you or what? 17:00:47 oklopol: i sometimes do things without knowing. i'm sorry if you felt bad about my sleepwalking argumentative self 17:00:53 oklopol: ? 17:00:55 yeah, apparently i have 17:01:13 i didn't feel bad about anything 17:01:16 * elliott compiles a few clue programs 17:01:24 shit, you're right, it actually just spews out python errors :D 17:01:34 $ python repl.py qsort.clue 17:01:37 oh god what is this 17:01:38 $ 17:02:05 -!- Vorpal has joined. 17:08:25 oklopol: omg cled is actually working :D 17:09:04 oklopol: http://i.imgur.com/M27fK.png 17:09:12 oklopol: this is a graphical representation of {. 0 1 -> 1 . 0 5 -> 5 } 17:09:23 i can even move about and ascend and descend the tree and everything 17:09:37 No more comma? 17:09:45 Sgeo_: that was removed a while ago 17:09:50 Huh 17:09:59 also i can press cmd+s and it prints the tree 17:10:02 nicely-formatted and all 17:10:31 i don't get why i had the comma, i never have those in my languages 17:11:19 oklopol: dude http://i.imgur.com/M27fK.png 17:11:24 LOOK AT THE BEAUTIFUL UGLY? 17:11:30 it's like aardappel 17:11:31 except clue 17:12:10 -!- cheater00 has joined. 17:12:40 oklopol: in fact it's very similar to aardappel, since in aardappel you name func params with example values :P 17:12:43 clue just does it PROPERLY 17:13:53 -!- cheater- has quit (Ping timeout: 240 seconds). 17:15:22 * Sgeo_ blinks 17:15:42 I saw ---> as a solid arrow and was wondering how it would be typed in a real program 17:16:40 Sgeo_: With cled, -> IS a solid arrow! http://i.imgur.com/M27fK.png 17:17:06 * Sgeo_ is talking about Mercury 17:17:18 Sgeo_: Inferior to cled. 17:18:44 yeah, was just thinking that 17:19:00 oklopol, still want me to help you on the server? 17:19:13 oklopol: was just thinking what 17:19:28 aardappel has a property clue has, and you're making an editor that looks like a non-ugly version of the aardappel editod 17:19:31 *editor 17:19:57 oklopol: i wouldn't exactly call that screenshot non-ugly, but at least it doesn't have stupid pictures everywhere :) 17:20:02 Phantom_Hoover: i have forgotten all context 17:20:03 also you can't really edit aardappel with the keyboard 17:20:04 oh 17:20:06 whereas all of this is keyboard-based 17:20:16 oklopol, you were lost? 17:20:17 want you to help me, that i do yes, if you log in, check if i'm on your map 17:20:21 no not really 17:20:26 oklopol: in fact I think that editing with this will take quite a bit fewer keystrokes than editing wtih a file 17:21:40 oklopol: i gotta say something though 17:21:49 oklopol: why can't you have zero-arg functions in clue 17:21:50 it's totally nonelegant 17:21:59 just a parser bug? 17:22:11 \" (had the database 17:22:11 community known about maybe types they never would have invented NULLs 17:22:11 and wrecked the relational model. . . " 17:22:13 no 17:22:19 i just didn't want zero arg functions 17:22:20 oklopol: why not 17:22:36 Meh: GLib-GIO:ERROR:gsocket.c:2347:remove_condition_watch: assertion failed: (g_list_find (socket->priv->requested_conditions, condition) != NULL) 17:22:43 oklopol: you can't define _ in clue, that's not very elegant :) 17:22:45 because they are completely useless, and {. -> 3 } looks wrong 17:22:58 oklopol: so useless that you defined one as a primitive 17:23:06 :P 17:23:16 yeah that used to be useful 17:23:20 oklopol: ok well... why can't you return multiple values 17:23:25 that would be more symmetrical 17:23:25 and it will be again, when i add higher-order funcs 17:23:35 you should definitely be able to return multiple values 17:23:40 i mean 17:23:48 that's even more important than multiparam 17:23:52 since 17:24:00 multiparam is more dangerous 17:24:03 for explosions 17:24:09 oklopol: what would f(multiple value returner(x)) do 17:24:25 in clue, you don't have to think about that 17:24:38 oklopol: well right 17:24:40 i'm just asking 17:24:48 presumably None or whatever 17:24:51 and the code gen would arrange for like 17:24:57 multiple value returner@2(x) 17:24:58 to get the third arg 17:25:00 (@0 for first) 17:25:13 oklopol: now what i'd really like to be possible 17:25:16 is {. -> } 17:25:20 zero inputs, zero outputs 17:25:23 oklopol: you wanna know why? 17:25:27 why? 17:25:31 oklopol: as it is, currently, in cled, the program is not always a valid ast 17:25:42 oklopol: when you create an example, it creates two Hole objects (or, well, it will when i code that) 17:25:45 one arg, one result 17:25:48 these can't be serialised to value clue 17:25:54 they're just so that you can enter them, specify what type they are 17:25:56 and then specify a value 17:26:05 if you could have N inputs and N outputs, it could just have two empty input and output lists 17:26:09 and you'd add them at your leisure 17:26:19 and the tree would always be a valid clue tree 17:27:23 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 17:27:47 zero inputs and outputs would work just fine if "side-effects" are ever added, which i might just do at some point, not the binary output stream approach tho 17:28:06 oklopol: ew no side-effects, that's so lame 17:28:15 not really 17:28:16 oklopol: but uh, basically a function with zero outputs would never be called I think 17:28:18 as part of a generated program 17:28:30 because you can only call a function as (func@(result number)(params)) 17:28:34 and since result numbers start at 0 17:28:38 there's no valid number for a zero-output function 17:28:43 but the point is, it'd make cled more elegant :) 17:28:52 since having the tree in an invalid state is just lame 17:29:02 it could have you specify the inputs and outputs before it let you do anything else, but that feels annoyingly restricting 17:29:04 it could be called, it's output just wouldn't be numbered 17:29:05 i mean 17:29:13 with the current implementation, no, it wouldn't be called 17:29:19 which is what you meant 17:29:28 so ignore what i said 17:30:02 oklopol: well the way i see it is the simplest way to impl it would be to turn every func call from 17:30:05 name (params) 17:30:05 into 17:30:12 name @resultnum (params) 17:30:17 oklopol: ok, if you didn't feel bad, but elliott has given me shit already, maybe i should start talking shit about clue, just to cash in my debt ;p 17:30:24 that way you can't have f(multiple args(foo)), it's always f(multiple args@0(foo)) or @1 etc 17:30:27 *etc. 17:30:30 cheater00: works for me 17:30:31 :D 17:30:36 so since 0 is first result, for a zero input function, there is no valid @ number 17:30:40 and it'd never be calle 17:30:41 d 17:30:48 oklopol: clue is php 17:31:12 oklopol: worse, clue is c++ 17:31:19 okay that's enough kthx 17:31:27 NOEUGH 17:31:30 ENOUGHEONUGENOUGHEOUGNEOUGHE 17:31:40 oklopol: what 17:31:40 CAN'T TAKEA IRTSARJTIJIT 17:31:42 what? 17:31:49 what? 17:31:51 huh? 17:31:56 hm? 17:31:57 eh? 17:32:01 what? 17:32:02 excuse me? 17:32:09 i beg your pardon? 17:32:11 sorry? 17:32:13 que? 17:32:16 nani? 17:32:20 fag 17:32:28 elliott broke it 17:32:33 he's such a spoil sport 17:32:35 * variable works on a new language 17:32:39 no i thought that was a good ending 17:32:49 oklopol: so uh got any suggestions for cled that don't involve holes 17:32:50 I mean 17:32:54 elliott: nope! 17:32:56 it could be that if you + to add an example 17:32:59 you have to say e.g. 17:33:01 li 17:33:03 meaning "list to integer" 17:33:03 i just play minecraft and be a happy! 17:33:04 but eugh 17:33:07 so lame 17:33:16 oklopol: so um is clue abandoned :p 17:33:36 Perl is a general purpose language. It's also known to be the only widespread use obfuscated language. 17:33:38 lulz 17:33:46 oklopol: so do u vant to normalize clue? 17:34:06 -!- poiuy_qwert has joined. 17:34:08 oklopol: i think clue could actually lift off really well, there's nothing else that does what clue does 17:34:10 elliott: no 17:34:19 that's funny, this channel has only been witness to "perl is esolang" sentiments about 1000000 times :D 17:34:23 oklopol: yay 17:34:24 cheater00: it could totally become mainstream! 17:34:40 and with the current extreme TDD approach and python lifting off it could make me famous 17:34:40 but i'm not working on it today, no 17:34:43 and you too maybe 17:34:44 possibly this week 17:34:49 elliott, that is on the wiki 17:34:52 but the idea is to come up with a spec 17:34:55 that makes sense 17:35:03 Gnar, I don't get why the Win build fails; it is as if it just decides to close the connection. 17:35:06 i think some random anon added it and nobody bothered to remove it. 17:35:17 elliott, it should be kept - tis true 17:35:22 oklopol: I don't suppose you see any sort of "GLib-GIO" error message on your end when it goes? 17:35:25 'tisn't, not really 17:35:34 odd, sure 17:35:47 but esoteric shouldn't be applied to every language just because people think it's weird. 17:35:48 fizzie: doesn't ring a bell 17:36:05 lol @ cheater00 thinking clue is practical 17:36:07 I get one, but I don't know, it might be just a side-effect of the connection disconnectering. 17:36:19 hey clue is TOTALLY practical 17:36:27 totally 17:36:59 -!- copumpkin has quit (Ping timeout: 276 seconds). 17:37:09 -!- copumpkin has joined. 17:37:13 oklopol: you have to swear now to always use cled for everything 17:37:14 oklopol: i believe it could become a practical language 17:37:19 cheater00: it really couldn't :) 17:37:20 and/or framework for existing languages 17:37:27 it seems like it could, before you figure out how it actually works. 17:37:29 i think it could as well 17:37:43 well 17:37:43 oh oklopol, you so zany 17:37:46 oklopol: let's ignore the torl 17:37:47 for certain values of practical 17:37:52 elliott, what should I call my random chance language ? 17:37:59 oklopol: i feel it's a fairly new paradigm 17:38:12 "the torl"? 17:38:20 oklopol: i think in fact what you got right now - the language in itself - is just very basic 17:38:28 also, it's a new paradigm because it's amazingly stupid ... in that puttign it into practice is nearly impossible 17:38:29 *putting it 17:38:40 elliott: it's how retarded people pronounce troll. 17:38:57 fitting 17:39:14 oklopol: i think you could have multiple very languages very distant from eachother, derived from clue, just using different inference methods 17:39:36 oklopol: because those inference methods are actually what defines clue 17:39:48 oklopol: hence i was talking about defining your own inference methods 17:40:36 oklopol: i think clue is a bit near to the automatic prover territory, isn't it? 17:41:26 cheater00: not raelly. 17:41:27 *really. 17:41:38 cheater00: also example-based programming isn't really a HUGE NEW IDEA 17:41:45 by saying 17:41:50 "omg different inference engines" 17:41:51 you're saying 17:41:59 "chuck out all of the current work on clue and keep the obvious core idea!" 17:42:04 which is stupid because the work was the hard part 17:42:37 shush 17:42:50 cheater00: um what i'm saying is perfectly true 17:42:58 yes. shush. 17:43:54 business in my pants 17:44:07 oklopol: that's where the business always is. 17:44:10 how's THAT for a slogan? 17:44:51 i'm gonna go make some breakfast and watch the ballet dancers next door 17:45:40 take pix k 17:45:44 -!- pumpkin has joined. 17:46:44 -!- copumpkin has quit (Ping timeout: 264 seconds). 17:52:23 that's illegal 17:52:47 take mental pix 17:53:26 done 17:53:38 with my mental-undress-ray 17:55:50 oklopol, don't encourage him. 17:56:08 to do what, send me pictures of ballet dancers? 17:56:16 oklopol, to be cheater. 17:56:38 Ignore him and we'll all be much happier. 17:56:45 but if someone was encouraging me to be oklopol (elliott), i would be really pleased 17:57:05 oklopol: be oklopol 17:57:17 Phantom_Hoover: be oklopol 17:57:19 cheater00: be oklopol 17:57:21 fizzie: be oklopol 17:57:23 Vorpal: be oklopol 17:57:26 clog: be oklopol 17:57:31 elliott: be oklopol 17:57:34 elliott, don't tell fizzie to be oklopol! 17:57:48 If fizzie is oklopol, who will be fizzie? 17:57:51 oklopol, be fizzie. 17:58:04 no 17:58:07 we don't need fizzie 17:58:09 we just need more oklopol 17:58:18 true 17:58:28 But there will be wars over interior decoration! 17:58:40 elliott, Processing... ... ... Error 49123: Mutant produced. Details: Now Vorpol. 17:58:56 Is that like Vorpal but intelligent? 17:59:07 i wouldn't want to be someone who has "toilet" as part of their name 17:59:08 elliott, it is like the most extreme sides of me and oklopol 17:59:34 :D 17:59:39 So incredibly stupid and irritating and awesome and intelligent? 17:59:41 oklopol: What have you done 17:59:52 elliott, it was you who did it 18:00:08 I blame Vorpal 18:00:12 hahaha vorpol luuuuv it 18:00:14 elliott, I blame you 18:01:01 bbl food 18:01:26 oklopol: http://dict.leo.org/ende?lp=ende&lang=de&searchLoc=0&cmpType=relaxed§Hdr=on&spellToler=&search=klo 18:02:48 i know that word, yes 18:03:07 that's funny because 18:03:10 oklopol has "lo" in his name 18:03:13 so obviously he's low 18:03:14 BROW 18:03:15 low-brow 18:03:19 oklowbrowpol 18:03:32 and obviously i'm input and output 18:03:33 ell IO tt 18:03:43 Vorpal is clearly everyone's PAL 18:03:45 and also into VORe 18:03:50 really i could just go back to playing locally, you guys are never here 18:03:54 wow this is like reading tea leaves but better 18:04:01 oklopol: i was on but then you DIDN'T LET ME VISIT 18:04:10 elliott, in fact I'm into VORs since I'm into flightsims :P 18:04:12 well obviously i don't want to see any of you 18:04:14 elliott: and i eat ch's? 18:04:32 cheater00: no, you're che guevara 18:04:33 elliott, it's a type of omnidirectional navigational beacon. 18:04:34 obviously 18:04:41 Vorpal: yes. right. sure. 18:04:41 yes. 18:04:58 What about MEEEEEE 18:05:09 elliott, and you move impure IO (ellIOtt) 18:05:22 18:03 elliott: and obviously i'm input and output 18:05:22 18:03 elliott: ell IO tt 18:05:28 elliott, oh missed that 18:05:29 Phantom_Hoover: you're j. edgar hoover 18:05:30 Phantom_Hoover: You're an ant named Tom. 18:05:46 elliott, which is over something 18:06:03 elliott: i think you're offtopic 18:06:08 elli OT t 18:06:13 hah 18:06:22 cheater00: I think you're gender-neutral 18:06:23 ch E ater00 18:06:24 that explains the channel 18:06:25 also a fan of Spivak 18:06:34 fuckin science 18:06:36 #esoteric OT there 18:06:39 so off topic 18:06:42 it all fits 18:06:47 also you drive an audi TT 18:06:51 E's OT, Eric. 18:06:52 translation 18:06:56 He or she is off-topic, Eric. 18:07:01 the only remaining question is 18:07:02 cheater00, no, he is a news agency 18:07:04 WHO IS ERIC 18:07:10 cheater00, (TT is a Swedish news agency) 18:07:15 excuse me 18:07:18 i just decoded #esoteric 18:07:20 can we science please 18:07:28 elliott, I said it was OT in it yes 18:07:28 bbl 18:07:32 yes 18:07:35 but i decoded the whole thing 18:07:39 #esoteric -> E's OT, Eric. 18:07:39 maybe it's about Eric the Esot 18:07:43 He or she's off-topic, Eric. 18:07:47 this fits #esoteric 18:07:48 obviously 18:07:49 this channel is about Eric the Esot 18:07:50 so who's Eric???? 18:07:52 maybe oklopol is Eric 18:07:54 the esot. 18:08:40 oklopol, what was your name again? 18:08:53 klo 18:08:56 toilet. 18:08:59 he's also an OPO 18:09:08 which makes no sense because there's nothing named OPO 18:09:49 i broke it :DDDD 18:10:05 you broke clue? 18:11:04 no 18:11:04 cled 18:14:42 -!- sshc has quit (Ping timeout: 240 seconds). 18:15:17 -!- elliott has quit (Remote host closed the connection). 18:18:02 -!- elliott has joined. 18:18:45 WHAT IST BROKE 18:19:08 #esoteric -> E's OT, Eric. <-- hm 18:19:10 indeed 18:19:13 drakhan's heart. 18:19:22 Who. 18:19:27 WHAT IST BROKE <-- your connection was broke before 18:19:30 No. 18:19:31 (; 18:19:32 Not broke. 18:19:34 who is drakhan 18:19:37 + elliott has quit (Remote host closed the connection) 18:19:41 Vorpal: that is correct 18:19:53 elliott, the TCP connection was broken. 18:19:56 elliott, as for my person - I`m new here 18:20:21 hello 18:20:30 are you on one of those horrible keyboard layouts where you can't put an apostrophe in properly 18:20:31 hi 18:20:47 Hi. 18:20:52 elliott, well /whois says .pl, you could check that 18:21:08 No, it`s my preference 18:21:15 Yeah, Poland. 18:22:05 It's your preference to use backticks instead of apostrophes? 18:22:23 even diamonds feel worthless when your items are all made of it for free :( 18:22:32 Is it so important? 18:22:42 I'm just curious, since it makes lines harder to read. 18:23:32 A matter of habit. 18:23:37 "Somewhat typical of PHP’s API, there are actually thirteen different built-in array sorting functions." 18:26:20 -!- j-invariant has joined. 18:27:38 philosophical question 18:27:40 if j-invariant's j varied 18:27:42 what would happen 18:28:13 PHP's design philosophy is "you should never have to write any real algorithms. any algorithm that actually does something difficult should be built in." 18:28:33 quintopia: "Except that, we'll actually implement it badly." 18:28:39 Apparently usort() used to be — wait for it — BUBBLESORT. 18:28:40 elliott: I would stay the same 18:28:56 friend of mine wrote bot in php and i said "it should have a rot13 function" and he determined that the best method to implement it ... would be to make a call to rot13() >_> 18:29:13 Apparently they left their CS classes in the three seconds between "This is bubblesort" and "NEVER USE BUBBLESORT." 18:29:26 Maybe one should have to aquire a liscence to write algorithms 18:29:33 sort of like a driving liscence 18:29:48 j-invariant: european computer mechanics license 18:29:53 (there's a european computer driving license) 18:30:00 (it is a hilariously easy Microsoft Office thing) 18:30:05 of course if you have a full proof that you algorithm works you can use a provisional algorithm liscence to have it uploaded into a sandbox 18:30:31 Which one is bubble sort? 18:30:35 but it can never be actually used unless it is also experimentally determined to be efficient in practice 18:30:39 have you ever heard of Dijkstras room? 18:30:40 Phantom_Hoover: the horrible one 18:30:55 What's the *algorithm*? 18:31:01 quintopia: bitch, you can work that out without testing it 18:31:07 if your theory doesn't match practice your theory wasn't good enough 18:31:09 and you're executed 18:31:10 Phantom_Hoover: the one with the near-guaranteed quadratic runtime in number-of-comparisons 18:31:24 Phantom_Hoover: http://en.wikipedia.org/wiki/Bubble_sort#Implementation 18:32:19 " PHP's design philosophy is "you should never have to write any real algorithms. any algorithm that actually does something difficult should be built in."" <<< somehow i doubt it actually has any useful algorithms in it 18:32:20 elliott: sure, but sometimes it's easier to test it on all the possible hardware platforms than prove for each instruction set (and the respective latencies) that the constants in the runtime are low 18:32:26 does it? 18:32:35 quintopia: instructions are irrelevant, mostly 18:32:36 oklopol: http://zem.fi/~fis/mcmap-win-fba7271.zip and then just doubleklick the .exe. 18:32:44 you don't get "oh this c code is really slow on sparc but really fast on x86" 18:32:57 just takes one level of abstraction to even those out 18:33:03 i mean say if i want to turn an NFA into a DFA 18:33:08 what's the php function 18:33:39 that's basically the only thing you'll ever need 18:33:39 oklopol: nfatodfa($nfa) OR nfa_convert('Dfa',$nfa,2) (the 2 is to disable the old version of the function) 18:33:43 elliott: it's mainly an issue when involving floating point stuff, memory/disk access, and other I/O 18:34:04 or automatonConvt($nfa, getconv('NFA'), getconv('DFA'), $output) 18:34:23 ah thanks 18:34:49 oh man how did i break this 18:34:51 oklopol: note: lies 18:34:54 How do you even fail at quicksort? 18:35:02 Phantom_Hoover: qsort is not really something that should be used. 18:35:11 What's wrong with quicksort? 18:35:13 Recursion? 18:35:17 Phantom_Hoover: worst-case performance 18:35:20 and what about that algorithm that solves the two-pair case of pcp? 18:35:21 whatever(n^2) 18:35:23 quacksort 18:35:29 --> if you sort arbitrary user-inputted data 18:35:33 the marked version 18:35:33 you gon get DDoSed 18:35:36 erm 18:35:37 or just DoSed 18:35:45 Phantom_Hoover: e.g. merge sort is much better 18:35:53 oklopol: do merge sort in clue :P 18:36:02 is there an in-place sort with the performance guarantee of merge sort? 18:36:05 i was thinking i'd, but then i not'd. 18:36:21 quintopia: i think there's an in-place merge sort 18:36:40 but that's kinda hairy, if i recall correctly 18:37:06 also you can do quicksort without recursion, i think 18:37:10 yes 18:37:13 heap sort is also good 18:37:16 i think 18:37:18 but you don't get any better worst case performance 18:37:19 well 18:37:20 actually 18:37:21 you know what 18:37:22 just use http://en.wikipedia.org/wiki/Timsort 18:37:23 heap sort is very fast, and can be done in-place 18:37:24 :P 18:37:25 heap sort is also not in-place 18:37:27 stable mergesort 18:37:30 how 18:37:36 how to do in place oklopol 18:37:38 quintopia; merge sort is worst case n log n 18:37:38 i don't think it's in-place but 18:37:39 who cares 18:37:42 quintopia: do what in-place? 18:37:46 mergesort or if you're feeling fancy, http://en.wikipedia.org/wiki/Timsort 18:37:50 heap sort 18:38:33 quintopia: You can do merge-sort in-place and some variants have even been described by Finnish guys: http://www.diku.dk/hjemmesider/ansatte/jyrki/Paper/mergesort_NJC.ps 18:38:34 oh well you use an array, and 1 (2 3) (4 5 6 7) (8 9 10 11 12 13 14 15) ... where those are the levels of the tree 18:38:44 fizzie: Finnish guys, what would we do without them. 18:38:53 you can then multiply index by 2 and either add 1 or 0 to get to children, and divide by 2 to get to daddy 18:39:18 aww hi daddy 18:39:20 where's mommy 18:39:24 is this in a cruel world where all list mothers run away 18:39:25 oh god 18:39:26 this is the worst 18:39:28 your sorting algorithm 18:39:30 what has it 18:39:31 of 18:40:13 fizzie: lol no wonder a prof at our uni mentioned it 18:40:24 it's actually funny how broken this is... 18:40:28 jukka teuhola is a prof at our uni 18:40:33 well more like, depressing 18:40:39 katajainen hangs there too 18:40:49 diz ir oklopol 18:40:50 oklopol: Yeah, we hear about Kohonen maps all the time at WaveU. 18:40:57 :P 18:41:02 fizzie: oh god don't call it that 18:41:14 so wait how old is fizzie now, 47? 18:41:38 (Also WSOM 2011 deadline is Jan 14th, submit your full papers now!) 18:41:44 48? 18:41:47 oh it's even PRACTICAL in-place mergesort :D 18:41:49 Twentyseven, I think. 18:41:54 49 then 18:42:06 oklopol: i want to see the previous paper, Impractical In-Place Mergesort 18:42:20 oklopol: "average O(2^n), but hey, it's in-place mergesort!" 18:42:29 oklopol: can you write fib with clue? 18:42:35 And the earliest draft, "completely useless out-of-place mergesort". 18:42:38 cheater00: yes. 18:42:40 efficiently too. 18:42:47 can you write a clue compiler? 18:42:53 cheater00: http://www.vjn.fi/pb/p6379491136.txt 18:43:03 j-invariant: yes, with more pain than anyone should have to endure :D 18:43:48 j-invariant: has been done, so yeah 18:43:57 oklopol: no, IN clue 18:44:00 oh 18:44:01 j-invariant means 18:44:07 not in a very nice way 18:44:11 :D 18:44:13 understatement prize 18:44:15 for instance parsing is nicest to do with mutual rec 18:44:37 oh yeah 18:44:37 is there a clever way to do it though? by reflecting the way clue works 18:44:39 that's totally the main reason 18:44:45 j-invariant: nope, not even remotely 18:44:50 you can't harness it at runtime at all 18:44:54 darn 18:44:59 maybe if you had eval :P 18:45:06 clue interp ~ eval 18:45:07 nothing as crude as eval 18:45:09 but maybe there could be a slightly modified form of clue 18:45:17 which allows for a nontrivial self interpreter 18:45:28 well it's not really an interp 18:45:32 clue is pretty inherently a compiler 18:45:33 as much as can be 18:46:18 clue could even be thought of as a metalanguage 18:46:38 (but hopefully people don't) 18:47:50 Are there some detailed pages on Clue with source code? 18:47:58 not really 18:48:30 j-invariant: clue.py :P 18:48:31 there's the esolang page, that's it 18:48:32 isn't the probability of getting O(n^2) runtime for a random-pivot quicksort unbelievably low? 18:48:46 quintopia: yes, but the point is that you can't trust your users. 18:48:55 it's easy to craft such inputs 18:48:59 and this has been done 18:49:05 quintopia: also, why bother? merge sort is just as easy 18:49:21 i'm just trying to understand the theory man 18:49:24 merging is almost the same thing as pivoting 18:49:26 i'm not the guy in charge of this shit 18:49:40 just the other one unzips, the other one zips 18:49:41 where can i find these carefully crafted inputs? 18:50:04 quintopia: no he means if you run qs on user-given input on your server, then ppl can give crafted inputs that make slow it up 18:50:31 you can craft such inputs if you know how pivoting is done 18:50:35 this shit is well-known btw 18:50:36 oklopol: yes, but i don't see how any adversary could slow a random-pivot quicksort 18:50:44 it seems like random pivoting is unbeatable 18:50:57 indeed it does 18:51:06 sure, if you use a crypto rng 18:51:06 i don't know if it *is* though 18:51:08 but that seems unlikely. 18:51:10 anyway, meh 18:51:12 merge sort is nicer anyway 18:51:35 also quicksort is unstable 18:51:36 which is just lame 18:51:58 quintopia: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.44.5903 18:52:35 anyway the theoretical worst-case performance is reason enough :) 18:52:59 i was already convinced. you were preaching to the choir 18:53:15 i'm just curious about the theory of DoSing qs 18:53:57 oklopol: you need an easier character to type than > for the "goes to" symbol in clue 18:54:03 cheater00: it's -> 18:54:04 not > 18:54:08 also that is like 18:54:10 the stupidest complaint 18:54:10 ever 18:54:21 do you realize > is inside -> ? 18:54:33 > is trivial to type, if it isn't your layout sucks 18:54:34 : parse error on input `type' 18:54:38 also this is an esolang 18:54:43 stop bothering us with your petty concerns :| 18:54:48 also you're boring me 18:54:51 cheater00: i have to agree with elliott, that is even less interesting than elliott's additions! :P 18:55:08 oklopol: i totally removed branchers, man 18:55:10 oklopol: the most important reason for me to use python over php is that it doesn't use braces :D 18:55:12 and implemented your default thing 18:55:16 default branch thing 18:55:19 shower me with praise 18:55:22 oklopol: being able to type in code without shift is veddy important 18:55:22 elliott: everyone ignored them already :D 18:55:26 well except in ski 18:55:35 oklopol: i did #x into x, that's like 18:55:38 total improvement 18:55:41 also removed the devil ,s 18:55:45 oklopol: can you do map/reduce with clue? 18:55:49 no 18:55:51 you can't 18:55:52 but you will be 18:55:55 why can't you? 18:55:57 able to 18:56:00 because it has no first-class functions 18:56:02 -!- sshc has joined. 18:56:02 because functions not ho 18:56:07 functions not ho 18:56:07 indeed 18:56:19 what about map/reduce with a hardcoded reduction 18:56:23 yes, that's trivial. 18:56:25 like just + 18:56:46 of course you can do that 18:56:47 -!- luatre has joined. 18:57:00 might even compile fast! 18:57:18 does Clue have higher order programs? 18:57:23 no. 18:57:24 no, as we just said :P 18:57:26 not atm 18:57:33 :: sum ~ {. [] -> 0 } sum ~ {:. [1 2 3] -> 6 : [2 3] -> 5 :. [4 5 6] -> 15 : [5 6] -> 11 } sum ~ add; cdr; 0 18:57:33 DepthLimitException: depth limit exceeded (sum) :( 18:57:35 they would be easy to add though 18:57:35 hm 18:57:37 no lambda! WHAT! 18:57:39 what did i do wrong 18:57:47 i mean ridiculously easy 18:57:51 oklopol: wow! I was hoping they would be some tremendously difficult addition 18:57:54 http://www.google.com/search?rlz=1C1TSND_enUS401US401&sourceid=chrome&ie=UTF-8&q=-lang.org#sclient=psy&hl=en&rlz=1C1TSND_enUS401US401&source=hp&q=lang.org&aq=f&aqi=g-s1g-c1g-ms2g-o1&aql=&oq=&gs_rfai=&pbx=1&fp=ca05a7bb65e82229 18:57:56 oklopol 18:57:57 There goes my life 18:57:58 what did i wrong 18:58:25 oklopol: WHAT DID I WRONG 18:58:26 I'm going to die from lack of food and sleep due to reading about programming languages for the rest of my short life. Bye all. 18:58:30 essentially you'd have to give an apply function to glue, and have syntax for functions in examples 18:58:38 Sgeo_: ah so you won't talk about them? 18:58:39 great, have fun 18:58:44 Sgeo_: aren't most of then rubbish? 18:58:49 j-invariant: doesn't matter to sgeo 18:59:11 Sgeo_: anyway are you going to structure this, like study a new one at the start of each fortnight? 18:59:15 No 18:59:16 Sgeo_: lol http://www.thorn-lang.org/ is high on that list, which Gregor did something with :P 18:59:19 at least i've seen it before 18:59:21 Sgeo_: why not? 18:59:21 and he's listed on the page 18:59:24 Sgeo_: what is your plan? 18:59:29 j-invariant, just keep reading 18:59:30 to read them all and not eat or sleep and then die 18:59:31 as he stated 18:59:49 Sgeo_: well maybe you are just fundamentally different than me, but if I did that I would not really get much out of it 19:00:13 elliott: you don't have car 19:00:18 oklopol: oh right 19:00:19 j-invariant, if by "get something out of it" you mean "be capable of writing a line of code in that language" than yes, well 19:00:22 *then 19:00:23 oklopol: you need pattern matching :P 19:00:27 car and cdr should be a single command 19:00:33 Sgeo_: no I didn't mean that 19:00:35 oklopol: returning a list, good idea! 19:00:38 oklopol: waaaaiit. 19:00:39 haha 19:00:41 :D 19:00:43 :: sum ~ {. [] -> 0 } sum ~ {:. [1 2 3] -> 6 : [2 3] -> 5 :. [4 5 6] -> 15 : [5 6] -> 11 } sum ~ add; car; cdr; 0 19:00:43 TypeError: unsupported operand type(s) for -: 'float' and '_socketobject' :( 19:00:48 ...xD 19:00:50 not exactly what i meant, but why not 19:01:07 -!- luatre has quit (Remote host closed the connection). 19:01:12 -!- luatre has joined. 19:01:13 :: sum ~ {. [] -> 0 } sum ~ {:. [1 2 3] -> 6 : [2 3] -> 5 :. [4 5 6] -> 15 : [5 6] -> 11 } sum ~ add; car; cdr; 0 19:01:14 Compiled in 0.0132999420166 seconds 19:01:14 sum: (a) => [a] | [] => 0 | _ => add(@(cdr(a)) car(a)) 19:01:20 cheater00: fold ^ 19:01:26 Is Epigram 1 any good? 19:01:28 elliott: þorn.org is the preferable address :P 19:01:37 Phantom_Hoover: No :-P Not compared to Epigram 2! 19:01:43 oklopol: why does the recursion become the first argument, that's kinda WEIRD 19:01:48 elliott, why? 19:01:51 Gregor: omg that works :D 19:01:56 Phantom_Hoover: BECAUSE IT'S NOT EPIGRAM 2 19:02:03 :. sum([1 2 7 9]) 19:02:03 19 19:02:14 j-invariant, you know about this stuff. 19:02:18 -!- sshc has quit (Read error: Connection reset by peer). 19:02:21 oh thanks Phantom_Hoover 19:02:24 -!- sshc has joined. 19:03:01 :: factorial loop ~ {. 0 6 -> 6 . 0 24 -> 24 } factorial loop ~ {:. 3 1 -> 6 : 2 3 -> 6 :. 1 6 -> 6 : 0 6 -> 6 } factorial loop ~ multiply; pred 19:03:01 Compiled in 0.00318908691406 seconds 19:03:01 factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b)) 19:03:36 Phantom_Hoover: Everything that went into epigram 1 is spelled out in Conors research papers: Read those instead.. and once you've donen that you can read the new ones about the theory of Epigram 2 19:03:42 :. factorial loop(0 factorial loop(1 factorial loop(2 factorial loop(0 3)))) 19:03:42 6 19:03:48 ...xD 19:03:52 Phantom_Hoover: Once you've done all that.. maybe Epigram 2 will be useable! 19:03:53 Timber just caught my eye 19:03:54 :. factorial loop(0 factorial loop(1 factorial loop(2 factorial loop(3 factorial loop(0 4))))) 19:03:54 48 19:04:00 oh good 19:04:09 wait it should be 4 0 19:04:14 Hmm. Does MapReduce = map . reduce with optimisations? 19:04:18 :. factorial loop(0 factorial loop(1 factorial loop(2 factorial loop(3 factorial loop(4 0))))) 19:04:18 0 19:04:20 oh wait no 19:04:21 0 4 19:04:22 right 19:04:25 :. factorial loop(0 4) 19:04:25 4 19:04:26 :. factorial loop(0 5) 19:04:26 5 19:04:34 so we want 19:04:34 Mobl.... sounds... intersting yet scary 19:04:36 factorial loop(rest this) 19:04:37 so 19:04:40 factorial loop(recurse this) 19:04:49 * Sgeo_ would NOT like to see Mobl take over the world 19:05:11 wtf is mobl 19:05:39 http://www.mobl-lang.org/ 19:05:45 :. factorial loop(factorial loop(factorial loop(0 1) 2) 3) 19:05:45 6 19:05:51 :. factorial loop(factorial loop(factorial loop(factorial loop(0 1) 2) 3) 4) 19:05:51 2880 19:06:03 :. factorial loop(factorial loop(0 1) 2) 19:06:03 2 19:06:19 Sgeo_, Christ that's stupid. 19:06:26 :: what ~ {. [] -> 0 } what ~ { [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 5 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr 19:06:26 Compiled in 0.00108098983765 seconds 19:06:26 what: (a) => [a] | _ => 0 19:06:29 ... 19:06:31 oklopol: ^ 19:06:37 oh 19:06:38 :D 19:06:39 bad syntax 19:06:47 :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 5 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr 19:06:47 RuntimeError: maximum recursion depth exceeded while calling a Python object :( 19:06:48 How many times will people reinvent the same language? 19:06:52 -!- luatre has quit (Remote host closed the connection). 19:06:58 -!- luatre has joined. 19:07:01 Same language? 19:07:01 :: factorial loop ~ {. 0 6 -> 6 . 0 24 -> 24 } factorial loop ~ {:. 3 1 -> 6 : 2 3 -> 6 :. 1 6 -> 6 : 0 6 -> 6 } factorial loop ~ multiply; pred 19:07:01 Compiled in 0.00199413299561 seconds 19:07:01 factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b)) 19:07:05 :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 5 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr 19:07:05 RuntimeError: maximum recursion depth exceeded while calling a Python object :( 19:07:10 hmm 19:07:27 :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 6 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr 19:07:27 RuntimeError: maximum recursion depth exceeded while calling a Python object :( 19:07:38 :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3] -> 6 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr 19:07:38 RuntimeError: maximum recursion depth exceeded in __instancecheck__ :( 19:07:41 ... 19:08:35 :. factorial loop(factorial loop(0 1) 2) 19:08:36 2 19:08:49 :. factorial loop(0 1) 19:08:49 1 19:08:53 :: what ~ {. [] -> 0 } what ~ {:. [0 1 2] -> 2 : [0 1] -> 1 } what ~ factorial loop; 0; car; cdr 19:08:54 RuntimeError: maximum recursion depth exceeded while calling a Python object :( 19:08:57 wtf???? 19:08:59 -!- luatre has quit (Remote host closed the connection). 19:09:04 -!- luatre has joined. 19:09:07 :: factorial loop ~ {. 0 6 -> 6 . 0 24 -> 24 } factorial loop ~ {:. 3 1 -> 6 : 2 3 -> 6 :. 1 6 -> 6 : 0 6 -> 6 } factorial loop ~ multiply; pred 19:09:08 Compiled in 0.00293016433716 seconds 19:09:08 factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b)) 19:09:19 :: what ~ {. [] -> 0 } what ~ {:. [0 1 2] -> 2 : [0 1] -> 1 } what ~ factorial loop; 0; car; cdr 19:09:20 RuntimeError: maximum recursion depth exceeded while calling a Python object :( 19:09:22 oklopol 19:09:47 elly 19:10:02 "Like many programmers with a pulse, I am compelled to create my own programming language." 19:10:06 http://jolt-lang.org/ 19:10:08 do you want me to tell you what's wrong? 19:10:17 oklopol: it stack overflows for no apparent reason 19:10:19 but yes 19:10:20 i do 19:10:59 -!- pikhq has joined. 19:11:16 -!- pikhq has quit (Remote host closed the connection). 19:11:25 hmm 19:11:56 i don't see anything wrong 19:12:25 :. factorial loop (0 6) 19:12:25 6 19:12:33 :. factorial loop (10 1) 19:12:34 3628800 19:12:36 erm 19:12:43 so what gave an error exactly? 19:12:44 Plain language! 19:12:46 "what"? 19:13:13 oklopol: yes 19:13:17 the examples for what make no sense, so there's really no telling what the code will do 19:13:25 erm 19:13:40 except you get a runtime error during compilation 19:13:46 so obviously 19:13:54 factorial loop is called with parameters what make it infloop 19:14:01 and you don't catch exceptions anymore 19:14:14 (incidentally, this is why i caught theem) 19:14:15 *them 19:14:33 oklopol: i'll catch stack overflow exceptions then? 19:14:39 hmm yeah prolly 19:14:56 Dear Pika: 19:15:01 "Mersenne Twister based pseudorandom number generator." is not a language feature. 19:15:07 In conclusion, fuck you. 19:15:12 http://www.pika-lang.org/features/ 19:15:50 Chu 19:16:20 Sgeo_: Technically that depends :P 19:16:39 Sgeo_: If it has a random-based object system ... :P 19:16:42 Sgeo_: why not? 19:17:22 j-invariant: Language features are features of the LANGUAGE, not libraries provided. 19:17:37 Well, the features page doesn't say _language_ features 19:17:46 It also doesn't list every single library 19:17:46 Oh, it didn't? :P 19:17:50 the different between language and library is fuzzy 19:18:00 Well, in that case, j-invariant: That's an extremely boring feature :P 19:18:05 hehe 19:18:41 We have a library that lets you retrieve content via HTTP! 19:18:55 -!- pikhq has joined. 19:19:25 Why you should use my language: Ships with binding to libcurl. 19:19:27 The rest of Pika is boring 19:19:39 Sgeo_: Everything except for the random number generator? ;) 19:20:13 hey Sgeo_ 19:20:14 use Apex 19:20:15 it's the best 19:20:35 Well, it's in contrast to those languages who ship with stdlibs who use the xkcd RNG 19:20:55 ...on-demand? 19:21:38 It's. A. Language. For. Code. That. Runs. On. salesforce.com. 19:21:38 what? 19:21:46 what 19:21:59 Enterprise Language 101 19:22:06 you know, every time you talk to us about languages 19:22:10 it's time you could spend googling more 19:22:14 elliott, you don't mean http://wiki.developerforce.com/index.php/Apex_Code:_The_World's_First_On-Demand_Programming_Language do you? 19:22:18 That's what Google came up with 19:22:21 no, i don't 19:22:46 Hahah, reading that. 19:22:53 i mean Apex, the expressive, functional imperative language from Cat's Eye Technologies 19:23:22 'Like all aspects of salesforce.com’s application and platform technologies, Apex Code is “on demand,” running entirely on Force.com without requiring any local servers or software' <-- this ... is what they mean? LAAAAAAAAAAAAAAAAAAWL 19:24:55 Yeah, it's the first language that HAS to be run on the cloud 19:25:05 (Probably not) 19:26:22 elliott, I can't find Apex on cpressey's site 19:26:36 it's too secret. or too vapourware. 19:26:45 also mostly formulated by me. 19:27:59 -!- cheater00 has quit (Read error: Connection reset by peer). 19:29:59 -!- Wamanuz has joined. 19:32:11 Phantom_Hoover: how come you are interested in it anyway? 19:32:20 in what 19:32:27 oh epi 19:32:33 Gregor: APPLIED PHLEBOTINUM IS BETTER THAN LOGIC 19:32:38 The consensus is: " Let’s briefly look at some non-solutions to the software problem. First, we can’t just prove everything to be correct. This is way too expensive and most real systems lack formal specifications." 19:32:46 " At present, it is not even clear that the correct behavior of large systems can be formalized at all, though hopefully this will be possible someday (exercise for the reader: formalize Asimov’s Three Laws in HOL, Coq, or a similar language)." 19:32:53 why is this broken, what manner of witchery is this 19:32:54 Everyone seems to agree with this (tripe) 19:33:07 j-invariant: eh? 19:33:29 WHAT MANNER OF WITCHERY IS THIS!!!!!! 19:33:37 elliott: it is exceptional to find people that seriously think proofs are sensible 19:33:43 wtfwtfwtfwtfwtfwtfwtwfwtwffwtwftwfwwffwtwfwtfffffff 19:33:45 or useful etc etc 19:34:00 j-invariant: you can find them interesting without finding them useful :) i.e. computer-based systems 19:34:02 j-invariant: Clearly math education should be mandatory. 19:34:17 i'm not entirely sure that Coq/Epigram/etc. are useful for proving theorems. for writing verified software, of course. 19:34:22 but regardless, they are interesting. 19:34:38 ohh 19:34:42 i like how tk eats up all exceptoins 19:34:44 and doesn't print them 19:34:45 *exceptions 19:34:46 well Tkinter 19:34:49 it's very nice 19:35:10 oh dear, that is a problem 19:36:34 oklopol: can you give your executive opinion on a part of cled 19:36:41 pikhq: huh? it is 19:36:52 j-invariant: no it isn't 19:36:54 arithmetic education is 19:36:59 hmm it's kinda broken when you tab away... todo, fix 19:37:41 j-invariant: That's no more math education than the alphabet is literature education. 19:38:15 Is it possible to teach math? 19:39:07 Quite likely. Is it possible without a mathematician becoming supreme ruler of the Department of Education (or your local national equivalent)? Probably not. 19:39:29 oklopol i need opinion 19:39:36 Because almost everyone is convinced that we already teach math, and quite well... 19:40:22 haha they must be crazy 19:41:29 j-invariant, ...you didn't know this? 19:41:46 didn't know what? 19:41:52 Were you homeschooled for your entire life until you moved out into a cave in the wilderness? 19:41:57 xD 19:42:01 That maths education is nothing of the sort. 19:42:01 I didn't pay much attention in school 19:42:44 Phantom_Hoover: anyway I am curious how&why did you get interesetd in epigram 19:42:53 It seems... interesting. 19:42:57 heh 19:44:28 combinatorics is interesting 19:45:36 Man. I just now realised that IPv4 depletion is literally happening *this month*... 19:46:00 Awesome. 19:46:10 blargh 19:46:14 Well. It *could* happen early February. 19:46:47 So wait, what was P(civilisation collapses) again? 19:46:54 0. 19:47:15 I'd suggest not being in the stock market, though. 19:47:26 Or strategically selling short. 19:47:53 But P(civilisation collapses | the stock market fluctuates) is rather high, no? 19:48:08 Quite high, yes. 19:48:26 it won't have that big a deal 19:48:29 NATs are not very hard to set up really 19:48:37 and remember that most hosting companies and the like 19:48:42 already have way more IPs than they use 19:48:51 elliott: Telecoms are boned. 19:48:55 so it's not like people are gonna see "lol no you can't have a server we have no ip to give it" 19:48:57 pikhq: oh sure 19:48:59 i'm just saying that 19:49:03 everyone already has IPs to spare 19:49:05 so it won't be a _huge_ deal 19:49:29 Except that adoption of IPv6 will be really expensive at this point, and it will be mandatory pretty soon. 19:49:50 Mostly for the telecoms. 19:55:11 Hah. 19:55:44 After depletion, RIPE and AfriNIC will only allocate IPv4 to entities with IPv6 allocations. 20:00:04 lol 20:10:10 was there something derisive about measuring code in KLOCs? 20:10:34 j-invariant: eh? 20:22:00 elliott: http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7740?context=3 20:22:58 j-invariant: heh 20:23:04 j-invariant: i think they're right though ... _for now_ 20:23:09 0.999.. = 1 therefore math is not perfect 20:23:27 j-invariant: I have a feeling that with the progress, probably a... loss of precision will be had 20:23:43 j-invariant: i.e., it turns out that if you prove a kernel, like, "only 80%" correct, it takes only 30% of the work 20:24:01 "After depending typing, the only type of bugs left are those that are not provable, like if prime numbers ever end and such." lol wat 20:24:21 elliott: well generally you would only prove the very very awkward difficult parts: So 80% correct would be 99% as hard 20:24:41 j-invariant: Perhaps! ...but then perhaps not, you see people writing unit tests for every damn thing 20:24:42 elliott: LOL 20:24:54 j-invariant: Anyway, consider, the very very awkward difficult parts tend to consist of multiple subproblems 20:25:02 j-invariant: so if you prove most of those but not all 20:25:08 j-invariant: or if you prove that all of them apply in, like, 80% of cases 20:25:35 j-invariant: like, I can imagine some proof system that lets you state some property on, like, floats, and as long as it can experimentally verify it for a few thousand random values, and also pathological ones like denormalised numbers 20:25:39 then it lets it be accepted as a theorem 20:25:43 useless, mathematically 20:25:47 but for proving software, potentially very useful 20:27:15 ? 20:27:19 that's called testing elliott 20:27:24 peopl already do that 20:27:44 j-invariant: not really 20:27:49 j-invariant: I mean, say you have a big, formal proof 20:27:54 j-invariant: that relies on some twiddly property of floating point numbers 20:28:03 j-invariant: if you can prove that, using that theorem 20:28:14 and then have that hypothesis about floating points "experimentally" demonstrated 20:28:17 then it allows the proof 20:28:28 that's a whole lot better than just testing the component 20:33:04 j-invariant: lol ololol ololo olol ololololo lololoo 20:33:06 j-invariant: "Does computer science completely miss the point of a computer -- namely, that it is a creative tool?" 20:33:19 One could argue that computer science is like a "pen science" where scientists find ways to write as quickly as possible with a pen and to fill up a page with as much text as possible. 20:33:19 That would of course completely miss the point of a pen. 20:33:19 One could say something similar about computer science with its focus on time and space efficiency of computations. 20:33:21 The computer -- like a pen -- is a creative tool and the focus should be on the invention of new kinds of software applications -- not on making existing ones more efficient. 20:33:22 Universities should have a creative field of study -- distinct from computer science -- for novel uses of computers. 20:33:24 roffflllll 20:33:26 xDD 20:33:46 worst thing ... ever 20:33:51 XD 20:34:02 how did that get on /r/compsci 20:34:26 j-invariant: i like how they think computer science is just about like 20:34:27 optimising programs 20:34:40 "hat does the /r 20:34:46 *What does the /r mean? 20:34:57 Phantom_Hoover: subreddit 20:34:59 it's part of the url 20:35:02 reddit.com/r/subredditname 20:39:16 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 20:39:21 oklopol you'll love this program 20:39:26 do you know why oklopol 20:44:44 hm 20:44:49 elliott: where was that 20:44:49 * Sgeo_ accidentally mentally dropped the why 20:44:57 j-invariant: /r/compsci 20:45:01 Sgeo_: what 20:45:03 oh 20:45:03 yeah I know 20:45:09 j-invariant: it's on the front page 20:45:12 of compsci 20:45:14 I looked there 20:45:34 it's #3 20:45:37 so you're not looking quite hard enough :D 20:45:41 http://www.reddit.com/r/compsci/comments/ez4op/does_computer_science_completely_miss_the_point/ 20:46:24 what thehell? that's not on my front page at all 20:47:01 -!- Phantom_Hoover has joined. 20:47:37 elliott: looks like the poster actually agrees with that stuff http://www.reddit.com/r/compsci/comments/ez4op/does_computer_science_completely_miss_the_point/c1c2upo 20:47:43 j-invariant: i have a feeling the poster asked the question 20:47:45 elliott: P.S. did you not notice this is voted zero :| 20:47:47 i just realized i haven't used ftp in so long that i don't have a proper ftp client installed. any recommendations? 20:47:54 j-invariant: i did yeah 20:47:59 quintopia: ftp(1) 20:48:07 meh 20:48:16 it's trivial to use 20:48:36 -!- sebbu2 has joined. 20:48:39 yeah, but it requires me to remember the command names. i want drag and drop for instant gratification 20:48:59 read: i'm lazy, motherfuckers 20:51:20 -!- sebbu has quit (Ping timeout: 272 seconds). 20:54:33 IRONY: http://i.imgur.com/DkbPs.png 20:54:51 (after someone got into his account in the thread an xss was discovered in stackoverflow) 20:56:24 It's ok, he never uses StackOverflow anyway 20:57:08 jeff atwood is such a dork 20:59:20 *thread where an 20:59:33 i wish i could delete jeff atwood's face 20:59:34 or all of him 21:00:36 j-invariant: have you written any clue programs yet? 21:00:51 no I am waiting for the wiki page: please write it! 21:01:21 j-invariant: http://esolangs.org/wiki/Clue_%28oklopol%29 21:01:30 j-invariant: it is not very complete... e.g. bags can also contain objects 21:01:33 but it's a primer :> 21:01:42 oh wait it does say that 21:01:44 ok just read it then 21:02:04 I should write a Clue compiler 21:02:18 j-invariant: uh, "good luck" 21:02:27 j-invariant: clue.py is 717 lines 21:02:55 obviously the problem is that you're using python 21:03:00 j-invariant: :> 21:03:17 j-invariant: writing clue programs is great fun though, you struggle through and go wtf, but the moment the compiler spits out the right function 21:03:22 it feels like it was so easy 21:03:25 and your code is so simple 21:04:26 ::: http://pb.vjn.fi/p9634238413.txt 21:04:26 Downloading... 21:04:27 Compiling, just a minute... 21:04:27 DepthLimitException: depth limit exceeded (:..: factorial stack-hogging factorial) :( 21:04:33 aw man ... 21:04:38 comments don't actually work 21:04:56 so how do you compile clue? 21:05:12 j-invariant: difficultly... 21:05:19 j-invariant: it's basically advanced brute force :) 21:05:23 it's not just breath first generate all programs? 21:05:29 no way 21:05:39 there's a reason there's more than one {} branch in each function 21:05:42 well, most functions 21:05:47 i.e., there's a reason you do that 21:05:49 there's a reason the bag exists 21:05:53 and there's a reason :. : exist to denote recursion 21:06:05 okay this is getting complicated 21:06:25 j-invariant: hehe 21:06:52 j-invariant: yeah there is basically no way you could do recursive functions (only flow control other than branching really) with a stupid search like that 21:06:58 the search is stupid, not the idea, that is 21:07:08 hm 21:07:56 -!- luatre has quit (Remote host closed the connection). 21:08:01 -!- luatre has joined. 21:08:02 ::: http://pb.vjn.fi/p9634238413.txt 21:08:02 Downloading... 21:08:03 Compiling, just a minute... 21:08:03 DepthLimitException: depth limit exceeded (:..: factorial stack-hogging factorial) :( 21:08:06 wtf 21:08:14 -!- luatre has quit (Remote host closed the connection). 21:08:19 ooh this is a clue bot! 21:08:19 -!- luatre has joined. 21:08:21 ::: http://pb.vjn.fi/p9634238413.txt 21:08:21 Downloading... 21:08:22 Compiling, just a minute... 21:08:22 DepthLimitException: depth limit exceeded (:..: factorial stack-hogging factorial) :( 21:08:26 don't use it i'm busy fixing it :> 21:08:32 :P 21:08:39 wait what ... 21:08:52 o, lol 21:10:44 hey j-invariant 21:10:52 how many ways can you represent 6, if . is +1 and : is +2 21:10:59 and those are the only symbols you can use 21:11:39 i don't know what . and : do 21:11:47 oh they are symbols for +1 and +2 21:11:58 well ...... is 6 21:12:03 ::: is 6 21:12:03 Downloading... 21:12:04 ValueError: unknown url type: is 6 :( 21:12:19 ... 21:12:20 j-invariant: yep 21:12:22 but you can combine them 21:12:22 wtf 21:12:29 Gregor: it's a cluebot. 21:12:32 :.... .:... ..:.. ...:. ....: 21:12:32 Downloading... 21:12:33 URLError: :( 21:12:33 http://lemonparty.com 21:12:41 It's a fail :P 21:12:42 Gregor: xD 21:12:50 ::.. <-- can't be bothered drawing all these but there are 4!/2!2! of them 21:12:50 Downloading... 21:12:51 ValueError: unknown url type: <-- can't be bothered drawing all these but there are 4!/2!2! of them :( 21:13:01 ::: http://lemonparty.com 21:13:01 Downloading... 21:13:01 Compiling, just a minute... 21:13:02 Compiled in 3.00407409668e-05 seconds 21:13:05 xD 21:13:07 XD 21:13:09 LOL 21:13:27 Elliott-Hirds-MacBook-Air:~ ehird$ curl http://lemonparty.com 21:13:28 21:13:32 hardly surprising it was fast then 21:13:49 elliott: 1 + 5!/1!4! + 4!/2!2! + 1 21:14:21 j-invariant: ok, i'm not gonna write out all 2906 then :D 21:14:44 that's 13?? 21:14:52 oh, W|A fails at parsing 21:14:59 wtf 21:15:03 coppro: what 21:15:07 yeah I wasn't using proper syntax 21:15:19 4!/2!2! is obviouly 24 21:15:33 and 5!/1!4! is obviously 24*120 21:15:43 it's 5!/(1!4!). 21:18:33 I mean 4!/(2! * 2!) 21:18:40 i.e. 6 21:19:05 it makes no sense to use abcd/efgh as abcdfgh/e 21:19:11 I don't who does this 21:19:16 well, everyone does, but I don't know why 21:19:25 sometimes it looks nicer 21:19:26 kinda 21:19:33 same reason you see \frac{1}{x} ... in equations 21:19:36 yes but in that case you can use (abcd/e)fgh 21:19:40 true 21:19:42 -!- GreaseMonkey has joined. 21:21:39 same reason you see \frac{1}{x} ... in equations ← as opposed to...? 21:23:21 Phantom_Hoover: \frac{...}{x} 21:23:29 elliott: words letters = map (flip replicateM letters) [1..] 21:23:37 Oh. 21:24:14 j-invariant: was that...responding to my #haskell question in here? 21:24:14 :D 21:24:43 @pl words letters = map (flip replicateM letters) [1..] 21:24:43 words = flip map [1..] . flip replicateM 21:25:07 j-invariant: that produces a list of lists, you mean concatMap surely 21:25:22 Hey, an @pl which is pretty! 21:25:24 Re the "how many times", it's actually fib times: http://oeis.org/A000045 "F(n)=number of compositions of n-1 with no part greater than 2. Example: F(4)=3 because we have 3 = 1+1+1=1+2=2+1." 21:25:52 elliott: oh flip replicateM letters =<< [1..] then 21:26:22 Prelude Control.Monad> takeWhile (\x -> s x < 7) (words ":.") 21:26:22 [":",".","::",":.",".:","..",":::","::.",":.:",":..",".::",".:.","..:","..."] 21:26:23 j-invariant: wait what 21:26:28 Prelude Control.Monad> let s('.':xs)=1+s xs;s(':':xs)=2+s xs;s []=0 21:27:48 j-invariant: is it just not ordered like that? 21:28:09 j-invariant: yay i got all 13 21:28:10 [":::","::..",":.:.",":..:",".::.",".:.:","..::",":....",".:...","..:..","...:.","....:","......"] 21:28:39 Re the "how many times", it's actually fib times: http://oeis.org/A000045 "F(n)=number of compositions of n-1 with no part greater than 2. Example: F(4)=3 because we have 3 = 1+1+1=1+2=2+1." ← COINCIDENCE? 21:28:47 wat 21:29:18 Phantom_Hoover: And of course it's fib, since for all the F(n) ways to write n, there are F(n-1) those that start with '.' and F(n-2) those that start with ':'. 21:29:43 Yes, I know. 21:29:52 Admittedly the example is a bit silly. 21:30:03 fizzie: how many times what 21:30:17 oh how many ways to write? 21:30:18 -!- luatre has quit (Remote host closed the connection). 21:30:20 elliott: Should've been that, yes. 21:30:23 -!- luatre has joined. 21:30:32 ::: http://www.vjn.fi/pb/p9634238413.txt 21:30:32 Downloading... 21:30:33 Compiling, just a minute... 21:30:33 Compiled in 0.000127077102661 seconds 21:30:38 ...that's definitely not right 21:30:49 -!- Phantom__Hoover has joined. 21:30:49 -!- Phantom__Hoover has quit (Changing host). 21:30:49 -!- Phantom__Hoover has joined. 21:31:04 Phantom_Hoover: What's with that x- suffix. 21:31:44 j-invariant: lol: 21:31:48 21:28 EvanR-work: set of finite strings from a countable alphabet is countable? 21:31:48 21:28 Cale: EvanR-work: yes 21:31:48 21:28 EvanR-work: interesting 21:31:53 j-invariant: WHAT A REVELATION 21:32:01 elliott: he meant something else 21:32:07 are you suure 21:32:08 elliott: he was thinnking base infinity 21:32:13 oh 21:32:19 well that's continued fractions :) 21:32:21 elliott: which is not at all what he /said/ :P 21:32:25 elliott, no idea. 21:32:34 wait no it isn't 21:32:38 elliott: everyone in #haskell is going "oh I misread it" 21:32:38 Ask the guy on #freenode who cloaked me. 21:32:46 21:29 cdsmithus: EvanR-work: It's pretty easy to see. Just enumerate all the 0-length strings (finitely many), then all the 1-length, then the 2-length, and so on. Every finite string has some length, and will be reached eventually 21:32:49 finitely many 0-length strings 21:32:53 all 1 of them 21:34:17 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 21:36:10 ::: did i break this ~ {. 0 -> 1} did i break this ~ 1 21:36:11 Downloading... 21:36:11 ValueError: unknown url type: did i break this ~ {. 0 -> 1} did i break this ~ 1 :( 21:36:14 :: did i break this ~ {. 0 -> 1} did i break this ~ 1 21:36:14 Compiled in 0.00750088691711 seconds 21:36:17 yes, yes i did 21:36:48 ohhhh 21:36:50 xDDD 21:37:25 -!- luatre has quit (Remote host closed the connection). 21:37:30 -!- luatre has joined. 21:37:34 ::: http://www.vjn.fi/pb/p9634238413.txt 21:37:34 Downloading... 21:37:34 Compiling, just a minute... 21:37:35 Compiled in 0.080559015274 seconds 21:37:35 factorial: (a) => [a] | _ => factorial loop(a 1) 21:37:35 stack-hogging factorial: (a) => [a] | 0 => multiply(pred(0) pred(0)) | _ => multiply(a @(pred(a))) 21:37:35 factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b)) 21:37:35 fibonacci: (a) => [a] | _ => fast fibonacci loop(a 0 1) 21:37:36 fast fibonacci loop: (a, b, c) => [a] | 0 => b | _ => @(pred(a) c add(b c)) 21:37:36 slow fibonacci: (a) => [a] | 0 => 0 | 1 => 1 | _ => add(@(pred(a)) @(pred(pred(a)))) 21:37:41 commentz wurk! 21:38:57 j-invariant: so my program's structure is quite flawed, what about you 21:39:01 any flawed programs lately? 21:42:15 everything I have written in the past ... forever 21:42:24 -!- oerjan has joined. 21:43:15 j-invariant: :D 21:43:18 j-invariant: have you ever written GUI PROGRAMS 21:43:26 yeah they suck :| 21:43:32 I don't know how to make it look okay 21:43:34 j-invariant: haha what did you write 21:43:40 well I tried to make a little REPL 21:43:40 -!- pumpkin has changed nick to copumpkin. 21:43:50 GUI PROGRAMS WHERE ARE THEY GET THEM AWAY 21:44:53 Phantom__Hoover: cled! 21:44:55 cled is a gui program 21:44:58 it's the best gui program ever in fact 21:45:02 AAAAAAAAAAAAAAAAAAAAAAAa 21:45:20 j-invariant: how didn't it look ok? :p 21:46:12 http://i.imgur.com/6eG6a.png 21:46:31 j-invariant: that doesn't look bad 21:46:45 it sorts of sucks 21:46:50 I'd add a bit more spacing after the rendered equation, and possibly make that whole upper pane white-backgrounded if i could 21:46:56 j-invariant: what did you write it with? 21:47:07 elliott, http://www.reddit.com/r/Minecraft/comments/ezre7/did_notch_give_details_why_they_switched_from_git/ 21:47:09 gtk haskell 21:47:09 j-invariant: anyway it's not as ugly as cled http://i.imgur.com/M27fK.png :D 21:47:13 j-invariant: by far 21:47:21 Phantom__Hoover: "From my own experience with both I find Subversion to be easier to understand." lol 21:47:24 I like the look of cled 21:47:29 j-invariant: really? it's hideous :D 21:47:35 elliott, is Subversion awful? 21:47:41 elliott: I want to make a GUI for interactive program derivation 21:47:46 Phantom__Hoover: It's centralised. Its aim is to be "CVS done right" which is impossible. So yes. 21:47:50 j-invariant: that would be amazing 21:48:01 elliott: Haskell 21:48:10 eh? 21:48:12 like that paste I showed you: except you do it all in place 21:48:14 right 21:48:21 which paste 21:48:21 :P 21:48:25 hey that would be really cute I should actually make it 21:48:38 j-invariant: btw cled isn't really meant to look like that... ideally instead of those awful borders, it'd have like, those outwards poking ones... so that it looks like things deeper in the tree stick out further, you know? 21:48:39 3d style 21:48:46 j-invariant: and then what would happen is, descent would be shown by element background 21:48:49 not by border colour 21:48:52 that's on the todo list 21:49:31 Program derivation? 21:49:56 j-invariant: it'd be a lot nicer because right now borders kinda drown out everything 21:50:40 Phantom__Hoover: here is a derivation of init in terms of foldr http://pastebin.com/raw.php?i=VBavHxpt 21:50:45 ah right 21:50:58 hm actually there is no nice way to make a GUI for this 21:51:20 j-invariant: btw, isn't your cons just (:) there... 21:51:40 oh wait 21:51:40 no 21:51:53 the cons name is kinda confusing though :p 21:52:40 elliott: I don't think there is a good way to make a GUI for program derivation 21:52:57 there are too many different ways to structure things 21:53:07 What else is on voxelperfect.net other than esolang stuff? 21:53:09 perhaps... 21:53:10 Phantom__Hoover: nothing 21:53:12 that we know of 21:53:14 Phantom__Hoover: did you read that? 21:53:30 j-invariant, yes, but it confuzzled me. 21:53:33 why? 21:54:14 j-invariant: that's wrong 21:54:26 Because I have no idea what fold is meant to do. 21:54:37 Phantom__Hoover: oh you should learn about foldr 21:54:44 copumpkin: it is? 21:54:51 have you tried running it? 21:55:06 Well, I *know* what foldr is, but I thought it had a function involved... 21:55:08 > foldr cons [] [1..10] 21:55:09 saying why it's wrong >> telling to run :) 21:55:10 [] 21:55:14 :P 21:55:15 copumpkin: fail 21:55:19 copumpkin: cons is defined in the where clause 21:55:22 :t cons 21:55:23 forall a. a -> [a] -> [a] 21:55:24 ^ that's not used 21:55:29 ? 21:55:33 no, I @let that myself 21:55:35 init = foldr cons [] where 21:55:35 cons x [] = [] 21:55:35 cons x (y:ys) = x : y : ys 21:55:36 is the final result 21:55:38 oh 21:55:39 as defined in the where clause 21:55:46 wait what 21:56:03 wait, wait what 21:56:08 I wrote @let cons x [] = []; cons x (y:ys) = x : y : ys 21:58:52 > let cons x [] = [x]; cons x (y:ys) = x : y : ys in foldr cons [] [1..10] 21:58:53 [1,2,3,4,5,6,7,8,9,10] 21:59:02 that's revealing 21:59:08 :) 21:59:21 j-invariant: you should write a clue program ... with cled! 21:59:32 copumpkin: that's not the intention, though 21:59:34 elliott: I thought it was a debugger 21:59:39 j-invariant: ... :D 21:59:47 elliott: I know! I'm just saying, it shows where it's going wrong 21:59:54 j-invariant: I have no idea how http://i.imgur.com/M27fK.png could be used to debug anything 22:00:03 j-invariant: it's actually an editor 22:00:18 j-invariant: what you see in that screenshot is the clue branch 22:00:19 {. 0 1 -> 1 22:00:19 . 0 5 -> 5 } 22:00:43 you can descend and ascend through that tree, basically, move about, and edit individual atoms 22:00:49 plus add/remove to the lists, etc. 22:00:55 the lists in a display sense, not in clue-code-sense 22:01:47 hmm i shouldn't link to such scary screenshots when #haskellers are around 22:01:54 i have a feeling they have some modicum of taste 22:02:00 copumpkin: can you confirm/deny? 22:02:07 ? 22:02:15 I'm not a true haskeller 22:02:21 that #haskellers have some modicum of taste 22:02:27 nah, no taste here 22:02:32 and thus linking to things like http://i.imgur.com/M27fK.png when they're around is likely to scare them off 22:02:41 I've seen worse 22:02:47 :) 22:02:56 but keep in mind that I have no taste 22:03:05 so my idea of worse may actually be better 22:03:11 i should implement that background-based system, like now 22:03:17 and it'd stop scaring off helpless children 22:04:57 http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7ks6 22:05:19 HAY GUYS: GODELGODELGODELGODELGODEL 22:05:30 when will people learn this is just not relevant? 22:06:47 godel is often relevant! but usually not in the cases when people think it is 22:08:00 "GODELGODELGODEL" is the sound of a mathematician turkey. 22:12:30 the incompleteness from outer space 22:14:07 what's a nice, light blue 22:14:18 0000FF 22:14:24 THAT IS NOT LIGHT 22:14:29 FFFFFF 22:14:34 THAT IS NOT BLUE 22:14:40 BBBBFF 22:15:08 that is... not nice... actually it's koay 22:15:09 okay 22:15:09 :P 22:15:22 givin' cled a makeover 22:17:18 http://twitter.com/notch/status/24558373093515264 Reeds are now sugar canes. I am not even kidding. 22:17:18 http://www.minecraftwiki.net/wiki/Sugar_Cane 22:17:31 fizzie: Vorpal: Gawp at the ...ness. 22:19:19 I found some reeds but I could not find them again :( 22:19:21 I lost them 22:20:18 j-invariant: *SUGAR CANES 22:20:24 j-invariant: have you joined the server yet :p 22:20:43 elliott: what is the address? 22:21:35 j-invariant: I can't tell you, that would be wrong; you'll have to look at a four days old log or something where we discuss mcmap! 22:21:46 That is a guess of course. Naturally. 22:21:46 why not 22:21:52 An utter guess. 22:21:56 I dno't want to join if I'm not supposed to 22:22:02 :P 22:22:13 you should ask the boss if its okay 22:22:16 get oklopol to tell you, he has oklopolic immunity 22:22:25 and that's no joke 22:23:55 Our administratafator has been a bit gone for the evening; my guess is some sort of debauchery. 22:24:39 fizzie: You're the right-hand man, go tell j-invariant the address. 22:25:31 elliott: and from those sugar canes you will be able to produce high-fructose corn syrup >:) 22:25:38 Oh, but I couldn't possibly, that'd be insubordination. 22:26:00 Our administratafator has been a bit gone for the evening; my guess is some sort of debauchery. ← MATLAB debauchery? 22:26:02 oklopol: Insubordinate! 22:26:21 fizzie: So is there a scenester named SUGAR CANE who isn't in your pants either? 22:26:23 Your sign needs changing. 22:26:32 Oh, right. 22:26:39 also whiskey and creme brulee 22:26:39 Or just leave it as a protest :P 22:26:50 Well, maybe I'll just be all RETRO-reed. 22:26:52 Oh man, whiskey in Minecraft would be amazing. 22:27:05 "I was into reeds before they were sugar canes." 22:27:10 It'll, like, restore 70% of your health, but if you drink too much your vision starts going blurry and stuff. 22:27:14 And tilting around. 22:27:17 fizzie: you had reeds on vinyl? 22:27:37 i had reeds before they sold out 22:27:48 "Reeds on Vinyl", sounds like a band. 22:28:14 "Sounds like a band" sounds like a band. 22:28:20 fizzie: with the amount of things the internet has called good band names, we'd need like 1,000 times more bands than have ever existed to be created. 22:28:58 "'Sounds like a band' sounds like a band" sounds like a band 22:29:33 My band will be called #1#="\"#1#\" sounds like a band". 22:29:37 Literally that. 22:29:43 s/band/band name/g 22:29:47 heh 22:29:50 First album will naturally be called Main Page. 22:29:56 Because fuck Wikipedia! 22:33:39 * oerjan recalls there was a norwegian race horse named "Sugar Cane Hannover" 22:33:59 *hanover 22:34:21 the people who name horses are like people who name cats fun things, except on crack 22:34:31 like, you start naming cats silly things 22:34:34 but then when you get a job 22:34:35 and become a pro 22:34:37 you become a horse name 22:34:37 r 22:34:53 famous enough to have a no.wikipedia page 22:34:57 what is it with horse names, anyway? 22:35:11 born in sweden actually 22:35:52 "Followed by the horse formerly known as Horse." 22:36:15 I found that more hilarious than it was 22:36:24 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:36:25 if horse racing actually involved like 22:36:27 programming jokes 22:36:30 i'd watch 22:36:39 But oh! Here comes My Other Car Is A Cdr! 22:37:16 * Sgeo_ hits elliott with an element and a list 22:37:24 that's cons. 22:37:25 I'll name my horse 🐎. 22:37:42 Name a horse after the Unicode snowman. 22:37:45 Someone tell me if Firefly is non-crap. 22:37:58 elliott, you think I'm capable of thinking of some stupid not-that-funny thing to say about car and cdr? 22:38:00 it isn't 22:38:02 Phantom__Hoover: It's... Joss Whedon-y, isn't it? Said as someone who hasn't seen it. 22:38:04 FireFly: BIAS 22:38:05 or, well, I dunno 22:38:15 FireFly, it isn't non-crap? 22:38:23 From the little I've seen, yes 22:38:25 assuming you mean the show 22:38:28 Phantom__Hoover: I get the feeling there's more western there than scifi. 22:38:32 "Space western", as they say. 22:38:34 I know people like Firefly 22:38:35 You mean that it is, in fact, crap? 22:38:46 Gregor: Name a horse the GLAGOLITIC CAPITAL LETTER SPIDERY HA. 22:38:49 Gregor: Pronounced like that. 22:38:51 And that it was cancelled 22:38:51 * Phantom__Hoover applauds Sgeo_ for his research skills. 22:39:03 I THINK THEY MADE A MOVIE OUT OF IT 22:39:06 GUYS? GUYS??? 22:39:11 So wait, noöne has actually seen it? 22:39:19 randall munroe likes it, which is always a bad sign 22:39:21 Well then, I see no harm in joining the crowd. 22:39:31 elliott, he liked it pre-xkcdecay. 22:39:41 elliott, Randall Munroe likes breathing. 22:39:52 Sgeo_: Breathing is kind of a pain. 22:39:55 sometimes. 22:40:01 Phantom__Hoover: Sure, but he also liked Python. 22:40:10 I like Python! 22:40:12 elliott: not breathing even more so 22:40:16 elliott, Python is a necessary evil. 22:40:22 Phantom__Hoover: Is it? 22:40:32 * Sgeo_ cries as his lingua fraca gets spit upon 22:40:51 Python is a terrible language. 22:41:00 elliott, lazy people and idiots want to program. 22:41:12 Phantom__Hoover: Funny. I don't want them to. 22:41:39 elliott: Dude, I'm going to change MY name to GLAGOLITIC CAPITAL LETTER SPIDERY HA 22:41:43 elliott, yes, but it filled a gap in the market, so it was inevitable. 22:41:43 And would you rather they used Perl? 22:42:03 Phantom__Hoover: No, but ... intelligent people who like Python are odd. 22:42:06 Gregor: I approev. 22:42:07 *approve. 22:42:12 Phantom__Hoover: And they, strangely, exist. 22:42:15 oklopol! 22:42:30 oklopol likes Python for, like, totally different reasons to everyone else. 22:42:54 Sgeo_: *franca 22:43:05 elliott, what reasons? 22:43:20 Phantom__Hoover: Well, not "clean code and comprehensive standard libraries" :-) 22:43:37 elliott, do you think I'm an idiot? 22:43:39 oerjan: don't be harsh, english isn't Sgeo_'s lingua fraca 22:43:47 * Sgeo_ lols 22:43:49 Because oklobrainese compiles easily to Python? 22:43:50 Sgeo_: Not really, but I have the feeling you like Python for the wrong reasons. 22:43:53 Phantom__Hoover: WHO KNOWS 22:44:06 elliott: hey i wasn't intending to start a fracas 22:44:17 oerjan: ...you win :D 22:44:47 YAY 22:45:27 There's a language called HaXe 22:45:34 AND MY HAXE 22:45:45 As far as I can tell, the only reason people like it is its "portability" 22:45:54 -!- pikhq has quit (Remote host closed the connection). 22:46:30 I need to start drinking more coffee. 22:47:38 -!- Phantom__Hoover has quit (Quit: Leaving). 22:48:44 Fancy's supposed to be able to target a bunch of stuff eventually 22:48:52 hey j-invariant design my program 22:48:54 somehow 22:49:13 -!- pikhq has joined. 22:49:19 Now that I look at http://www.fancy-lang.org/features/ again, it looks boring 22:49:33 Except for the BDD thingy, which puts Scala's thing in mind 22:50:12 example-driven development is the only acceptable policy. 22:50:27 lol 22:50:31 NOT 22:50:32 KIDDING 22:50:45 * Sgeo_ still wants to know if it's TC 22:50:46 -!- pikhq has quit (Remote host closed the connection). 22:50:52 what, Clue? 22:51:20 elliott: ideally the language _specification_ should be example-driven, no? 22:51:22 Yes 22:51:30 Sgeo_: yes, it is 22:51:41 Huh. That's awesome. 22:51:43 How? 22:51:45 oerjan: oh yes definitely, but unfortunately there's no other example-driven processors 22:51:55 Sgeo_: you can basically write simple imperative loops that use each other 22:52:01 and there's also an ski interpreter 22:52:05 and quicksort 22:52:06 soo 22:52:06 QED 22:52:11 most people would consider SKI enough 22:52:17 but, you might not consider that so if, e.g., 22:52:20 elliott: i guess it's hard when you don't have any examples 22:52:21 you can't express every turing machine as a unique program 22:52:34 but, yes 22:52:38 you can basically write code imperatively 22:54:48 bleh 22:54:51 does anyone know tk here 22:56:26 I know of it. And that Python comes with libraries for it 22:56:44 22:55 < qfr> How am I supposed to develop software in Haskell if I can't even prepare my projects in UML?! It seems like an impossible task. 22:56:48 HAHA 22:57:07 :D 22:57:10 are they serious 22:57:14 I think so 22:58:42 j-invariant: oh god, he is 22:59:05 this is amazing, like meeting a Mormon or something 22:59:17 aw everyone is ganging up on him 22:59:34 j-invariant: except for the ones who are telling him UML can work ... lol 23:00:16 WTF does UML have to do with Haskell? 23:00:28 Is UML some sort of imperative thingy? I thought it was flowchartiness 23:00:34 Which I guess is imperative 23:00:48 It's OO. 23:01:05 Ah 23:02:30 elliott: http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7sdo 23:03:15 elliott: stupid guy, first comes out with this irrelevant halting problem crap then starts being all arrogant 23:04:06 heh 23:04:22 lol 23:04:23 all the godel/turing/etc stuff 23:04:36 man, I got downvoted 23:04:37 wtf 23:04:39 people just need to STFU about it 23:04:54 yeah cool you just learned something new and interesting, NOT EVERYTHING IS A NAIL 23:05:00 j-invariant++ 23:05:26 Why don't we get people that just learned thermodynamics and join every fucking energy discussion with "YYEAH BUT YOU CANT CREATE INFINITE FREE ENERGY SO WHY BOTHER WITH WINDMILLS?" 23:05:39 `addquote 22:55 < qfr> How am I supposed to develop software in Haskell if I can't even prepare my projects in UML?! It seems like an impossible task. HAHA [...] this is amazing, like meeting a Mormon or something 23:06:06 j-invariant: because you don't have Thermo Engineering 23:06:08 j-invariant: or Thermo Monkeys 23:06:30 HackEgo: ping :( 23:06:52 264) 22:55 < qfr> How am I supposed to develop software in Haskell if I can't even prepare my projects in UML?! It seems like an impossible task. HAHA [...] this is amazing, like meeting a Mormon or something 23:07:36 elliott: the guy is fucking off the wall 23:07:43 elliott: like totally bonkers 23:07:48 I can't even keep up with what's going on 23:08:01 I love the guy responding to me with a condescending tone 23:08:09 copumpkin: which guy 23:08:17 tachi-kaze 23:08:21 http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7s0t 23:08:26 the reply to that 23:08:43 I don't get the aversion to correctness 23:08:46 copumpkin: i'm glad to see you've found the secret purpose of #esoteric, other than #minecraft 23:08:47 it's actually completely mad 23:08:50 -!- pikhq has joined. 23:08:51 which is #behind-people's-backs 23:08:56 mmm 23:09:00 copumpkin: you're godofpumpkins i guess? 23:09:06 That just means we can't exactly decide when something halts or not <---- nobody cares 23:09:10 oerjan: yep :) 23:10:02 copumpkin: oerjan is FAMOUS, he basically wrote half of the haskell 98 report* 23:10:06 *complete and utter hogwash 23:10:07 http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7ks6 23:10:11 lol 23:10:14 it upsets me that this comment has score 2 23:10:16 oerjan: point copumpkin to that typo you fixed or whatever!! 23:10:18 it should be -30 23:10:20 your fame will never end 23:10:32 j-invariant: keep saying that in here and I'm sure it will be :) 23:10:39 i did my bit!! HIVEMIND 23:10:41 doubt it 23:10:46 * copumpkin posts to twitter that it should be -30 23:10:48 now to go make stupid comments 23:10:55 copumpkin: WE CAN DO THIS 23:10:56 (I have a lot of dumb followers who do my bidding) 23:10:57 well only actually downvote it if you agree with me: That his comment is totally irrelevant 23:10:59 if we all work together! 23:11:04 elliott: there were several and i don't have them memorized 23:11:08 j-invariant: MORONS DON'T UNDERSTAND QUALIFIERS 23:11:33 dammit now my z key is acting up 23:11:35 I think tachi-kaze has probably smoked a load of dope 23:11:42 holy shit comex has a lot of twitter followers now 23:11:43 nothing he says has anny connection to reality 23:11:45 107,757... 23:11:47 i remember when he had like 23:11:47 3 23:11:49 elliott: indeed :) 23:11:55 comex superstar! 23:11:57 damn dude, getting all famous and hsit 23:11:58 whoa, copumpkin is in this channel 23:11:58 *shit 23:12:01 lol 23:12:07 comex: duh, I follow you around 23:12:09 what's comex? 23:12:13 j-invariant: this Agora player! 23:12:17 >:D 23:12:19 no, actually I saw people mention it in #haskell(-blah?) 23:12:20 that's what he's known for 23:12:21 playing Agora 23:12:23 nah 23:12:24 I'm not a player 23:12:28 well okay 23:12:30 EX-agora player 23:12:33 as of a few days ago :P 23:12:41 but my statement will be correct again soon enough 23:12:44 comex is a playa 23:12:45 comex: I'm gonna go around tleling people 23:12:48 I knew comex before he was famous 23:12:50 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 23:12:53 why so many followers? 23:12:59 j-invariant: superstar, and playa 23:13:01 but you never knew me before I was an Agora player 23:13:02 j-invariant: he did the new jailbreakme.com iPhone crack 23:13:07 *jailbreak 23:13:07 your statements contradict ;) 23:13:10 oh cool 23:13:15 also that's not very new anymore 23:13:18 well no 23:13:22 but it's what propelled you to INTERWEBS INFAMY 23:13:29 comex: i say new because, i remember using the old jailbreakme 23:13:32 on the day i bought my iphone 23:13:34 oh 23:13:35 good point 23:13:35 (I have a lot of dumb followers who do my bidding) <-- you do know that voting conspiracies are a bannable offense on reddit, right? 23:13:40 elliott: I helped make that one :P 23:13:46 oerjan: he can just say "omg this is so stupid" 23:13:51 but they're not in Agora 23:13:55 oerjan: well luckily I don't do such conspiracies 23:13:57 copumpkin: naw, Haskell can't do anything practical like that 23:14:03 stop lying 23:14:06 elliott: lol, that was pre-haskell :P 23:14:13 oh the old one 23:14:13 then I saw the light and lost interest in iphonez 23:14:35 yeah 23:14:36 :( 23:14:39 i have to go to bed 23:14:40 not as superstarish as comex, sadly 23:14:47 I did not get anything done 23:14:47 i had comex on vinyl 23:14:51 this sucks 23:14:54 let's play ircnomic 23:14:58 before he went platinum 23:15:01 j-invariant: don't sleep! 23:15:06 sleep is for the weak anyway 23:15:11 comex: heh, #ircnomic still redirects to ##nomic 23:15:12 BUT I CAN FIX THAT 23:15:21 grumble wooble grumble grumble cough 23:15:32 * copumpkin eats some orange chicken 23:15:48 stop ditsracting me 23:15:55 risdacting 23:16:00 *risdracting 23:16:31 gah, how can i remove the redirect... 23:16:46 I thought comex was famous for iPhone-related reasons before jailbreakme 23:16:47 -!- elliott has changed nick to ehird. 23:17:22 Sgeo_: he had a sex tape 23:17:36 lol 23:17:44 with emma watson 23:18:24 HOW DO YOU REMOVE A CHANNEL REDIRECT 23:18:27 the forces of wooble are acting against me 23:20:42 ehird: this fucking qfr is just an idiot trill 23:20:47 I'm bored o fhim 23:20:48 comex: #ircnomic now open for business 23:20:54 don't crowd around now 23:20:56 one at a time 23:21:43 j-invariant, I thought it was centuries before we learned the Trills' secrets 23:21:48 *secret 23:22:04 -!- Sgeo_ has changed nick to Sgeo. 23:22:25 Sgeo: oh, shush 23:22:31 comex: do you have a copy of the last ircnomic ruleset :D 23:22:35 waht is a trill? 23:22:40 star trek. 23:22:45 no 23:23:06 comex: well... get one? 23:23:29 copumpkin: so have you started playing minecraft yet >:D 23:23:33 I just want to progrma something really simple what is the issuse 23:23:37 j-invariant: program what 23:23:48 ehird: just some really simple algorithms on polynomials 23:23:51 ehird: hell no 23:23:54 j-invariant: do it then :D 23:24:02 ehird: what language? 23:24:07 I tried scheme, haskell and Coq they all fail 23:24:07 j-invariant: agda 23:24:09 j-invariant: haskell? istr you did some stuff with it 23:24:13 and polynomialalalallal 23:24:14 s 23:24:19 copumpkin: agda is not a language for human consumption 23:24:20 or production 23:24:26 copumpkin: it's only a matter of time before you're yelling expletives at Notch every day, btw 23:24:27 I consume and produce it all the time 23:24:35 copumpkin: you're a pumpkin 23:24:37 i said human 23:24:38 ehird: yeah I tried to write the same program in all languages, none of them are any good 23:24:39 fair enough 23:24:48 copumpkin: and maybe you do, but you certainly don't produce nontrivial proofs in it >:) 23:24:50 I should make my own language 23:24:52 because that's impossible! 23:24:56 j-invariant: what was not good about it? 23:25:00 about haskell i mean 23:25:02 ehird: :( 23:25:09 copumpkin: COQQQQQ 23:25:17 ehird: consider modular arithmetic data type 23:25:28 ehird: you need to implement type level numbers to do it 23:25:32 I wrote that in two different ways in agda 23:25:35 or use unsafePerformIO 23:25:36 both were painful 23:25:38 j-invariant: use she :) 23:25:43 the best language! 23:25:50 ehird: yes I did use she 23:25:57 j-invariant: then you only have to implement nats ;P 23:25:57 What is she? 23:25:58 *:P 23:26:03 ehird: but I don't do modular arithmetic but polynomials 23:26:11 Sgeo: she's a thing. 23:26:17 Sgeo: she's a preprocessor for haskell 23:26:18 I mean the type level "thing" is not a natural but a polynomial 23:26:22 that I've started using for her other features, too 23:26:26 not just the autolifting of data 23:26:27 basically it's a clusterfuck 23:26:38 can't do this in a reasonable way in haskuell 23:26:38 j-invariant: just define a polynomial normally 23:26:43 and she will define the type-level version 23:26:44 She's an it! 23:26:45 what's wrong with that 23:26:48 -!- azaq23 has joined. 23:26:51 Sgeo: She's a SHE. 23:26:52 ehird: well, to a degree 23:26:54 ehird: it does not work that way 23:27:00 j-invariant: does for me :-D 23:27:00 well 23:27:02 on a good day ... 23:27:06 she only lifts data constructors 23:27:09 that's true 23:27:12 but who needs strong kinding 23:27:14 so if j-invariant wants to actually do something to the polynomial 23:27:19 then he needs to write it himself 23:27:23 ehird: idk I just can't get stuff working it sucksf 23:27:27 I need proofs too 23:27:31 why do you need a polynomial at the type level anyway? 23:27:36 I can't program in haskell it's like "woah what if everything is wrong?" 23:27:45 agda's getting a better compiler or two soon too 23:27:57 copumpkin: Z[x]/(p(x)) 23:28:11 okay 23:28:12 yeah 23:28:13 wait for epigram2 23:28:16 lol 23:28:24 NEED 23:28:25 MORE 23:28:26 the answer to everything 23:28:27 LANGUAGES 23:28:29 FEED ME 23:28:31 You know what 23:28:39 j-invariant: or just use cochon 23:28:45 Everything sucks: When epigram2 comes out I will find out something that sucks about it after a week 23:28:48 :D 23:28:50 j-invariant: please say "i'm going to write my own language" 23:29:03 yeah, with observational type theory 23:29:03 i'm going to write my own language 23:29:10 j-invariant: YAAAAAAAY 23:29:14 and easy reflection and so on 23:29:20 who will help me design it 23:29:21 don't tell Sgeo 23:29:25 copumpkin: yeah who needs all that 23:29:27 j-invariant: MEEEEEEE 23:29:33 j-invariant: don't forget substructural types (all sorts of them) 23:29:33 j-invariant: i suggest it have quotient types! 23:29:36 and effect types 23:29:41 ehird: this is essential 23:29:44 who needs effects 23:29:44 quotient types are easy with OTT 23:29:51 I don't know about parametricity 23:29:56 I wonder if it is important 23:29:57 copumpkin: but how do you avoid the extensional axiom of choice? 23:30:00 j-invariant: definitely separate forall and pi 23:30:01 :( 23:30:09 pff 23:30:16 I choose to not care about the AoC 23:30:26 copumpkin: YOU CAN'T WELL-ORDER THE REALS DAMMIT 23:30:34 23:30:38 :P 23:30:39 everything is well ordered 23:30:40 *o'connor's 23:30:46 j-invariant: nuh uh! 23:30:48 there's loads of blog posts telling you how to count the reals out there 23:30:49 "well ordered" is a set theoretic notion 23:30:51 one put pi in the middle 23:30:54 touche 23:30:55 and then laid them out in a grid 23:30:59 and then counted spirally! 23:31:00 mmm 23:31:05 lol @ pi in the middle 23:31:06 hm what would well ordered mean in type theory? 23:31:16 dunno 23:31:17 http://r6.ca/blog/20050604T143800Z.html 23:31:18 word of god 23:31:23 clearly you can't have quotient types 23:31:24 :( 23:31:34 wait ... 23:31:44 if you can prove that you can well-order the reals in type theory + quotient types 23:31:49 ... then what fucking program does that spit out?! 23:31:49 ValueError: substring not found :( 23:31:53 shut up, luatre. 23:34:20 can we implement quotients in a type theory inside agda? 23:34:34 following e.g. Kipling 23:34:49 I think Euphoria is supposed to be an "easy" language 23:34:52 * Sgeo facepalms 23:35:10 j-invariant: we can with setoid-like things 23:35:17 well, just setoids 23:35:18 no proper quotients 23:35:18 http://openeuphoria.org/wiki/view.wc?page=SampleCode 23:35:20 oh 23:35:22 * Sgeo assassinates someone 23:35:33 I dunno, check the OTT implementation in agda? 23:35:47 -!- SimonRC has quit (Ping timeout: 255 seconds). 23:36:28 should I (1) sleep (2) write notes about this language that will probably never actually exist 23:36:44 You should do 1, but you will do 2 23:37:04 j-invariant: latter 23:37:23 j-invariant: i wanna help :D 23:37:56 j-invariant: you can follow conor's blog posts for the basic syntax and implementation 23:38:07 (of a core behind it) 23:38:07 j-invariant knows enough about Epigram i think :P 23:38:10 but I am not implementing epigram 23:38:14 oh man this python program is so ugly... 23:38:20 if I was writing it in cled it'd be easy to navigate 23:38:23 funny thing is, 23:38:24 it's cled 23:38:34 I mean, it's tricky to design a good AST that maintains invariants you want (especially the j- sort) 23:38:41 and conor had a nice design on his blog 23:39:06 copumpkin: do you mean e-pig? 23:39:10 yep 23:39:21 ehird, all self-hosting things start out that way, I think 23:40:07 Also, Clue should be written entirely in Clue. That makes no sense, but do it anyway 23:40:16 Sgeo: I agre 23:40:55 j-invariant: more chatting about your language! 23:41:02 ehird: I don't really know category theory 23:41:11 j-invariant: don't base it on categories then 23:41:20 ehird: but they are the solution to all problems? 23:41:21 WHAT AN INTRUIGING IDEA 23:41:27 j-invariant: or ARE they!!!!!!!! 23:41:30 yet 23:41:31 yes 23:41:45 j-invariant: try and solve 80% of problems then :P 23:42:00 self.fill_widget(self) 23:42:00 TypeError: fill_widget() takes exactly 1 argument (2 given) 23:42:00 xD 23:42:30 i love how tk just ignores errors, it's so cute 23:43:38 -!- rom9com has joined. 23:44:06 what the fuck ... oh 23:44:08 -!- jesus_muppet has joined. 23:45:09 copumpkin: gimme a unicode character that looks like a hole, or a box, or a cross or something 23:45:32 mr. unicode 23:45:34 ∘ 23:45:36 (your new name) 23:45:43 -!- calamari has joined. 23:45:45 copumpkin: what is that :D 23:46:17 when did I become mr unicode? :( 23:46:51 I use compose key 23:47:14 ōºō°øô 23:47:21 wow it works ... kinda 23:47:31 in a not really working way 23:48:38 this is really stressful 23:51:16 j-invariant: what is 23:51:40 can't get anything important done :| 23:51:44 don't have the tools 23:51:55 don't have the tools to make the tools etc. 23:52:42 j-invariant: you have the latter surely 23:52:48 haskell is good for implementing languages :P 23:54:14 I don't "get" haskell 23:54:22 j-invariant: there's nothing to get 23:54:26 I don't know how those guys can do anything with it 23:54:35 http://qntm.org/tesla DARNIT 23:55:01 j-invariant: by testing code rather than proving it correct 23:55:08 Sgeo: what 23:55:14 -!- oerjan has quit (Quit: leaving). 23:58:25 I think I'll try learning OCaml again 23:58:35 Erm, reading about 23:59:19 j-invariant: so tell me about your lang :P