00:01:07 i have this crazy feeling that oerjan won't write my function for me 00:01:51 elliott: i just wrote the first line of the actual function 00:02:05 church ops@(Dup:_) = (1, [], ops) 00:02:17 * oerjan cackles evilly 00:02:29 oerjan: good to know someone is handling the easy bits :P 00:02:53 oerjan: aw c'mon, i'm writing this for YOUU :D 00:02:56 (guilt works right?) 00:03:01 YEAH I'M GOOD AT THE EASY BITS 00:03:13 just one teeny weeny function! 00:03:25 oh wait that first line was wrong XD 00:03:30 (should be Cat) 00:04:03 -!- augur has joined. 00:04:21 sheesh oerjan, all this work for you 00:04:25 AND WHAT DO I GET 00:04:28 ;;;;''''((( 00:04:32 piling on the guilt here 00:05:11 i think i might have disabled oerjan 00:07:24 oerjan: FINE THEN, I'LL TOTALLY PUSH THIS UUUUSELESS THING TO IRC 00:08:05 i'm not sure of this strange belief elliott has that i can program fast... 00:08:15 oerjan: oh i wasn't aware you were actually writing the other lines :D 00:08:22 i thought i had to coerce you into agreeing to do it first 00:10:51 :t (<+>) 00:10:52 Ambiguous occurrence `<+>' 00:10:52 It could refer to either `Control.Arrow.<+>', imported from Control.Arrow at State/L.hs:5:0-19 00:10:52 or `Text.PrettyPrint.HughesPJ.<+>', imported from Text.PrettyPrint.HughesPJ at State/L.hs:53:0-46 00:10:58 -!- iconmaster has joined. 00:11:11 -!- zzo38 has quit (Ping timeout: 272 seconds). 00:12:10 * iconmaster is having fun with a random EXE code generator- Most just crash, but some... 00:12:47 iconmaster: heh 00:12:51 .COM might have better results 00:12:57 since it is just direct machine code 00:13:20 ok! Lets se how bad I can screw up my computer! 00:13:22 you might want to restrict the generated bytes to the valid x86 instructions plus register addresses (of course this restricts the constant literals in there too, but that might be interesting...) 00:13:32 iconmaster: do it in dosbox :P 00:13:41 Good idea. 00:14:17 hm i think it is possible to do monads nicely in a concatenative language... 00:14:34 if do is "() return" and ";" is >>, then we have... 00:14:40 ... do 00:14:44 "hello, world!" print ; 00:14:47 "foo, bar!" print ; 00:15:02 what about >>=... 00:15:03 oh wait 00:15:09 you just want that to push on to the stack, i suppose 00:15:11 using continuations, perhaps 00:15:24 getLine ->; print ; 00:15:32 One of my random progams 'bounces' the pointer across the screen. For some reason, pressing keys speed up this process. 00:15:47 iconmaster: as in, mouse pointer?? 00:15:56 No, the DOS cursor 00:16:02 iconmaster: that's cool 00:16:05 upload it somewhere 00:16:10 maybe we can disassemble it and uncover its secrets :P 00:16:14 Yep, I am 00:16:41 But, where? Know any good file uplading sites I could use? 00:17:03 ; : Monad m => ('a 'm 'b 'm -> 'b 'm) 00:17:07 to use the cat syntax 00:17:16 iconmaster: filebin.ca was good when it still existed ... how long is the file? 00:17:47 643 bytes, apparently. 00:18:00 iconmaster: probably you could just uuencode it 00:18:12 thats a good idea 00:18:18 iconmaster: and put it on a pastebin 00:18:21 sprunge.us say :P 00:18:26 http://www.bastet.com/uue.zip is apparently a uuencoder for windows 00:18:29 k going to now 00:18:53 Wow, thanks guys! Let's find it's secrets! 00:19:24 hey everybody else has been conspicuously silent, maybe I'm the only one who's interested >:D 00:19:26 fear the worst! 00:19:46 i am reading with some interesting 00:19:49 *some interest 00:19:54 meh, muscle memory :| 00:22:32 http://pastebin.com/nwwY8YTr 00:23:02 That good? 00:23:39 well pastebin.com still uses html for its raw page. but copying manually should work. 00:24:10 ok thanks. Now, lemme fid some other interesting programs 00:24:24 ---------------------------------------------------------^M 00:24:24 --^M 00:24:24 -- BF Joust Program Conversion Tool^M 00:24:24 -- Converts BF Joust programs into IconJoust format.^M 00:24:24 -- Made by Joshua Robbins^M 00:24:25 --^M 00:24:27 ---------------------------------------------------------^M 00:24:29 iconmaster: FAIL 00:24:32 -!- MUILTFN_ has quit (Ping timeout: 240 seconds). 00:24:39 try uploading the right file next time ;D 00:24:55 The random EXE maker doesnt actually make them RANDOMLY.... lol 00:25:10 iconmaster: if you want, I can host them on infa.fi 00:25:15 That is the file... put it in exe format. 00:25:33 That would be very nice. Mind taking IconJoust? 00:25:38 if so, I'd prefer for you to dcc them to me 00:25:56 That is the file... put it in exe format. 00:25:57 Umm. 00:26:03 No, I decoded it, it's a BF Joust program conversion tool. 00:26:24 I know. It WAS a lua script, now its an exe. 00:26:31 Oh. 00:26:47 wine doesn't accept it as it's an invalid exe 00:26:49 (doesn't have the right header) 00:26:53 what do you mean by "exe format"? 00:27:17 Basically, i copied 'convert.lua' to 'conver.exe' 00:27:23 *convert.exe 00:27:50 newtype Quote = Quote [Op] 00:27:50 data Op = Dup | Cat | Drop | Push Quote | SomethingElse 00:27:55 Smart of me. (No, Fail!) 00:27:57 iconmaster: it shouldn't even run, I don't think 00:28:00 elliott: is that compatible with what you have? 00:28:03 It does on my comp 00:28:03 it lacks the MZ header 00:28:18 oerjan: s/newtype Quote/data Obj/ 00:28:24 oerjan: also SomethingElse isn't there 00:28:25 obviously 00:28:31 is that the same as invalid code? or just "anything else" in your model 00:28:40 oerjan: oh and s/Push Quote/Push Obj/ 00:28:41 elliott: well i just put that to ensure i included a catch-all option 00:28:46 right 00:28:52 lol. Invalid programs make interesting results. 00:29:02 oerjan: note that the argument to Push is an Obj and can be other things than a Quote 00:29:04 for instance a Church 00:29:10 data Obj = Church Integer Obj -- Obj is for printing 00:29:10 | Quote [Op] 00:29:10 | Catn Obj Obj 00:29:10 | Rept Integer Obj -- FIXME: Use for more things 00:29:10 deriving (Show) 00:29:46 The Insert key seems to speed lol.exe up the most. Other keys speed up lol.exe to a lesser degree. 00:30:04 elliott: ok but this is during parsing stage. may i assume church has already been run when creating that Obj? 00:30:25 oerjan: er. your function _is_ church. but yes, your input will only ever contain (Quote) objects. 00:30:29 which means i should really look for Push (Church _), not Push (Quote _) 00:30:33 oerjan: oh right 00:30:34 yes 00:30:36 it is done recursively 00:30:48 i.e., in (...(...)...), when church gets the outer () pair, the inner pair will have been churched already. 00:30:55 good 00:31:03 oerjan: (Church _ _) 00:31:08 oerjan: the second argument is the actual original quote 00:31:11 which is important 00:31:25 (to concatenate two Objs, use the cat function) 00:31:44 i don't think i will concatenate Obj's 00:31:52 just [Op]'s 00:32:08 oerjan: you shouldn't really do that. cat is more efficient, in theory 00:32:17 but whatever, i'll see it before i comment 00:32:18 Pot of boiling peppermint extract and water: Great way to BURN THE HELL OUT OF YOUR EYES 00:32:26 (because cat makes decisions as to what kind of concatenation to do) 00:32:28 elliott: i am not _returning_ an Obj 00:32:33 oerjan: right. 00:32:39 and i won't be changing anything inside a Push 00:32:58 just checking if it's a church numeral 00:34:29 oerjan: of course note that this function must return the actual /value/ of the numeral 00:34:34 not just check it 00:34:43 church :: [Op] -> (Integer, [Op], [Op]) 00:34:46 at this time 00:34:50 right 00:37:28 oh wait i also need to check for () 00:37:53 and what's more, not for every Church 1 _ 00:38:37 oerjan: () will always be parsed as Church 1 (Push (Quote [])) 00:38:38 if that helps 00:38:42 elliott: () will become Push (Churc ... right 00:38:44 (i am considering making a separate Nil, though) 00:38:48 (but don't worry about that) 00:39:28 um don't you mean Push (Church 1 (Quote [])) 00:39:51 * oerjan assumes so 00:39:58 oerjan: no 00:40:00 er 00:40:02 well, right 00:40:04 inside an [Op] 00:42:07 * iconmaster is sad- no other random program does cool stuff. Oh well. 00:43:52 oerjan: do you handle ":!"? :D 00:43:57 I think subtraction produces that or something 00:44:15 * elliott will have to figure out when to try and convert things to church numerals. maybe whenever you call them? 00:44:39 oerjan: btw it _might_ be useful if you took an Obj instead... 00:44:40 >_> 00:44:50 and with that, I've ensured oerjan hates me 00:48:41 argh 00:50:03 oerjan: you can just make it [Op] if you want to keep your sanity 00:50:14 and i can bug you about it another day ;D 00:50:53 i am doing a lot of "parse this, then whatever follows, then combine" 00:51:01 lists are _useful_ for that 00:51:07 oerjan: that's what everyone who writes a parser manually in haskell ends up with :P 00:51:23 oerjan: also, yes, it's fine; it's just that this way, I can't use your function to detect church numerals _created_ by the program 00:51:27 which is a bit of a problem 00:51:35 elliott: what's your ^ constructor? i want to handle (numeral)^ 00:51:50 data Op = Swap 00:51:51 | Dup 00:51:51 | Drop 00:51:51 | Cat 00:51:51 | Push Obj 00:51:51 | Wrap 00:51:53 | Call 00:51:55 | Print 00:51:57 | Invalid String 00:51:59 deriving (Show) 00:52:01 data Obj = Church Integer Obj -- Obj is for printing 00:52:03 | Quote [Op] 00:52:05 | Catn Obj Obj 00:52:09 | Rept Integer Obj -- FIXME: Use for more things 00:52:11 deriving (Show) 00:52:13 YOU'RE WELCOME :P 00:58:36 break 00:59:03 verily 01:07:02 -!- Mathnerd314 has joined. 01:07:02 -!- elliott has quit (Read error: Connection reset by peer). 01:07:20 -!- elliott has joined. 01:07:53 oerjan's breaks are way too long, i should consider firing him 01:11:34 since when was he hired? 01:12:13 since he was born 01:12:17 contract for life 01:12:27 I thought slavery was illegal 01:14:16 Mathnerd314: not in elliottia. 01:15:59 I gtg. An idea before I leave- How about a compititave version of Underload! 01:16:02 -!- iconmaster has quit (Quit: Yummy, like ircing on a cake! [ http://www.bersirc.org/ - Open Source IRC ]). 01:17:44 compitatave. INTERESTING! 01:18:02 $ ./relief '(:::::::):(:((^:()~((:)*~^)a~*^!!()~^))~*()~^^)~(^a(*~^)*a~*()~^!()~^)a~**^!!^S' 01:18:02 relief: out of stack (church 1) 01:18:03 WHOOPS. 01:26:11 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 01:31:16 Church 0 (Quote [Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat, 01:31:17 NOT QUITE. 01:31:55 oh, I think I parse () as 0, heh 01:33:58 1.1 Mio file in 18.4 seconds, not bad 01:34:05 for ()(~:S(/)S(:*)*~:^):^ 01:34:14 hmm, I could do better 01:35:09 $ time ./relief '(:*)(~:S(/)S:*~:^):^' >foo 01:35:10 ^C 01:35:10 real0m19.891s 01:35:10 $ ls -lh foo 01:35:10 -rw-r--r-- 1 elliott elliott 41M 2011-02-22 02:04 foo 01:35:11 not bad. 01:35:24 (in most interpreters that causes blowup... I think it does in mine too, but only because of one thing) 01:35:31 specifically, "cat x x" needs to use Rept. 01:35:39 also preferably cat would find common substrings and use Rept on those, but... 01:35:43 (and Eq on Obj is non-trivial) 01:35:51 well not that non-trivial now I guess 01:49:28 oerjan's breaks are way too long, i should consider firing him <-- had a shower 01:49:46 programmers need to be productive. hygiene is not a requirement. 01:49:52 i find your time management inefficient >:) 01:50:05 here's a wonderful patch of code i just wote 01:50:06 *wrote 01:50:07 -- FIXME: Probably *very* slow 01:50:08 -- FIXME: Choose the "smallest" object of the two somehow 01:50:08 -- FIXME: For Repts, just increment the repeat, don't nest 01:50:08 -- FIXME: Blah blah blah... 01:50:08 cat x y | x == y = Rept 2 x 01:50:24 i am pretty sure this is a severe pessimisation but that could change! 01:50:35 hmm, maybe i could use ghc's "is the exact same pointer" equality instead ;;DD 01:50:50 wth is Rept does church actually have to _know_? 01:51:00 oh right 01:51:02 oerjan: (Rept n x) is just x repeated n times 01:51:07 gah 01:51:14 used e.g. in this generic case: 01:51:16 call (Church n _) (x:xs) = (Rept n x : xs, "") 01:51:20 (for non-zero n, non-church x) 01:51:26 oerjan: but don't make church take an Obj as an argument 01:51:28 no point to at this point 01:51:33 that can home later :P 01:51:46 elliott: um the point is it's hard to retrofit 01:51:59 well er, good luck then 01:52:05 hello oerjan 01:52:05 oerjan: (Catn x y) might give you some trouble... 01:52:20 also i doubt the wisdom of church'ing on concatenations 01:52:21 how's your ~! quest coming along? 01:52:26 unfortunately i think unrolling Catn in general requires expanding Repts 01:52:36 oerjan: don't support that, then 01:52:37 after reaching the heights, did you decide to continue and reach out to new heights? 01:52:49 cat :: Obj -> Obj -> Obj 01:52:49 cat (Church m xs) (Church n ys) = Church (m*n) (cat xs ys) 01:52:49 cat (Quote xs) (Quote ys) = Quote (xs ++ ys) 01:52:49 cat x y = Catn x y 01:53:01 so Catn is just used for e.g. (cat x x), (cat rept church), and all that stuff 01:53:02 cheater-: um it was finished the last time i spoke about it 01:53:07 (cat x x where x is neither Church nor Quote that is) 01:53:24 elliott: well without supporting that it's useless to support Obj's at all 01:53:38 since almost everything which builds a new church numeral is a Catn 01:53:42 oerjan: but i thought maybe you went on to eliminate yet another command 01:53:50 oerjan: are you sure? 01:53:52 cheater-: i may. 01:53:55 (:)(*)*, sure 01:53:57 oerjan: such as??????? 01:54:06 but e.g. (:*)(:*)*? well... 01:54:07 you're right 01:54:10 oerjan: support Catn then :-P 01:54:17 but unrolling isn't an option so uh... good luck 01:54:27 cheater-: either that or prove that you cannot. 01:54:48 well get on with it already 01:55:02 cheater-: shut up 01:55:13 I don't think there's any more TC sets smaller than or equally small as ~:()^ and :*()a^ 01:55:22 oerjan: good luck getting cheater to shut up ... 01:55:44 elliott: i don't _want_ to support Catn becaus church'ing on them can have _horrible_ asymptoticity. consider concatenating ::::::::::::: with ************** 01:55:55 oerjan: then what on earth do you suggest? 01:55:58 reallyUnsafePtrEquality# :: a -> a -> Int# 01:55:58 woot 01:56:24 oerjan: i mean, forming integers like that is quite important 01:56:29 oerjan: at least, you can do that with just counting up then counting down 01:56:41 ofc that doesn't handle :*:*: and *:*, but nobody does that 01:56:45 this is basically a heuristic 01:56:48 elliott: Data.Sequence would help, although that would reduce sharing 01:56:57 STOP SUGGESTING SEQ FOR THINGS :D 01:57:13 oerjan: i mean :^n with *^n is I think fairly common 01:57:16 is it not? 01:57:22 oerjan: no u 01:57:23 elliott: well unbalanced Catn trees is what i see as the problem here 01:57:37 -!- ChanServ has set channel mode: +o oerjan. 01:57:40 oerjan: I don't think you can really get those actually 01:58:01 [+o: about time too] 01:58:02 oerjan: hmm 01:58:10 oerjan: in fact, ::: with *** will produce a single Quote 01:58:15 so in fact [Op] should be fine for everything 01:59:17 oerjan: btw will your function give up immediately if e.g. the input doesn't start with :? that's desirable for cat. otoh churchising _substrings_ (i.e. transforming {:^n}{*^n} in some code to Push (Church n ...), Call) might be useful... 02:00:33 hmm perhaps I should optimise :* as a preprocessing step ... 02:00:49 @hoogle Int# -> Int 02:00:49 Data.Generics.Schemes gdepth :: GenericQ Int 02:00:49 Data.Generics.Schemes glength :: GenericQ Int 02:00:49 Data.Generics.Schemes gnodecount :: GenericQ Int 02:01:50 elliott: the [Op] one i have started writing only looks at the church numerals at the beginning 02:02:02 I could always search or something, sounds inefficient though :) 02:03:11 but it gives the remaining [Op] in the tuple, so you can easily continue with it 02:03:14 right 02:04:23 i think i'll right it this way, and then you can write the Obj version if you want >:) 02:04:26 *write 02:05:10 GODAMMIT I'M CHANNELING A NATIVE ENGLISH SPEAKER WITH BAD SPELLING 02:05:51 you know, they say you're good at english when you start making the same mistakes they do 02:05:51 "write" -> "*write" :-D 02:05:54 oh 02:05:55 heh 02:05:56 -- FIXME: WORST THING EVER 02:05:56 cat x y | I# (reallyUnsafePtrEquality# x y) == 1 = Rept 2 x 02:06:25 -- FIXME: WORST THING EVER, PROBABLY MUTILATES KITTENS IN ITS 02:06:25 -- FREE TIME 02:06:28 cute 02:06:34 cheater-: oerjan is certainly better at English than many native speakers. 02:06:47 not saying he isn't 02:07:15 Granted, this probably says more about the native speakers than oerjan. It continues to disturb me how very bad many people were in my high school English classes. 02:07:25 pikhq: well with most of english being typing i just don't expect to switch _homophones_... 02:07:30 *my 02:07:38 oerjan: Hah. 02:07:41 This is very true. 02:08:36 pikhq: i was told by the british that there was a period on the uk when learning english wasn't mandatory at all 02:09:03 my university actually has a mandatory english exam for all students 02:09:05 cheater-: The UK or the Kingdom of Great Britain or the Kingdom of England? 02:09:08 It matters. :P 02:09:10 on the basis that the high schools aren't good enough 02:09:29 pikhq: i have said "the uk" 02:09:30 oh food 02:09:38 i think it was in the late 80s or early 90s 02:09:42 "by the british" 02:09:49 I talked to the British the other day. 02:09:54 They had bad teeth. 02:10:02 they have. 02:10:24 at least they make copious use of mouthwash when prompted. 02:11:26 cheater-: Yes, but many people end up using it to refer to geographic regions that are now part of the United Kingdom of Great Britain and Northern Ireland. Not to mention telling me which name for the kingdom in use lets me have a rough idea *when* you're talking about. 02:12:07 pikhq: [troll feed etc.] 02:12:14 TL;DR: I'm a pedant. 02:13:44 i told you the dates 02:13:56 Hadn't when I asked. 02:13:57 -!- elliott has quit (Read error: Connection reset by peer). 02:14:17 -!- elliott has joined. 02:14:22 -!- zzo38 has joined. 02:14:25 head explodes 02:15:27 -!- elliott has quit (Read error: Connection reset by peer). 02:15:53 -!- elliott has joined. 02:16:47 pikhq: can i call you sartre 02:20:57 -!- amca has joined. 02:20:57 -!- elliott has quit (Read error: Connection reset by peer). 02:21:17 -!- elliott has joined. 02:24:30 -!- elliott has quit (Client Quit). 02:24:37 -!- elliott has joined. 02:25:50 WHERE IS OERJAN 02:25:51 er 02:25:53 AIS523 02:27:02 oerjan: done yet ;D 02:27:29 BE CAREFUL I HAVE THE OPS 02:27:35 ais523 does not appear to be connected. 02:27:58 oerjan: yeah but to the disappointment of all right-thinking people you have not yet exercised them. OBVIOUSLY I AM TALKING ABOUT GIVING VOICE TO PIKHQ 02:28:09 LET US UNITE IN FAVOUR OF GIVING PIKHQ +V 02:29:09 I do not care whether or not to give voice to pikhq. What effect would be given? To exempt a quiet mode on the channel? 02:29:22 FOR DEMOCRACY 02:29:23 AND FREEDOM 02:29:31 oerjan: MAKE OUR DREAM COME TRUE 02:29:34 oerjan: Give me +o! I just want a taste of ops! JUST A TASTE 02:29:37 -!- amca has quit (Quit: Farewell). 02:29:45 Gregor: YOU DON'T SAY 02:29:53 LET US STAND AGAINST THOSE OPPRESSORS OF DEMOCRACY, THOSE TYRANTS WHO WOULD GAIN THEIR OPS TO DISCARD ALL RATIONALITY 02:29:55 Only him who wanteth it not may have op! 02:29:56 You can even /mode +o-o Gregor Gregor 02:29:57 Gregor: Create a new # type channel you automatically get +o (but can still remove it) 02:30:03 And I wanteth it not! 02:30:06 HAVE FAITH THAT WITH VOICE PRIVILEGES, PIKHQ WILL LEAD US INTO A LAND OF HAPPINESS AND JOY! 02:30:11 LOOK AT HIS DESERVING HUMBLENESS! 02:30:12 Gregor: What happens if you type conflicting modes like that? 02:30:17 elliott: ALSO BEER. 02:30:18 I THINK THIS IS A CAUSE WE CAN ALL GET BEHIND!!!!!!!! 02:30:25 zzo38: They're applied in order, you can't really "conflict" 02:30:27 oerjan: DO IT! DO IT NOW! DON'T DELAY! OR HESITATE! 02:30:29 The operation is atomic in principle. 02:30:37 sheesh 02:30:41 -!- oerjan has set channel mode: -o oerjan. 02:30:47 Awwwwwwwwwwww 02:30:54 (There is also & and ! type which you get +o automatically but Freenode has neither.) 02:30:57 IT SEEMED TO JUST ENCOURAGE PEOPLE 02:30:58 WE ARE ALL DISAPPOINTED IN YOU. also, ban cheater- already. 02:31:14 -!- pikhq has set topic: No happiness and joy for us; oerjan hath spoken. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:31:19 elliott: I think we do not need to ban them? But I don't say. 02:31:25 MWA 02:31:26 HA 02:31:27 HA 02:31:39 zzo38: he's a persistent troll recognised as such by pretty much everyone i've spoken to. 02:31:45 pikhq: LET'S RISE UP AGAINST OERJAN 02:31:48 AND HIS ANTI-HAPPINESS, ANTI-JOY, 02:31:49 ANTI-BEER WAYS 02:31:57 hey i am _not_ anti-beer! 02:32:00 cheater-: are you a troll? 02:32:01 IT'LL BE LIKE LYBIA, BUT WITH +B INSTEAD OF GUNS 02:32:10 He just is against *happy* drunks. 02:32:20 Mathnerd314: I would love to a legal system based on your last line. 02:32:29 "DID YOU KILL THE PUPPY?" "No." "Oh." 02:32:38 "Mwahahahaha! [kills a puppy]" "DID YOU JUST-" "No." 02:32:41 As far as I know we do not need to ban them. 02:32:57 elliott: then you ask "did you lie" under a polygraph test 02:32:58 i didn't ask you :p 02:33:21 Mathnerd314: Genius! Then everyone will go to jail, instead of noone. 02:34:03 elliott: well, I think evidence factors in somehow 02:34:17 so basically your legal system is boring and not at all like that line 02:34:21 Polygraphs are about as reliable as medicine by a witch doctor. 02:34:29 But less awesome. 02:34:32 pikhq: THAT'S OFFENSIVE TO OERJAN'S BELIEFS 02:34:45 elliott: I try! 02:34:56 elliott: no, it's just based around intention first and evidence later 02:35:22 Mathnerd314: So, estabilishing mens rea, then. 02:35:29 mens' rear 02:35:36 *men's 02:35:51 elliott: Only in Gayland, the state that is always happy. 02:36:01 that sounds gay. 02:36:11 Why yes, yes it does. 02:36:29 pikhq: if they admit wrongdoing, you're halfway there 02:37:03 Mathnerd314: considering that most people who have done wrong will not admit so, and plenty of people who have done no wrong will admit so, that seems shaky at best. 02:37:23 * oerjan starts overengineering church 02:37:43 oerjan: aargh :D 02:37:48 oerjan: as long as it's /vaguely/ efficient... 02:37:58 elliott: what? insane world. 02:38:05 Mathnerd314: YOU DON'T SAY. 02:38:37 elliott: the first thing will be brainwashing peopel to be rational 02:38:44 s/pel/ple/ 02:38:58 Mathnerd314: that would pretty much eliminate wrongdoing. well, assuming you mean rational according to the same system of values. 02:39:17 e.g. rational utilitarians, rational self-interest with /some/ concession to not killing everyone else and taking theirs poils, ... 02:39:28 *their spoils, 02:41:30 elliott: Well, if you're going with perfectly idealness, Cant's moral imperative works. :) 02:41:49 i don't agree with the moral imperative 02:42:49 Feh. 02:43:52 IT'LL BE LIKE LYBIA, BUT WITH +B INSTEAD OF GUNS 02:43:58 Lybia is the country's real name. 02:43:59 IT'LL BE LIKE LYBIA, BUT WITH /b/ INSTEAD OF GUNS *fixt* 02:44:00 Do not question me. 02:44:26 I don't know, though... could the world be better off if everyone was dead? 02:44:41 Mathnerd314: Where "everyone" = ? 02:45:05 All life? All hominoids? All Homo sapiens? 02:45:14 every living thing currently within the solar system 02:45:21 say the sun went nova suddenly 02:45:27 Mathnerd314: no, that would not be better. 02:45:38 sentient life is valuable; that would destroy sentient life; Q.E.D. 02:45:49 lol why 02:45:56 lol why what 02:46:26 why is sentient life valuable? 02:46:30 Mathnerd314: The world would certainly not be better off if all life on it stopped. 02:46:44 It would instead just be a giant chunk of rock in orbit. 02:46:48 Mathnerd314: if x and y are sets, why does there exist a set which contains x and y as elements? 02:46:52 OH RIGHT: because that's an axiom. 02:47:02 And who gives a fuck about that? There's trillions of those. 02:47:04 More generically, _intelligence_ is valuable. 02:47:14 And sentient life is what can be intelligent. 02:47:47 "Better off" really is only in relation to something 02:47:50 elliott: Heck, life in and of itself seems to be valuable. It certainly doesn't seem to be all that common. 02:47:56 Intelligent life seems to be the best thing to put there. 02:48:10 pikhq: Certainly, but it is only valuable /because/ of sentient life. 02:48:24 Because we like it, basically. 02:48:34 elliott: Well, without sentient life there is no such thing as "valuable". 02:48:41 Same way that causing the Earth to disintegrate would be a bad idea, even though the Earth is not inherently valuable: it is valuable because we consider it valuable, and intelligence is intrinsically valuable. 02:48:47 I don't think there is an inherent "valuable" except what we consideer ... ok, basically what everyone else is saying 02:48:56 pikhq: There is in our models. 02:49:46 elliott, what models? 02:50:20 oerjan: HOW'S IT GOIN' 02:50:24 WRITTEN A LINE YET 02:50:53 When will EgoBot be lance-enabled? 02:52:43 Ooh 02:52:49 List of preloaded HSTS sites 02:55:28 -!- pikhq has quit (Ping timeout: 240 seconds). 02:55:41 -!- pikhq has joined. 02:57:11 -!- elliott has quit (Read error: Connection reset by peer). 02:57:48 -!- elliott has joined. 02:59:48 oerjan: :| 03:00:11 Sgeo: never; it's the buggy gearlance now. :p 03:00:23 elliott, hmm? Why? 03:00:36 Well, if Gregor wanted me to I can integrate it after the fixed-point scoring stuff is in, I suppose. 03:03:51 Sgeo: Erm, what do you mean why> 03:03:53 *why? 03:04:06 Is gearlance based on lance? 03:04:18 18:52:49 List of preloaded HSTS sites 03:04:18 Err... http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security? 03:04:29 Yes 03:05:01 How on earth is that "ooh". 03:05:12 There's a list of websites 03:05:18 Not on that page what I was looking at 03:05:29 http://dev.chromium.org/sts 03:05:41 ^^Wow I can be incoherent sometimes 03:06:44 I just don't see how on earth that's interesting. 03:07:44 oerjan: :| 03:07:51 sheesh 03:07:57 ;D 03:12:25 oerjan: is it bad if your turing machine gets progressively slower each step? 03:12:48 um the 3 thousand something characters one? 03:12:53 oerjan: no 03:12:53 (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))( 03:12:54 )!(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)( 03:12:54 )!(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^ 03:12:54 that one 03:13:07 $ ./relief '(:^):^' 03:13:08 Stack space overflow: current size 8388608 bytes. 03:13:08 Use `+RTS -Ksize -RTS' to increase it. 03:13:09 wat. 03:13:17 ok time to restructure this evaluation result mechanism :D 03:13:18 well it _does_ get a longer number ... 03:13:19 <3 TOMT 03:13:55 elliott: but it shouldn't be approximately constant with respect to the no. of characters printed, i think 03:13:58 er 03:13:58 *should 03:14:45 the gap between printing one number and the next should increase proportionally with length 03:14:54 oerjan: that's what i mean 03:15:00 oerjan: but if church numeral arithmetic is O(1) 03:15:03 should it not be constant? 03:15:18 elliott: er my turing machine uses absolutely no church numerals 03:15:28 ah. 03:15:34 well i'm sure I can optimise it SOMEHOW ;D 03:15:45 (note the hideous lack of * and ()) 03:16:38 oerjan: hey i just found a function where 03:16:42 f (C x) _ = C x 03:16:42 works 03:16:43 but 03:16:47 f o@(C _) _ = o 03:16:48 doesn't 03:17:27 that seems impossible 03:17:39 anything to do with your unsafe equality? :D 03:17:44 oerjan: nope 03:17:47 data Result a e = End e 03:17:48 | Failure String 03:17:48 | Chunk a (Result a e) 03:17:48 deriving (Show) 03:17:48 instance Monad (Result a) where 03:17:48 return = End 03:17:50 End xs >>= f = f xs 03:17:52 Failure s >>= _ = Failure s 03:17:54 Chunk s r >>= f = Chunk s (r >>= f) 03:17:56 fail = Failure 03:17:59 oerjan: this works 03:18:02 with @, it doesn't 03:18:04 oerjan: it doesn't work because you have to return (m b) from >>= 03:18:06 whereas the input is (m a) 03:18:10 it's just that Failure is polymorphic in the a 03:18:14 but the individual _value_ isn't 03:18:22 this is vaguely screwy. 03:18:36 oh 03:19:05 ok that's understandable 03:19:16 i thought you meant a runtime difference 03:19:20 ah 03:19:20 heh 03:19:49 oerjan: arguably it should be "Failure :: String -> (forall a e. Result a e)", but I'm not sure that would even help 03:19:54 doubt it would 03:20:24 let (xs',o1) = call p xs 03:20:25 (xs'',o2) = call q xs' 03:20:25 in (xs'', o1 ++ o2) 03:20:25 ---> 03:20:31 call p xs >>= call q 03:20:34 no, that wouldn't pass the >>= 03:20:35 Monads solve every problem. 03:20:37 oerjan: right 03:20:45 elliott: if that passed, newIORef would be type unsafe 03:20:55 oerjan: arguably it should be :P 03:21:08 huh? 03:21:14 oerjan: ok for a very vague definition of arguably 03:21:26 oerjan: because the unsafeperformio -> coerce trick relies on newIORef's polymorphism 03:21:54 hm i hope this is as strict as the previous version... 03:22:57 elliott: yes that is precisely because unsafePerformIO bypasses the >>= restriction against forall types 03:24:43 oerjan: yes yes :D 03:25:10 @hoogle (a -> m b) -> Int -> a -> m b 03:25:10 No results found 03:25:16 hmm 03:25:28 > iterate (g . f) x 03:25:29 Ambiguous type variable `a' in the constraints: 03:25:29 `SimpleReflect.FromExpr ... 03:25:32 > iterate (g . f) x :: [Expr] 03:25:33 Ambiguous type variable `a' in the constraints: 03:25:33 `SimpleReflect.FromExpr ... 03:25:36 >_< 03:25:42 what would you want that to do... 03:25:58 oerjan: f x >>= f >>= f >>= ... 03:25:59 n times 03:26:00 that @hoogle thing 03:26:06 threadN, basically 03:26:15 call (Rept n p) xs = sequence $ genericReplicate n (call p) 03:26:16 ah 03:26:17 which is blatantly wrong 03:26:41 iterate (>>= f) 03:26:50 right 03:27:31 call (Rept n p) xs = iterate (>>= call p) (return xs) `genericIndex` n 03:27:33 ugly, but whatever 03:27:45 gah, and it _still_ blows the stack 03:28:16 at least Thue-Morse still seems fast 03:29:17 putResult :: Result String a -> IO () 03:29:17 putResult (End _) = return () 03:29:17 putResult (Chunk s x) = putStr s >> putResult x 03:29:17 putResult (Failure s) = hPutStrLn stderr s >> exitFailure 03:29:26 i _think_ this should be unwinding the stack as fast as >>= can fill it up 03:31:42 oerjan: any progress >:D 03:31:52 iterate (>>= f) might build a large chunk, btw 03:32:24 -!- elliott has quit (Read error: Connection reset by peer). 03:32:28 *thunk 03:32:42 maybe you have large unevaluated ones 03:32:44 -!- elliott has joined. 03:32:47 oerjan: laziness is the best thing ever that makes me want to claw my eyeballs out. 03:32:53 and my internet connection is definitely lazy. 03:33:26 oerjan: not sure how to avoid building a large thunk there, anyway 03:33:33 oh i see what you mean 03:33:35 i could write my own threader 03:34:21 where thread 0 f x = return x 03:34:21 thread n f x = thread (n-1) f x >>= f 03:34:26 ok _that_ strikes me as an unwise way to write the function 03:34:59 call (Rept n p) xs = return xs >>= thread n (call p) 03:35:00 where thread 1 f = f 03:35:00 thread n f = f >>= thread (n-1) f 03:35:00 better. 03:35:07 argh 03:35:12 infinite type bullcrap 03:35:28 hey oerjan write my trivial function for me, i'm too retarded to :D 03:36:07 "Watson, bomb that Libyan city! 03:36:07 [Bombs Toronto]" --reddit 03:41:26 -!- elliott has quit (Read error: Connection reset by peer). 03:41:47 -!- elliott has joined. 03:41:50 I thought of idea of a shogi variant called "Copper, Silver, Gold: An Indestructible Metallic Alloy" where if the copper, silver, gold generals are next to each other, then they cannot be captured? 03:43:16 elliott: thread 0 f x = return x; thread n f x = f x >>= thread (n-1) f 03:43:39 OKAY THAT MAKES SENSE 03:44:02 Still my /main/ problem is a stack overflow on (:^):^, because it's calling "call" recursively. 03:44:05 Except it's a tail call. 03:44:09 Then it calls run recursively, which does 03:44:13 run [] xs = return xs 03:44:14 run (i:p) xs = one i xs >>= run p 03:44:17 so I think the >>= run p is killing it. 03:44:26 Because it never reaches it, because it calls call again, etc. 03:44:35 No? 03:45:06 elliott: if i is call then that run is not tail recursive is it? 03:45:18 oerjan: well, precisely 03:45:21 but i don't see how it could be, really 03:45:26 without some continuation-passing style rubbish 03:45:47 oerjan: more importantly, even if I fixed that, (:^x):^ would fail 03:45:51 because it wouldn't be a tail-call 03:45:52 WTF? 03:45:56 run (Call:p) (x:xs) = run (x++p) xs 03:45:58 "wget is depreciated" 03:46:02 --from a Reddit comment 03:46:16 oerjan: lol, my call model isn't that simple 03:46:18 I have a whole function for calling 03:46:26 that wouldn't really work at all 03:46:33 x can be a Church, for instance 03:46:38 but I suppose I could condition on it 03:46:48 and have call say "no, you handle it" for Quotes and Catns and Repts... 03:46:55 actually for Repts that'd be ugly. argh. 03:47:07 elliott: indeed (:^x):^ _should_ build call stack afaict unless you're very clever 03:47:41 oerjan: hm right 03:47:56 run [] xs = return xs 03:47:56 run [i] xs = one i xs 03:47:56 run (i:p) xs = one i xs >>= run p 03:48:00 there's the cheap-skate version 03:48:11 I'd still like to optimise Call in general not to eat stack, though, but I doubt it'll be easy 03:48:15 Why is wget is depreciated? 03:48:15 maybe if i do... 03:48:19 zzo38: what 03:48:20 ? 03:48:48 run (Call:p) (Quote p':xs) = run (cat p' p) xs 03:48:52 oerjan: i suppose that special case should be enough 03:49:02 even if it is upsettingly specialcasey. 03:49:07 e.g. doesn't handle Catn, Rept 03:49:11 hmm I could handle Catn/Rept actually. 03:49:15 wait. issue here is that run only does [Op]. 03:49:16 argh. 03:49:16 Sgeo posted a quotation so that is why I ask question. 03:49:24 run (Call:p) (p':xs) = call (cat p' p) xs 03:49:26 ok this should work. 03:49:28 probably. 03:49:47 even though it's stupid 03:49:54 no, that won't work. well maybe 03:49:58 zzo38: i suspect he was pointing out the stupidity of the comment 03:50:22 well it appears to work. 03:50:26 it's hideous but it seems to work. 03:50:36 http://www.reddit.com/r/netsec/comments/fo6zs/this_link_will_most_likely_crash_any_browser_and/c1hehj8 03:50:46 Maybe I shouldn't take =) comments so literally 03:50:55 oerjan: it just froze my computer. 03:50:58 so maybe it's eating heap instead :D 03:51:02 well obviously 03:51:18 i have a vague feeling of this project going down in flames 03:51:18 thue-morse still runs. 03:51:22 fast, too. 03:51:53 oerjan: how's church coming along AHEM 03:52:07 !help 03:52:07 -!- augur has quit (Remote host closed the connection). 03:52:12 !info 03:52:25 help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 03:52:25 EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null 03:52:41 hm seems like there's no space leak... yes there is 03:52:41 i keep wavering on whether to use a stack of quotes seen in order to get things like (:*):*:*^ 03:52:47 it's approx. doubling its memory every now and then 03:52:51 does the thue-morse program leak memory? 03:53:16 oerjan: i can't think of any algo that would produce _that_ 03:53:22 oerjan: remember that this is a heuristic :P 03:53:30 hm not even gcs seem to stop thue-morse leaking memory 03:53:53 well it's a reasonable way to write 2^4 03:54:07 -!- mr_mojo_risin has joined. 03:54:19 oerjan: handle it then :P 03:54:20 hi mr_mojo_risin 03:54:24 Can you make c command from Unlambda in the variant of Underload that has continutations? 03:54:25 argh 03:54:26 hi 03:54:38 zzo38: that's exactly what oerjan/mine/ais' (he came up with it too) C is 03:54:43 mr_mojo_risin: this channel is about esoteric programming languages 03:54:50 ok 03:55:27 -!- mr_mojo_risin has left (?). 03:55:27 -!- elliott has quit (Read error: Connection reset by peer). 03:55:47 -!- elliott has joined. 03:55:50 mr_mojo_risin: see http://esolangs.org/ for more info :p 03:56:16 I mean in "Unlambda to Underload" section of the article, they have s,k,i,v (I added v) then can you add c and d as well, and what would it be, exactly? 03:56:26 zzo38: oh. ais and oerjan did that too 03:56:27 separately 03:56:39 elliott: i think he means directly, if we have C 03:56:57 oh right 03:56:58 well it probably won't help with d 03:57:01 it'd just be C, basically :-P 03:57:23 oh that mojo guy left? 03:57:25 i am SO SURPRISED 03:57:48 well assuming the Unlambda to Underload section preserves strict evaluation order, i think c should be buildable from C 03:58:26 elliott: another of the desperate masses looking for an occult irc channel 03:58:46 but none with the skills to actually make one 03:59:09 They should know to look on other IRC network, then? 03:59:16 or maybe they are prevented by demons. yeah that's the ticket. 03:59:55 zzo38: i looked on an irc channel directory once, couldn't find any remotely big ones 03:59:59 I have also my own IRC server, which I can add channels if requested and not intended for large amount of clients all connecting at once. 04:00:14 (just to see if there was any place to refer the next guy coming to) 04:00:30 oerjan: At least it is not bad thing to check. 04:00:35 oerjan: i doubt they'd have the capability of logical thought required to figure out how to make a channel. 04:00:44 elliott: THAT WAS THE JOKE 04:00:44 and OUCH that lagged my computer, wonder why 04:00:52 oerjan: ;D 04:00:58 oerjan: i was making a SUBTLE JAB at YOUR BELIEFS 04:01:00 -rw-r--r-- 1 elliott elliott 129M 2011-02-22 04:29 foo 04:01:03 NOT BAD FOR 50 SECONDS 04:01:12 elliott: AND NOT NOTICING I ALREADY JABBED MYSELF 04:01:13 To make channel just use JOIN command, it is not difficult? 04:01:30 Wait 04:01:35 hey that lines up weirdly (thue-morse wrapped to 80 chars) 04:01:38 elliott was not being weird, and the person left anyway? 04:01:44 It's an #esoteric miracle! 04:01:50 oerjan: you failed to mention SYNCHRONICITY 04:01:54 like 04:02:03 "clearly it is synchronicity that they cannot make a channel because of logic" 04:02:35 elliott: DEMONS, I SAID 04:02:36 Try converting some Unlambda program with c to Underload and see if it works. 04:02:42 zzo38: no 04:02:49 oerjan:any porgress :DDDDDDDD 04:06:59 elliott: overengineering more 04:07:09 oerjan: how many catamorphisms 04:07:17 TWENTY 04:15:36 -!- elliott has quit (Read error: Connection reset by peer). 04:15:54 -!- elliott has joined. 04:15:58 oh no, oerjan died in a catamorphism accident 04:16:02 discuss catamorphism conspiracy 04:20:33 rotten bananas? 04:20:43 http://comonad.com/reader/2008/rotten-bananas/ 04:20:48 rotten spacenanas 04:21:53 hmm, i should really formulate these thoughts down sometime 04:21:58 (a purely-functional, strongly-typed concatenative language) 04:22:18 elliott: you are familiar with Cat? 04:22:50 oerjan: yes. not only is it seemingly dead or at least dormant, but WP says that the official implementation does no actual typechecking or inference, and it's definitely not pure. 04:22:52 but it is an inspiration. 04:23:14 oerjan: i figured out that at least a subset of do notation can be done without any special syntax, which is promising for actually using it 04:23:20 let do = () return 04:23:24 and let ; be >> 04:23:26 then you can just say 04:23:30 ... do 04:23:32 "hello" print ; 04:23:35 "goodbye" print ; 04:23:42 it gets a bit harder with <- 04:23:48 my current thought is to use continuations somehow to write 04:23:49 ... do 04:23:53 getLine ->; 04:23:58 "You typed: %s\n" printf ; 04:24:03 but I'm not sure the types will check out 04:24:08 or if that will behave sanely 04:24:32 I might just bite the bullet and add real do-notation, but that would compromise concatenativeness 04:24:33 -!- augur has joined. 04:25:40 anyway, bedtime 04:25:41 goodnight! 04:25:53 goodnight 04:28:32 -!- pikhq has quit (Read error: Connection reset by peer). 04:29:52 -!- pikhq has joined. 04:29:55 -!- elliott has quit (Ping timeout: 240 seconds). 04:30:36 WTF is the point of unique local addresses? 04:37:52 gregor: i cannot disclose any info about bfjml until it is complete 04:46:23 There is an IPv6 address :: ? 04:50:12 GREGOR: I WOULD PLAY THE CHILDMAULING BEAR GAME 04:51:02 "Again, the concept of scope is important in a multicast of this type because we don't want to try to send a message to all nodes on the global Internet, for example. " 04:51:08 LIES. I WANT TO TRY IT. 04:51:20 Oh, ""Valid Scope Values" 05:07:25 They went and deprecated site-local addresses because nobody can be bothered to handle the scope ID stuff correctly in code. 05:08:12 And also because nobody knew what a "site" was. 05:08:50 And replaced that with the unique local addresses, which at least are more or less unique. 05:09:44 So that if you have address X stored in a file somewhere, you don't need to separately keep track to which site it refers to, if it's in a box which visits multiple "sites". 05:29:53 -!- pikhq has quit (Ping timeout: 240 seconds). 05:30:01 -!- pikhq has joined. 05:33:23 -!- zzo38 has quit (Ping timeout: 272 seconds). 05:39:56 -!- sftp has quit (Remote host closed the connection). 06:27:30 holy crap I'm up early 06:27:44 *MWAHAHA* 06:30:29 this meeans I can be at work before 9 if I don't end up spending a few hours here 06:33:39 Heh: Conference registration for non-IEEE-member students: $300. Conference registration for IEEE + signal processing society member students: $175. One year's graduate student membership in IEEE and SPS: $42. Sum of last two: $217. Finally, $217 < $300. 06:33:50 Must be their clever ploy to get more members. 06:34:41 they should have registration with 1 year membership instead 06:35:03 that's not as much money though, so they're probably trying to get more members *and* make more money, at the same time 06:35:39 interesting that Signal Processing Society and Society of Physics Students share an acronym 06:36:34 I'd appreciate the main SPS membership benefits -- access to IEEE Trans. on {Audio, Speech and Language Processing; Image Processing; Information Forensics and Security; Signal Processing} -- more if I didn't already get close to everything in the IEEE library for free simply by tagging the university proxy suffix to the domain name. 06:37:11 At least they'll send a print copy of their glossy magazine, if I understood correctly. After the inevitable collapse, I can use it to keep warm, I guess. 06:38:12 fizzie: Even better: the inevitable collapse will probably have hyperinflation. 06:38:15 And you know what that means! 06:38:33 Billion dollar toilet paper! 06:41:22 I think I have a 50 million mark stamp from Germany (circa 1923) somewhere at home. 06:41:35 (They did make a 50 billion mark stamp too.) 06:47:40 -!- Zwaarddijk has quit (Ping timeout: 240 seconds). 06:48:57 elliott: http://oerjan.nvg.org/esoteric/underload/Numerals.hs 06:48:58 Mathnerd314: are you a troll? 06:50:07 "For each new member you recruit, you earn an award which can be used toward IEEE dues, IEEE Society fees or the purchase of IEEE products and services -- Student Members can earn: US$2 for each Student or Graduate Student member recruited; ..." 06:50:11 It's like a pyramid scheme. 06:50:23 a very cheap one :| 06:50:43 haha 06:50:43 Yes, and only one level deep. 06:50:59 Amwieeey 06:51:29 You do get $15 instead of $2 if you manage to recruit a real person instead of a student. 06:51:39 haha 06:51:43 fizzie: so it's like a simplex scheme, without being a simplicial complex scheme? 06:54:08 After recruiting 12 students I could turn my prize into three IEEE-logo-equipped golf balls: http://www.ieee.corpmerchandise.com/ProductDetail.aspx?did=6180&pid=50132 06:54:11 The amazing. 06:54:44 Not just any golf balls: these have "high lift design for greater distance". 06:55:11 do they use any IEEE published papers in their production? 06:55:23 and if so, would the papers be available for the same cost or less? 06:56:21 The "gifts" section has a "golf umbrella" and those golf balls. I'm getting the impression that a lot of IEEE members play golf. 06:57:23 or, someone *wants* you to be under this impression 06:57:39 in fact it's an international crime ring. the golf is only a cover. 06:57:53 ieee is a cover for the golf is a cover for the crime organization. 06:58:02 is a cover for a pianist club. 06:59:10 Nefarious. 06:59:44 they are the most evil pianists in the world 07:00:03 they are so evil, ALL the keys are black 07:00:13 And electric pianists, no less. 07:00:25 "I feel a disturbance in the black to white key ratio." 07:01:39 they are so evil, they play prepared piano pieces exclusively 07:01:55 and they use chains and brass knuckles to prepare it 07:02:16 oh i thought that's just for bling 07:02:35 they are so evil, they commission pieces from John Cage 07:04:44 Yet another membership benefit: the IEEE Spectrum magazine, the magazine with headlines like "Snakebot Worms Its Way Into Your Heart, Literally: CardioARM, a snake robot from CMU, is designed to navigate around your heart, since what we all definitely need are more robot snakes in our chests" 07:05:49 (Somehow they've managed to make that sound like Annals of Improbable Research.) 07:06:38 Ah, it's a blog: well, that explains the tone. 07:07:32 wtf 07:11:19 fizzie: does ieee have any fight club like rules? 07:12:09 well 07:12:14 you can talk about it 07:12:17 so the first two are out 07:12:33 i think they keep the one about "if this is your first night, you must fight" 07:12:50 They're still just processing my order, so I don't know yet. 07:13:18 There is the Code of Ethics the form asks you to accept, with a delightful drop-down menu that has only "Yes" as an option. 07:13:28 Won't take no for an answer, you see. 07:13:34 if what quintopia says is right, they're about to process your ribcage, too 07:13:38 http://www.ieee.org/about/corporate/governance/p7-8.html 07:17:50 it is ten degrees in my room 07:17:52 what do 07:18:27 first, don't use fahrenheit 07:18:40 it's celsius 07:18:50 YOU DON'T SAY 07:18:56 JUST DID 07:18:58 i left out kelvin as then you would be dead 07:18:59 WHAT U GONNA DO HUH 07:19:03 how many servers do you have turned off that could be turned on :P 07:19:13 well, who knows, maybe i'm a crystalline being 07:19:53 quintopia: haha, so true, well, this 450W psu is only lukewarm if that puts it in perspective for you 07:20:02 and the huge CRT monitor is just plain ol cold. 07:20:15 Start a for(;;); on every box. 07:20:20 :D 07:20:25 i feel like ted kaczynski in his hut 07:20:27 or run LINPACK 07:20:33 i'm already a mathematician 07:20:43 NO RELATION 07:20:44 there's only one thing missing 07:21:01 The monkey? 07:21:02 * cheater- sends elliott a package 07:22:12 IS IT A PARTY HAT? 07:22:15 A CAKE? 07:22:31 THIS PARTY IS THE BOMB 07:23:09 in polish there's this word 07:23:17 or perhaps phrase, "rozerwac sie" 07:23:22 which means to enjoy yourself. 07:23:22 that no one can pronounce 07:23:35 it also means to literally tear yourself apart 07:23:50 so suicide bombers greatly enjoy themselves 07:23:51 got it 07:23:55 not in the "you're tearing me apart lisa" way, more in the "party cake" way 07:23:57 yep 07:24:03 :D 07:24:10 "to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or national origin;" 07:24:13 aha 07:24:24 but NOT according to text editor!! 07:24:42 there must be _some_ limits 07:25:13 sadly no good hits: http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=vi+4+lyfe+tattoo 07:25:18 they are going to shun vi users. because of the close ties between emacs and lisp. and the elitism of lispers 07:25:25 but i'm sure soemone has that 07:25:39 quintopia: lies, emacs is just a TECO script. 07:25:50 VI 4 CHOICE! 07:25:56 * quintopia is pro-choice 07:26:17 quintopia: notice how oerian is very quiet 07:26:25 quintopia: i think oerjan might be non-modal 07:26:54 no, he's definitely modal. he can't talk to us until he is finished engaging in the work of the moment 07:27:04 "oh nooo i use viper mode" yeah whatever oerjan! we know all about your wrongdoings 07:27:09 quintopia: hmm 07:27:35 quintopia: i remember telling him in the past to work on something! so that might be true 07:27:58 quintopia: on the other hand he might just be making a diversion to win time. 07:28:09 he's going to defeat us all 07:28:20 by reducing ul to ():^ 07:28:24 :O 07:28:24 no. 07:28:31 he will not defeat.. 07:28:34 the pianist club. 07:28:54 although i would be somewhat reluctant to call them "us" 07:29:01 they are already packing up a gift for him 07:29:04 it's a grand piano 07:29:19 like the one that yosemite sam designed 07:29:48 got a pic? 07:30:14 http://en.wikipedia.org/wiki/Ballot_Box_Bunny 07:34:09 heh look what i found 07:34:10 http://en.wikipedia.org/wiki/File:1674_liten.jpg 07:34:19 yes, the file name has the creation date 07:43:25 -!- quintopia has set topic: A bottle of Moxie for everyone; Bugs Bunny hath spoken. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 07:51:47 http://en.wikipedia.org/wiki/File:Basic_interpreter_on_the_DVK_computer.JPG 07:52:05 is there an esoteric language in cyrillic? 07:53:55 Heh, they write the "BASIC" part as "BEJSIK", basically. 07:54:16 yeah 07:54:44 GOST 27975-88 Programming language ALGOL 68 extended - Язык программирования АЛГОЛ 68 расширенный 07:55:42 ohhhh http://en.wikipedia.org/wiki/Chinese_BASIC 07:55:55 Chinese BASIC 07:55:55 commands are printed in blue Applesoft BASIC 07:55:55 10 卜=0 10 Y=0 07:55:55 20 入 水, 火 20 INPUT E, F 07:55:55 30 從 日 = 水 到 火 30 FOR A = E TO F 07:55:55 40 卜 = 卜+對數(日) 40 Y = Y + LOG (A) 07:55:57 50 下一 日 50 NEXT A 07:55:59 60 印 卜 60 PRINT Y 07:57:27 http://en.wikipedia.org/wiki/Rapira 07:57:43 ПРОЦ СТАРТ() 07:57:43 ВЫВОД: 'Привет, мир!!!' 07:57:43 КОН ПРОЦ 07:58:31 /kick cheater- 07:58:50 wat 07:58:52 why now 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:11:01 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 08:13:41 i have really underestimated ftp://publications.ai.mit.edu/ - it is 20 gigabytes 08:19:59 capital at sign: http://scienceblogs.com/pharyngula/2008/08/atheism_symbol.php 08:38:57 -!- MigoMipo has joined. 09:01:23 -!- cheater- has quit (Ping timeout: 240 seconds). 09:01:54 -!- cheater00 has joined. 09:13:15 -!- FireFly has joined. 09:34:50 -!- MigoMipo has quit (Read error: Connection reset by peer). 09:52:28 -!- oerjan has quit (Quit: leaving). 10:06:33 -!- cheater00 has quit (Ping timeout: 240 seconds). 10:19:58 -!- cheater00 has joined. 10:33:06 -!- ais523 has joined. 10:38:26 -!- BeholdMyGlory has joined. 11:01:02 -!- azaq23 has joined. 11:01:05 -!- BeholdMyGlory has quit (Remote host closed the connection). 11:05:32 -!- pikhq has quit (Ping timeout: 246 seconds). 11:05:36 -!- pikhq_ has joined. 11:20:39 -!- qweqwe has joined. 11:20:44 eee 11:20:54 nobody here? 11:21:53 -!- qweqwe has left (?). 11:28:44 -!- FireFly has quit (Quit: swatted to death). 11:37:15 -!- Mannerisky has quit (Ping timeout: 250 seconds). 12:15:49 -!- miekko has joined. 12:26:02 -!- myndzi has quit (Ping timeout: 260 seconds). 12:39:52 -!- augur has quit (Remote host closed the connection). 12:55:36 -!- pikhq has joined. 12:55:52 -!- pikhq_ has quit (Ping timeout: 272 seconds). 13:00:02 -!- sftp has joined. 13:00:35 -!- myndzi has joined. 13:02:41 hmm, I just put a new language, http://esolangs.org/wiki/Checkout, onto the wiki 13:02:49 its aim is to be faster than machine code, by being lower-level than machine code 13:03:01 (that's doable nowadays, because processors have evolved and yet machine codes haven't) 13:03:27 a side effect of this is that it can only really be run on a GPU without an abstraction inversion, as there's no way to instruct CPUs to deal with things at the right level 13:06:24 * Sgeo wonders if Clojure has stuff similar to Racket's send* and with-method 13:06:31 It would be pretty stupid not to, but 13:06:53 I know that Clojure calls send . 13:07:11 No, I'm not learning Clojure right now. I'm re-picking-up Racket 13:17:58 -!- FireFly has joined. 13:19:54 -!- augur has joined. 13:53:06 -!- cheater00 has quit (Ping timeout: 246 seconds). 13:54:41 -!- augur has quit (Remote host closed the connection). 13:55:08 -!- cheater00 has joined. 14:05:58 -!- BeholdMyGlory has joined. 14:15:45 -!- ais523 has quit (Remote host closed the connection). 14:17:01 -!- augur has joined. 14:30:30 -!- iconmaster[1] has joined. 14:31:59 -!- iconmaster[1] has quit (Read error: Connection reset by peer). 14:44:22 -!- iconmaster[1] has joined. 14:48:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:59:51 -!- pikhq_ has joined. 14:59:55 -!- pikhq has quit (Ping timeout: 246 seconds). 15:03:36 -!- Sgeo has quit (Ping timeout: 240 seconds). 15:15:18 -!- copumpkin has joined. 15:20:28 -!- pikhq has joined. 15:20:49 -!- pikhq_ has quit (Ping timeout: 272 seconds). 15:27:51 -!- Phantom_Hoover has joined. 15:29:40 -!- pumpkin has joined. 15:32:06 -!- copumpkin has quit (Ping timeout: 246 seconds). 15:34:46 -!- pumpkin has quit (Ping timeout: 250 seconds). 15:35:12 http://www.freedom2measure.org/ 15:35:33 -!- copumpkin has joined. 15:36:00 I can't think of something worth saying on that. 15:36:44 Apparently metric units are sexist. 15:37:40 And undemocratic. 16:04:46 -!- elliott has joined. 16:05:46 laaaaaaaaaaawl 16:05:48 "The metric system has been almost wholly created and standardized by male scientists and bureaucrats. At the time, during which women were considerably less liberated than today, woman had virtually no say in the creation and, in many countries, the imposition of these units. Perhaps, if they had, the value of the practical units used in those tasks undertaken by woman at the time would have been recognized." 16:05:57 That is the most sexist way you could possibly claim that metric units are sexist. 16:05:58 Gregor: what 16:06:11 "Perhaps, if they had, the value of the practical units used in those tasks undertaken by woman at the time would have been recognized." 16:06:12 like what 16:06:14 cooking units? 16:06:15 :> 16:06:21 Apparently :P 16:07:03 22:48:57 elliott: http://oerjan.nvg.org/esoteric/underload/Numerals.hs 16:07:12 today i discovered the meaning of overengineering 16:07:18 - Detect initial numeral by partial emulation. 16:07:19 - church' 16:07:19 - 16:07:19 - = 16:10:32 05:02:41 hmm, I just put a new language, http://esolangs.org/wiki/Checkout, onto the wiki 16:10:32 05:02:49 its aim is to be faster than machine code, by being lower-level than machine code 16:10:32 05:03:01 (that's doable nowadays, because processors have evolved and yet machine codes haven't) 16:10:32 05:03:27 a side effect of this is that it can only really be run on a GPU without an abstraction inversion, as there's no way to instruct CPUs to deal with things at the right level 16:10:32 <3 16:11:44 Gregor: "You should not have to defend your right to keep your heritage" 16:11:49 Gregor: That's why interracial marriage is illegal. 16:11:56 elliott: I nose, rite 16:12:14 [[As for evidence of this, consider the fact that man was put on the Moon, a task requiring almost unimaginable accuracy and precision, using American units. If you think that that is out of date ... the Space Shuttle Program runs with American units ... as does every Boeing coming off the assembly line today.]] 16:12:22 I seem to recall an accident with a Mars rover... 16:12:31 "Metricators will sometimes say that decimals are more accurate than fractions." 16:12:32 What? 16:12:55 This whole site is so hilariously retarded, but I can't read it because of that obnoxious waving flag X-P 16:13:28 "This is because we do not convert between different scales of units of temperature (i.e. we do not speak in millidegrees of Petadegrees etc.)" 16:13:31 Maybe you don't. 16:13:52 "Furthermore, since the size of a degree Fahrenheit is smaller that that of a degree Centigrade, when describing the temperature around us Fahrenheit is more accurate!" 16:13:58 Apparently we do speak in "millimeters of petameters" though? 16:14:09 I love how they dismiss things as useless and then say that Fahrenheit is INFINITESIMALLY MORE ACCURATE 16:14:21 "Another factor is that our customary units are simply more human because they are developed in reference to the scale of the human body." 16:14:24 This guy must have gigantic feet. 16:14:34 "The naming system of the metric system is systematic but repetitive. Humans find words that are distinct easier to store." 16:14:38 Now you're just fucking with me. 16:21:47 Gregor: "Strictly speaking, the international bureaucrats who try to impose measurements on people, do not promote the metric system but the Système International (or "SI"). The difference is that SI excludes many metric units. For example, centimeters are not part of SI. For measurement of distance, millimeters are ok, meters too and also kilometers but not centimeters." 16:21:48 Phantom_Hoover: ^ 16:21:50 ... 16:21:55 Prefixes. wut are dey? 16:22:22 -!- azaq23 has quit (Ping timeout: 264 seconds). 16:22:48 -!- azaq23 has joined. 16:24:28 argh 16:24:31 it won't work 16:25:23 Gregor: "Also write to companies. Companies listen to consumers for commercial reasons. If they realize that a law is making their customers unhappy they will lobby against that law." 16:25:35 Gregor: It takes a special kind of person to look corporatism straight in the face and say, "I like it." 16:25:44 (From that metric page.) 16:35:21 Gregor: http://www.mail-archive.com/usma@colostate.edu/msg26369.html SECRET METRICATORS PLOTTING AGAINST AMERICAN WEBSITES 16:37:11 elliott: You're such a METRICATOR. 16:37:30 -!- elliott has set topic: Metricator's Association of Anti-America | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 16:37:44 Also I wrote that as a response to the "metricators will sometimes" comment, not the latest. 16:39:27 -!- Gregor has set topic: Metricators' Association of Anti-America | Togethre we can destroy American heritage with metric units | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 16:41:53 Togethre :D 16:42:02 *Metricatre's 16:42:08 *Metricatres' 16:44:56 Lol, Down with the American measurment system! 16:45:02 -!- MigoMipo has joined. 16:45:50 -!- iconmaster[1] has changed nick to iconmaster. 16:46:04 I like Metric better btw 16:52:00 Down with uppity reptiles. 16:53:24 * elliott posts a longcat-is-long comment on http://esolangs.org/wiki/Talk:Chalcraft-Greene_train_track_automaton 17:09:51 -!- zzo38 has joined. 17:16:16 -!- Behold has joined. 17:18:45 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds). 17:19:15 elliott: You're an "elitist leftie academic"? 17:19:21 ABSOLUTELY. 17:19:33 fizzie: I support the metric system so how could I not be? 17:19:39 Well, there's that. 17:19:45 Maybe I should insert "metricator" in there. 17:25:43 -!- BeholdMyGlory has joined. 17:28:33 Is the IRC logs searchable? 17:28:43 -!- cheater00 has quit (Ping timeout: 240 seconds). 17:29:23 zzo38: If you grep them. 17:29:39 -!- Behold has quit (Ping timeout: 276 seconds). 17:30:09 elliott: So that means I would need to download all of them? Is it possible to telnet to there to avoid downloading all of them? 17:30:29 zzo38: No. You can get them from hg, Gregor has a repository. 17:30:34 You can keep it updated with "hg pull; hg update". 17:30:37 Ask him for the link. 17:30:50 -!- cheater00 has joined. 17:34:29 -!- Sgeo has joined. 17:36:29 -!- Behold has joined. 17:37:14 Or "hg pull -u". Still involves a local copy, tho. 17:37:29 good afternoon 17:37:36 how is the life of everyone here? 17:37:36 Google does index some of the logs, I think I've hit them in searches. 17:39:24 Something like "url:tunes.org/~nef/logs/esoteric site:tunes.org " can work. 17:39:26 -!- BeholdMyGlory has quit (Ping timeout: 246 seconds). 17:39:53 It's not very good, though. 17:40:29 I tried Google, it doesn't work very wekk 17:41:28 Did you mean: I tried Google, it doesn't work very wekk? 17:41:32 Did you mean: I tried Google, it doesn't work very well? 17:43:07 !info 17:43:11 EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null 17:43:52 -!- elliott has set topic: hmm. 17:43:56 Cool, EgoBot is broken 17:44:00 *broken. 17:44:01 (https://codu.org/projects/egobot/hg/index.cgi/rev/c6a7fee953ca) 17:44:25 s/wekk/well/ 17:44:51 !gforth_quit 17:45:28 308 /* Tailcat optimisation: if nothing else is using the stack 17:45:28 309 element we're catting to, just change its next pointer to do 17:45:28 310 the catting directly. */ 17:45:29 tailcat :3 17:45:32 oerjan still isn't here, gah 17:45:52 -!- jix has quit (Quit: leaving). 17:46:03 -!- jix has joined. 17:46:44 -!- BeholdMyGlory has joined. 17:47:06 http://9gag.com/gag/80950 17:47:10 NOOOOOOOOOOOOOOOOOoooooooooooooooooooooooooooooooooooooooooooooooooooooooo 17:48:13 WHERE IS OERJAN 17:48:17 fizzie: summon him with your op powers. 17:48:59 /cast summon bigger fi.. I mean, oerjan 17:48:59 * CAST :Unknown command 17:49:07 How do you summon him with op powers? 17:49:53 -!- pikhq has quit (Ping timeout: 240 seconds). 17:50:04 -!- pikhq has joined. 17:50:07 What's this about oerjan, anyway? 17:50:16 Maybe if you just speak his name thrice. 17:50:30 Mine in the only one with SUMMON and even in that case you can only call the users on the computer which is the server computer. 17:50:35 -!- Behold has quit (Ping timeout: 276 seconds). 17:50:57 fizzie: Three is not enough. You need pi at least. 17:51:14 oerjan oerjan oerjan (oerjan) 17:51:20 fizzie: His function is inadequate :P 17:53:09 Even the latest ircnet ircd (2.10.3p3) still supports SUMMON if you just define ENABLE_SUMMON in config.h, but people generally don't. 17:53:23 It's not like there's usually really people logged on the servers. 17:55:41 I am the only one then, that has enabled SUMMON 17:56:11 https://blogs.msdn.com/b/ericlippert/archive/2011/02/14/what-would-feynman-do.aspx -> semi funny (very) semi serious 17:56:22 irc.netsplit.de lists 753 known networks, I'm sure at least *one* has some sort of a summon, if only by accident. :p 17:56:45 oh, hey, it might work. 17:56:58 -!- Xawu has joined. 17:57:37 fizzie: Then, see if there are some 17:57:42 Helli 17:57:42 "The site's security certificate is not trusted!" 17:57:44 XD 17:57:56 Phantom_Hoover: hrm? doesn't do that for me 17:57:58 Xawu: Yes? 17:58:12 Yes 17:58:29 Phantom_Hoover, same 17:58:34 [Church 18446744073709551616 (Quote [Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,C 17:58:34 at,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat]),Quote [Swap,Dup,Cat,Swap,Dup,Call]] 17:58:37 Now I just need "deduplication". 17:59:26 -!- Xawu has left (?). 17:59:29 -!- zzo38 has quit (Remote host closed the connection). 18:00:48 Now it's niiice and slow. 18:02:14 What an odd infinite loop. 18:02:27 Oh, hah. 18:02:52 Huh? That didn't fix it? 18:04:03 elliott, what was the name of that differentiation thing you were fiddling with a while back? 18:04:09 Automatic differentiation? 18:04:13 (= Dual numbers) 18:06:00 Yeah. 18:06:32 elliott, hm what are you doing. 18:06:34 Did you actually link to a proof that f(x+d) = df'(x) + f(x)? 18:06:43 Vorpal: You mean the debug output? 18:06:46 elliott, I suspect something related to underload 18:06:48 elliott, yes 18:06:56 Vorpal: Yes, I'm writing an advanced Underload interpreter (more advanced than derlo). 18:07:05 elliott, advance as in optimising? 18:07:07 Phantom_Hoover: I think I trivially proved it; it's a simple algebraic derivation, ISTR. 18:07:20 elliott: you're calling it nderl, right? 18:07:26 Vorpal: As in structure sharing (not string-based), recognises Church numerals. 18:08:01 olsner: Actually my compiler was going to be called unad because it's Underload with the derlo taken out, but no, this one's called relief (overload -> ... -> opposite -> relief) 18:08:04 elliott, right 18:08:42 overload -> opposite -> boredom? 18:08:55 I think it was like overload -> burdened -> stress -> relief. 18:09:03 Because of course underload is the opposite of overload. 18:09:07 (being a tarpit of overload) 18:09:07 (about a haskell-based Coq-alike) "i'd love for it to become more mainstream" 18:09:15 Did you actually link to a proof that f(x+d) = df'(x) + f(x)? <-- err... Are there any special assumptions for that statement? 18:09:44 d^2 = 0. 18:10:26 Phantom_Hoover, is this in R? If so yes f(x+0) = 0*anything + f(x) :P 18:10:37 Obviously, it's not in R. 18:10:44 elliott, then what is the domain. 18:10:52 Read. 18:10:57 (= Dual numbers) 18:10:59 elliott, how far back? 18:11:03 That far back. 18:11:05 Whole lines. 18:11:11 Three, in fact, before his message. 18:11:32 ah. 18:11:37 [[One application of dual numbers is automatic differentiation. Consider the real dual numbers above. Given any real polynomial P(x) = p0+p1x+p2x2+...+pnxn, it is straightforward to extend the domain of this polynomial from the reals to the dual numbers. Then we have this result: P(a+bε) = P(a)+bP ′(a)ε, where P′ is the derivative of P. By computing over the dual numbers, rather than over the reals, we can use this to compute derivatives of 18:11:37 polynomials. More generally we may define division of dual numbers and then go on to define transcendental functions of dual numbers by defining f(a+bε) = f(a)+bf ′(a)ε. By computing compositions of these functions over the dual numbers and examining the coefficient of ε in the result we find we have automatically computed the derivative of the composition.]] 18:11:42 Mrf, doesn't prove it. 18:11:53 Phantom_Hoover: Perhaps I copied the proof from elsewhere; I recall it was quite elegant 18:12:04 *elegant. 18:12:08 Phantom_Hoover: Although I suspect a proof would likely depend on the operator definitions. 18:12:13 Since those are the things that do the "real" differentiation. 18:12:29 Also: "There's not really a need to explicitly write out the expressions for operations such as exponentiation. For any binary function on the reals, f, the natural extension to dual numbers is given by f(a+be,c+de) = f(a,c)+(b f1(a,c)+d f2(a,c))e, where f1 and f2 are the two partial derivatives of f with respect to its arguments. Sigfpe 01:02, 14 December 2006 (UTC)" 18:13:06 -!- Sgeo has quit (Ping timeout: 240 seconds). 18:13:26 Oh, of course, it's just expanding the polynomial. 18:13:30 -!- cheater00 has quit (Ping timeout: 240 seconds). 18:15:02 -!- cheater00 has joined. 18:31:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 18:31:36 -!- Sgeo has joined. 18:40:18 So what's a decent Nintendo 64 emulator. 18:49:55 p == q = toQ p == toQ q 18:49:57 Where toQ is Obj -> Obj. 18:50:00 HURF DURF 18:53:08 $ time ./relief '(:*)(~:*:S(/)S~:^):^' >foo 18:53:08 real0m10.685s 18:53:08 $ ls -lh foo 18:53:08 -rw-r--r-- 1 elliott elliott 156M 2011-02-22 19:22 foo 18:53:10 I think that's a record. 19:01:52 str Main 57.8 66.4 19:01:52 putResult Main 18.2 1.0 19:01:52 cat Main 18.2 32.5 19:01:52 strOp Main 5.9 0.0 19:01:54 str: SO EXPENSIVE. 19:10:35 -!- pikhq_ has joined. 19:10:39 -!- pikhq has quit (Ping timeout: 260 seconds). 19:13:20 OK, running with oerjan's insane disclaimed Turing machine gives a better profile. 19:13:44 Unsurprisingly the interpreter itself is taking most of the time; cat is second and == is fourth. 19:13:49 cat's time is probably mostly taken up by ==. 19:13:55 cat Main 742 49504232 27.3 43.1 43.5 49.7 19:13:55 ==_a1ie Main 743 30527845 10.1 6.6 16.1 6.6 19:13:55 ==_a1hS Main 745 30056779 4.3 0.0 4.3 0.0 19:13:56 Indeed. 19:14:07 So if I can optimise == somehow... 19:14:15 Maybe deduplicate slightly less. 19:17:36 implement == using an unsafe pointer comparison? :D 19:17:59 -!- Wamanuz5 has quit (Remote host closed the connection). 19:18:15 look at the core, make stuff more strict, add some inline pragmas 19:18:15 -!- miekko has quit (Ping timeout: 250 seconds). 19:18:28 -!- Wamanuz5 has joined. 19:18:55 olsner: I tried that pointer comparison thing in fact 19:19:02 -!- miekko has joined. 19:19:05 but it didn't work, and besides, i think I need to deduplicate slightly smarter than that 19:19:09 although I'm not sure about that 19:19:29 olsner: I dunno why it didn't work though, in (x:x:xs) I'd expect the two xs to be pointerdentical. is that a word? 19:20:00 I've added some strictness annotations to the stack that seem to help but that was a while ago. inlining might help. 19:20:03 you can never be sure about pointerdenticality 19:20:08 olsner: yes yes :) 19:20:11 what is it again, just {-# INLINE #-} above the function? 19:20:20 olsner: Possibly I could reimplement it as pointerdentical || slow. 19:20:43 exactly, use pointerdentity as a fast-and-ugly comparison that sometimes works 19:20:51 -!- ineiros_ has quit (Ping timeout: 250 seconds). 19:21:00 olsner: yeah but afaict it _never_ works :) 19:21:09 as in, the only time cat would ever call it, it never seems to trigger 19:21:15 hmm, that sucks 19:21:24 -!- ineiros has joined. 19:21:51 but you should probably start by looking at the core to see what's being done lazily that doesn't have to 19:21:56 two finns in several minutes returning, INTERESTING 19:22:02 olsner: yeah, I guess I had better learn Core sometime ... 19:22:10 at least thanks to oerjan i can reasonably claim the title of "smartest" underload interpreter, if perhaps not the fastest 19:22:26 olsner: I have this sneaking feeling that this project will end up being converted to C once I figure out how it should work :) 19:23:01 one trick, if those x's are something small like bytes, is to make your own list that is only lazy in the spine, but stores them unboxed 19:23:22 olsner: They are *so* not something small. 19:23:25 Big complex structures. 19:23:35 data Obj = Church Integer Obj -- Obj is for printing 19:23:35 | Quote [Op] 19:23:35 | Catn Obj Obj 19:23:36 | Rept Integer Obj -- FIXME: Use for more things 19:23:38 oh noes 19:23:38 deriving (Show) 19:23:40 That's an x :P 19:23:52 -!- iconmaster has quit (Ping timeout: 240 seconds). 19:24:09 olsner: I never access more than one element down, too, so an array probably wouldn't help 19:28:07 hmm, how boring 19:28:15 hmm, I forgot to use -O2 when profiling 19:28:20 let's try that again 19:28:22 uh oh 19:28:28 olsner: i doubt it'll change much :P 19:29:10 probably not that much no :) 19:29:47 heh, well it did a bit actually 19:29:51 cat is now only 2.1%, somehow 19:29:57 elliott: cabal install ghc-core now, then ghc-core foo.hs 19:30:02 but, indeed, looks like == is still a major cost centre. 19:30:08 and... >>= ... is apparently taking 5.1% of the time 19:30:09 X-D 19:30:16 olsner: oh i was gonna use -fext-core 19:30:18 but that sounds nice 19:30:26 you forgot -O2 though :) 19:30:30 it's super convenient 19:30:37 and I think it adds -O2 by default 19:30:40 -!- Sgeo has quit (Ping timeout: 240 seconds). 19:30:40 ah 19:31:15 [1 of 6] Compiling Language.Haskell.Lexer.Tokens ( Language/Haskell/Lexer/Tokens.hs, dist/build/Language/Haskell/Lexer/Tokens.o ) 19:31:15 Language/Haskell/Lexer/Tokens.hs:1:0: 19:31:15 Warning: Module `Prelude' is deprecated: 19:31:16 :-D 19:32:01 I think that's the base-3 prelude getting imported 19:32:30 olsner: I carefully redacted that to make it more amusing 19:33:01 olsner: Oh gosh, it's all colourised and fancy. 19:33:05 it's a bit annoying the whole base-3/4 thing and the weird stuff that cabal does with it 19:33:11 yes, super convenient! 19:33:17 I have to question the readability of medium purple on dark purple, though. Thanks Ubuntu! 19:33:34 main11 = 19:33:34 unpackCString# 19:33:34 "Pattern match failure in do expression at relief.hs:217:2-7" 19:33:38 Heh. 19:33:41 -!- Slereah has quit (Ping timeout: 240 seconds). 19:33:43 (I do [foo] <- getArgs.) 19:34:12 a1_r2Yc :: ChElem 19:34:12 GblId 19:34:12 a1_r2Yc = ChStr a_r2Ya 19:34:12 a2_r2Ye :: (ChElem, Int) 19:34:12 GblId 19:34:13 a2_r2Ye = (a1_r2Yc, $fShowResult1) 19:34:14 olsner: super convenient. 19:34:35 I think Parsec does insane things to core X-D 19:34:43 you can read that as "omg why is it doing all this crap" 19:34:45 -!- Slereah has joined. 19:34:52 and then you remove it and it goes faster :P 19:34:58 olsner: that's just from church'. which is only called during parsing. 19:35:04 ok i plan to call it in cat, but don't yet 19:35:25 a6_r2Yu = 19:35:26 __inline_me (\ (@ b_X2eh) 19:35:28 best primitive name evar 19:35:41 __inline_me? 19:35:51 GHC put it there, it seems :P 19:36:39 not quite sure what it means though - obviously it wasn't inlined 19:36:51 olsner: Probably it gets inlined after Core. 19:36:55 I hear there are multiple stages of inlining. 19:37:16 main3 :: forall a_aUA. 19:37:17 Result String a_aUA 19:37:17 -> State# RealWorld 19:37:17 -> (# State# RealWorld, () #) 19:37:19 Gotta love IO's real type. 19:37:32 I guess you can check the assembly to see what actually happened to it in the end 19:37:48 Yeah, reading GHC-generated assembly is not on my todo list. 19:37:59 So wait, what do I grep for laziness :-) 19:38:04 I haven't seen any explicit laziness yet. 19:38:28 you see it as pattern matching 19:38:45 Just "case" then? 19:38:56 case elem 19:38:56 @ Char $fEqChar c_a2bL lvl2_r2Yo 19:38:56 of _ { 19:38:56 False -> True; True -> False 19:38:56 } 19:38:57 lol, parsec 19:39:30 and I think you can see when thunks get allocated instead of plain values getting returned 19:39:54 This would probably be readable if I put my Parsec shit into another module. 19:40:32 for something simple like Int, you can see if it gets unboxed by checking if it's pattern matched to I# 19:41:22 case ds_d1pK of wild_B1 { 19:41:22 __DEFAULT -> 19:41:22 case dataToTag# @ Op wild_B1 of a#_aQ5 { __DEFAULT -> 19:41:22 case dataToTag# @ Op ds1_d1pL 19:41:22 of b#_aQ6 { __DEFAULT -> 19:41:23 ==# a#_aQ5 b#_aQ6 19:41:25 } 19:41:27 }; 19:41:29 "What the hell is going on here." 19:41:41 olsner: No results for I#, hooray :P ... but I don't really have ints in my program 19:41:48 Mostly Integers. 19:41:53 hmm, dataToTag#, does that imply you're using Data and stuff? 19:42:08 I'm not. 19:42:27 I've absolutely no idea what that is about; it looks to be the automatically-generated ... yeah. 19:42:31 olsner: it's the auto-derived Eq instance 19:42:37 seems like it handles all zero-argument constructors 19:42:42 with the recursive ones and ones with strings handled 19:42:47 I guess it's doing some kind of direct comparison 19:42:59 *handled separately 19:43:21 aha, I see, it's checking if it's the same constructor in both arguments 19:43:31 by extracting the magic 19:44:07 Glad _you_ can read it. 19:44:41 the "case ds_d1pK of foo" might imply that it's being lazy (do you need laziness here?) 19:45:56 is there some way for me to test this? the source? 19:47:15 olsner: I could give you the source if you really want to de-lazify my program :-P ... although it does rely on laziness for the Result structure... anyway 19:47:17 It's pretty ugly though 19:47:32 But hey, it contains the code of oerjan, writer of half the Haskell-98 report, how bad can it be? 19:47:47 olsner: http://sprunge.us/EXjf 19:47:51 what, oerjan wrote the report? 19:49:25 olsner: he wrote, er, several typo corrections! 19:49:30 By which I mean: several MILLION 19:50:31 bork bork, which parsec does that need? 19:51:03 olsner: 3. it's shiny 19:51:07 olsner: (You can tell because 3 = Text.Parsec) 19:51:17 And Text.ParserCombinators.Parsec = 2 or 3's back-compat :P 19:51:43 olsner: I half plan to port it over to bytestring/attoparsec but I don't see that as a huge bottleneck right now 19:51:54 crap, I have 2 19:53:21 olsner: Just cabal install 'parsec>=3', works fine 19:53:22 :P 19:53:34 It's only a problem if you have dependencies which end up depending on both IME 19:59:38 http://andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language/ 20:00:43 So basically, PHP devs are really carefree. 20:00:44 Or just stuck-up. 20:00:54 Pythonerifiers... definitely stuck-up. 20:04:02 I bet olsner's made my code SO FAST 20:06:34 -!- augur has quit (Remote host closed the connection). 20:07:58 -!- TLUL has joined. 20:09:24 -!- augur has joined. 20:11:35 -!- cheater00 has quit (Ping timeout: 240 seconds). 20:11:48 -!- ineiros has quit (*.net *.split). 20:11:49 -!- BeholdMyGlory has quit (*.net *.split). 20:11:49 -!- EgoBot has quit (*.net *.split). 20:11:49 -!- Zuu has quit (*.net *.split). 20:11:49 -!- quintopia has quit (*.net *.split). 20:11:49 -!- Ilari has quit (*.net *.split). 20:11:49 -!- Ilari_antrcomp has quit (*.net *.split). 20:12:57 -!- cheater00 has joined. 20:14:55 elliott: when you have "one Swap !(x:y:xs)", the pattern matching itself makes sure the second argument is forced - and it will stay forced for the remaining patterns as well :) 20:15:05 (so most of the !'s are redundant) 20:15:15 olsner: right, those were added as a really quick-hack attempt to see if it went faster 20:15:19 when it did, i didn't bother cleaning it up :) 20:15:27 Well, it's nice to have behaviour that doesn't depend on the pattern order 20:18:24 lawl @ the JS chunk :P 20:18:25 JSers curse like sailors. 20:20:15 Gregor: It's because their language is just so, so bad. 20:20:18 They can barely cope. 20:20:39 -!- BeholdMyGlory has joined. 20:22:29 elliott: Frankly I think it's because most of them have been /forced/ to use it, rather than coming to it like any other language *shrugs* 20:22:41 Uhhh, this is a bad /topic 20:22:59 Gregor: Yeah, I was trying to see if your evil EgoBot force-"esoteric programming languages"-to-be-in-topic thing worked. 20:23:01 It doesn't. 20:23:06 (Thank god.) 20:23:37 I removed it after everybody complained. 20:23:50 -!- Gregor has set topic: It sure is boring around here, I just wonder what Gannon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 20:24:30 Apparently it's "Ganon" :P 20:24:35 -!- Gregor has set topic: It sure is boring around here, I just wonder what Ganon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 20:26:19 -!- Sgeo has joined. 20:30:14 -!- iconmaster has joined. 20:30:14 -!- ineiros has joined. 20:30:14 -!- EgoBot has joined. 20:30:14 -!- Zuu has joined. 20:30:14 -!- quintopia has joined. 20:30:14 -!- Ilari has joined. 20:30:14 -!- Ilari_antrcomp has joined. 20:30:14 -!- zelazny.freenode.net has set topic: hmm. 20:30:16 ... 20:30:16 OK, im seriouly freaked out now. 20:30:16 SAY SOMETHING GUYS!!!!!! 20:30:16 -!- iconmaster has left (?). 20:30:16 -!- iconmaster has joined. 20:30:24 ... wtf 20:30:26 -!- Gregor has set topic: It sure is boring around here, I just wonder what Ganon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 20:30:31 That was crazy. 20:30:43 iconmaster: That was a netsplit :P 20:30:53 You guys kept coming and leaving and not saying anything. 20:30:57 -!- pumpkin has joined. 20:31:22 I'm afeared o' the big bad netsplit waaaaah 20:31:33 :P 20:31:35 That wan't a netsplit. 20:31:48 Well, might have been. 20:31:51 Exept Ilari. He managed to say something to me. Is that normal? 20:31:52 It looks like one of those strange desyncs. 20:32:01 iconmaster: Well that sounds like a netsplit. 20:32:03 But Ilari is just a ghost. 20:32:21 * Sgeo nutrientizes iconmaster 20:32:25 Lol, ok, im fine now. 20:32:39 olsner: superoptimised my program yet ;D 20:33:33 -!- copumpkin has quit (Ping timeout: 272 seconds). 20:35:07 elliott: no, still rewriting it :P 20:35:12 olsner: X_X 20:35:17 -!- dbc has quit (*.net *.split). 20:35:17 -!- augur has quit (*.net *.split). 20:35:17 -!- variable has quit (*.net *.split). 20:35:17 -!- aloril has quit (*.net *.split). 20:35:17 -!- rodgort has quit (*.net *.split). 20:35:17 -!- Deewiant has quit (*.net *.split). 20:35:18 -!- lambdabot has quit (*.net *.split). 20:35:18 -!- comex_ has quit (*.net *.split). 20:35:18 -!- BeholdMyGlory has quit (*.net *.split). 20:35:18 -!- miekko has quit (*.net *.split). 20:35:19 -!- yorick has quit (*.net *.split). 20:35:19 -!- fungot has quit (*.net *.split). 20:35:19 -!- tswett has quit (*.net *.split). 20:35:19 -!- iconmaster has quit (*.net *.split). 20:35:19 -!- ineiros has quit (*.net *.split). 20:35:19 -!- EgoBot has quit (*.net *.split). 20:35:19 -!- Zuu has quit (*.net *.split). 20:35:19 -!- quintopia has quit (*.net *.split). 20:35:19 -!- Ilari has quit (*.net *.split). 20:35:20 -!- Ilari_antrcomp has quit (*.net *.split). 20:35:20 -!- cheater00 has quit (*.net *.split). 20:35:20 -!- jix has quit (*.net *.split). 20:35:21 -!- HackEgo has quit (*.net *.split). 20:35:21 -!- shachaf has quit (*.net *.split). 20:35:21 -!- Vorpal has quit (*.net *.split). 20:35:21 -!- lifthrasiir has quit (*.net *.split). 20:35:21 -!- pumpkin has quit (*.net *.split). 20:35:22 -!- FireFly has quit (*.net *.split). 20:35:22 -!- pingveno has quit (*.net *.split). 20:35:22 -!- mycroftiv has quit (*.net *.split). 20:35:22 -!- TLUL has quit (*.net *.split). 20:35:22 -!- MigoMipo has quit (*.net *.split). 20:35:23 -!- jcp has quit (*.net *.split). 20:35:23 -!- olsner has quit (*.net *.split). 20:35:24 -!- myndzi has quit (*.net *.split). 20:35:24 -!- cal153 has quit (*.net *.split). 20:35:24 -!- azaq23 has quit (*.net *.split). 20:35:25 -!- Leonidas has quit (*.net *.split). 20:35:25 -!- fizzie has quit (*.net *.split). 20:35:25 -!- yiyus has quit (*.net *.split). 20:35:26 -!- Lymia has quit (*.net *.split). 20:35:26 -!- Gregor has quit (*.net *.split). 20:35:26 -!- Sgeo has quit (*.net *.split). 20:35:26 -!- Wamanuz5 has quit (*.net *.split). 20:35:27 olsner: There is nothing wrong with the code structure :P 20:35:33 -!- elliott has quit (Quit: Leaving). 20:36:50 -!- lambdabot has joined. 20:36:50 -!- comex_ has joined. 20:37:05 -!- dbc has joined. 20:37:05 -!- pumpkin has joined. 20:37:05 -!- iconmaster has joined. 20:37:05 -!- Ilari_antrcomp has joined. 20:37:05 -!- Ilari has joined. 20:37:05 -!- quintopia has joined. 20:37:05 -!- Zuu has joined. 20:37:05 -!- EgoBot has joined. 20:37:05 -!- ineiros has joined. 20:37:05 -!- Sgeo has joined. 20:37:05 -!- BeholdMyGlory has joined. 20:37:05 -!- cheater00 has joined. 20:37:05 -!- TLUL has joined. 20:37:05 -!- miekko has joined. 20:37:05 -!- Wamanuz5 has joined. 20:37:05 -!- jix has joined. 20:37:05 -!- MigoMipo has joined. 20:37:05 -!- azaq23 has joined. 20:37:05 -!- FireFly has joined. 20:37:05 -!- myndzi has joined. 20:37:05 -!- pingveno has joined. 20:37:05 -!- yorick has joined. 20:37:05 -!- Lymia has joined. 20:37:05 -!- fungot has joined. 20:37:05 -!- HackEgo has joined. 20:37:05 -!- tswett has joined. 20:37:05 -!- cal153 has joined. 20:37:05 -!- Gregor has joined. 20:37:05 -!- jcp has joined. 20:37:05 -!- shachaf has joined. 20:37:05 -!- Leonidas has joined. 20:37:05 -!- fizzie has joined. 20:37:05 -!- Vorpal has joined. 20:37:05 -!- olsner has joined. 20:37:05 -!- yiyus has joined. 20:37:05 -!- lifthrasiir has joined. 20:37:05 -!- mycroftiv has joined. 20:37:13 -!- elliott has joined. 20:37:13 dbc, I don't think clog can se... darn 20:37:13 -!- elliott has quit (Changing host). 20:37:13 -!- elliott has joined. 20:37:15 olsner: Why does it need rewritin' 20:37:17 I thought the netsplit managed to have dbc on both halves or somethng 20:37:17 Some sort of quantum superposition dbc? 20:37:26 -!- augur has joined. 20:37:26 -!- variable has joined. 20:37:26 -!- aloril has joined. 20:37:26 -!- rodgort has joined. 20:37:26 -!- Deewiant has joined. 20:37:27 -!- elliott has quit (Read error: Connection reset by peer). 20:37:46 -!- elliott has joined. 20:37:55 elliott: HALLO 91.105.78.253 HOW ARE U 20:38:05 elliott: I'm only rewriting a small part of it, dunno if this will work out at all though, the Chunk thing is confusing me 20:38:13 olsner: The Chunk thing is necessary. 20:38:16 olsner: The old system reaally sucked. 20:38:25 olsner: Basically it's just a stream of output that can end in an error. 20:38:29 So (hello)S(world)Sx will be 20:38:38 Chunk "hello" (Chunk "world" (Failure "LOL NO X INSTRUCTION")) 20:38:47 olsner: Or if the function e.g. returns the stack after the computation, it will end with (End stack). 20:39:24 olsner: The structure is essentially ([a],Either e String) 20:41:38 right, starting to see how it fits together 20:42:43 Result I copied from an earlier project, which is why it's not hideous :P 20:43:17 I'm here :) 20:43:25 olsner: Basically it lets me thread computations without explicit concatenation of output. 20:44:36 The accusation that I only show up to announce that I'm here and never say anything else is accurate enough. 20:45:06 PROVED 20:45:13 dbc: You're ABUSING your ESOLANG TENURE. 20:45:26 I've been busy having lots of sex with a ton of people. Actually more like three metric tons in literal terms. 20:46:04 So, dbc has been having sex with someone who weighs three metric tons. 20:46:05 I haven't written a brainfuck program since factorial in probably two years. 20:46:24 Itself not an unimpressive feat, unless you consider fat-flap-sex as sex. 20:47:08 I said "people", not "person". Nobody much over 200 kilos. 20:49:12 Also I'm doing a master's in computer science. That's mostly been easy and fun, but it does eat some more time. 20:49:12 -!- elliott has quit (Read error: Connection reset by peer). 20:50:12 -!- elliott has joined. 20:50:16 I welcome this new age of precisely weighing people before engaging in intercourse. Also, do not welcome my internet connection to anything because it sucks. 20:50:50 That's not necessarily a disadvantage during intercourse. 20:52:37 -!- elliott_ has joined. 20:52:43 Eurgh. 20:52:58 Again, this is an estimate. :P 20:53:03 dbc: I'm doing a PhD in CS, and yet HERE I AM :P 20:53:22 Gregor: Yeah, but what's the sum total of the weight of the this sentence is getting out of hand, structurally? 20:53:30 dbc is juggling, like, TWO responsibilities here. 20:53:48 Right, I'm not having sex with a behemoth >_> 20:54:10 Someone has to do it. 20:55:09 -!- elliott has quit (Ping timeout: 264 seconds). 20:55:20 Gregor: Are you at least trying to integrate your PhD and the channel somehow? (E.g. I used our department's variable-length n-gram language model toolkit to build fungot's babble models, which I can sort-of count, since I learned (hypothetically in theory, anyway) more about the thing.) 20:55:21 fizzie: godel is fnord fnord. mies fnord fnord fnord fnord koko 20:55:34 As you can see, a job well done. 20:55:53 fungot: Can't you not embarrass me *once*? 20:55:53 fizzie: if your drscheme is correctly installed, just typing: ( require ( lib " 1.ss" " srfi" 20:55:54 fizzie: My "real" language design stuff is all an amalgam of #esoteric and my PhD. 20:56:02 What's a godel? 20:56:12 It's a fnord fnord. 20:56:13 dbc: Idonno, whats a godel with you HAW HAW HAW 20:56:23 -!- Sgeo has quit (Ping timeout: 276 seconds). 20:56:41 Also fi:mies = man, fi:koko = size, and having those two words in the same sentence is awfully suggestive. 20:57:25 Not happy with your mieskoko? Just send $49.95 in an unmarked envelope to ... 20:57:31 Yeah, and fi:fnord = ! 20:57:36 (There's a tiny bit of Finnish text mangled in fungot's "irc" model, courtesy of one channel that has been sporadically bilingual.) 20:57:37 fizzie: ( 3 4.0 7.0) to ( iterate ( :list var list) body)) val...) 20:57:50 fizzie: I can't wait until fungot starts quoting your PMs. 20:57:50 elliott_: well amusing as it might be a good space optimization for the common case, shadowing is the only gui framework, although unlike emacs it can only have one 20:57:51 `translate fnord 20:57:55 CAN'T WAIT 20:58:05 -!- pumpkin has changed nick to copumpkin. 20:58:19 Ha, I can hear fizzie's shock as he realises that that might happen. 20:58:28 It... shouldn't happen. 20:58:41 fizzie: Is that "it would be bad if that happened", or "it can't happen"? 20:58:48 Both, I guess. 20:59:00 fizzie: Are you SURE? 20:59:08 I'm a bit suspicious of irssi's logging, so I can't completely rule it out. 20:59:32 No output. 20:59:53 fizzie: I think if you did /msg foo bar in-channel it shows in the channel screen and therefore gets logged there. 21:00:10 Let's just hope all your DCC requests for donkey porn were in /query. 21:00:46 It shouldn't happen for autolog logs with a target-based file name, just for window-logging logs. But again, I'm not entirely sure. 21:01:05 I can hear you hyperventilating over IRC, you know. 21:01:26 To satisfy your curiosity, however, I picked a random private message, and here it is (!): [2006-12-08 02:28:09] There's a whole pile of code that just disappears somewhere. 21:01:51 That was, perhaps, a bit anticliquematic. 21:02:49 Aw man, so boring. 21:02:54 PICK AGAIN. 21:03:08 Set up an IRC bot that picks one at random. It'll be like five minutes before we discover all your secrets. 21:03:12 -!- Phantom_Hooveer has joined. 21:03:19 Back. 21:03:24 Argh. 21:03:32 -!- Phantom_Hooveer has changed nick to Phantom_Hoover. 21:03:36 Nnnah, sooner or later I'd get unlucky. (Also picking ineiros as the recipient rather non-randomly, and selecting only the message itself randomly, might have helped my chances of hitting an innocuous one.) 21:03:50 Does... does qwebirc not have /nick? 21:03:56 FFs. 21:04:04 -!- Phantom_Hoover has quit (Client Quit). 21:04:31 -!- relic930 has joined. 21:04:39 -!- Phantom_Hoover has joined. 21:04:54 Phantom_Hoover: Your latest comment, coming as it did immediately after a nick change, was a bit curious. 21:05:20 Oh, it just musn't actually *tell* you your nick changed. 21:05:23 Anyway! Leaving again. Bye. :) 21:10:00 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds). 21:10:16 -!- Phantom_Hoover has joined. 21:13:56 Nnnah, sooner or later I'd get unlucky. (Also picking ineiros as the recipient rather non-randomly, and selecting only the message itself randomly, might have helped my chances of hitting an innocuous one.) 21:14:04 We know all about your SECRET MESSAGES to dbc and, uh... 21:14:10 Deewiant. Yes. Him. 21:14:14 Yes. 21:14:25 Deewiant: What a demented man is fizzie, eh. 21:14:29 Yes. 21:16:38 We can't exactly trust Deewiant on such matters. 21:16:44 Yes. 21:18:09 He's probably one of those crazy Finns who tricks gullible foreigners to roll around naked in the snow with them. 21:18:32 No. 21:18:58 -!- Phantom_Hoover has quit (Quit: Page closed). 21:19:01 -!- dbc has quit (*.net *.split). 21:19:01 -!- BeholdMyGlory has quit (*.net *.split). 21:19:01 -!- miekko has quit (*.net *.split). 21:19:01 -!- yorick has quit (*.net *.split). 21:19:01 -!- fungot has quit (*.net *.split). 21:19:01 -!- tswett has quit (*.net *.split). 21:19:01 -!- iconmaster has quit (*.net *.split). 21:19:01 -!- ineiros has quit (*.net *.split). 21:19:01 -!- EgoBot has quit (*.net *.split). 21:19:01 -!- Zuu has quit (*.net *.split). 21:19:02 -!- quintopia has quit (*.net *.split). 21:19:02 -!- Ilari has quit (*.net *.split). 21:19:02 -!- Ilari_antrcomp has quit (*.net *.split). 21:19:53 -!- calamari has joined. 21:20:03 -!- pumpkin has joined. 21:20:03 -!- dbc has joined. 21:20:03 -!- iconmaster has joined. 21:20:03 -!- Ilari_antrcomp has joined. 21:20:03 -!- Ilari has joined. 21:20:03 -!- quintopia has joined. 21:20:03 -!- Zuu has joined. 21:20:03 -!- EgoBot has joined. 21:20:03 -!- ineiros has joined. 21:20:03 -!- BeholdMyGlory has joined. 21:20:03 -!- miekko has joined. 21:20:03 -!- yorick has joined. 21:20:03 -!- fungot has joined. 21:20:03 -!- tswett has joined. 21:20:28 -!- copumpkin has quit (Ping timeout: 250 seconds). 21:20:43 Is it me, or does it fell more crowded in here now? 21:20:45 *feel 21:20:46 -!- pumpkin has quit (Changing host). 21:20:46 -!- pumpkin has joined. 21:22:02 iconmaster: who are you 21:23:12 iconmaster: Define now. 21:23:27 Deewiant: Is the answer to this question no? 21:23:38 I'm not sure. 21:24:40 Deewiant: ITYM "Mu." 21:24:49 ITYM "FILE_NOT_FOUND" 21:25:00 -!- relic930 has quit (Quit: .oO(blubb)). 21:25:29 i never see iconmaster say anything 21:25:34 how come is that! 21:26:15 elliott: I got a segmentation fault :/ 21:26:54 cheater00: Umm, idk? CAN YOU HEAR ME NOW? 21:27:07 HELLO TRY SPEAKING IN BIGGER LETTERS 21:27:16 OK 21:27:31 WE NEED TO TENSE UP THE THREAD BETWEEN OUR CANS 21:27:38 I FIND! 21:27:41 olsner: What. 21:27:43 olsner: From /GHC/? 21:27:59 yes, from a modified version of relief 21:28:07 olsner: phew 21:28:09 olsner: Niice. How many unsafes? 21:28:15 I didn't even add *any* unsafe stuff 21:28:31 may have had a buggy ghc version, ghc-6.12.3 didn't segfault 21:28:33 -!- azaq23 has quit (Read error: Connection reset by peer). 21:28:46 -!- azaq23 has joined. 21:29:52 it did however use up all my disk space when I tried that small program you pasted above (that seemed to take 10s to produce a 165MB file when you did it) 21:30:48 I think you gave me a broken version 21:31:03 olsner: Uhh, I did not :P 21:31:14 olsner: But if it used up all your disk space... cool. 21:31:21 Does the file look like :*:*:* with /s in there? 21:31:28 I'm on an SSD. 21:31:33 So you might have much faster sequential writes. 21:32:18 yep, and the /'s seem to double their distance for each one 21:32:40 so this program just writes infinity of that crud? 21:32:43 olsner: That's right then. And yes. 21:32:50 It starts with :*, and concatenates it with itself forever. 21:33:00 olsner: I did ^C it to get that 10 second thing. 21:33:04 Did you just leave it running? X-D 21:33:15 I thought I was supposed to :P 21:33:35 olsner: So have you sped it up on 6.12.3? :-P 21:33:42 spedified 21:34:06 my version seems to have run out of disk space 1.2s faster than yours (which took 30s) 21:34:26 Wooooo 21:34:32 olsner: A better benchmark is: 21:34:42 ./relief '(0)S((0)(1))(~:^:S*a~^~*a*~:^):^' 21:34:44 Again outputs infinitely. 21:34:54 Just pipe to a file, run approx. same time, compare sizes. :p 21:35:01 (It's Thue-Morse.) 21:35:29 -!- Phantom_Hoover has joined. 21:35:29 olsner: Also http://oerjan.nvg.org/esoteric/underload/tmcount.disclaimed.ul, which outputs lots and then pauses a while, forever. 21:37:00 olsner: how small is your disk anyway that it can be filled in 30 seconds? 21:37:14 or how full :P 21:37:35 this one is both small and full, it has about 500MB free right now 21:38:26 ah 21:39:34 There's yet another alexithymia IAmA on Reddit. 21:39:49 Like the previous one, it misdefines alexithymia. 21:40:44 Phantom_Hoover: Oh it gets better - 21:40:55 "Glad you asked.. over the last 15 years or so I have actually worked out how language works from the ground up (from neurons to Shakespeare as I have termed it). This has led me to work out a mechanism to allow a computer to understand language and act upon it as a person does. I have been able to work all of this out because of my condition, it has given me an internal and excellent insight into lan 21:40:55 guage at the core." 21:41:00 So either troll or egotistical idiot. 21:41:17 When called on his bullshit and asked what his credentials are: 21:41:18 "Just postgraduate studies in lingustics, which i stopped doing due to not actually learning anything (even though I was getting top scores). 21:41:18 As for your contempt for new ideas, that is EXACTLY why I don't have any thesis published. 21:41:18 I am $200,000 short on getting the thesis published." 21:41:26 tl;dr actually I lied, I have no fucking clue how to do this unless someone gives me a lot of money 21:42:05 Phantom_Hoover: Not even worth reading. Also he apparently has this AMAZINGLY GREAT NOVEL all written in his head with the sole problem that he is TOTALLY PHYSICALLY UNABLE TO WRITE FICTION. 21:42:14 tl;dr bunch of horseshit. 21:43:59 APNIC down 0.10. v4: 3x8k+2x4k+2x2k+1k to JP, 4x256k+512k to CN, 4k to HK, 256 to NZ. v6: /48 to NZ, /32+2x/48 to AU, 2x/32 to ID, /32 to NC, /32 to NP, /32 to PH. 21:50:03 Is there any sort of reason what e needs the $200k for? 21:50:11 I mean, just plain publishing things isn't quite that expensive. 21:50:48 fizzie: It puts him beyond questioning, obviously. 21:50:58 I can't imagine he's not a troll. Or if he isn't, then he's just an idiot. 21:52:10 This month so far, APNIC has gave out 0.790 blocks (13 257 984 addresses). On v6 front: 4 063 248x/48 (62.0 microblocks, 1 039 178.9 microblocks free). 21:53:58 APNIC still has eqiuivalent of 514 891 /32s to allocate before it can even ask for IANA for new allocation (half-block rule). 21:58:05 So APNIC IPv6 free pool: 0.991 blocks. 21:58:10 Lazy concatenative languages are possibly the worst best idea ever. 21:58:19 The best thing is that you NEED a type system to do it. 21:58:27 Because you have to know how many stack elements get eaten up. 21:59:11 Total APNIC IPv6 pool: 1.018 blocks. 22:01:29 Heh. Last update date on IANA IPv6 unicast space: 2008-08-27. Hasn't been updated for over 2 years. 22:01:40 -!- Mathnerd314 has joined. 22:01:41 -!- elliott_ has quit (Quit: Leaving). 22:01:47 -!- elliott_ has joined. 22:02:39 And the last allocation date marked there is 2006-10-03 (the day 5 blocks were allocated, one to each RIR) 22:04:44 elliott_: it didn't end up any faster, so I give up for now 22:04:56 olsner: Care to share your code? 22:05:00 nah :) 22:05:18 it sucks a lot, and I cheated 22:05:26 olsner: :( 22:05:28 olsner: I wanna seeee. 22:05:31 I need inspiration. :p 22:05:33 -!- copumpkin has joined. 22:05:35 Also I like cheating 22:06:40 the cheating was that I baked IO and most of putResult directly into Result 22:06:57 olsner: ouch. well right. ew. 22:07:04 exactly :P 22:07:12 changed anything else? 22:07:41 changed Result into continuation-passing style 22:07:49 hmm, like howso/ 22:07:50 *howso? 22:08:01 -!- pumpkin has quit (Ping timeout: 260 seconds). 22:08:01 -!- iconmaster has quit (Ping timeout: 260 seconds). 22:09:26 at first it was really complicated due to Chunk, but then I put all the IO stuff directly into it so now it's pretty much type Result a e = (e -> IO ()) -> IO () 22:09:31 -!- pikhq_ has quit (Read error: Operation timed out). 22:10:11 what was it with Chunk? I don't feel that baking the IO in would be beneficial ever, because it's basically just constructing a value and then immediately destructing it, with putResult 22:10:15 so the overhead should be minimal 22:10:42 -!- pikhq has joined. 22:11:01 hmm, I just wanted to try rewriting Result and see what fell out 22:12:01 I think Result is probably not my bottleneck :) 22:12:19 I have a feeling that if I optimised (==) a lot or made cat more loose, it'd be a lot faster. 22:13:49 hmm, dunno if it's going faster with reallyUnsafePtrEquality# :P 22:15:43 -!- Sgeo has joined. 22:16:15 $ ./relief "$(cat 99.ul)" 22:16:15 IT'S REALLY TRUE 22:16:19 ok so ptr equality is doing _something_ 22:16:37 but :* doesn't do it 22:19:01 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:20:07 what are you doing? cat in Haskell? 22:20:33 -!- calamari has left (?). 22:20:58 Mathnerd314: cat? lol, no, underload 22:21:36 -!- Phantom_Hoover has quit (Remote host closed the connection). 22:21:39 * Mathnerd314 checks esolang wiki 22:21:45 it's rather famous 22:21:49 and much worked on recently 22:22:00 i'm just writing a very smart interpreter (smarter than the current smartest, derlo) 22:22:06 Mathnerd314: cat in haskell: main = mapM_ (readFile >=> putStr) getArgs :-P 22:22:09 er 22:22:11 *=<< getArgs 22:22:18 that doesn't handle - for stdin though. 22:22:21 or an empty arg list for stdin 22:24:06 huh... that never calls ==... 22:28:54 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*). 22:31:11 http://9gag.com/gag/38704/ ... I hate people. 22:31:45 Gregor: How much is 9gag.com paying you? 22:31:54 elliott_: $3/hr 22:32:34 Gregor: but lmao @ that 22:34:36 -!- augur has quit (Remote host closed the connection). 22:34:56 olsner: ha, I don't actually force conatenation in * 22:35:01 which is why == never seemed to be called 22:35:06 because i didn't bother outputting anything 22:37:15 -!- augur has joined. 22:37:18 aaand after removing a trace call, the two pointers are no longer equal. 22:37:19 wait. 22:37:22 hmm 22:37:37 maybe it's thunked 22:37:42 elliott_, is DrRacket ok to use with SICP as long as it's in R5RS mode? 22:40:48 -!- Mathnerd314 has quit (Ping timeout: 272 seconds). 22:47:42 translating relief to C will be a pain 22:53:22 -!- Mathnerd314 has joined. 22:59:22 -!- FireFly has quit (Quit: swatted to death). 23:29:45 -!- augur has quit (Remote host closed the connection). 23:30:57 /* TODO: figure out memory situation, i.e. refcounts, freeing 23:30:57 * function (because structures are dynamically sized), ... */ 23:31:05 now i remember why i love haskell 23:33:56 -!- oerjan has joined. 23:36:28 hi oerjan 23:37:05 oerjan: i integrated your code :) 23:37:07 APNIC last 30 days: 20 719 616 addresses (1.235 blocks). 23:40:00 yay 23:40:26 -!- pikhq_ has joined. 23:40:26 -!- pikhq has quit (Ping timeout: 246 seconds). 23:40:39 Gaaah, today. 23:40:49 pikhq_: wat 23:41:11 Egg on car is a bitch. 23:41:12 oerjan: i'm tentatively rewriting the whole thing in C now. although that might be a _loss_ for sufficiently pathological programs, as I'm not using bignums and so will have to fall back or whatever 23:41:24 That's almost but not quite the rate on January (excluding the first day): 21227264 (which is about 500k more). 23:41:37 oerjan: but anyway, it's hard to tell when the majority of underload programs are unpublished :( 23:41:52 hm 23:42:26 oerjan: (every time something UL-related is mentioned, ais is all "OH YEAH I WROTE THAT") 23:42:35 apparently he has a more concise full unlambda translation than you or something :) 23:42:51 elliott_: actually i think he said that was accidentally deleted 23:43:05 oerjan: shut up, i'm busy being annoyed :D 23:43:15 oerjan: you have to give me a benchmark then :P 23:43:17 maybe that includes some of the other programs as well 23:43:39 What sort of asshat eggs cars, anyways? 23:44:04 oerjan: btw you may (likely not) find my comment on http://esolangs.org/wiki/Talk:Chalcraft-Greene_train_track_automaton worth reading :-P 23:44:10 (it's not very interesting, but it is MULTIPLE PARAGRAPHS!) 23:46:13 gah 23:46:15 why is C so stupid 23:46:52 elliott_: i could give you my unlambda conversion, even if it's worse than the one ais523 supposedly made. i haven't made an automatic convert for it though. 23:47:13 oerjan: hmm, can it translate your self-interpreter? given some appropriate input program 23:47:20 i mean, if there were a translator program 23:47:29 no, it cannot do input 23:47:40 basically the issue is that there are no (afaik) underload programs that do a lot of computation and take a long but _finite_ time to output something 23:47:48 heh 23:48:16 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:50:06 well it _should_ be possible to adapt something else to use a church numeral for number of iterations 23:50:57 oh and you want there to be a long time _between_ outputs as well? 23:51:00 hm 23:51:19 oerjan: oh, i don't care about that 23:51:25 i just want a benchmark, you know 23:51:27 ok 23:51:38 a program that does a lot of computation and then stops, preferably outputting the entire result (or laziness could bite me :)) 23:52:02 oerjan: and if it does a lot of arithmetic that wouldn't go amiss either, because i'm the only one to optimise that >:D 23:52:10 (but i'm not sure if + would get optimised properly) 23:52:15 (so that would be interesting) 23:52:32 i'm pretty sure those :^):^ at the end of 110.ul must be an ordinary top-level loop 23:53:05 elliott_: i'm afraid as i said my programs don't use church numerals very heavily 23:53:53 also there still is the issue that you always need that final unary application of the church numeral 23:54:00 to actually use it 23:54:32 unless you have some optimization at a higher level than i thought we were aiming at 23:54:57 -!- pikhq has joined. 23:55:06 -!- pikhq_ has quit (Ping timeout: 250 seconds). 23:55:41 -!- augur has joined. 23:56:34 oerjan: well, I optimise * and ^ on them 23:56:42 all the way through the program 23:56:54 if you do (:*)(::**)*, or replace that last * with a ^, it will simply do the arithmetic 23:57:09 (and also, *lazily*, form :*::**, but that will only get formed when it's printed) 23:57:20 (or, well, checked for equality but that's an implementation detail right now :)) 23:58:06 -!- cheater- has joined. 23:58:32 83 lines of C already to do about a dozen lines of haskell. yay. 23:59:58 ^ul (^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^)()~((())~:a~*):a~*~^!(~((!())(!:^(^)*)(!!:^(!^)*))~*^!!^):^(~((()())(:a~*:(*(!^)(:)S)~*~(!*(^)(^)S)~*):a~**((!^)~^!^)(!(^)~^^))~*^( )S!!a:(*)*~(~*)**^~*(()()(!)()(!)(:a~*:(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(^)*)))~*~(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(!^)*)))~*):^)~*^!!!!!!~^)(()~^)(::**)^^ 23:59:58 ^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^ ...out of stack!