00:00:21 http://www.newser.com/story/143556/phyllis-schlafly-warns-men-dont-date-feminists.html 00:00:48 Huh. Haven't heard of this woman before. (But did note the name and according to the evil librul Wikipedia, Andy's her son) 00:02:19 Now I put [Node] at the end 00:06:34 Is this a proper monoid? mappend (Drawing n1 f1 w1 h1 d1) (Drawing n1 f2 w2 h2 d2) = Drawing (n1 ++ n2) g (max w1 w2) (max h1 h2) (max d1 d2) where { g ct res nl = f1 ct res (take (length n1) nl) ++ f2 ct res (drop (length n1) nl); }; If not, is it proper if the constructor is hidden? 00:08:21 data Drawing = Drawing [Node] ((Coordinates -> Coordinates) -> Dimen -> [Node] -> PageObjects) Dimen Dimen Dimen; 00:11:49 hi hackagebot 00:11:53 hackagebot 00:11:57 hi monqy 00:12:02 `? monqy 00:12:09 hi monqy 00:12:28 `run rm -rf * 00:12:33 No output. 00:12:43 `? monqy 00:12:46 hi monqy 00:19:02 hi shachaf 00:19:22 hi 00:19:29 `run rm -rf wisdom/* 00:19:31 No output. 00:19:32 `? monqy 00:19:35 monqy? ¯\(°_o)/¯ 00:19:42 `run rm -rf ./* 00:19:44 No output. 00:19:44 `run rm -rf / 00:19:47 rm: it is dangerous to operate recursively on `/' \ rm: use --no-preserve-root to override this failsafe 00:19:48 `? monqy 00:19:50 monqy? ¯\(°_o)/¯ 00:19:58 `run rm --no-preserve-root -rf / 00:20:01 rm: cannot remove `/sys/fs': Permission denied \ rm: cannot remove `/sys/devices/platform/uevent': Permission denied \ rm: cannot remove `/sys/devices/platform/alarmtimer/uevent': Permission denied \ rm: cannot remove `/sys/devices/platform/alarmtimer/modalias': Permission denied \ rm: cannot remove `/sys/devices/platform/alarmtimer/subsystem': Permission denied \ rm: cannot remove `/sys/devices/platform/alarmtimer/driver': 00:20:11 `run rm --no-preserve-root -rf / 2>/dev/null 00:20:44 No output. 00:20:48 `? monqy 00:20:51 monqy? ¯\(°_o)/¯ 00:20:52 `ls / 00:20:55 bin \ dev \ etc \ hackenv \ home \ lib \ lib64 \ opt \ proc \ sbin \ sys \ tmp \ usr \ var 00:20:57 `rm -rf bin/* 00:21:00 rm: invalid option -- ' ' \ Try `rm --help' for more information. 00:21:12 `run rm -rf bin/* 00:21:15 No output. 00:21:17 `ls bin 00:21:20 ls: cannot access bin: No such file or directory 00:21:24 `? monqy 00:21:27 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?: not found 00:21:35 `run monqy run 00:21:38 bash: monqy: command not found 00:22:56 `run which run 00:22:59 No output. 00:23:02 `run type -a ls 00:23:04 ls is /bin/ls 00:23:08 `run type -a revert 00:23:11 bash: line 0: type: revert: not found 00:23:17 `run type -a ? 00:23:19 bash: line 0: type: ?: not found 00:23:36 what have you done 00:23:40 `? welcome 00:23:42 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?: not found 00:23:45 :'( 00:23:56 hi monqy :'( 00:24:02 hi shachaf :'( 00:24:25 hi monqy :) 00:25:09 `revert 0 00:25:11 Done. 00:25:13 oh no 00:25:14 WHAT 00:25:17 `ls 00:25:19 bin \ canary \ karma \ lib \ paste \ quotes \ share \ wisdom 00:25:20 `run ls 00:25:23 bin \ canary \ karma \ lib \ paste \ quotes \ share \ wisdom 00:25:24 `cat canary 00:25:28 No output. 00:25:31 `? monqy 00:25:35 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 00:25:43 itidus20: details 00:25:45 itidus21 for details? 00:25:56 `revert 1000000 00:25:58 abort: unknown revision '1000000'! 00:26:40 ahh 00:27:24 humm 00:30:07 MY younger brother used often to find fault with my indomitable ambition. He would say, " The man of letters requires food and clothing only. A modest carriage and a humble hack; some small official post in a quiet place, where he may win golden opinions from the surrounding villagers that should suffice. Why toil and strive for more? " 00:31:04 Later on, when away in the far barbarian south, before the rebellion was stamped out a bog beneath my feet, a fog above my head, so that I have even seen kites drop dead in the water, killed by the poisonous vapours of the place then I used to lie and muse upon the other view of life which my brother had set before my eyes. 00:31:40 And now that, thanks to you my brave comrades, my efforts have been crowned with success, and I have preceded you on the path to glory and honour I have cause both for joy and for shame. 00:38:10 itidus20: hi 00:39:09 monqy: hi 00:39:32 monqy: iditus200 00:40:08 i just cut and pasted a random anecdote to fulfill the details today 00:40:17 shachaf: hi 00:40:31 are those my details 00:40:41 good mystery 00:41:26 A+ would ask itidus21 again 00:44:55 Gems of Chinese Literature 00:45:19 hi Sgeo 00:45:25 hi shachaf 00:45:39 hi Sgeo, shachaf 00:45:46 nods @ sgeo. good finding 00:46:02 hi shachaf 00:46:05 Hi monqy, monqy 00:46:11 hi Sgeo 00:46:14 hi 00:46:19 hi everybody 00:46:21 hi nobody 00:46:21 hi 00:46:24 - a poem 00:46:28 - by monqy 00:46:36 - hi monqy 00:46:37 - (c) 2012 "monqy" 00:55:50 https://www.hackthissite.org/news/view/618 01:01:59 Apparently D classes are "instantiated by reference only". 01:08:01 ? 01:12:16 -!- NihilistDandy has joined. 01:47:30 monqy: Write me another poem! 01:48:31 hi shachaf 01:48:32 hi 01:48:54 hi alone is poetry 01:48:54 hi 01:49:02 that was also a poem 01:49:04 - a poem 01:49:08 - by monqy 01:49:18 - (c) 2012 "monqy" 01:49:21 this sentence is not a poem 01:49:25 - a poem 01:49:31 - by "monqy" 01:49:47 - hi monqy 01:49:54 hi 01:49:57 - a poem 01:49:59 - a poem 01:50:00 - a poem 01:50:03 - a poem 01:50:06 - a poem 01:50:09 - hi monqy 01:50:13 - hi 01:50:50 monqy along is poetry 01:50:59 monqy: are you alone :( 01:51:02 `? monqy 01:51:05 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 01:51:06 `revert 440 01:51:08 abort: unknown revision '440'! 01:51:12 `revert 220 01:51:14 abort: unknown revision '220'! 01:51:15 `revert 110 01:51:18 Done. 01:51:20 `? monqy 01:51:23 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 01:52:08 shachaf: im along 01:52:28 gasp 01:52:32 monqy was monqy all along 01:52:45 it's true 01:52:50 elliotts was just a puppet 01:52:56 hi elliotts 01:53:09 who's elliotts im monqy 01:53:12 im along 01:53:15 "hi" 01:53:16 - along 01:53:20 -a poem 01:53:22 -yes 01:54:19 monqy: Are your poems written in Objective C? 01:54:42 I've never written a line of objective c 01:54:53 so how could i have written a line of poem 01:55:00 so how could i have poem 01:55:04 so how could i hi 01:55:10 hi 01:55:11 - monqy mystery 01:55:21 good mystery 01:55:24 hi monqy 01:55:27 hi shachaf 01:55:39 This is kind of relaxing. 01:55:41 hi 02:02:51 hi 02:09:46 monqy++ # hi 02:09:54 hi++ 02:09:56 @karma hi 02:09:56 hi has a karma of 0 02:10:00 hi++ 02:10:00 @karma hi 02:10:00 hi has a karma of 1 02:10:30 @karma+ hi 02:10:30 hi's karma raised to 2. 02:59:41 -!- NihilistDandy has quit. 03:06:58 lambdabot++ 03:07:06 @karma lambdabot 03:07:06 lambdabot has a karma of 6 03:07:11 :D 03:07:28 quintopia+=quintopia++ 03:07:36 @karma quintopia 03:07:36 You have a karma of 0 03:07:53 quintopia-- 03:07:55 @karma quintopia 03:07:56 You have a karma of 0 03:07:59 :/ 03:08:11 @karma quintopia+=quintopia 03:08:11 quintopia+=quintopia has a karma of 1 03:08:25 shachaf: downvote me 03:08:37 hi quintopia 03:08:41 hi monqy 03:08:52 monqy: downvote me 03:09:12 hi shachaf, quintopia, monqy 03:09:24 quintopia-- # silly requests 03:09:31 quintopia-- # he deserves it 03:09:41 I did shachaf's downvote too 03:09:42 @karma quintopia 03:09:42 You have a karma of -2 03:09:45 :D 03:09:51 hi monqy :'( 03:09:57 shachaf: you can do my downvote if you'd like 03:09:59 monqy++ 03:10:07 shachaf++ 03:10:29 monqy: Will I be a monqy when I grow up? 03:10:46 you can be anything you want 03:10:52 do you want to be a monqy 03:11:01 What if I wanted to be... 03:11:03 an elliotts 03:11:11 then you can be an elliotts 03:11:18 you have to clear it with the authorities 03:11:20 * Phantom_Hoover → sleep 03:11:20 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 03:11:29 /msg lambdabot @messages 03:11:31 oh 03:11:34 You don't have any new messages. 03:11:37 conor mcbride is irish??? 03:11:42 poor guy 03:11:51 monqy hlep why cant ireed Phantom_Hoover'smessages:( 03:12:02 elliott said 9h 57m 30s ago: Conor McBride is Northern Irish?!?!?!?!?!?!?! 03:12:03 here 03:12:05 top secret 03:12:08 shachaf: maybe youa rent phantom_voelvgrh 03:12:10 comuunications 03:12:20 shachaf: oops i mispe.tlt hoover 03:12:58 hiphanto 03:13:15 phantom_macaroon 03:13:27 Elephantum_Hoover 03:13:44 Phantom_Hoover: /nick Elephantom_Hoover 03:13:57 sorry 03:14:01 elephant? Horton_Hears_A_Hoover 03:14:04 i only have room for 2 more characters 03:14:12 -!- Phantom_Hoover has changed nick to Elephantom_Hoove. 03:14:13 see 03:14:20 Sorry if I've seemed inactive lately 03:14:23 Phantom_Hoovers 03:14:23 Been a bit busy lately 03:14:26 -!- Elephantom_Hoove has changed nick to PH. 03:14:49 Sgeo, weve all missed your interesting life story 03:14:50 wait 03:14:54 didnt you stop posting that 03:14:55 I know I have! 03:15:09 because we all pretended it was boring 03:15:23 pretended? 03:15:39 well come on, cringing is fun 03:15:56 -!- tikfreenode has quit (Changing host). 03:15:56 -!- tikfreenode has joined. 03:16:00 -!- tikfreenode has changed nick to Tiktalik. 03:19:16 -!- MDude has changed nick to MSleep. 03:25:04 -!- monqy has quit (Ping timeout: 265 seconds). 03:26:43 -!- monqy has joined. 03:32:08 hi monqy 03:32:12 hi shachaf 03:37:41 "Note: If this video were supposed to be teaching you, I'd probably have to make it boring and say that in one sense of limits, spoiler alert, you actually do approach a circle and a line, solving the apparent paradox by saying that the invariant of length does not hold over infinity. Luckily I am an artist, and this is a Rhapsody, and instead of "learning," you get to actually think, if you like." 03:37:50 OK, liking Vi Hart is now Banned. 03:38:43 * shachaf was never a fan of those videos. 03:40:10 what videos is this 03:40:13 I was for like a week before I got over myself and she started being a Tau Person. 03:40:41 Tau is good. 03:40:44 hi tau 03:40:47 hi shachaf 03:40:48 hi tau, monqy, tau 03:40:51 im tau 03:40:54 hi monqy, monqy, monqy 03:40:59 shachaf are 03:41:02 you a tau person 03:41:39 I was a "pi should be c/r instead of c/d" person before that Tau website was ever made. 03:41:45 Do I get bonus extra credit points for that? 03:42:23 im a whatever i dont care person but this does not stop me from being tau 03:42:34 You get points for "yeah it's a nice thought" but you lose grillions for thinking it actually matters. 03:42:54 OK guys sorry I will have to punch you if you keep this up. 03:43:18 i was self-referentially complaining about hipsters before it was cool 03:43:36 Well, I read about the tau; but I was never "pi should be c/r instead of c/d" because to me, pi doesn't have to do with circles; it is that circles involve pi, instead. But even then, after reading it much I can see how tau work in a lot of mathematics other than circles too 03:45:15 Do you agree that pi doesn't have to do with circles, and that the circumference of a circle is just one of the things that you can use pi? 03:45:25 -!- augur has joined. 03:46:32 kmc: But it's always been cool. :-( 03:46:48 pi does have to do with circles, but also a lot of other things 03:46:52 -!- PH has quit (Remote host closed the connection). 03:46:58 zzo38: Sure -- I didn't mean it should *exclusively* be that. 03:47:05 I was trying to think of a good way of saying that. 03:47:11 "pi should be 2pi" doesn't sound quite right. 03:47:11 what about h and hbar 03:47:20 It's like saying "we should use base 10" 03:48:00 monqy: do you agree that pie is good 03:48:04 yum 03:48:14 http://www.youtube.com/watch?v=g9Qu3iP3RYA 03:48:54 kmc: Yes, h and hbar is another thing 03:48:57 what sort of pie !! 03:49:05 Although h and hbar are for physics 03:49:21 monqy;bubble gumpie 03:50:29 whats bubble gumpie 03:50:52 monqy: http://www.youtube.com/watch?v=g9Qu3iP3RYA 03:50:57 yum! 03:51:14 ive nevr had a bubble gumpie 03:51:54 have you had bubble magpie 03:52:22 four and twenty magpies baked in a bubble gumpie 03:52:45 four and twenty smoke magpies everyday 03:53:22 baked magpies, you say? 03:53:32 what a magpy tast like 03:53:40 bubble gum 03:57:59 :o 04:06:05 -!- Deewiant has quit (Ping timeout: 260 seconds). 04:07:10 I think I have found out the way, there is way to make up a datatype that can make a comonad from any MonadLogic 04:17:51 duplicate (x :| y) = (x :| y) :| (msplit y >>= maybe empty (uncurry pairHT)) where { pairHT h t = pure (h :| t) <|> (msplit t >>= maybe empty (uncurry pairHT)); }; 04:23:37 It seem like, LogicT is like a list with able to put (forall r. m r -> m r) stuff in between and at the end 04:27:19 It says it is for backtracking, but it seems like a list to me 04:29:15 a bubble gumbie is what you get when you combine "bubble" and "gumbie" 04:30:30 just kidding. maybe i should lurk more 04:34:11 -!- Case2 has quit (Quit: Leaving.). 04:36:54 -!- Case1 has joined. 04:42:20 -!- monqy_ has joined. 04:43:01 -!- monqy has quit (Disconnected by services). 04:43:18 -!- monqy_ has changed nick to monqy. 04:44:54 hi monqy_ 04:45:02 hi shachaf 04:48:26 -!- Case1 has quit (Ping timeout: 252 seconds). 04:59:22 -!- Deewiant has joined. 05:07:27 -!- asiekierka has joined. 05:18:48 -!- Deewiant has quit (Ping timeout: 245 seconds). 05:22:10 -!- Deewiant has joined. 05:26:43 -!- Deewiant has quit (Ping timeout: 245 seconds). 05:26:53 -!- Deewiant has joined. 06:04:45 Nash is still alive? 06:19:53 -!- NihilistDandy has joined. 06:20:21 Veinor write austere haskell. all of variables are named a, a', a'', a''', etc. 06:32:07 -!- monqy has quit (Ping timeout: 265 seconds). 06:39:31 I made a Graphics.DVI.Drawing module now it can draw a filled triangle on the page 06:40:02 23:25 < lambdabot> Veinor says: I program in austere haskell. I name all my variables a, a', a'', a''', etc 06:40:15 23:20 < zzo38> Veinor write austere haskell. all of variables are named a, a', a'', a''', etc. 06:40:20 Coïncidence? 06:40:39 Oh, wait, Veinor was quoting Veinor in #haskell earlier. 06:41:17 shachaf: Probably; lambdabot did write something like that but not quite using those words. Their words were quoted as: "I write austere haskell. all of my variables are named a, a', a'', a''', etc." 06:41:29 So it is a coincidence a little bit but not a lot 06:41:41 Huh. 06:41:46 Mostly it is just copying with modification, twice 06:42:22 @quote Veinor austere 06:42:22 Veinor says: I write austere haskell. all of my variables are named a, a', a'', a''', etc. 06:42:23 @quote Veinor austere 06:42:23 Veinor says: I write austere haskell. all of my variables are named a, a', a'', a''', etc. 06:42:23 @quote Veinor austere 06:42:23 Veinor says: I program in austere haskell. I name all my variables a, a', a'', a''', etc 06:42:51 Why are there two similar quotations but a bit differently? 06:43:33 Is this proper algorithm for drawing a filled triangle? http://sprunge.us/XEKK 06:44:29 -!- monqy has joined. 06:49:57 (It does work; I just want to know if you think is best or not) 07:08:45 -!- cheater__ has quit (Read error: Operation timed out). 07:12:11 I found instruction for a chess variant, where all pieces have power of pawn (except promotion) in addition to their own normal way, and can all be captured en passan when making double-moves non-capturing from second rank 07:28:44 -!- Taneb has joined. 07:28:54 Hello! 07:29:03 Quick, someone give me an easter-related Wikipedia article! 07:29:24 egg 07:29:46 Link? 07:29:50 Did you know that? Dwarf planets dwarf stars dwarf dwarf dwarf TV stars. 07:30:01 http://en.wikipedia.org/wiki/Egg 07:30:02 egg 07:30:03 http://en.wikipedia.org/wiki/Easter 07:30:06 hi monqy 07:30:09 Taneb: Dwarf planets dwarf stars dwarf dwarf dwarf TV stars. 07:30:13 hi shachaf 07:30:14 http://en.wikipedia.org/wiki/Easter 07:30:15 hi easter 07:30:18 hi egg 07:30:19 hi 07:30:21 egg 07:30:21 hi Taneb, zzo38, monqy, shachaf, egg 07:30:23 egg hi 07:30:25 WIKIPEDIA 07:30:26 hi 07:30:26 is that a poem 07:30:31 monqy: Is it? 07:30:33 hi poem 07:30:38 hi poem 07:30:40 poem hi poem 07:30:42 Here is another one http://en.wikipedia.org/wiki/Computus 07:30:53 - monqy, poet and ancient chinese mystery 07:31:08 good mystery 07:31:16 '"Chicken egg" redirects here. For the causality dilemma, see Chicken or the egg.' 07:31:22 Oh Wikipedia, how I have missed you 07:31:35 http://en.wikipedia.org/wiki/Egg_(car) 07:31:42 http://en.wikipedia.org/wiki/Egg_(chair) 07:31:49 http://en.wikipedia.org/wiki/Car_(egg) 07:31:53 http://en.wikipedia.org/wiki/Chair_(egg) 07:32:04 Sounds like a magic trick 07:32:08 http://en.wikipedia.org/wiki/Hi_(monqy) 07:32:16 Egg, car, egg, chair, car, egg, chair, egg 07:32:20 hi 07:32:23 Abra cadabra! 07:32:25 http://en.wikipedia.org/wiki/Monqy_(poet) 07:32:52 hi 07:32:54 my name is monqy 07:32:56 i am a poet 07:33:00 - monqy, a poet 07:33:04 - shachaf 07:33:14 - hi 07:33:16 - elliotts 07:33:43 monqy: is 'hi' the best word 07:33:51 one of them at least 07:33:59 is 'hi' the best poem 07:34:01 HELP 07:34:08 hi is perfection 07:34:14 and perfection is hi 07:34:20 - poem 07:34:28 hi poem 07:34:35 This is the best game. 07:34:45 game? 07:34:49 this is the best way of life 07:34:59 p.s. hi is also a way of life 07:35:03 p.p.s. hi 07:35:09 monqy: did you invent this game monqy hi 07:35:17 I may have 07:35:31 monqy: what is better hi or monads 07:35:41 hi monads 07:35:47 "hi" - monads 07:35:53 "hi monqy" - monads 07:35:54 "hi" - monads 07:35:57 - a poem 07:36:34 monqy: can you teach me monads 07:36:37 monqy: can you teach me hi 07:36:39 I can teach you hi 07:36:40 monqy: can you teach me monqy 07:36:42 hi monqy 07:36:43 hi 07:36:47 - monad 07:36:55 data hi = hi 07:37:01 instance Monad hi where 07:37:09 return _ = hi 07:37:20 what was that thing I read in the logs 07:37:25 > let hi = hi monqy in hi 07:37:26 Not in scope: `monqy' 07:37:29 oh no! 07:37:29 -!- azaq23 has quit (Quit: Leaving.). 07:37:32 hi >>= f = hi 07:37:45 > let monqy = hi monqy in monqy 07:37:47 hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi ... 07:37:49 yes that was it 07:38:06 > hi 07:38:06 Overlapping instances for GHC.Show.Show 07:38:07 (Simpl... 07:38:11 oh no! 07:38:22 > fix hi 07:38:24 hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi ... 07:38:44 ? let taneb = hi taneb in hi taneb 07:38:48 > let taneb = hi taneb in hi taneb 07:38:50 hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi ... 07:39:34 > let y = fix in y monqy y 07:39:35 hi 07:39:39 > let y = fix; why = y in why monqy why 07:39:41 hi 07:39:46 why monqy why :( 07:40:06 hi :( 07:40:29 - a play 07:40:40 hi drama 07:41:43 hi moqny 07:41:45 oops 07:41:48 oops 07:41:49 mqnony 07:41:54 :( 07:42:05 monnqy 07:42:54 monqe 07:42:55 monque 07:42:57 monqueue 07:43:06 three-card monqe 07:43:24 00:43 -preflex:#haskell-blah- arrays can't store functions 07:43:30 why arrays :( 07:43:34 why :( 07:43:44 00:43 -preflex:#haskell-blah- arrays can't store monqy 07:43:52 arrays :( 07:43:57 - lie 07:44:17 type FunctionArray = Array Int (Int -> Int) ??? 07:44:17 > let x = monqy in hi x 07:44:18 Couldn't match expected type `SimpleReflect.Expr' 07:44:18 against inferred ... 07:44:36 > let x = monqy in hi x hi 07:44:37 Couldn't match expected type `SimpleReflect.Expr' 07:44:37 against inferred ... 07:44:46 @ty monqy 07:44:47 forall t t1. t -> t1 -> Doc 07:44:48 @ty hi 07:44:48 Expr -> Expr 07:44:52 > hi monqy 07:44:53 Couldn't match expected type `SimpleReflect.Expr' 07:44:53 against inferred ... 07:45:00 > hi (monqy hi hi) 07:45:00 Couldn't match expected type `SimpleReflect.Expr' 07:45:01 against inferred ... 07:45:08 :t array (1,3) [(1,(+1)),(2,id),(3,(^3))] 07:45:09 forall t a. (Num t, Num a, Ix t) => Array t (a -> a) 07:45:16 :-( 07:45:21 -!- cheater__ has joined. 07:45:23 Taneb: We're talking about C. 07:45:32 Aaah 07:45:33 monoqly 07:45:43 I know a little C now 07:46:10 :) 07:46:17 can c do this 07:46:18 > hi 07:46:19 Overlapping instances for GHC.Show.Show 07:46:19 (Simpl... 07:46:22 can c do that 07:46:43 main() { hi; } 07:46:57 monqy: ghc = gh c 07:47:07 > let gh = hi in gh c 07:47:09 hi c 07:47:11 hi 07:47:34 void main() { #include } 07:48:57 > let monqy = var "monqy" in hi monqy 07:48:57 Couldn't match expected type `SimpleReflect.Expr' 07:48:58 against inferred ... 07:49:06 > let monqy = fun "monqy" c in hi monqy 07:49:07 hi (monqy c) 07:50:24 itt: C 07:50:58 itt: hi 07:51:03 itt: moqny 07:51:38 > monqy c (monqy do) -- syntax error - a poem 07:51:39 : parse error on input `do' 07:52:11 kmc: You should play monqy's game. 07:56:19 which is? 07:56:38 I'm not quite sure. 07:56:46 But it's very relaxing. 07:56:51 It involves the word "hi". 07:57:15 my code is a dog's code 07:57:20 it could never make a lady weep 07:57:30 it could never make a homeless man turn his life around and achieve more then any man has ever achieved before 07:58:08 kmc: I should keep a list of all your "did you know?"s. 07:58:18 grep can keep this list for you 07:58:21 And then when there are thousands of items in it I can sell it as a book. 07:58:28 "kmc wisdom" 07:58:33 "stuff shachaf may or may not have known" by shachaf 07:58:41 Did you know "keegan" means "prayer" in Japanese? 07:58:46 did not know 07:59:59 `? monqy 08:00:01 shachaf: will you compile thousands of things I say and sell it as a book 08:00:08 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 08:00:14 monqy: are they all hi 08:00:21 `? kmc 08:00:25 kmc? ¯\(°_o)/¯ 08:00:27 shachaf: if hi is all you compile 08:01:02 monqy: I invented a BF derivative where "hi" means "<>+-[],.". 08:01:03 shachaf: you could probably make a book out of that but it wouldn't sell very well 08:01:06 And it just chooses the right one. 08:01:12 :o 08:01:27 how does it know?? 08:01:53 by the power of hi 08:01:54 hi 08:02:24 hi 08:03:17 bye the power of hi 08:03:19 bye :'( 08:03:29 :'( 08:03:54 @quote comment 08:03:54 blackdog says: I'm not encouraged by the comment "i don't know haskell, but CL is much better", though. it doesn't suggest careful thought and objectivity... 08:03:56 @quote eat.a.comment 08:03:56 SamB_XP says: I once saw it eat a comment (:[{- Help! -}]) 08:04:06 (:[{- hi monqy -}]) 08:04:10 hi 08:05:08 kmc: I wish the monad tutorial fallacy didn't exist. :-( 08:05:20 It means I have almost no idea how to explain things that are intuitive to me. 08:05:53 I don't think I ever learnt Monads. 08:05:54 Sometimes I do reasonably well at it, when I'm talking to someone with sufficiently high bandwidth to see what they're understanding and what they're not. 08:06:04 yeah 08:06:11 But it's annoying. 08:06:17 it doesn't mean you can't explain things 08:06:18 I just used them, and one day realised I knew them. 08:06:40 Well, yes, but it means that I can't just explain them the way I understand them and expect it to make sense. 08:06:51 i dunno 08:07:12 you can't identify some crucial insight you had, and explain only that 08:07:29 but if you really understand an idea, you can convey your understanding of it in a careful and deliberate way 08:07:40 the fallacy is "Monads are easy, they're just " 08:07:50 Yes, true. 08:07:52 and you see this fallacy in other areas too 08:08:15 Right, I wasn't thinking about monads specifically. 08:08:24 I can explain a monad too but it doesn't necessarily mean other people can understand; you need to understand it by yourself, and probably example is helpful too anyways 08:08:25 other areas are like monad tutorials 08:08:27 there is the confounding factor that most authors of the bad monad tutorials only just learned monads 08:08:50 if they had a deep understanding they might make the analogies fit better, and understand the limitations of their analogies 08:08:58 Yes. 08:09:18 Analogies always break eventually 08:09:26 Of course, I "understand monads" reasonably well (well, whatever that means), and my recommended approach to anyone who wants to "learn monads" is not to do it. :-) 08:09:35 The only thing monads are like is monads, and even then... 08:09:41 a good analogy is a stepping stone to greater understanding 08:10:03 but this requires knowing where the boundaries of that stepping stone are, so you don't fall in the pond 08:10:07 do you like my analogy about analogies 08:10:15 Yes 08:10:17 I explain it by first an endofunctor, and then how return and join fit into this, and then >>= and a few other things 08:10:18 It has brought me to greater understanding. 08:10:22 But it fails if I know how to swim 08:10:26 It is the way making sense to me 08:10:29 http://www.penny-arcade.com/comic/2006/03/01 08:10:31 Ah, zzo38. 08:10:35 zzo38, what's an endofunctor? 08:10:56 how do I learn endofunctors 08:10:59 teach me endofunctors 08:11:19 Today I was telling my sister about derivatives. 08:11:35 The parts she had trouble with and the parts she understood easily were completely not what I expected. 08:11:41 *nod* 08:11:43 which parts? 08:12:15 Taneb: A functor from a category to itself. But that doesn't help much if you don't know what those things mean. In Haskell, Functor class, has fmap :: (a -> b) -> f a -> f b; means if f is some type, the function from a to b can also be made to apply to data of f as well; the law must hold that they must identity and compose the same thing 08:12:34 shachaf: I also want to ask, which parts? 08:12:42 zzo38, oh, a functor 08:12:43 Hmm, I can't say concretely. Maybe that means I'm just making it up. 08:12:44 I just remember being surprised. 08:13:06 I hate it when I can't answer questions. :-( 08:13:23 Also this was through text, which is a terrible way to explain this sort of thing. 08:13:35 Taneb: Yes; the Functor class in Haskell is for endofunctors on (->) 08:14:13 Ok 08:17:05 I wish people wouldn't confuse "what you're saying is wrong" with "you're a bad person". 08:18:06 shachaf, why are you still in #haskell 08:18:10 what do you get out of it at this point 08:18:25 this is an honest question, not a "you should leave" hint 08:18:25 Hmm. 08:18:30 Sometimes there are good conversations. 08:18:42 I think they probably come up less and less. 08:18:54 But a lot of the original people-who-made-#haskell-good are still in there. 08:19:03 There's probably no less signal, just a lot more noise. 08:19:19 And sometimes you do get to help people with problems and such, which is kind of nice. 08:19:33 And also it would mess up my IRC window numberings if I closed that window. 08:19:53 So, uh, mainly habit? 08:20:53 I think IRC is probably a waste of time, mostly. 08:21:09 I wish I could get just the good parts of IRC. 08:21:40 shachaf, but then you wouldn't get the things which make the good parts worth it 08:22:02 my solution is to only pay attention when I'm interested 08:22:11 or bored 08:22:51 -!- Tiktalik has quit (Ping timeout: 260 seconds). 08:22:55 kmc: Another thing I don't like is when I explain something to someone and it seems like they understand while I'm doing it, but later it turns out they actually didn't. 08:23:02 Maybe that means I talk too much and should ask more questions. 08:23:57 -!- tikfreenode has joined. 08:26:40 singlePageDocument (Node . toDrawingNode (dotsPerInch 300) $ drawTriangle (0, inches 1) (inches 5, inches 0.5) (inches 3, inches 3)) "example.dvi" -- Output a single page containing a triangle drawn on it to the file called "example.dvi" 08:28:13 It does work, I have tested it. 08:28:26 So don't say it doesn't work and is broken 08:29:17 kmc: What are the good channels on Freenode? 08:30:38 i don't know 08:36:32 -!- NihilistDandy has quit. 08:39:03 shachaf: #esoteric 08:39:19 that channel is pretty good 08:40:03 lulz 08:42:38 -!- Taneb has quit (Ping timeout: 246 seconds). 08:44:35 -!- Taneb has joined. 08:45:45 -!- Ngevd has joined. 08:46:24 -!- Taneb has quit (Read error: Connection reset by peer). 08:48:06 -!- oerjan has joined. 08:50:59 shachaf, 0 08:51:10 Sgeo, hi monqy 08:51:18 0 is the best channel 08:51:50 is 0 the channel that does funny stuff to you 08:51:56 I'm not going in there 08:52:00 I'm not going anywhere near there 08:52:10 -!- cheater_ has joined. 08:52:22 /join 0 08:52:24 :-( 08:52:26 -!- Ngevd has quit (Ping timeout: 246 seconds). 08:52:29 /join #Sgeo 08:52:34 did 0 make you sad 08:52:39 monqy: :'( 08:52:43 :( 08:52:49 There is no channel 0 08:52:50 JOIN 0 08:52:56 Oops. 08:53:02 There was a channel #Sgeo at one point apparently 08:53:15 Hah, that's kind of funny. 08:53:18 sgeo fanclub 08:53:26 -ChanServ- Information on #sgeo: 08:53:26 -ChanServ- Founder : Metatron 08:53:26 -ChanServ- Registered : Aug 18 21:04:49 2008 (3 years, 33 weeks, 2 days, 11:48:21 ago) 08:53:26 -ChanServ- Last used : Mar 14 05:50:23 2011 (1 year, 3 weeks, 5 days, 03:02:47 ago) 08:53:26 -ChanServ- Mode lock : +ntc-slk 08:53:27 -ChanServ- URL : http://www.sgeo.isgreat.org 08:53:28 I copied-and-pasted the explanation for what /join 0 does from a webpage. 08:53:29 -ChanServ- Flags : GUARD 08:53:29 http://www.sgeo.isgreat.org/ 08:53:31 Using JOIN 0 will just disconnect from all channels without disconnecting from the server; so it is like QUIT but remain connected to the server 08:53:31 -ChanServ- *** End of Info *** 08:53:41 And the explanation had a "/join 0" in it. 08:53:43 So I joined 0 08:53:49 It made me sad. :-( 08:54:01 hi sad 08:55:35 -!- cheater__ has quit (Ping timeout: 246 seconds). 08:58:45 -!- kmc has left. 08:59:08 -!- kmc has joined. 09:01:35 `? monqy 09:01:38 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 09:01:52 shachaf: i feel like kicking you now. 09:02:37 `help 09:02:38 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 09:03:23 `revert 193 09:03:26 Done. 09:03:29 `? monqy 09:03:32 hi monqy 09:03:36 hi HackEgo 09:04:49 `? xy problem 09:04:52 XY problem is probably not what you are really after. Try asking about your real underlying problem instead. 09:05:34 `run uname -a 09:05:37 Linux umlbox 3.0.8-umlbox #2 Sun Nov 13 21:30:28 UTC 2011 x86_64 GNU/Linux 09:06:03 shachaf, http://www.gnu.org/software/autoconf/manual/autoconf.html#Limitations-of-Usual-Tools 09:11:05 kmc: Nice, but wrong. You may rely on POSIX; all else is at least as legacy as classic Mac OS. 09:12:04 (note that anything they happen to document for anything that's, y'know, still in use you should *probably* still work around if it's not inconvenient.) 09:12:14 (SunOS 4 does not count) 09:36:15 do the C standards require that a string literal evaluates to a pointer that's always valid and points to that string? 09:45:05 C99 6.4.5 clearly states that a string literal evaluates to an array of static storage duration and length sufficient to contain it. 09:45:37 That is to say, it is essentially a pointer that's always valid and points to that string. 09:46:04 coool 09:46:10 do you happen to know about C89 09:46:16 No, bit harder to find. 09:46:23 That said, it probably has the same semantics. 09:47:02 ok 09:47:05 well i'm using C99 anyway 09:47:07 thanks 09:47:43 Ah, there we go. 09:47:50 I didn't think about the fact that a string literal evaluates to an array rather than a pointer 09:47:55 but it must be so 09:47:56 Same semantics, per C89 3.1.4 09:48:01 There is also GNU89 and GNU99 variants of C; both GNU and LLVM support them when compiling a C code (as well as C89 and C99) 09:48:10 for example sizeof("foo bar baz") = 12 09:48:28 oerjan: You should kick me! 09:48:34 oerjan: Why do you feel like kicking me? 09:48:39 yeah, i'm using gcc --std=gnu99 09:48:43 zzo38: Strictly speaking, LLVM does not implement GNU C, but rather something similar. 09:48:58 but that's not really a particular language 09:49:00 shachaf: for messing up HackEgo 09:49:07 pikhq: Yes, there are a few differences but it is close enough for most purposes 09:49:08 the details of gnu99 depend on the exact compiler version 09:49:11 oerjan: But I was told that you can't mess up HackEgo. :-( 09:49:14 As GNU C is defined as "whatever GCC and glibc does". 09:49:18 also LLVM isn't a C compiler 09:49:22 shachaf: not _permanently_, no. 09:49:27 there are several C compilers which use LLVM as a backend 09:49:30 kmc: I'm presuming he meant clang. 09:49:41 I know LLVM isn't a C compiler, but the LLVM project does include a few C compilers 09:49:51 pikhq, so am I but for zzo38 i will call out such things :) 09:49:52 clang is one of them 09:49:56 Only one; they no longer maintain gcc-llvm. 09:50:06 * kmc is lately grumpy at clang, for a very specific reason 09:50:11 Though there is Dragonegg, which is an LLVM backend for GCC. 09:50:33 Anyways, GNU C sucks. 09:50:40 In particular, glibc. 09:51:02 i'm not using glibc 09:51:08 for the current project 09:51:31 The default feature test macro settings for glibc, in particular, are a freaking joke. 09:51:42 By default it pretends to be System V + BSD. 09:51:54 I kid you not. 09:52:50 You actually have to add feature test macros to get it in *any* sane state at all. 09:54:23 I mean, jeeze, you need one just to make it comply with ISO C. 09:54:54 kmc: Whoa, dude. I just realized we're living in, like, the future. 09:55:09 oh? 09:55:21 kmc: Which libc are you using, anyways? 09:55:21 Do you like some of the features of BLISS programming language? Are there any modern implementations? Also, does any compiler for C or other programming languages allow you to include inline LLVM codes? 09:55:34 "I wonder what the most intelligent thing ever said was that started with the word 'dude'" 09:55:57 pikhq, none 09:56:17 kmc: Freely assume GNU-ish C then. 09:56:30 Dude, this sentence is most intelligent thing ever said that started with the word 'dude', and which also ended with the word 'dude'. 09:56:38 doubtful 09:57:24 Simply by being freestanding you've already given up on supporting arbitrary not-insane systems. :) 09:57:54 my code is not portable at all 09:58:16 I'm going to guess kernel. 09:58:23 nope 09:58:43 In which case the only notion of "portable" that would even make sense is "could be ported to another machine type" 09:58:47 Hmm. 09:58:48 What is the algorithm to make a polygon into triangles? I have already the program to draw filled triangles; is it good one? I just made it up so I don't know if it is the best way or if you know better one or other one. 09:58:53 just decided it would be fun to write a multithreaded linux network program using no libc 09:59:02 Ah. 09:59:09 Fun. 09:59:13 kmc: Have you written a ⅅCPU-16 emulator yet? 09:59:19 That's what the cool kids are doing these days. 09:59:23 or depending on how you look at it, using a tiny incomplete libc i wrote for the project 09:59:26 shachaf, don't wanna 09:59:31 But, obviously, your only notion of "portable" is "can compile on all supported Linux archs". 09:59:32 It's the future, man! 09:59:38 * shachaf doesn't quite get it. 09:59:45 oh no, it's only for amd64 as well 09:59:47 And even that depends on you defining syscall() for each one. 10:00:06 it would take a good bit more than that 10:00:37 What does your network program do? 10:00:38 Hmm. Blatant ISA-specific assumptions? 10:00:45 I write a C program using Enhanced CWEB, which include some features not available in standard C, such as the ability to execute codes at compile time, and to write codes in a different order than is normally written in C 10:01:07 (please tell me you at least use stdint.h) 10:01:09 zzo38: You're the person who Enhanced it, right? 10:01:20 pikhq: I'm pretty sure the rules are no include files. 10:01:36 shachaf, that's a secret 10:01:45 shachaf: Perverse. stdint.h is required to exist on freestanding C implementations. 10:01:46 shachaf: Yes I have made some modifications to make Enhanced version. 10:02:02 is it a hi server 10:02:04 hi monqy 10:02:10 (and GCC does comply with this) 10:02:36 pikhq: Where do I read the standard for freestanding C implementations? 10:02:40 i do include stdint and asm/unistd_64.h 10:02:48 shachaf: Just the typical C spec. 10:02:51 I think main() is also supposed to work for freestanding C implementations. 10:02:51 shachaf, I thought of doing an ircd but decided not to 10:02:56 And that's called by libc. 10:03:29 does freestanding mean "no libc" or "no OS" or "no c runtime library" or? 10:03:35 I'm not sure. 10:03:40 Actually, the entry point there is implementation-defined. 10:03:41 -!- Patashu has quit (Remote host closed the connection). 10:03:44 pikhq: "the typical C spec" requires a lot of libc functions. 10:03:51 Oh, you mean it defines this? 10:03:53 I haven't seen that. 10:04:01 -!- Patashu has joined. 10:04:01 Yes, C defines freestanding vs. hosted. 10:04:26 kmc: Is your network program server going to support the Unicodes? 10:04:36 in addition to not using libc, my thing is supposed to be a small static executable 10:04:44 rather the former sort of arose from the latter 10:04:51 shachaf, dunno 10:04:54 And a freestanding implementation only requires the headers float.h, iso646.h, limits.h, stdargs.h, stdbool.h, stddef.h, and stdint.h 10:05:20 kmc: Real programmers write in assembly. 10:05:44 All of which are nothing but simple #defines. 10:05:48 So you can be close to the hardware, you know. 10:05:54 shachaf: Assembly codes, though, are usually not portable to a different computer. 10:06:00 Well, and in the case of stdargs.h, a single type. 10:06:07 shachaf, there is some assembly too 10:06:46 pikhq: stdint.h isn't full of typedefs? 10:06:57 Well. Yes, it's typedefs in stdint.h 10:07:22 Anyways, point is, they're really insanely minimal headers, and basically just hand you information about the compilation environment. 10:07:44 The intent of freestanding implementations is that you can write a kernel in compliant freestanding C. 10:08:03 In part because most of it is implementation-defined. 10:08:08 I doubt a kernel implementor is going to respect the spec all that much. 10:08:41 Actually, I think Linux could easily comply (though not strictly comply) with C. 10:09:00 Linux uses a *lot* of GCC extensions 10:09:31 kmc: A conforming program must be acceptable by one conforming implementation, and a conforming implementation may add any extensions that don't break strictly compliant programs. 10:10:04 And a strictly compliant program relies only on what is in the C standard. 10:10:30 * kmc rolls eyes 10:10:45 So, yes, Linux could very well comply with C. 10:11:12 you said "a conforming program" not "a complying program" 10:11:17 while we're being lawyers 10:11:19 -!- derdon has joined. 10:11:26 Because C, contrary to popular belief, is not portable in the slightest. 10:11:27 :) 10:12:15 If you want portable, look at POSIX. 10:12:38 (and take joy in the guarantee of 8-bit bytes) 10:13:34 POSIX guarantees 8-bit bytes?! 10:13:47 shachaf: Yes. 10:14:02 It also guarantees that all the stdint.h types are actually typedef'd. 10:14:11 i'd rather program for a machine where a byte is either 6 bits or 2 decimal digits, but you don't know which 10:14:31 i mean, that's how you learn the true nature of programming 10:14:35 that's how you become a Real Programmer 10:14:41 kmc: Hey, at least he got rid of that part. 10:14:50 (C only guarantees that uint*_t are defined if there are types that meet the requirements) 10:14:58 (also int*_t) 10:15:12 POSIX also guarantees the existence of 2's complement integers. 10:15:21 (though int, long, etc. might not be) 10:15:29 but uintptr_t is still optional in posix, isn't it 10:15:50 Optional in POSIX, but not XSI. 10:16:45 POSEVEN 10:17:14 kmc: Make sure your network server is something benchmarkable. 10:17:24 Also, you must be able to cast between function pointers and void pointers. 10:17:27 So you can talk about how much faster it is than the alternatives because it doesn't use libc. 10:17:36 Come to think of it, you can talk about that even without any benchmarks. 10:17:53 shachaf: On typical Linux systems, it might even be true. 10:17:57 glibc IO is a *hog*. 10:17:57 yeah it's best if i don't have any benchmarks 10:18:35 glibc IO is also libstdc++ IO. :) 10:18:47 What things does LLVM guarantee, differences from C? 10:20:44 shachaf, true performance is measured not by benchmarks but by how many times you can apply the adjective "awesome" to your program 10:21:30 this program finishes in an eon - but an awesome one! 10:22:26 kmc: They should make a version of criterion for that. 10:22:48 awesomeoptimizer 10:22:49 It might take forever, but it does eventually generate a proof that P=NP. And that P!=NP. And, in fact, every string representable in 32-bit space. 10:22:52 Awesome! 10:23:16 (said proofs may not be correct) 10:23:22 (and most of them won't be) 10:23:40 (awesome!) 10:23:54 it is guaranteed to generate all correct proofs too, though 10:24:11 Well, of course. 10:24:23 awesome! 10:24:23 It generates the entire space. 10:24:49 An awesome, RESTful proof that P=NP, done right. In the cloud. Reinvented. 10:25:03 a beautiful, kickass proof of P=NP that celebrates craftsmanship 10:26:08 seriously, Bonsai ElasticSearch is advertised as "Fulltext search that celebrates craftsmanship" 10:26:30 aren't you just sick of those fulltext search engines which grudgingly acknowledge the concept of craftsmanship without really giving it its due? 10:26:31 That's not a parody? 10:26:45 shachaf, it's getting really hard to tell these days 10:26:48 Are you going to use Heroku? 10:28:51 -!- tikfreenode has quit (Ping timeout: 260 seconds). 10:29:39 Oh, SMBC is now in PDF format. 10:29:49 That's a fancy children's book they've got. 10:29:51 elasticsearch is built on top of apache lucene 10:30:23 thing is, apache projects have the stink of the JavaEnterpriseFactoryPattern 10:30:39 someone else needs to rebrand them for the beautiful awesome kick-ass rails ninjas 10:30:49 The more memory allocation you do the better, right? 10:31:00 Also, you should totally free() all RAM on exit. 10:31:15 kmc: Are you going to write a real malloc? 10:31:26 probably not 10:31:36 Why bother? mmap. 10:31:48 at startup i mmap various large buffers 10:31:49 It's like malloc but a system call. 10:32:13 but i've not had the need to create/free small objects as it runs 10:32:34 except in some transient situations, where I just allocate sequentially into a pre-mmapped buffer and then throw it all away at the end 10:32:58 You're going to use epoll, right? 10:33:03 maybe 10:33:10 You can't brag about performance without epoll. 10:33:13 it's true 10:33:20 i wasn't going to brag about performance until you brought it up! 10:33:27 -!- tikfreenode has joined. 10:35:06 kmc: #haskell is annoying again. :-( 10:35:11 Maybe I should take your nonadvice and leave. 10:35:13 you know my solution 10:35:16 yeah 10:35:29 except it will get worse without you 10:36:05 what did they do now 10:36:26 all things eventually become annoying. but that includes the things you would leave _to_ 10:36:41 They're talking about how to do dynamic types in Haskell. 10:36:47 but you might die before you find #esoteric annoying 10:36:48 Or maybe dependent types. 10:36:51 ok 10:36:58 that's not an inherently annoying subject... 10:37:05 I don't think they've made a distinction between the two. 10:37:09 :/ 10:37:10 No, the subject is reasonable. 10:37:35 Maybe I'm just irritable. 10:37:58 kmc: I live right next to a taquería. 10:38:03 But unfortunately it's kind of terrible. 10:38:09 aww 10:38:16 an east palo alto taqueria? 10:38:23 Yes. 10:38:31 what is terrible about it? 10:38:34 Maybe just their vegetarian things are terrible. 10:38:37 also you're, like, vegetarian or something 10:38:38 yeah 10:38:42 Right. 10:38:42 you have strange cares 10:38:55 But I've had good vegetarian taqueríathings. 10:38:57 i don't know if good taquerias in the Mission have good veggie options, either 10:39:18 damn, shachaf used a non-ASCII character and i didn't :/ 10:41:36 kmc: I sеcretly snеаk non-ASCII characters into rеgulаr text sometimes. 10:41:44 Likе that sentence. 10:41:50 You don't even notice but it makes me feel all superior inside. 10:43:51 way to stick it to the man 10:44:15 You gotta pick your battles. 10:44:28 * kmc wrote a malloc a long time ago, but doesn't remember how good it was 10:45:35 What does your network thing do again? 10:45:41 i told you, it's a secret 10:45:56 Right, but I mean, what's the secret. 10:46:06 the secret is that it's a secret 10:46:14 and that secret is very similar 10:46:24 Oh. 10:47:29 i think my malloc was pretty naive... just a linear search of a free list 10:47:30 kmc: You should write memcached. That's one of the things cool kids do, I think. 10:47:45 no, cool kids write exploits for memcached 10:47:56 that's one of the later io.sts levels 10:48:07 Oh, I forgot about that. 10:48:13 did you get that far? 10:48:24 I mean I forgot about STS. 10:48:27 oh 10:48:29 you should play 10:48:31 I haven't looked at it since you were in SF. 10:48:53 i think i might write a blog post about timing attacks 10:49:22 kmc: Is there something like memcached, but for medium-sized values and on the same host, where different processes can share actual cached pages rather than copy them? 10:49:44 This came up in a discussion of image processing, where a bunch of programs load a compressed image from disk and uncompress it in RAM. 10:50:17 Maybe you would just write the uncompressed image to disk and mmap the file. 10:50:22 But automatic eviction would be nice. 10:50:23 -!- Patashu has quit (Read error: Connection reset by peer). 10:50:37 Maybe you just have a program that unlinks files. 10:51:12 that's an interesting question 10:51:17 i have not heard of such a thing 10:51:48 And of course it could have a network-transparent API where it sends values over the network and keeps one copy per host. 10:52:18 Not sure how many concrete use cases there would be for this. 10:52:34 But it seems like the sort of thing where it's nice when someone else has already implemented it for you. 10:53:37 -!- Patashu has joined. 10:54:16 shachaf, do you think a worked example of a timing attack against, say, Stripe's level 6 would be interesting to read? 10:54:52 kmc: You said you had all sorts of fancy nonobvious tricks. 10:54:57 searching for "timing attack examples" and so forth I find a lot of academic papers, and a fair number of blog posts which describe the problem but not in detail how you'd exploit it 10:55:19 In which case, possibly. 10:55:49 i'd say there are four nonobvious tricks in this code 10:55:53 some more nonobviouser than others 10:56:14 My attempt at a "timing attack" for the Stripe thing was a complete failure, but I didn't spend that long on it before realizing it was possible deterministically. 10:56:23 And I didn't actually use timing. 10:56:32 i don't think they were all necessary for that IO level; nelson only used one of the tricks 10:56:34 I measured the number of .s printed to stdout before anything was printed to stderr. 10:57:24 i see 10:57:34 I could probably figure it out, though. 10:57:40 > filter (> '\?') "kmc: I sеcretly snеаk non-ASCII characters into rеgulаr text sometimes." 10:57:41 : 10:57:41 lexical error in string/character literal at chara... 10:57:42 I'll look at the STS thing again. :-) 10:57:46 argh 10:57:58 > filter (> '\127') "kmc: I sеcretly snеаk non-ASCII characters into rеgulаr text sometimes." 10:57:59 "\1077\1077\1072\1077\1072" 10:58:05 Timing attacks on CPU caches and such are even fancier. 10:58:17 > var $ filter (> '\127') "kmc: I sеcretly snеаk non-ASCII characters into rеgulаr text sometimes." 10:58:18 mueval-core: : hPutChar: invalid argument (Invalid or incomplete mu... 10:58:19 yeah 10:58:22 ffff 10:58:32 > text $ filter (> '\127') "kmc: I sеcretly snеаk non-ASCII characters into rеgulаr text sometimes." 10:58:33 mueval-core: : hPutChar: invalid argument (Invalid or incomplete mu... 10:58:36 fuck it 10:58:39 > var $ filter (<= '\127') "kmc: I sеcretly snеаk non-ASCII characters into rеgulаr text sometimes." 10:58:40 kmc: I scretly snk non-ASCII characters into rgulr text sometimes. 10:58:46 > "kmc: I sеcretly snеаk non-ASCII characters into rеgulаr text sometimes." 10:58:47 "kmc: I s\1077cretly sn\1077\1072k non-ASCII characters into r\1077gul\1072... 10:58:56 ion wins 10:59:02 (or loses) 10:59:05 there have been some practical cache timing based attacks on AES 10:59:45 i could try to put together a demo of a cache based attack 10:59:48 that would be more of a "part 2" 10:59:54 would require more reading on my part 11:01:56 shachaf, do you know how to pick locks? 11:02:30 kmc: No. :-( 11:02:33 I should probably know. 11:02:35 do you know the theory? 11:02:42 it is amusingly similar to timing based password guessing 11:02:50 Not really. 11:03:11 so, lock: http://en.wikipedia.org/wiki/File:Pin_tumbler_bad_key.svg 11:03:45 if the key has the right shape, the tops of the red bits line up with the boundary between the yellow and green bits 11:03:48 allowing the yellow bit to turn 11:03:52 -!- juhani has joined. 11:04:01 -!- Jafet has joined. 11:04:07 Right. 11:04:42 now, imagine we try to turn the yellow bit (with a small wrench or something) when a key is not in the slot 11:04:42 -!- juhani has changed nick to nortti. 11:05:09 in a perfect lock, the pins will catch on the edge of the yellow bit all at once 11:05:42 but in reality they are not perfect cylinders in a perfectly straight line 11:05:51 and so one or another pin is going to catch first 11:06:18 -!- zzo38 has quit (Remote host closed the connection). 11:06:34 So you push on it until the lock turns a little bit? 11:06:39 right 11:07:12 And then again until it's opened, I suppose. Makes sense. 11:07:13 you apply turning tension to the yellow bit, and you also poke the pins with a little metal prod 11:07:47 I'd say it's a "leaking information" attack more than a timing attack. 11:07:55 yeah, it is not a timing attack 11:08:09 but it's similar to the password thing, in that you are reducing an exponential search to a linear one 11:08:23 it is different because you don't know which index will give you information first 11:08:36 but it's similar in that you can't get information from the second index until you've figured out the first one 11:08:37 So maybe quadratic instead of linear. 11:08:58 quadratic how? 11:09:16 Because you try each pin to find the one that works in each round. 11:09:29 true 11:09:34 Unless you can push on them all at once, I guess. 11:10:05 a related technique is to apply tension while you just bounce all the pins like crazy 11:10:44 using a specialized lockpicking tool (called a rake), or a key that's been cut to a crazy shape, or (on particularly shitty locks) even an ordinary key 11:11:16 in school our mailboxes could be unlocked by putting in any mailbox key and twisting it hard while you jam it in and out 11:12:06 I should go pick a lock now. 11:12:22 It probably involves a lot of careful coördination. 11:12:40 That's the nice thing about computers. 11:12:53 probаbly 11:13:16 Next time I have a lock handy I'll try it, though. 11:13:21 in films and tv you usually see someone pick a lock with only one tool 11:13:43 in reality you usually need both a tension wrench and a thing to poke or otherwise molest the pins 11:14:29 the pick set i have is this one or so: http://www.southord.com/Lock-Picking-Tools/Lock-Pick-Set-14-Piece-PXS-14.html 11:15:14 it's kind of a great website, you can throw in some nunchaku or a grappling hook with your order of lockpicks 11:16:10 -!- MoALTz has joined. 11:17:26 Today I read about a technique for not getting your checked bags lost: Put a firearm in them. 11:17:35 high security locks usually try to add a second, orthogonal code axis 11:17:39 (For airplane flights, I mean.) 11:18:14 for example in Medeco locks, each pin has a V-tip rather than a rounded or flat bottom, and the notches in the key rotate the pin to one of three angles 11:18:16 kmc: Is it that difficult to make a lock which doesn't have this issue? 11:18:27 and there's a mechanism to prevent the lock opening unless the rotations are all right 11:18:36 you can't pick the heights unless you know the rotations, and vice versa 11:18:49 except i have seen online that some people can pick medecos very quickly, but i don't know how 11:19:06 -!- pikhq_ has joined. 11:19:14 shachaf, yeah, that's a good trick. i saw a talk about that from some hacker con (Defcon or CCC, don't remember) 11:19:37 kmc: If there are only three rotations, isn't it only three times the work? 11:19:42 -!- pikhq has quit (Ping timeout: 265 seconds). 11:19:51 Assuming you can rotate each pin individually and try it. 11:20:11 you need to be able to apply rotational tension to get the pins to catch so you can test the heights one by one 11:20:23 if the rotations aren't correct, you can't apply tension at all 11:20:40 Oh, all the rotations have to be correct to move any of the pins? 11:21:07 they will move up and down, but the part of the lock that turns with the key will not rotate until the pin rotations are correct 11:21:26 Ah, I see. 11:21:54 so in theory you need to try 3^6 = 729 rotations before you can start picking the heights 11:22:04 not impossible but takes a while :) 11:22:22 and you have to keep the rotations correct while you do this 11:22:27 but that should be reasonably easy with a set of custom picks 11:22:33 Right. 11:22:37 anyway it's well beyond my skill level 11:22:38 Why do they only have six pins? 11:22:51 people don't wanna carry huge keys 11:22:58 Hm. 11:23:01 making pins smaller has other problems 11:23:23 shachaf, do you know about the standard privilege escalation vulnerability in master-key systems? 11:23:58 I'm not sure? 11:24:19 Ah, probably not. 11:24:22 so you can make a lock which opens on more than one key 11:24:31 just by putting more than two bits of metal in one or more of the pin columns 11:24:59 a common application is to have a master key which opens every door in a building, and also keys for individual rooms 11:25:22 and maybe some others, e.g. a floor master, a custodial key, a maintenance key, etc 11:25:47 anyway, if you take apart a lock and measure all the metal bits inside 11:25:59 you can compute the set of all keys that will open that lock 11:26:37 (which will be large, because in addition to the real room and master key, it will also open on (say) a key composed of pins 1,2,3 from the room key and 4,5,6 from the master, even though probably nobody has ever made this key) 11:26:38 Ah, which you can do if you can open any of the locks. 11:27:07 yeah; typically you can remove and disassemble a lock if you can open the door 11:27:14 Right. 11:27:22 either because you have a legitimate key or because the door is left open 11:27:38 kmc: Have you ever picked a lock... ON A TRAIN? 11:27:45 so you just need to disassemble enough locks that the only key in their intersection is the master key 11:27:53 Have you ever picked a lock... IN SPACE? 11:28:03 then you make that key yourself 11:28:40 so from e.g. an open basement janitor's closet, and an open 3rd floor conference room, you can compute the master key that will open every other door in the building 11:29:13 Is there a physical equivalent of public-key cryptography? 11:29:32 i'm not sure 11:29:51 * kmc imagines a lock with an elaborate watch-like mechanism that implements RSA 11:30:00 * olsner imagined the exact same thing 11:30:05 olsner++ 11:30:25 I know there are some combination locks that compute a sort of hash from the combination you enter. 11:31:08 oh? 11:31:32 Well, I saw one once that someone claimed did that. 11:31:44 It was probably a trivial hash, though, not cryptographically secure or anything. 11:32:23 But I guess a lock that computes a secure hash from a key isn't completely unthinkable. 11:33:16 Or maybe it is. I have no idea how difficult cryptographic hashes would be to implement mechanically, because I don't know much about how they work. 11:33:24 Or about implementing complex things mechanically, for that matter. 11:33:41 another aspect of the supposed security of Medeco locks is that they promise not to sell keyblanks that fit your locks to anyone but you 11:33:50 that is, if you are a large enough institution you can get locks with a custom keyway 11:34:18 this is particularly silly 11:34:19 seems likely that the crypto mechanism would be too complicated to be very reliable 11:34:39 anyone with a legit key can observe the keyway shape 11:34:53 and it's not very hard to produce a piece of metal with approximately that shape 11:35:31 (metal or plastic or wood or ...) 11:36:12 but maybe you could get enough power from the turning of the key to run an electronic implementation? 11:36:23 I guess the point is that your dumbass employees can't go to Home Depot and get duplicate keys made and then lose them 11:37:08 kmc: I think it was this: http://www.masterlock.com/product_details/CombinationPadlocks_AssortedColors_Set-Your-OwnCombination_No.1500iSpeedDialCombinationPadlocks/1500iD 11:37:44 Apparently your combination is a sequence of directions as long as you like that gets hashed into one of 7501 possibilities. 11:37:52 cool 11:38:01 up up down down left right left right 11:39:02 you can also try to make it hard to remove a lock from a door 11:39:21 Self-destructing locks. 11:39:26 but this interferes with invalidating old keys 11:39:46 You can make it hard to remove a lock from the door, except when you have a master key. 11:39:51 in places which frequently invalidate keys (i.e. high employee turnover) you will see-- yeah, that 11:40:01 see++ 11:40:17 ever the guardian of equality 11:40:23 Wait, what's "that"? 11:40:36 a lock which can be removed iff you have a master key 11:40:44 Oh. 11:40:46 Right. 11:42:08 -!- nortti has quit (Quit: Lost terminal). 11:42:17 -!- Phantom_Hoover has joined. 11:42:26 Seems like there are a lot of analogies between lockpicking and computer security. 11:43:18 and a lot of overlap of interest groups 11:43:32 and physical security systems are increasingly computerized 11:43:48 Lockpicking looks cooler, though. 11:44:10 movie hacking > lockpicking > real hacking 11:44:26 What about movie lockpicking? 11:44:39 about the same as real lockpicking? 11:44:57 a bit more dignified 11:45:25 less stealing locks and then disassembling them in the bathroom and trying not to lose the metal bits down the shower drain 11:45:40 I hate losing metal bits down the shower drain. :-( 11:45:42 why... in the bathroom? 11:45:56 don't you have a proper lockpicking studio? 11:46:05 Have people built reasonable automatic lockpicking machines? Or is there too much variance in locks? 11:46:18 It seems vaguely silly to use human hands for it. 11:47:00 olsner, say you've just yanked a lock inside an academic / commercial building, and would like to measure it quickly and return it before The Fuzz notices 11:48:14 you need space to work and you need privacy from said Fuzz 11:48:39 shachaf, lockpick guns are very common and are a crude sort of lockpicking machine 11:48:54 they bounce the pins up and down like crazy, while applying tension 11:49:20 i've heard they tend to ruin locks 11:49:29 so it's good for your basic police or criminal activity 11:49:42 -!- Jafet has quit (Read error: Connection reset by peer). 11:49:54 but not for covert infiltration, or recreational leave-no-trace gotta-catch-em-all master key collecting 11:51:16 -!- Jafet has joined. 11:51:32 -!- augur_ has joined. 11:51:35 This laptop is the first laptop I've ever had where I don't keep the brightness at the maximum by default. 11:51:35 kmc: oh, ok.. I was imagining something like buying a lock and taking it home for reverse-engineering 11:52:51 most residential locks i've seen in the US are really bad 11:53:09 5 pins, no other security, one of a few common keyways 11:53:38 easy to pick; easy to duplicate a key or make one yourself from measurements or a photo 11:53:44 -!- augur has quit (Ping timeout: 246 seconds). 11:53:56 How much information can you get from the weight of a key? 11:54:11 so think about that before you leave your house keys on the table in public view! 11:54:15 shachaf, good question. i don't know 11:54:46 for a given model of lock there will be multiple manufacturers of blanks in various styles and materials 11:54:54 How would you get the weight of a key without having the key? 11:54:54 you would need to control for that 11:55:08 -!- nortti has joined. 11:55:16 Jafet: You might only have it for a few seconds or something. 11:55:27 I guess a photograph would probably yield more information. 11:55:34 But maybe it'd be suspicious. 11:55:36 yeah, a photo is what you want 11:55:40 or a high DPI scan if you can manage 11:55:54 but usually there are 10-15 discretized standardized heights 11:55:55 I would bring a spy camera over a laboratory scale 11:56:20 Which is probably the precision you would need. 11:56:58 laboratory scale is suspicious in an entirely different way 11:58:32 you can pick them up at your friendly neighborhood combination tobacconist / gemological equipment supply store / home security supply store / Bob Marley T-shirt store 12:00:07 They have those in Boston too? 12:00:31 i assume so? 12:00:35 there are a lot of college students here 12:01:17 college students love fancy pipes FOR TOBACCO USE ONLY, and gemstone scales in the 1 to 10 gram range 12:01:24 and bob marley shirts but that goes without saying 12:03:38 new york has frequent open-air bong markets 12:04:34 i realized the other day that all bongs featured in youtube videos cost more than $400 or less than $3 12:05:10 -!- oerjan has quit (Quit: Later). 12:05:48 either some guy is showing off his four foot precision glass quad-bubbler megabong 12:05:59 or it's an instructional video on how to make a bong out of an apple and a used tire 12:06:33 I wonder if you could manufacture some electronic goo, that you can stuff into a container, and get a readout of its shape 12:06:42 That would render locks obsolete 12:06:52 Well, current locks 12:06:53 yeah 12:07:21 Perhaps you could do it with nonelectronic goo. 12:07:27 i wanted to make a device which would make electrical contact with the pins, and then measure their size using capacitance or time domain reflectometry or something 12:07:38 Say, goo that changed color when exposed to nongoo for a while. 12:08:02 but i am way too noob to do this 12:08:31 You should do it! 12:08:38 but i am way too noob 12:09:09 How much? 12:11:31 too much noob 12:11:51 anyway 12:11:56 those are some of the things i know about locks 12:12:01 possibly most 12:12:05 i should sleep now 12:12:07 ttyl all 12:12:21 time domain reflectometry, sounds like applied phlebotinum 12:12:24 kmc++ # locks 12:16:56 Someday TV Tropes jargon will be all over the mainstream media 12:17:19 And their website will consequently become ridiculously meta 12:18:26 -!- Jafet has quit (Quit: Leaving.). 12:38:39 most residential locks i've seen in the US are really bad 12:38:58 Aren't they mostly standard Yale locks? 12:40:23 -!- Case1 has joined. 12:49:51 -!- augur_ has quit (Remote host closed the connection). 13:31:47 ooh, there are sailor moon/star trek crossovers 13:32:54 -!- MoALTz has quit (Quit: Leaving). 14:02:02 -!- Case1 has quit (Quit: Leaving.). 15:15:12 -!- Patashu has quit (Ping timeout: 252 seconds). 15:15:30 -!- elliott has joined. 15:16:22 shachaf: Remember the Monad page on the HaskellWiki? 15:16:22 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 15:16:27 this doesn't answer a direct question (about 10 values), and fails to correct the OP's basic misunderstanding with the type, instead discussing a misformulated question as if it had merit here. (-1) – Will Ness 8 hours ago 15:16:36 I AM SHAMED 15:30:24 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 15:40:28 elliott, linky? 15:40:34 -!- oklopol has joined. 15:41:16 do you think i'll ever be a successful formula 1 driver / transvestite basketball player 15:42:23 yes 15:42:31 thank you 15:42:33 Sgeo: to which 15:42:38 for beliving in me 15:42:50 this doesn't answer a direct question (about 10 values), and fails to correct the OP's basic misunderstanding with the type, instead discussing a misformulated question as if it had merit here. (-1) – Will Ness 8 hours ago 15:42:56 The one with that 15:43:22 http://stackoverflow.com/questions/10017915/haskell-monad-io-double-to-io-double/10017978#comment12875779_10017978 15:43:30 this being the same person who turned the HakellWiki Monad page from this: http://www.haskell.org/haskellwiki/index.php?title=Monad&oldid=33391 15:43:35 to this pile of nonsense: http://www.haskell.org/haskellwiki/Monad 15:43:42 *HaskellWiki 15:45:05 Stupid slow computer 15:46:44 specs? I am using Thinkpad T20 from 2000 and I don't think that it is slow 15:47:04 Not sure offhand, but it has 1GB RAM 15:47:27 this thing has 64MB 15:47:41 o.O 15:48:26 HD of my iBook g4/1.2GHz (my main computer) broke 15:49:51 elliott, I see a problem with that being less accessible, but also: Is that broken for Cont? 15:50:20 3 15:50:25 -!- Vorpal has joined. 15:50:33 Sgeo: i can't tell whether it's broken for anything because it's a pile of incomprehensible nonsense 15:50:46 with BOLD ITALICS EVERYWHERE 15:51:17 "in addition to its one (hence the name) output, that it will produce when run (or queried, or called upon)" 15:51:22 never mind Cont 15:51:26 it doesn't even describe Maybe 15:51:41 o.O 15:51:45 Nice 15:54:41 but hey i think it gets Writer! 15:56:05 oh god that haskell tutorial got on /r/programming 15:56:09 today is not my day 15:58:09 -!- Phantom_Hoover has joined. 15:58:16 hi Phantom_Hoover 16:08:30 hi Phantom_Hoover 16:09:27 helo 16:09:43 95.79.14.59 - - [08/Apr/2012:10:55:45 +0000] "GET /forum/kareha.pl/1192759617/ HTTP/1.0" 200 12318 "http://pharmshop-online.com" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; Deepnet Explorer)" 16:09:45 DEEPNET EXPLORER 16:10:18 /query Phantom_Hoover 16:10:23 Whoops. 16:10:37 /query lambdabot 16:16:06 -!- MSleep has changed nick to MDude. 16:23:27 elliott: I like how some spam URL is in the USER AGENT X-D 16:23:43 Oh, never mind, I misread :( 16:23:48 I thought it was part of the user agent. 16:23:51 That would have been magical. 16:29:57 http://www.deepnetexplorer.com/ 16:29:59 DEEPNET EXPLORER 16:31:35 `cast` (Sym (Data.Reflection.NTCo:Magic ) ; UnsafeCo 16:31:36 (Data.Reflection.Magic 16:31:36 a_adI r_adJ) 16:31:36 ((Any * -> a_adI) 16:31:36 -> Data.Proxy.Proxy 16:31:36 (Any *) 16:31:38 -> r_adJ) 16:31:39 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cast`: not found 16:31:41 I sure wish Core was easier to read. 16:32:24 -!- atrapado has quit (Quit: Abandonando). 16:33:31 RocketJSquirrel: BTW, I think you can avoid having to add finalisers to GGGGGGGGGGGGGGGGGGGGGGGGGGGGC just to use gmp. 16:35:15 OK, so the end type is (Any -> a) -> Proxy Any -> r. 16:35:31 Which is compatible with (forall proxy. proxy s -> a) -> Proxy s -> r, I should think. 16:39:57 -!- tikfreenode has quit (Changing host). 16:39:57 -!- tikfreenode has joined. 16:40:31 > MSIE 6.0 16:40:32 Not in scope: data constructor `MSIE' 16:40:34 ... 16:40:45 -!- tikfreenode has changed nick to Tiktalik. 16:41:42 > 2+2 16:41:43 4 16:43:35 -!- monqy has quit (Ping timeout: 252 seconds). 16:45:19 -!- monqy has joined. 16:49:33 yay, "My own DCPU-16 Toolkit in Haskell" 16:50:44 olsner: there's like ten by now 16:56:06 -!- aloril has quit (Ping timeout: 265 seconds). 16:57:16 RocketJSquirrel: BTW, I think you can avoid having to add finalisers to GGGGGGGGGGGGGGGGGGGGGGGGGGGGC just to use gmp. // oh? 16:59:11 RocketJSquirrel: (a) GMP lets you provide your own malloc/free functions for it to use. (b) I'm pretty sure the only thing the GMP free functions do is reclaim the struct and the block of memory it points to. 16:59:26 So, you have three non-finaliser options: 16:59:57 (a) If GMP coincidentally organises its structures (data vs. pointers) in the way GGGGGGC likes, you should be able to just make it use the allocator. If not, 17:00:35 (b) You could tell GMP to allocate everything as plain "uninterpreted sequence of bytes" from GGGGGGGGGC, and then use a wrapper GGGGGGGGC-struct that points to both the struct and the block of memory it points to. Or, 17:01:01 (c) You could modify G+C in a way that lets you tell it about unconventional memory layouts of certain objects. 17:01:17 i.e. a special malloc that lets you say "words A, B and C are data, but words D, E, and F are pointers". 17:01:49 RocketJSquirrel: I mean, GHC uses GMP, and they use a copying collector. They *do* support finalisers, but I'm pretty sure they don't use finalisers for Integer, because I'm pretty sure that would be really fucking slow. 17:02:03 What they *do* do is blatantly disregard GMP's encapsulation of the structure -- 17:02:04 @src Integer 17:02:04 data Integer = S# Int# 17:02:04 | J# Int# ByteArray# 17:02:19 The Int# is the number of limbs + sign; the ByteArray# is the limb array. 17:02:33 So I think it should be possible to avoid a slow and boring-to-write finaliser heap for GMP. 17:04:34 Wow, reify compiles down to 12 instructions. 17:04:47 And 3 of those are hidden behind a branch. 17:05:26 shouldn't it essentially be a no-op? 17:05:52 or maybe it did more stuff than just change the type 17:06:39 reify a k = (unsafeCoerce (Magic k) $! const a) Proxy 17:06:45 (Magic is a newtype) 17:06:58 So, it applies it to two arguments, one of which it might hypotheticall have to force (but I think GHC will realise the seq is a nop there and omit it). 17:07:04 And even id is more than zero instructions :P 17:09:43 -!- aloril has joined. 17:10:09 hmm, apparently I have approx. zero disks with enough free space to make a full android build 17:10:11 BLOAT 17:10:39 how much space does it require? 17:10:47 yeah, the ($!) gets eliminated at compile-time 17:10:53 just checked, same asm 17:11:02 nortti: "The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 90GB (or more) for a full set of builds." 17:11:32 no wonder it takes a century and a half to boot android 17:11:42 what the fuck! I currentlyu 17:12:25 -u+ have 42GGB scattered around 5HDs 17:12:43 +of usable disk space 17:13:03 and every disk is on different computer 17:19:05 -!- oerjan has joined. 17:20:48 I wonder if you could manufacture some electronic goo, that you can stuff into a container, and get a readout of its shape 17:21:32 reminds me of some title i saw on reddit (r/science?) recently about programmable sand 17:22:01 or whatever it was, i didn't click the links (i think there were several) 17:22:08 ooh, found an unmounted partition on one of my disks, I wonder if it has a file system 17:22:21 the partition of DOOM 17:22:48 hi oerjan 17:22:53 I think the size is much overkill for storing DOOM on it 17:23:03 * oerjan recalls a couple of SCP's that may be relevant 17:23:06 hi elliott 17:23:45 oooh which scps (<-- this is the most unhelpful urge) 17:23:47 the one with the floppies with all the internet on them, and the one with the insane genocidal but cramped AI 17:24:32 i remember the first one. not the latter 17:24:50 scp-335 was the first 17:26:00 scp-079 was the other 17:26:20 http://www.scp-wiki.net/scp-335 http://www.scp-wiki.net/scp-079 17:27:13 * oerjan finds http://www.scp-wiki.net/scp-633 while google for the others 17:27:18 *googling 17:38:00 -!- oerjan has quit (Quit: Lost terminal). 17:51:15 http://hackage.haskell.org/packages/archive/reflection/1.1.3/doc/html/Data-Reflection.html FINALLY PERFECTION IS ATTAINED 17:56:15 Can someone tell me why functional programming is a good idea, since updating a record requires time linear in the size of the structure? 17:56:15 elliott: f x = x{a=b} where x is a structure with 100 million members takes more than constant time. 18:02:36 -!- oerjan has joined. 18:02:57 hi oerjan 18:03:04 hi elliott 18:05:36 elliott: um, what changed in the last microversions... 18:05:51 oerjan: It got more documentation. And Safe Haskell status! 18:05:53 And "w" turned into "r". 18:05:58 And "p" turned into "proxy". 18:06:06 There's... not really all that much to change at this point. 18:06:13 indeed 18:07:02 oerjan: Did you know that if you use type families, the implementation gets more complicated, requires GADTs, and when you use it, type inference works against you? :( 18:07:20 heh 18:07:49 in other words, fd are not dead 18:08:51 Yeah. 18:15:14 Ohh, pozic is *that* person. 18:19:42 elliott: your opinion is worth nothing. * dmwit pays elliott 0.02 BTC just to prove pozic wrong 18:19:49 [oblig. joke about 0.02 BTC being worth nothing] 18:20:03 -!- Deewiant has quit (Ping timeout: 245 seconds). 18:20:04 -!- Deewiant_ has joined. 18:34:16 -!- ais523 has joined. 18:34:27 hi ais523 18:34:44 hi elliott 18:34:55 how's NSQX getting on? 18:50:56 -!- Frooxius_ has joined. 18:51:25 good 18:51:30 how's Feather getting on? 18:53:46 I'm ignoring it for the time being 18:54:38 -!- Frooxius has quit (Ping timeout: 244 seconds). 18:54:50 !c printf("%d\n", (int) sizeof(1.0)) 18:54:52 8 18:54:53 -!- Frooxius_ has changed nick to Frooxius. 18:55:34 -!- Frooxius_ has joined. 18:56:13 Man... 18:56:16 oerjan: Do you still have Hugs installed? 18:56:50 yes 18:58:32 oerjan: Could I get you to test both of reflection's implementations with it for me? 18:58:33 I can sprunge them. 18:58:44 (Hugs does fundeps, right?) 18:58:56 i think so 18:59:06 -!- Frooxius has quit (Ping timeout: 252 seconds). 18:59:06 i don't know about unsafeCoerce... 18:59:16 -!- Frooxius_ has changed nick to Frooxius. 18:59:41 I'm pretty sure it has unsafeCoerce. But the slow impl doesn't need unsafeCoerce. 18:59:47 right 19:00:04 Try and load this: http://sprunge.us/QKbM 19:00:07 Let me know if it complains about anything. 19:01:56 Can't find imported module Data.Proxy :P 19:02:43 elliott: What about it? 19:03:47 shachaf: ? 19:03:51 oerjan: OK, that's not a stopper. 19:03:53 oerjan: Remove the import, define 19:03:55 data Proxy t = Proxy 19:03:58 let me know its next complaint :P 19:04:07 * oerjan was already doing that 19:04:24 Syntax error in input (unexpected selector "#define") 19:04:57 It can't do cpp? 19:05:00 Okay, I'll pre-expand it for you. 19:05:23 probably can do #ifdef and not much else... 19:05:32 (is my guess) 19:05:39 oerjan: http://sprunge.us/CSHi (You'll probably have to remove the # lines still) 19:05:48 Thankfully there's only three. 19:07:17 four. 19:07:30 Undefined variable "unsafeDupablePerformIO" 19:07:57 (also i had to remove Data.Proxy again) 19:09:05 oerjan: s/Dupable// 19:09:39 Use of reifyByte requires at least 2 arguments 19:09:48 elliott: Monad page. 19:10:04 shachaf: Yes. 19:10:05 oerjan: wat 19:10:20 oerjan: ok you see the reifyByte chain at the end? 19:10:24 elliott: If you say so. 19:10:26 can you replace the $s with parens? 19:10:30 change all $ to use ... right 19:10:30 shachaf: http://www.haskell.org/haskellwiki/Monad 19:10:36 * oerjan had already guessed 19:10:42 oerjan: i guess hugs' inference engine is too dumb for that 19:10:47 i think ghc still special-cases ($) 19:10:58 elliott: hey it took a hack to make ghc do it 19:11:52 Cannot justify constraints in instance member binding 19:11:52 *** Expression : reflect 19:11:52 *** Type : Reifies (Stable a b c d e f g h i) i => j (Stable a b c d e f g h i) -> i 19:11:55 *** Given context : Reifies (Stable a b c d e f g h i) i 19:11:58 *** Constraints : (B k, B l, B m, B n, B o, B p, B q, B r) 19:12:00 20:53 -!- Frooxius_ [~chatzilla@cust-101.ktknet.cz] has joined #esoteric 19:12:07 oerjan: erm is that when compiling it? 19:12:14 loading, whatever 19:12:19 yes 19:12:21 or when trying to use it? 19:12:22 ok 19:12:28 linux clipboard leads to strange pastes 19:12:35 oerjan: does it give a line number? 19:12:45 +behaviour 19:12:46 ERROR file:.\Reflection.hs:107 - 19:13:03 ok, what line is that after you made your changes? 19:13:22 reflect = unsafePerformIO $ const <$> deRefStablePtr p <* freeStablePtr p where 19:13:48 ah 19:14:00 hmm. 19:14:16 oerjan: oh, does Hugs parse LANGUAGE pragmas? 19:14:24 it seems it doesn't support ScopedTypeVariables 19:14:35 quite possibly not 19:14:51 oerjan: ok let me get the old code out 19:14:59 * elliott determined 19:18:34 oerjan: http://sprunge.us/XfUV 19:19:37 dammit i have to redo all of it again 19:19:42 oerjan: oh, oops, sorry 19:19:44 oerjan: I did the Proxy thing 19:19:46 and the # thing 19:19:50 but forgot the parens 19:19:57 ah 19:21:12 it loads 19:21:41 \o/ 19:21:41 | 19:21:42 /| 19:21:43 try: 19:21:46 reify 42 reflect 19:21:55 you may need :: Int (or :: Integer) on the end of that if it can't infer 19:21:57 (it can't in GHC either) 19:22:02 Data.Reflection> reify 42 reflect 19:22:02 42 :: Integer 19:22:39 \o/!!! 19:22:39 | 19:22:39 >\ 19:22:44 try reify 42 (\p -> reflect p + reflect p)? 19:22:50 Data.Reflection> reify 42 (\p -> reflect p + reflect p) 19:22:50 84 :: Integer 19:22:55 that's awesome 19:23:02 * oerjan was already doing that 19:23:29 i'll see about getting these changes into the mainline 19:23:35 well not the cpp thing 19:23:38 i think cabal would run cpp for you there 19:23:45 ok now what about http://sprunge.us/daNZ :P 19:23:55 i think it _should_ work, if Hugs represents dictionaries reasonably 19:24:04 the only non-obvious thing is turning a dictionary of one element into that element, representation-wise 19:24:25 yes, hugs might not bother to make a special case 19:24:56 ERROR file:.\Reflection.hs - Can't find imported module "Unsafe.Coerce" 19:25:04 ugh, i know it has unsafeCoerce 19:25:06 lemme google whre it is 19:25:08 *where 19:25:09 and indeed, although it _might_ represent dictionaries the same as regular ADTs, which GHC doesn't (fiddly rts bits) 19:25:13 in which case it could be made to work anyway 19:25:24 oerjan: import Hugs.IOExts instead 19:26:06 Data.Reflection> reify 42 reflect 19:26:06 42 :: Integer 19:26:06 Data.Reflection> reify 42 (\p -> reflect p + reflect p) 19:26:06 84 :: Integer 19:26:32 holy shit 19:26:33 seriously? 19:26:37 yep :P 19:26:42 wow 19:26:47 i'll tell edwardk 19:27:01 oerjan: btw, what version of hugs is that? 19:27:14 Sep 2006 19:27:23 oerjan: ok. then i don't know why Unsafe.Coerce isn't there: http://hackage.haskell.org/packages/archive/base/3.0.3.1/doc/html/src/Unsafe-Coerce.html 19:27:25 -- Copyright : Malcolm Wallace 2006 19:27:27 and supports Hugs 19:27:47 hugs probably never packaged it? 19:27:51 "A substantial collection of library modules that are supplied with Hugs, GHC and Nhc98. Hugs now implements nearly all of these modules." 19:27:51 hmm 19:27:53 I guess they didn't use base 19:27:58 which makes me wonder why base supports Hugs 19:28:14 perhaps you can download base and use it. 19:28:33 except "Hugs 98 provides the same Haskell Hierarchical Libraries as GHC, except for the functions listed here." and doesn't list Unsafe.Coerce 19:28:42 oerjan: right, i think so (and probably that's what cabal with hugs does) 19:29:00 oerjan: except i have a feeling base doesn't really compile on anything but ghc these days. 19:29:18 well they did use _some_ base, i recall the code browser hugs has does include things shared with ghc 19:29:22 i'm loathe to add an #ifdef just for that module 19:29:34 i'll ask what happens with cabal+hugs 19:29:35 oerjan: fair enough 19:30:35 (as evidenced by all the #ifdefs) 19:31:30 right 19:31:39 are you finished testing hugs then? 19:31:47 i think so. at least for now 19:32:10 maybe i can convince edwardk to axe the ugly slow implementation, since i've actually found another implementation the fast one works on. 19:33:22 well there's still jhc and uhc, right? 19:34:33 oerjan: neither of those do MPTCS 19:34:35 *MPTCs 19:34:52 MPTCs++fundeps are a pretty big extension taken together 19:34:53 ah 19:34:58 s/\+\+/+/ 19:35:10 i think ghc and hugs are the _only_ ones to do them 19:35:15 -!- asiekierka has quit (Read error: Connection reset by peer). 19:35:38 -!- azaq23 has joined. 19:35:40 http://hackage.haskell.org/trac/haskell-prime/wiki/FunctionalDependencies "In GHC and Hugs for a long time." 19:35:48 -!- azaq23 has quit (Max SendQ exceeded). 19:36:16 technically i don't think we need fundeps. but they're really usefull. 19:36:18 *useful. 19:36:26 -!- azaq23 has joined. 19:36:28 -!- Zuu has quit (Changing host). 19:36:28 -!- Zuu has joined. 19:37:41 mhm 19:39:20 heh: http://sprunge.us/RAYI 19:39:55 ugh, that fails as soon as you put members in it 19:40:38 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 19:40:47 Someone please explain to me something about the world of Pokemon: 19:41:02 no 19:41:08 Sgeo: There are pookiemans in it. 19:41:13 There are all these fantastic creatures, and what people often do with them, and it's sanctioned is... get them to fight each other? 19:41:23 Would that not be equivalent to dog-fighting IRL? 19:41:48 elliott: the two :|: instances conflict and have the exact same head - i'm not sure even IncoherentInstances can accept that... 19:41:49 Sgeo: the plot of Black & White is actually mostly based on this 19:41:50 pokemon can't die, also dog-fighting isn't fun 19:41:54 qed 19:42:05 oerjan: it works without any members 19:42:07 oerjan: oddly enough 19:42:10 huh 19:42:14 but yes it breaks if you add one even with IncoherentInstances 19:42:15 elliott: actually, they /can/ die, they just don't typically die from battle 19:42:17 elliott, can they feel pain? 19:42:19 ais523: true 19:42:22 Sgeo: who cares! 19:42:29 have YOU ever seen a pokemon complain??? 19:42:33 in red & blue, there's a common fan rumour that you kill one of your rival's Pokémon in one of the early forced battles, though 19:42:46 ais523: oh, I remember that 19:44:35 Just read the spoilers on the TV Tropes Black and White page 19:51:29 -!- ion has quit (Ping timeout: 246 seconds). 19:57:11 Sgeo: the world presented by the pokemon software is quite boring unless the pokemon fight :P 19:57:29 I suspect it's pretty boring when they fight too 19:58:14 in the very first games it was actually quite fun 19:58:29 it was new and the cartoon was out coinciding with it 20:01:46 oerjan: anyway, hopefully reflection 1.1.4 should support hugs :) 20:02:06 :D 20:03:19 to be honest society rarely does things for animals without some hidden agenda 20:05:11 animals serve as food, as clothing, as medicine, as companions who are trapped with you or suffering some kind of stockholm syndrome, 20:05:24 as entertainment in zoos or circuses 20:05:46 as expendables when experimentation is necessary 20:06:18 I guess there isn't a good way to study the psychology of pets 20:07:53 this being said we do offer them shelter, food, and some level of protection from predators, while taking away their social life 20:09:47 elliott: registerTrademark :: TMVar a -> RVar a 20:11:08 Sgeo: about games, nearly all video games involve some kind of core violence element. as to why that is i haven't quite been able to work it out 20:11:27 itidus20: because violence is fun, obviously 20:11:28 nearly all? 20:11:40 have you seen all video games 20:11:49 dungeons and dragons for example, is based on violence :P 20:12:08 Pretty sure D&D isn't a video game 20:12:25 well they derive some video games from it loosely :P 20:12:31 Because violence is the easiest way to set up well, conflict? 20:12:53 Something to do? 20:12:58 I wonder if itidus20 knows that a large number of pets would not survive in the wild. 20:13:01 pong-no, asteroids-yes, pacman-yes, space invaders-yes, donkey kong uhmm-i guess so 20:13:15 (For instance, when the domestic rabbit is placed into the wild, it becomes the subspecies known as "roadkill".) 20:14:15 elliott: good point.. and even without human's influence on the earth they would probably be killed by something else 20:14:28 -!- Phantom_Hoover has joined. 20:14:31 -!- nortti has quit (Quit: nuq). 20:14:42 wait uh.. asteroids is a grey area 20:14:58 Wild rabbits survive fine. But they're not the same as domesticated rabbits. 20:19:40 -!- zzo38 has joined. 20:24:31 i forfeit my argument 20:25:07 -!- ion has joined. 20:25:26 -!- zzo38 has left. 20:28:34 as to violence (which i havent defined): first person shooters, military sims, rpgs, most platformers, tower defence, terraria, eve, shoot-em-ups, fighting games 20:29:59 puzzle games seem to get by without it 20:30:10 and abstract strategy games 20:30:25 -!- zzo38 has joined. 20:31:00 monqy: elliott didn't see your poem 20:31:01 also sports.. and any non-violent non-video game which is simulated as a video game :P 20:31:04 hi monqy 20:31:21 shachaf: hi shachaf 20:31:21 Well, in some video-game/computer-game, not all, there is things you can get hurt, either passive pieces (spikes) or active pieces (people with guns); in some games you cannot get hurt but can still get stuck by doing something wrong (sokoban). 20:31:30 did elliott not logread 20:31:50 elliott: did you not logread 20:31:52 Can I see your poem? 20:31:54 elliott: :( 20:31:55 I didn't read. 20:32:06 Half of the games I make don't have anything with violence, or some games only partially in some parts of the game not everything 20:32:44 well i'm famous for half-baked strawman arguments :-s 20:33:31 hi monqy 20:36:21 the poems are somewhere in the logs 20:36:28 hi logs 20:36:47 zzo38: one thing that occurs to me sometimes is that video game play can never be a perfect simulation of someones morals or ethics because the universe of the game is inherently controlled by the designer 20:36:56 17:46 < monqy> hi 20:36:57 17:46 < monqy> hi everybody 20:36:57 17:46 < monqy> hi nobody 20:36:57 17:46 < monqy> hi 20:36:57 17:46 < monqy> - a poem 20:36:59 17:46 < monqy> - by monqy 20:37:01 17:46 < monqy> - (c) 2012 "monqy" 20:37:21 elliott: Not that that was monqy's only poem, mind you. 20:37:30 21:27:25: oerjan_: I know that; but still its implementation is not so good in my opinion. It is why I wanted to invent the new programming language instead, with new things differences, let's make up the working group to argue about it too. 20:37:37 18:49 < monqy> hi 20:37:37 18:49 < monqy> - a poem 20:37:37 18:49 < monqy> - a poem 20:37:37 18:50 < monqy> - a poem 20:37:37 18:50 < monqy> - a poem 20:37:37 zzo38: The new implementation is much better. 20:37:40 18:50 < monqy> - a poem 20:37:40 No overhead or anything. 20:37:42 18:50 < monqy> - hi monqy 20:37:43 shachaf: Stop ruining it. 20:37:45 I want to see them in context. 20:37:50 18:48 < monqy> hi shachaf 20:37:50 18:48 < monqy> hi 20:37:50 18:48 < monqy> hi alone is poetry 20:37:50 18:48 < monqy> hi 20:37:50 18:49 < monqy> that was also a poem 20:37:53 18:49 < monqy> - a poem 20:37:55 18:49 < monqy> - by monqy 20:37:58 18:49 < monqy> - (c) 2012 "monqy" 20:38:13 Oh. 20:38:21 wow. a working group 20:38:25 21:47:37: http://www.youtube.com/watch?v=j7XR9yH2ETk 20:38:32 Sgeo: fifteen seconds in and this is already hilarious 20:38:49 "from creation to natural death" WOW that's a depressing slogan. 20:39:52 die from natural causes or your money back 20:40:07 00:00:21: http://www.newser.com/story/143556/phyllis-schlafly-warns-men-dont-date-feminists.html 20:40:07 00:00:48: Huh. Haven't heard of this woman before. (But did note the name and according to the evil librul Wikipedia, Andy's her son) 20:40:15 Sgeo: Phyllis Schlafly is... not the most pleasant of people: http://en.wikipedia.org/wiki/Phyllis_Schlafly#Viewpoints 20:40:59 00:19:29: `run rm -rf wisdom/* 20:41:05 shachaf: Don't do this, it's just annoying. 20:41:06 `? welcome 20:41:09 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 20:41:15 Good, someone already reverted it. 20:41:15 elliott: oerjan fixed it 20:41:24 elliott: oerjan almost banned me. :-( 20:41:31 How do I get actually banned. :-( 20:41:34 `? XY 20:41:37 XY? ¯\(°_o)/¯ 20:41:42 No, you didn't fix it. 20:41:43 `help 20:41:45 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 20:41:47 s/you/oerjan/ 20:41:50 oh no 20:41:52 `run echo "XY problem is probably not what you are really after. Try asking about your real underlying problem instead." > 'wisdom/xy problem' 20:41:55 No output. 20:41:58 shachaf: if i figure out how i'll tell you >_> 20:42:01 `? monqy 20:42:04 hi monqy 20:42:05 looks fixed to me! 20:42:09 hi monqy 20:42:10 `revert 193 20:42:13 Done. 20:42:14 It was at "xy problem", not "xy". 20:42:25 RocketJSquirrel: Can you add shachaf to HackEgo's ignore list? 20:42:52 RocketJSquirrel: cf. http://codu.org/projects/hackbot/fshg/index.cgi/rev/b354fd7abfc7 http://codu.org/projects/hackbot/fshg/index.cgi/rev/b26535750abf http://codu.org/projects/hackbot/fshg/index.cgi/rev/59f2b27c2279 http://codu.org/projects/hackbot/fshg/index.cgi/rev/731c3a01b9da 20:42:53 `add-wisdom xy SEE XYZ PROBLEM 20:42:56 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: add-wisdom: not found 20:43:09 RocketJSquirrel: I was explicitly told that this was OK to do! 20:43:17 A while ago. 20:43:29 "Phyllis Schlafly's son Andrew became a lawyer and founded the website Conservapedia." 20:44:04 Trying to break the bot the first time you see it will not get you ignored. Repeatedly doing nothing but mess with the bot will, as another has found out before. 20:44:22 No, you didn't fix it. <-- yes i did, you did the wrong query 20:44:27 elliott: I didn't try to break the bot. 20:44:43 If I thought it would actually break the bot, I wouldn't have done it. 20:45:15 oerjan: Right, I apologise. 20:45:19 itidus20: OK; yes I can see moral/ethics based on the game's designer 20:45:21 oerjan: (Also for calling you shachaf.) 20:45:37 shachaf: It did break the bot. The fact that it was reversible is irrelevant; someone had to come out with superglue and fix i. 20:45:38 *it. 20:45:43 And that person wasn't you. 20:45:51 Because I do sometimes disagree with such things however it is just game, the goal is to win the game. But sometimes additional challenge, score, time, etc 20:46:12 zzo38: i never finished that rant :P 20:46:18 ill scroll up 20:46:22 elliott, can you still not play worms 20:46:27 Phantom_Hoover: sorry shall i 20:46:28 fix that?? 20:46:32 elliott: I tried to fix it, though! 20:46:34 i could get out my mac i supPOSe 20:46:49 Wait, are we playing Worms? 20:46:49 hi worms 20:46:50 shachaf: When have you used HackEgo to do anything but try to delete wisdom entries and quotes you don't like? 20:47:05 `? shachaf 20:47:08 No output. 20:47:09 elliott: I've almost never done that? 20:47:35 yes worms 20:47:37 worms worms worms 20:47:39 worms! 20:47:42 Anyway, if you ignore me on HackEgo I demand thta oerjan also kick me. 20:47:45 zzo38: basically, in some games in order to be a pacifist one must either put down the controller altogether or in some cases perhaps even turn the game off 20:47:51 oerjan: Can you just kick him so he shuts up about that? 20:47:52 In Dungeons&Dragons game is not computer game so you have more possibilities; see the stuff I wrote about D&D game (both the session recording, and some spells/skills/feats, and gopherlogs, for more information too) 20:47:54 `run echo "hi monqy" > 'wisdom/shachaf' 20:47:57 No output. 20:47:58 `? shachaf 20:48:01 No output. 20:48:04 :( 20:48:06 `run echo 'shachaf mad' > wisdom/shachaf # rv 20:48:08 i was bored so i wormed but it just isnt the same when you control both sides 20:48:09 No output. 20:48:12 itidus20: Yes, in some games; not in all games. In a few games you would be forced to pacifist, in some game don't work, and in others you have choices 20:48:14 "bad at echo " - me 20:48:15 Phantom_Hoover: you realis it has cpu players too 20:48:17 *realise 20:48:21 Phantom_Hoover: what time is it in america 20:48:24 monqy: no, that's just the lag delay 20:48:24 and its horrible against cpus, they are not smooth at all 20:48:25 thing 20:48:27 zzo38: i see.. so d&d can actually give you real choice. thats interesting 20:48:33 `run echo "hi monqy" > wisdom/shachaf # hi 20:48:36 No output. 20:48:38 `revert 20:48:38 `? shachaf 20:48:39 Stop. 20:48:40 Done. 20:48:45 they just hit you with bloody pinpoint bazooka shots all the time 20:48:51 elliott: Come on, it's my own wisdom entry. 20:48:53 No output. 20:49:00 And I'm being constructive here. 20:49:06 I'm adding, not removing. 20:49:20 It is ten to American five. 20:49:26 oerjan: Can you just kick him so he shuts up about that? <-- no. _not_ kicking him seems like more of a punishment, no? 20:49:34 You're the fascistdictator, not me. 20:49:50 That's why I left that other channel, too. You're too much of an evil person. 20:50:08 oerjan: I don't want him punished, I just want him to shut up about it. 20:50:14 Your goal is to make everyone who disagrees with you miserable. 20:50:25 I think you'll find you're already miserable. 20:50:33 Hardly! 20:50:54 Phantom_Hoover, I am capable of playing worms 20:51:16 Yes but the more the smoother. 20:51:21 zzo38: in particular, is the way in which in the real world one can define ones own goals, and can hope for events to improve naturally, or negotiate with anyone they encounter 20:51:24 yada yada 20:51:31 i guess such things also more possible in d&d 20:51:33 oerjan: So will you kick me or not? 20:51:36 elliott, did you finish watching the video? 20:51:57 OK wait I will try to host a game. 20:51:57 But I made Super ASCII MZX Town; it has things, such as, you can shoot stuff but you shouldn't shoot everything because doing so is a waste of ammunition, and you also get extra points at the end for conserved ammunition/money/health/etc. In one level you have to beat Dr.Gray but you have to use the pieces on the board to beat him; you cannot use your own ammunition/bombs 20:52:07 Phantom_Hoover: ;__; 20:52:41 Don't worry, it won't be as fun because I don't know how to turn superweapons on. 20:52:42 07:46:43: main() { hi; } 20:52:51 @tell Taneb That book has started to give you misconceptions already. 20:52:51 Consider it noted. 20:53:26 `? monqy 20:53:29 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 20:53:30 `run echo hi > monqy 20:53:32 No output. 20:53:34 In some levels there are Kill Enemies potions but they are almost always not what you should use (they might cause a puzzle to be impossible). And then there are potions Wind, Summon Dragons, Banish Dragons; you must use them effectively because using them in the wrong time/place is not working 20:54:02 `? shachaf 20:54:05 No output. 20:54:11 `cat monqy 20:54:14 `? monqy 20:54:14 hi 20:54:14 `run echo "hi monqy" > wisdom/shachaf # hi 20:54:17 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 20:54:21 `? shachaf 20:54:24 No output. 20:54:28 No output. 20:54:31 `run cat $(which ?) 20:54:34 ​#!/bin/sh \ topic=$(echo "$1" | tr A-Z a-z) \ [ -e "wisdom/$topic" ] || { echo "$1? ¯\(°_o)/¯"; exit 1; } \ cat "wisdom/$topic" \ \ #!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +([^ ]*) +//) { print "$1: "; exec $2, $_; } \ #!/bin/sh \ echo '!"#$%^&* 0123456789' 20:54:39 zzo38: i have been recently pondering the way you can substitute one component in a system for a different but compatible component.. 20:54:41 Sgeo, OK, wormnet, #AnythingGoes, name is "fruity rumpus ******* factory" (nazis) and there's no password. 20:54:57 Hold on 20:55:22 especially because of thinking about how soy milk and almond milk can replace regular milk 20:55:51 itidus20: Like, what do you mean? Intel with AMD? 20:55:59 Phantom_Hoover, let me get a handle on the comp 20:56:05 zzo38: like uh.. replacing tea with coffee :P 20:56:18 itidus20: O, like that. OK 20:56:26 but I like tea but don't like coffee. please do not replace. 20:56:27 same thing though 20:56:30 in a way 20:56:40 I'm tempted to slam the item count up to maximum, but IME that makes vast swathes of the map explode at the slightest provocation, and that cuts things short a bit. 20:56:42 itidus20: well, I can't drink too much regular milk, so I typically live on soya milk substitute 20:56:50 (nobody calls it soya milk in the UK, so I'm guessing they aren't allowed to) 20:57:37 i was having a lot of insights into this whole idea of substituting 20:58:31 but were they good insights 20:58:46 if someone replaces a component in a system for a compatible but different component it is probably for one of the following reasons i identified 20:59:12 -!- Deewiant_ has changed nick to Deewiant. 20:59:24 What reasons are those? Free software/open-source? 20:59:57 space usage, electricity usage, time usage, weight, money cost, availability, redundancy (hmm), harm to sentient beings (uh... ), positive side effects/benefits(...) 21:00:17 itidus20: Yes those are some reasons too 21:00:22 Sgeo, you are DISAPPOINTING me 21:00:24 and pleasantness as in.. (taste, quietness, softness) 21:00:27 Phantom_Hoover, hold on 21:00:30 WA is now open at least 21:00:46 what makes components compatible 21:00:59 Phantom_Hoover, I don't see it 21:01:17 `run echo 'shachaf mad' >wisdom/shachaf 21:01:19 No output. 21:01:21 #AnythingGoes? 21:01:29 `? shachaf 21:01:32 No output. 21:01:33 Yep 21:01:42 monqy: well.. very few systems require a component to be exactly that component.. nearly always there is room for alternatives 21:01:46 Let me check on the web snoop thing 21:01:57 itidus20: what does require mean 21:02:18 Phantom_Hoover, do you see t on here 21:02:19 Oh 21:02:26 itidus20: what exactly makes a component work in a system? what does it mean for a system to work? 21:02:26 ok in some cases... it may be that the component is there to get electricity from one point to another 21:02:30 You see the new one? 21:02:51 so wire might be optimal but you could also use water 21:02:53 Phantom_Hoover, yep 21:02:55 Trying to connect 21:02:58 Not connecting 21:03:13 monqy .. im not quite sure 21:03:19 um 21:03:29 Phantom_Hoover: You did forward the ports, right? 21:03:29 did i not do something i'm meant to/ 21:03:34 THAT WOULD BE WHY 21:03:44 I doubt you have access to wherever you're staying's routers. 21:03:58 There's a wormkit thingy... 21:04:08 Sgeo, hello I hope your dad lets you at the router. 21:04:11 monqy: but i did come up with some examples 21:04:17 -!- zzo38 has left ("Call me if you have something else to say by now"). 21:04:27 We can call zzo38? 21:04:35 like.. a food cooking system could either be a campfire or a gas oven 21:05:11 and a land transport system could either be a horse or a bicycle or a car 21:05:12 09:36:15: do the C standards require that a string literal evaluates to a pointer that's always valid and points to that string? 21:05:14 kmc: What else could you do? 21:05:15 Phantom_Hoover, hmm 21:05:27 I could try that I guess, although my dad would yell at me if he found out 21:05:33 itidus20: those aren't interchangable at all 21:05:36 sgeo the alternative is waiting for elliott to get his act together 21:05:47 itidus20: in a few cases, sure, but generally? nope 21:05:52 yes you must forward ports stealthily 21:05:54 like worm 21:06:59 Or one of the other of us can use WormKit 21:07:04 Or HostingBuddy 21:07:46 Why aren't you just using HostingBuddy? 21:07:47 monqy: well it depends how much flexibility you can afford 21:07:57 elliott, BECAUSE I AM STUPID 21:08:25 like a bicycle will get you there "eventually".. 21:08:36 but then.. even walking can do that 21:09:01 walking backwards can do that 21:09:16 Phantom_Hoover: !host 21:09:30 elliott: Is HostingBuddy like BONZI Buddy? 21:09:34 hi bonzibuddy 21:09:57 ok i will 21:09:58 use that 21:10:01 monqy: i noticed that as technology progresses that the components basically offer more and more 21:10:23 and as a result the systems that the components are part of become better 21:10:26 shachaf: Do you actually enjoy just saying nonsense all the time in here? 21:10:34 elliott: Yep. 21:10:39 Isn't that what this channel is for? 21:10:43 No. 21:10:47 Oh. 21:10:49 What is it for? 21:10:57 Is Full Wormage the smooth option? 21:11:00 *scheme 21:11:08 Yes, for all weapons 21:11:15 monqy: im making up my own definitions at an alarming rate 21:11:22 alarming indeed 21:11:28 Yes. 21:11:30 Yes it is. 21:12:30 shachaf: Discussion of esoteric topics in computer programming, broadly construed, plus whatever off-topic discussion interests the majority of whoever's talking at the time. 21:12:42 monqy: ok well if a meal is a system, then.. vegans have shown how it's surprisingly possible to find close substitutes to each part of the meal 21:13:04 Phantom_Hoover, with that many worms, please turn teleport at start off? 21:13:18 and i suspect that a lot of vegan meals wouldn't exist if they weren't inspired by non-vegan ones 21:13:19 WELL FINE 21:13:26 Ropework is smoother anyway. 21:13:31 Not the weapon 21:13:38 Just the at start thing 21:14:13 but speaking of "wouldn't exist" i subscribe to the theory that the universe can't simply be added to and subtracted from arbitrarily.. and that everything simply exists 21:14:29 deep 21:15:14 but it makes sense to say i wouldn't exist if my parents didn't have sex.. 21:15:22 gah.. 21:15:49 also deep 21:16:44 i mean it's not like theres any risk of me not existing 21:17:23 though i may cease to exist eventually 21:17:36 you'll always exis 21:17:37 t 21:17:39 in our hearts 21:17:50 Sgeo, that seems to have frozen it. 21:18:08 ...I just did the same :( 21:18:11 DAMMIT 21:18:33 in general, i have issues with statements of the form "X wouldn't exist if Y happened." 21:18:57 something funny about it 21:19:55 wat 21:20:29 OK, join the new server. 21:20:34 *game 21:20:44 elliott, escape then minimise freezes WA. 21:21:01 in WINE 21:21:01 This is annoying because it's otherwise impossible to switch out. 21:21:11 Phantom_Hoover, maybe Alt-Tab? 21:21:17 Nope. 21:21:26 WA captures the mouse and won't let go. 21:21:35 ahh.. because Y can't actually happen independantly of everything else that happened 21:21:52 Yeah, that's only in Wine. 21:21:59 theres no way to protect the universe from side effects of Y happening 21:22:16 Uh, it unfroze for me 21:22:26 No it didn't 21:22:47 Yes it did, due to Ctrl-C? 21:22:50 WTF is going on here 21:22:57 it's fine in theory, but in practice, isolated events don't happen 21:45:38 oerjan: however 1.1.4 might take a while :P 21:45:42 i need to find someone who has used hugs with cabal. 21:45:49 heh 21:45:54 (would you hate me if I enlisted you to try and install it?) 21:46:03 yes. 21:46:24 how much 21:46:43 Well, I are a doofus 21:46:47 9.2 21:46:52 oerjan: out of 100? 21:46:56 no. 21:47:11 That drill was the funniest thing. 21:47:24 monqy: ok while i made my breakfast i figured out what i meant logically.. although my parents not having sex would mean i didn't exist.. i couldn't isolate my non-existence from the rest of the universe 21:47:26 I thought that would have the best chance of making sure you drowned. 21:47:31 oerjan: out of 10? 21:47:36 yes. 21:47:39 oerjan: that's ok. 21:47:42 i can work with .8. 21:47:43 brb 21:48:19 that was supposed to mean "no way", btw. 21:48:27 I thought I was dead. 21:48:43 elliott, so, if you have two worms, your opponent has one worm, one of your worms and your opponents worm is on a girder over the water, WHAT DO YOU DO? 21:48:55 ah i give up.. time travel is too complicated 21:48:56 you die. 21:50:21 its been a long time since i played worms but i think you do some martial arts 21:50:39 There was a sort of hook at the end of the girder 21:50:43 So the worm could have lived 21:50:59 agh 21:51:00 Or so was my thinking 21:51:26 Aren't they mostly standard Yale locks? 21:51:27 yes 21:51:29 But really, better to have the enemy live and 2 worms of mine alive than the enemy live and only one worm of mind alive... 21:51:41 if by "yale lock" you mean a standard pin tumbler lock and not that specific brand 21:51:52 Sgeo: did you blow up the girder? :D 21:52:11 I drilled down, sacrificing one of my worms in order to fail to kill my enemy. 21:52:40 oh ya. i envisioned that drilling down 21:52:44 wow.. he didnt die 21:52:51 how dramatic 21:52:55 He was knocked out of the way 22:05:51 -!- calamari has joined. 22:09:25 back 22:09:29 elliott, so, if you have two worms, your opponent has one worm, one of your worms and your opponents worm is on a girder over the water, WHAT DO YOU DO? 22:09:44 punch/poke/ropeknock them off, or rope/bungee/parachute/teleport away 22:11:26 @ping 22:11:26 pong 22:14:14 elliott, safe to say that my answer is th wrong one? 22:14:15 the 22:14:38 Sgeo: yes. it's possible to drag someone down with a drill but v. difficult 22:14:44 iirc 22:14:49 why didn't you just do one of my suggestions 22:15:19 Well, I pondered baseball-batting, but there was a slim chance the worm would have lived 22:15:33 if it's a girder and there is water below? no 22:15:35 Or if I did it straight, more than a slim chance of being saved by a hook 22:15:40 baseball bat will work every time 22:15:55 Because there was a hook at the end of the girder which the worm could have fallen into 22:15:58 you can point it as far up as it'll go, it'll still work 22:16:03 baseball bats hit like hell 22:16:14 There was land elsewhere on the map, you know 22:16:42 oh 22:16:50 meh, they'd probably bounce 22:16:52 fire punch? 22:19:58 http://en.wikipedia.org/wiki/Easter_controversy 22:30:14 elliott, remind me why RWH is Bad. 22:33:05 Phantom_Hoover: It's not Bad, as such. 22:33:15 Phantom_Hoover: It's (a) not a good introductory book, and (b) out-of-date (2009). 22:33:31 Ah. 22:35:43 Phantom_Hoover: Why'd you ask? 22:36:13 You mentioned it yesterday and I remembered that I had been interested in the reason but hadn't actually seen it. 22:36:53 i quite like the later "topics" chapters 22:37:03 concurrency, profiling, FFI, STM 22:37:15 i can see why the early chapters would not be a good way to learn Haskell from scratch 22:37:24 kmc: yes, I appreciate those muchly 22:37:34 kmc: that is why I recommend reading it after LYAH if you want 22:37:35 they focus on big ugly examples in an attempt to prove Haskell is Real World 22:37:52 i think RWH might suffer from mixing evangelism and teaching a bit 22:37:54 but people who come into #haskell using RWH inevitably misunderstand the very basics while in a chapter already on to practical, non-basic stuff 22:37:56 Well, Haskell has the RealWorld 22:38:05 >>> 22:38:07 erm >.> 22:38:09 no it doesn't 22:38:23 kmc: did you see that crappy new haskell tutorial 22:38:28 if i ever write a Haskell tutorial it'll be like "look, you want to learn Haskell, why are you even here if you don't" 22:38:34 and then i don't need to spend every page talking about how great haskell is 22:38:38 elliott, no 22:38:42 kmc: you are missing out!!! 22:39:03 link plsz 22:39:14 it's called 22:39:23 Learn Haskell Fast and Hard: Blow your mind with Haskell 22:39:26 http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/ 22:39:32 oh jesus 22:39:42 and it is written by the person who asked a simple haskell-in-IO question on SO in December 22:39:47 ultra kickass haskell for bacon zombie robots 22:39:48 which i answered as my first SO answer 22:40:06 i guess if you read that tutorial, you can become an expert as fast as they did! 22:40:37 sigh 22:40:46 "Also, if somebody has any advice on what I should read to grasp how to work with haskell. 22:40:47 It is the second time I am faced with something easy to do with imperative programming but almost impossible to understand how to do it in haskell. My last problem was about a "how would you simulate a break in haskell", for example. Thanks!" 22:41:07 what does #haskell think of this tutorial 22:41:18 i choose to retitle it "blow yourself with haskell, fast and hard" 22:41:27 unfortunately the tutorial is just kind of bad, rather than hideously inaccurate 22:41:42 so it's difficult to rampantly mock it :( 22:42:03 kmc: dunno if #haskell have discussed it 22:42:06 proggit have "discussed" it 22:42:20 but all haskell tutorials are equivalent to proggit, they're just excuses to be an idiot about haskell 22:42:30 proggit flung their feces at it 22:43:09 speaking of terrible things 22:43:14 kmc: have you seen the Monad page on haskellwiki 22:43:22 i know you love terrible things 22:45:47 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 23:00:37 -!- calamari has quit (Quit: Leaving). 23:16:35 -!- Phantom_Hoover has joined. 23:16:36 -!- Phantom_Hoover has quit (Client Quit). 23:16:49 -!- Phantom_Hoover has joined. 23:17:13 fizzie, hey, can you use your googlematic colourtron on 'titian', please? 23:18:51 -!- calamari has joined. 23:19:06 Phantom_Hoover: It's like a titan, but with more tits. HTH. 23:20:10 * #haskell Banlist: Wed Feb 8 18:01:13 palomer!*@* moorcock.freenode.net 23:20:13 I remember that name too! Who was that? 23:23:33 ./05.07.29:22:36:07 hrm, the literature on monads sucks:O 23:23:33 ./05.07.29:22:36:13 I wish there was a SICP for monads 23:23:33 ./05.07.29:22:36:20 are there any books that explain them well? 23:23:37 2005 is JUST LIKE THE PRESENT. 23:24:03 oh 23:24:04 @palomer 23:24:04 That's a lie 23:24:08 i guess that's where i remember them from :D 23:24:22 ./08.04.15:14:14:10 What about lament? He's like palomer2 23:24:45 -!- sebbu has quit (Read error: Connection reset by peer). 23:25:07 ./08.07.08:11:20:09 who is palomer 23:25:09 ouch 23:25:17 @palomer 23:25:17 That's a lie 23:25:17 @palomer 23:25:18 I think vim is good for the rubbish bin 23:25:18 @palomer 23:25:18 You're all nuts 23:25:18 @palomer 23:25:18 Learning vim is pointless 23:25:18 @palomer 23:25:19 They're telling you lies! 23:25:19 @palomer 23:25:19 (_|_) 23:25:20 @palomer 23:25:21 (_|_) 23:25:29 lament has really gone downhill, i assume... 23:25:30 -!- sebbu has joined. 23:25:30 -!- sebbu has quit (Changing host). 23:25:30 -!- sebbu has joined. 23:25:39 ./08.11.24:22:36:58 for great smerdy quotes, check the #ocaml log. he and palomer get to grump it out daily. 23:25:42 oerjan: erm that's from 2008. 23:26:03 s/has/had/, then 23:26:05 oerjan: but don't you remember lament spending a significant portion of time telling everyone how much haskell sucks and how python is way better? 23:26:12 no. 23:26:15 i suspect #haskell got that more than we did. 23:26:38 ./09.01.15:18:27:47 Er, wait, I'm channeling palomer, doh! 23:26:38 ./09.01.19:14:23:52 hehe. that's what hanging out in #ocaml with smerdy and palomer will do to you ;) 23:26:55 ./09.06.11:11:46:09 edwardk: You're reminding me a bit of palomer, perhaps you'll be capable of what he was trying to do. :) 23:26:58 grepping #haskell logs is really fun 23:29:48 I... in what universe can I set a variable of a PHP script by sending it in a query string? 23:29:59 Because that was the solution to an extended basic problem on HTS 23:30:01 Sgeo: in a universe with register_globals turned on 23:30:12 most people consider register_globals to have been a mistake 23:30:50 And it's removed in php 5.4.0 (the latest stable version) 23:31:15 Sgeo: that's what register_globals does 23:31:19 ?x=foo sets $x 23:31:19 Unknown command, try @list 23:31:46 * Sgeo bibbles 23:35:00 elliott, ....bibble.... 23:35:05 Oh, I already did that 23:37:07 just keep bibblin' 23:37:11 -!- calamari has quit (Quit: Leaving). 23:37:57 i'm reading a 2009 log and edwardk is talking about type hacks for parsers 23:37:59 nothing ever changes 23:38:25 well except sometimes people die 23:38:39 or get a disease and become useless 23:39:15 uugh but i am in this log 23:39:23 the one thing that changes is that i get a little less stupid every now and then 23:39:48 god i was such a shit 23:39:50 uugh 23:39:57 can you prove this 23:40:03 for our amusement 23:40:04 yeah it's in this log 23:40:09 no i won't paste fuck you :( 23:40:16 please paste 23:40:29 no fuck you 23:40:31 aaargh i hate myself 23:41:10 how about you paste it but change your nick to secret_irc_dudde 23:41:35 no 23:41:35 secret_irc_duddes are the worst irc_duddes. 23:41:46 if you want it you can download the 200 meg file it came in 23:41:52 SHAAAAME - I WILL BE LOGGED FOREEEVER... 23:42:19 idgi 23:42:47 idgi^2 23:42:58 wait that means i don't get the don't getting of it 23:43:05 i heard that in a woman's voice with melody EAAAABCCB 23:44:10 oko has perfect pitch? 23:44:17 no. 23:44:23 http://artists.letssingit.com/fame-musical-lyrics-im-gonna-live-forever-cj62l4m 23:44:26 or something. 23:44:34 that + a constant 23:44:42 oh i remember that song 23:45:16 it's just that that's the only standard way i can explain melodies 23:46:49 okay so it was probably that one 23:47:04 nice brain 23:47:14 not that i remember ever hearing it 23:47:26 it was all the rage in the 80s 23:47:50 now where did i put my cane 23:48:28 i wasn't really into music back then 23:48:44 okay 23:48:53 but so it was actually ECCCCCCB 23:49:09 mine was better 23:49:15 both suck 23:51:47 well, CCCCCCCB really, since the FAME is sang by the choir thing in C. but before the first chorus, the lead sings E which connects nicely to it. 23:52:50 holy fuck that's a shitty song 23:53:00 -!- derdon has quit (Remote host closed the connection). 23:53:15 -!- calamari has joined. 23:53:20 -!- Sgeo has quit (Ping timeout: 246 seconds). 23:53:23 its in my head now 23:53:36 nostalgia isn't what it used to be :( 23:54:10 i have some nostalgia for the few bands i listened to at 10 or something 23:54:12 -!- Sgeo has joined. 23:54:20 so that's klamydia and nightwish basically 23:55:04 klamydia is the worst name for a band ever 23:55:06 also i don't get bad songs stuck in my head anymore 23:55:18 it's silly punk 23:56:24 i just liked the lyrics i assume 23:56:48 -!- Patashu has joined. 23:58:14 and i guess maybe stuff like gorgasm from some time later 23:59:04 i remember that neighbors complained when this one time at about midnight, we decided to play gorgasm at full volume for an hour 23:59:06 99 Haskell Problems is a great place to start 23:59:08 kmc: WHY DO PEOPLE SAY THIS 23:59:18 that crap survives ENTIRELY on beginners recommending it to other beginners