00:00:15 HAPPY 2011.997260274 EVERYBODY! 00:00:24 * elliott parties 00:01:08 now that is a milestone worth celebrating 00:01:44 fizzie: iodine would be a lot more interesting if you didn't need a server :) 00:02:57 iodine, the ip-over-dns thing? 00:03:10 yeah 00:03:31 been thinking about setting that up ... it's missing a nice android app though 00:04:52 I think there should be something like Astrolog for portable devices with GPS 00:05:29 hmm, what else can you tunnel IP over 00:05:33 How about AP identifiers? 00:05:43 Can commodity hardware broadcast one of those? 00:06:09 You'd just base-64 encrypted packets as the SSIDs, and then get the response from the other machine symmetrically. 00:06:21 Kind of, um, pointless though. 00:07:11 It's not as funky if it only goes as far as the radio connection would anyhow reach. 00:08:33 hostap sends the regular AP advertisement frames; quite a few chipsets can't do the AP mode though, at least without suitable firmware. 00:08:36 What if you could, like, tunnel IP packets *over other IP packets*? 00:09:18 I don't suppose you could somehow convince DNS servers to send a DNS query to a server that happens to also be a valid HTTP packet. 00:09:18 You might confuse people looking at their "wlan networks" lists. And passing wardrivers. 00:09:45 They normally only converse over UDP, so that'd be quite a feat. 00:09:53 HTTP over UDP. :p 00:11:20 fizzie: How about IP over DHCP? 00:11:54 There's a "UHTTP" draft, I can't recall in which context I saw it. It's not quite that, though; it's a HTTP derivative for unidirectional broadcast-only scenarios. 00:13:16 I suppose that would work, but not *through* someone's DHCP server really; and if they let you to talk to your arbitrary DHCP server, chances are you could send any UDP traffic to that port and run OpenVPN/something. 00:13:45 :( 00:14:38 Maybe some DHCP option would cause the DHCP server to do something externally observable, though can't think of anything right now. 00:14:57 shachaf: ip over ip? wild! 00:15:22 And communication to the other direction (so that you could affect the DHCP server's response from some external source) would probably be even trickier. 00:15:58 if you find a DoS attack that you can reverse at will, do morse code by controlling the length of their outages 00:16:16 IP over any other IP would smell as sweet. 00:17:20 There is IP over carrier pigeon, it is very slow but it has been done. 00:17:29 (or not morse code, but a better code for arbitrary binary data) 00:18:56 fizzie: IP over, umm, umm... 00:18:59 Umm. 00:19:15 IP over twitter? 00:19:20 Maybe... IMAP? 00:19:36 Ooh, ooh, how about NTP? 00:20:13 There are some firewalls that don't really do stateful packet filtering, but just rely on the fact that you need a TCP 'SYN' packet to establish an outgoing connection; thusly they allow non-SYN TCP under the impression that it's an "established connection". You could tunnel through firewalls like that with IP-over-broken-TCP. 00:20:41 X-D 00:21:19 Astrolog does not support hour angles. I know some programs allow the 0 degrees to be set to other objects such as the North Node, but it should allow any object. And then if you also allow negative harmonic factors, then selecting equatorial coordinates with Zenith at 0 and -1 harmonic factor, that should display hour angles. 00:21:21 C'mooon, IP over NTP, work with me here. 00:21:30 IP-over-NTP has the same problem as IP-over-DHCP that in general the servers just respond, they don't forward your questions along. 00:22:05 IP over DHCP is considerably more feasible (also: actually implemented, IIRC) than IP-over-NTP ... 00:23:34 How's that at all useful? Or does that really go "through" an un-collusive DHCP server? 00:23:42 I guess what we're learning here is that the only bidirectional highly-connected ubiquitous global public system is DNS :P 00:23:51 Probably because having two of them is really painful. 00:23:57 elliott: There's also IP. 00:23:58 (Although so is having one.) 00:24:13 shachaf: Well, that's not really the same kind of distributed system, is it? I suppose it's similar. 00:24:22 I don't think IP routers do the same kind of caching, though :P 00:24:27 They should! 00:24:38 Clearly we should extend IP so that it can do DNS. 00:24:52 Maybe IP should be content-addressed. 00:25:06 Also that. 00:25:57 fizzie: Tell me how to do DNS over IP! 00:26:09 "IP over DHCP" is kind of hard to Google for, because it's all full of talk about getting an IP address "over" (as in, via) DHCP. 00:26:23 "When DHCP server is on an other VLAN, when swyx phones don't become an IP adress and DHCP relay is configured on the switch, you have to delete." 00:26:37 is one thing I found googling for it... sounded interesting, but not related to IP-over-DHCP 00:26:53 especially curious about the need to delete 00:27:12 elliott: Well, you could start by defining an UDP-based protocol, and then setting up a set of well-known-address servers that would serve as the root of the distributed database... 00:27:35 (In other words, DNS runs over IP.) 00:28:14 FireFly: It was a joke. 00:28:16 fizzie: it is possible that it was some sort of joke 00:28:20 YEAH FIREFLY 00:28:23 TAKE THAT 00:29:49 :< 00:30:54 ip over ntp might be interesting when considered as steganography - though it might be hard to explain the amount of ntp traffic you need to generate to "update your clock" 00:31:36 olsner: Perhaps you just *really* care about the time. 00:32:04 How about IP over Ethernet? 00:32:25 elliott: Should I install Arch? 00:33:06 -!- monqy has joined. 00:33:44 fizzie: yeah, so it shouldn't be hard to convince people that you're just clinically insane and obsessed about losing time, and not at all involved in clandestine operations 00:35:38 olsner: Certainly easier than, say, steganography over innocuous-looking IRC comments. (Also there is NOTHiNG going on here, and the unusual letter casing earlier was not at all significant.) 00:37:05 Also, X+jS5u5nNU01u9fCFXtEVb5sr4dXQjhuSL3E1BsMmUA=. Just thought I should mention. 00:39:35 indeed 00:39:49 IP over IRC then? 00:40:13 I'd almost guesstimate that would have been done. 00:40:22 yeah, it should've been 00:41:00 http://offog.org/ideas/ip-over-everything.html 00:41:11 The linked-to 'ipox' sounds like it has. 00:41:33 It's not being very openy, but still. 00:42:04 What is with people named Oleg? 00:42:07 Or is this the same Oleg? 00:42:32 though I think Ethernet over IRC is a better fit: each channel corresponds to an ethernet segment, clients that have joined several channels can act as switches/bridges, and somewhere there could be routers 00:42:58 Sgeo_: different olegs 00:43:09 How many Olegs are there? 00:43:20 I think Oleg is a fairly common russian and/or slavic name 00:43:24 2 or 3, I think. THE Oleg, ipox Oleg, and esolangs Oleg 00:43:35 I don't know if ipox Oleg and esolangs Oleg are the same 00:44:09 But User:Oleg is not THE Oleg, right? 00:44:15 esolangs oleg is unknown to me 00:44:47 http://esolangs.org/wiki/User:Oleg 00:45:29 that appears to be an Oleg Mazonka 00:45:59 the "THE Oleg" is (iirc) Oleg Kiselyov or something similar 00:46:51 -!- azaq23 has joined. 00:47:47 anyway.. speaking of IP-over-anything, the way it should work is that your OS figures out what's accessible and whatever that is (an open wifi allowing only NTP access?) it'll hook you up to the interwebs somehow 00:53:25 WTF kind of wi-fi only has NTP access >_> 00:53:58 one where IP-over-NTP is required 00:54:50 lol 00:55:28 back 00:55:34 elliott: Should I install Arch? 00:55:39 shachaf: Onto Ethernet? Yes. 00:55:56 olsner: Certainly easier than, say, steganography over innocuous-looking IRC comments. (Also there is NOTHiNG going on here, and the unusual letter casing earlier was not at all significant.) 00:56:00 fizzie: WHAT LETTER CASIIIING 00:56:47 -!- PiRSquared17 has quit (Quit: ChatZilla 0.9.88 [Firefox 11.0a2/20111230042026]). 00:56:49 Gregor: the time wifi 00:56:53 tifi 00:56:55 witi 01:02:19 -!- Vorpal has quit (Ping timeout: 248 seconds). 01:02:42 fizzie: That base64 is binary. :/ 01:05:11 elliott: it's just bait to keep you from finding the hidden messages 01:08:23 hmm, I think it's sleepytime 01:12:03 now, I do wonder how much power my laptop drains in sleep/standby mode.. will 9870mWh last until morning or should I plug it in before going to sleep? 01:17:17 -!- olsner has quit (Ping timeout: 268 seconds). 01:36:59 -!- Sgeo_ has quit (Remote host closed the connection). 01:37:46 -!- Sgeo has joined. 01:38:02 elliott, kallisti update 01:39:31 -!- DCliche has joined. 01:42:42 -!- Klisz has quit (Ping timeout: 240 seconds). 01:45:24 -!- GreaseMonkey has joined. 01:47:53 http://esolangs.org/wiki/User:Zzo38/Astro-Q (PLEASE DO NOT MOVE THIS DOCUMENT TO MAIN NAMESPACE. IT DOES NOT BELONG THERE. KEEP IT UNDER MY USER NAMESPACE) 01:58:59 -!- kallisti has quit (Ping timeout: 260 seconds). 02:02:59 -!- kallisti has joined. 02:03:00 -!- kallisti has quit (Changing host). 02:03:00 -!- kallisti has joined. 02:03:56 -!- tswett has joined. 02:04:17 zzo38: why caps 02:04:30 `echo Warrigal is awesome 02:04:33 Warrigal is awesome 02:04:40 HackEgo: you're awesome, too. 02:04:47 whos wargl 02:05:16 elliott: It is in capitals on that page, too. I made it like that to ensure that people pay attention to that message instead of moving it to the main namespace 02:05:33 elliott: only the most awesome guy you've ever heard of. 02:05:50 zzo38: why do you think people would do that though, i've never seen that happen on esowiki 02:06:16 * elliott thinks the admins might object to the existence of the page, though 02:06:27 That is why I put that note there. 02:06:56 There are other subpages of my userpage as well which some esolang wiki people might not like, too, possibly. 02:07:03 huh? what is why you put the note there? 02:07:46 http://esolangs.org/w/index.php?title=Special%3APrefixindex&from=User%3AZzo38&namespace=0 02:07:59 ok... 02:10:03 Did you read this article too? http://esolangs.org/wiki/User:Zzo38/FurryScript 02:10:34 yes, that one is about an esolang though :P 02:11:43 Sort of 02:12:06 I designed as a domain-specific language, actually, but it could be considered esolang too 02:12:29 Really I just put it there to document it since some people have asked me to document it there on wiki, in a subpage of my user page. 02:13:58 Did you see this one too? http://esolangs.org/wiki/User_talk:Zzo38/FurryScript 02:15:53 elliott, what do you think about Nix? 02:16:20 Sgeo: do you mean nix or nixos 02:16:22 or nixpkgs 02:16:36 I'm curious about your opinion on all of them 02:17:04 Although I'm a bit fuzzy on the difference between nix and nixpkgs. Is nixpkgs just a central repository for nix? 02:17:07 nix packages 02:17:56 nixpkgs is a cross-platform collection of nix derivations 02:18:11 that can either work as a bootstrapped closed system (i.e. no outside dependencies past a bootstrap) or using host compilers etc. 02:19:12 anyway 02:19:28 nix is a raelly good idea and lightyears ahead of any existing package managers, although i disagree with several design decisions 02:19:30 *really 02:20:03 nixpkgs I... don't really have an opinion on, it's not really interesting beyond being a source of packages to use with nix. i guess they're okay, but it tends to lag behind a bit too much for my tastes 02:20:22 nixos is a good generalisation of nix's basic concept to operating system services but i'm not sure it's ready for prime time, and i again disagree with some design decisions 02:26:24 Do you know how to disable CPUID stuff for ARM processors? 02:35:57 * Sgeo is going to try putting Nix on the school computer 02:36:12 BECAUSE I CAN (maybe) 02:36:27 Also, maybe it will enable me to get Haskell on there finally 02:44:15 Sgeo: I wouldn't recommend it just to get GHC/Haskell pkgs. 02:44:32 elliott, you mentioned bootstrapping stuff, right? 02:44:36 I don't think there's a decent solution for getting a full up-to-date Hackage set with Nix. 02:44:37 Sgeo: Huh? 02:44:45 How is that relevant? 02:44:48 -!- MDude has changed nick to MSleep. 02:44:52 If I get nix's version of gcc with glibc or whatever working, maybe I can get Haskell working 02:45:02 I think my school's system uses some obsolete ... stuff 02:45:14 I don't know if that method is supported outside of NixOS. 02:45:15 I couldn't compile GHC from source (well, from source and binary) 02:45:22 What binary version? 02:45:35 I don't remember 02:45:39 I see. 02:46:03 ....and Nix did not compile 02:48:02 In file included from nixexpr.hh:6, 02:48:02 from nixexpr.cc:1: 02:48:02 symbol-table.hh:5:29: tr1/unordered_set: No such file or directory 02:48:02 In file included from nixexpr.hh:6, 02:48:02 from nixexpr.cc:1: 02:48:13 And then a bunch of errors after that that I can only assume are connecte 02:48:15 d 02:48:25 -!- PiRSquared17 has joined. 02:48:31 Finnmark 02:48:41 yes 02:48:50 Sgeo: your C++ library is too old 02:49:02 Sgeo: getting ghc compiled properly will be a lot easier. 02:49:26 I think it's too old for that 02:49:53 ok, i'll defer to your expert opinion. 02:50:01 As in, I tried it 02:50:13 Or at least, I tried what I thought was the way to compile it properly 02:50:23 yes, but you didn't tell us what went wrong, and there's no guarantee you did it correctly... 02:50:26 Although maybe you're referring to with the assistance of another machine 02:50:33 no 02:50:40 although you do have a perfectly good one right there 02:50:45 you're typing on it :p 02:51:07 The times I tried it, I was on a Windows machine at school, so I couldn't use that to help 03:00:01 does anyone know how long war and peace took to write 03:00:04 this is important info 03:01:06 @tell fizzie Chrome thinks your GitHub profile is one of my favourite sites because "github" completes to it. Thought you should know. 03:01:07 Consider it noted. 03:01:26 -!- Sgeo_ has joined. 03:03:45 Sgeo how long did war and peace take to write 03:03:54 -!- Sgeo has quit (Ping timeout: 240 seconds). 03:06:48 :( 03:07:23 * Sgeo_ thought you were quizzing him for some reason 03:08:43 -!- Darth_Cliche has joined. 03:08:54 no i actually need the info for science reasons 03:12:38 -!- DCliche has quit (Ping timeout: 255 seconds). 03:12:45 sheesh ill look it up myself 03:13:00 Time to push debug info into the Fythe AST format ... 03:13:27 WITH MAGIC 03:13:55 ok six years 03:14:02 no thanks to Sgeo_ 03:14:14 i'm going to be waiting an awfully long time 03:19:44 I should make my schedule for next semester 03:19:53 I'm already closed out of philosophy classes :( 03:21:35 * elliott f5s github wildly 04:01:34 elliott: bad manner 04:01:39 LDLDLDLDLDLDLDLD 04:04:10 kallisti: waht 04:05:22 :D 04:09:24 I want to play a good strategy RPG 04:09:44 I guess Dragon Age is an example of such a game. 04:10:01 preferably real-time or semi-real-time 04:14:11 kallisti: skiram 04:20:13 i suggest to everyone joining #freenode-newyears .. why? i dunno 04:20:25 i dont want to ;_; 04:21:09 good idea.. best not to 04:21:28 I suggest to don't joining #freenode-newyears .. unless you really want to do so. 04:22:00 well.. my comment is more about making it known :P 04:23:17 but its like infinite hours until new years 04:23:48 -!- cheater has joined. 04:23:52 Have you play Dungeons & Dragons game? 04:24:14 Did you play Scrabble or flower card or D&D at new year eve? 04:24:47 i was spamming. lets overlook it. 04:25:46 What did you watch at new year eve, anyways? 04:39:54 :t mapM_ 04:39:55 forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m () 04:44:35 @hoogle mapM_ 04:44:35 Prelude mapM_ :: Monad m => (a -> m b) -> [a] -> m () 04:44:35 Control.Monad mapM_ :: Monad m => (a -> m b) -> [a] -> m () 04:44:35 Data.Foldable mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m () 04:44:40 @hoogle void 04:44:40 Foreign.Marshal.Error void :: IO a -> IO () 04:44:40 Control.Monad void :: Functor f => f a -> f () 04:44:40 package void 04:45:24 thats an awesome language 04:46:43 -!- GreaseMonkey has quit (Quit: The Other Game). 04:55:28 elliott: skyrim is in absolutely no way a strategy game. 04:56:12 (note that "having strategies" doesn't count as a strategy game. Most games have those. ) 04:56:31 Then play skiram instead of skyrim 04:57:19 ... 04:57:26 you mean this: http://www.youtube.com/watch?v=Lh1-z_UhHhk (turn volume down) 04:57:39 Loks like grate gam 04:58:22 -!- itidus21 has quit (Ping timeout: 276 seconds). 05:00:37 -!- NihilistDandy has joined. 05:04:00 class Swap s where { swap :: s x y -> s y x; } Laws: swap . swap = id 05:06:30 looks good. 05:07:07 What would you call a function where f . f . f = id 05:07:45 kallisti: I don't know. 05:08:56 I'm tempted to call it like a "2-cycle inversion" or something terrible like that. 05:09:06 If you extended it to three maybe it is Rot like how Forth has a ROT command 05:10:07 http://stackoverflow.com/questions/8686376/recursive-haskell-and-stack-overflow Haskell can't evaluate infinite loops in finite time 05:10:12 this is why nobody uses Haskell in the Real World! 05:11:47 lolwat 05:11:59 I wonder the "exact same code in Python" looks like 05:12:35 +what 05:14:08 >>> def countStairs(n): countStairs(n-1) + countStairs(n-2) + countStairs(n-3) 05:14:08 ... 05:14:09 >>> countStairs(5) 05:14:20 (...several lines down...) 05:14:26 RuntimeError: maximum recursion depth exceeded 05:14:34 sanity restored. 05:15:08 oh I forgot the return. 05:15:18 maybe Python will optimize out the recursion. :> 05:15:52 Python doesn't have TCO 05:16:04 oh really? 05:16:14 I didn't know. >:) 05:16:56 tco is unpythonic 05:17:15 optimizations in general are unpythonic, I believe. 05:17:34 I have a music file containing the following notice: "a word of wisdom: if your nose is running, and your feet are smelling, check to see if you're upside down..." 05:17:55 -!- itidus21 has joined. 05:17:57 heh 05:18:10 (It appears in the sample names menu) 05:20:24 What is a generalized mathematical structure having a zero and a successor called? (Simply such that every one has a successor; not that they are infinite or that every element can be reached in this way) 05:22:35 -!- itidus21 has quit (Ping timeout: 252 seconds). 05:24:29 -!- itidus21 has joined. 05:28:46 "You, sir, are awesome." Pffft, as if compliments encourage me. All I care about is making my little number go up!!! 05:29:05 One day someone will present me with a number marked "how awesome you are" and give me a button I can press to increase it, and that will be the end of my productive life. 05:31:52 class C t where { z :: t; s :: t -> t; }; No laws (other than always being fully defined). What kind of mathematical structure is this? 05:32:03 c 05:33:15 No 05:35:06 -!- centrinia has joined. 05:35:48 `run perl -v 05:35:51 ​\ This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi \ (with 53 registered patches, see perl -V for more detail) \ \ Copyright 1987-2009, Larry Wall \ \ Perl may be copied only under the terms of either the Artistic License or the \ GNU General Public License, which may be found in the Perl 5 source kit. \ \ Complete documentation for Perl, including FAQ lists, should be found on \ this system using 05:36:04 `welcome centrinia 05:36:07 it's tradition 05:36:08 centrinia: 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 05:36:29 Wow, I started a tradition. 05:36:40 centrinia: Are you sure? 05:36:57 Maybe elliott started it. 05:36:59 `run echo 0 > share/awesome; (echo '#!/usr/bin/perl'; echo 'use v5.10;open my$f,"share/awesome";$_=1+<$f>;print"How awesome you are: ";say;select$f;say;close') > bin/awesome; chmod +x bin/awesome 05:37:03 No output. 05:37:04 `awesome 05:37:07 How awesome you are: 1 05:37:15 elliott: ^ 05:37:49 `run echo inf >share/awesome; rm bin/awesome 05:37:50 better get to work. 05:37:52 No output. 05:37:56 optimised 05:38:07 elliott: but now can't see how awesome you are. 05:38:12 `cat share/awesome 05:38:15 inf 05:38:22 elliott: that's an unspecified quantity 05:38:25 the system can't handle my awesomeness so it forgets the label 05:38:28 not my fault im too cool 05:38:28 it needs to say "how awesome you are: inf" 05:38:44 `run echo 'how awesome you are: inf' >share/awesome 05:38:48 No output. 05:38:48 so awesome i even patched the software's bugs 05:39:07 there are no bugs in the software 05:39:11 the specification is the code itself. 05:39:23 which now no longer exists.. 05:39:31 (in the current working copy) 05:40:11 "GHC actually has a cache of small values of type Int and Char, so in many cases these take no heap space at all. A String only requires space for the list cells, unless you use Chars > 255." ;; huh, i did not realise this 05:40:49 doesn't GHC also automatically unbox values when such is possible? 05:40:54 and reasonable. 05:41:01 Doesn't GHC typically store small strings in memory as C-style strings? 05:41:15 o.o? 05:41:25 I mean, along with the list cells. 05:41:30 I thought it did for some reason. 05:41:52 Let's playing D&D game of player characters named "Also" and "Kjugobe"? 05:42:10 it would have to determine that it doesn't grow indefinitely I would think otherwise that wouldn't be very efficient. 05:42:19 or, well, hmm 05:42:33 no because strings are immutable anyway. 05:42:43 shachaf: Well, it compiles them to C strings inteh binray and linked-listifies them at runtime, IIRC. 05:42:45 Wow I can't type. 05:42:54 Otherwise GHC executables would be even bigger. 05:43:15 If there is something wrong then correct it please 05:43:25 I would but I am lazy. 05:43:31 Oh, you mean about what you said? 05:43:56 I wonder how the file IO functions like getContents work. I would think it reads in larger chunks than characters. 05:45:20 elliott, would you be mad if I, say, made ftphs-conduit instead of ftphs-enumerator? 05:46:35 Sgeo_: My extremely controversial opinion is that I really don't care one bit. 05:47:10 elliott: Oh. 05:47:20 At runtime. 05:49:12 kallisti: (hGetContents h) is just (unsafeInterleaveIO . join $ ((\c -> (c:) <$> hGetContents h) <$> getChar) `catch` \e -> if isEOFError e then return [] else throwIO e)))))))) or whatever. 05:49:29 i.e. a trivial getChar loop but with unsafeInterleaveIO at every node. 05:49:42 elliott: What happens if you combine this small-cache thing with kmc's mutability hack? 05:50:03 elliott: I don't actually know what unsafeInterleaveIO does. 05:50:22 shachaf: Let's not find out. 05:50:31 elliott: Oh, come on. 05:50:31 kallisti: return . unsafePerformIO 05:50:38 That's against the spirit of this channel. 05:50:45 elliott: lolwat. weird. 05:50:48 You gotta do it, man. 05:52:40 kallisti, From an IO a, it gives an IO a, where doing the IO gives back an "a", but it's lazy and the original IO won't be performed until a is looked at similarly to ordinary laziness. 05:53:30 Sgeo_: You're encouraging my pedantic hat. 05:54:05 ? 05:54:27 kallisti: It transforms an action into one that has no side-effects and returns immediately; when forced, the value it returns causes the original action to be executed, and evaluates to its result. 05:54:28 Sgeo_: elliott is saying that you're being so imprecise it hurts. 05:54:33 Or something along those lines. 05:54:44 elliott: ah 05:54:57 My pedantic hat transforms clear statements into ones with twenty repetitions of "action that when executed returns". 05:55:23 elliott, your statement is clearer IMO 05:55:52 -!- centrinia has quit (Quit: Leaving). 05:56:14 I think fans of unsafeInterleaveIO would consider it unfair, because it's literally a description of the (return . unsafePerformIO) implementation :) 05:57:29 unsafeInterleaveIO has fans? (Besides me when I first learned about it) 05:57:50 Well, not "fans". There are of course people who believe its use legitimate. 05:58:11 I saw a function somewhere that seemed to be a legitimate use of unsafeInterleaveIO 05:58:18 Oh, right, fixIO 05:58:27 A common argument that I almost believe is that it's essentially just forkIO-style concurrency; IO actions are nondeterministic, so it's not actually impure to have effects in the spawned thread execute only when a value is forced. 05:59:01 http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/System-IO.html#fixIO 05:59:15 i.e. Let's say we have { data Var a; new :: IO (Var a); write :: Var a -> a -> IO (); read :: Var a -> a } where writes after the first one fail. 05:59:24 And read blocks until a write. 06:00:13 unsafeInterleaveIO m = do { sync <- new; value <- new; forkIO (evaluate (read sync) >> m >>= write value); return (unsafePerformIO (write sync ()) `seq` read value) } 06:00:38 It's essentially just concurrency, the impurity is isolated in the part where IO gets knowledge of when a pure value is forced. 06:00:52 But IO can do that sort of thing anyway; observable sharing and whatnot. 06:01:05 * elliott is only *almost* convinced of this, though. 06:01:25 elliott: Isn't part of it that the IO might not be executed at all? 06:01:57 shachaf: Well, yes. But to make my implementation a bit more abstract: 06:02:12 Should I write my own indefinite-precision number library for the learning experience? 06:03:08 shachaf: unsafeInterleaveIO m = do { value <- new; let result = read value; forkIO (waitUntilForced result >> m >>= write value); return result } 06:03:32 shachaf: If you agree that the Var interface is pure, then the only question is whether waitUntilForced is pure. 06:03:37 Erm. 06:03:40 shachaf: If you agree that the Var interface is pure, then the only question is whether waitUntilForced is "semantics-breaking". 06:03:55 (I'm not sure I agree the Var interface is pure, but I think waitUntilForced is as benign as things we do in IO all the time.) 06:04:27 (I mean, you can still use Var to control whether a pure value is _|_ or not from IO.) 06:04:40 (But in a sense that's morally indistinguishable from it just taking a really long time to evaluate if you never write to it.) 06:04:54 shachaf: So I don't see how whether the IO is ever executed or not is really relevant. 06:05:05 This Var thing is kind of like IVar, isn't it? 06:05:24 Maybe I should actually read what you're saying instead of assuming things about it. 06:05:42 shachaf: It's exactly IVar. :p 06:05:51 But yes, that would be good. 06:06:09 Isn't the usual IVar implementation in Haskell given with read :: IVar a -> IO a? 06:06:09 Oh, hmm. 06:06:13 It's not data-ivar IVars. 06:06:18 elliott: do you think it would be possible to make Haskell orthagonally persistent? 06:06:20 Right, this is IVar with read outside of IO. 06:06:29 kallisti: Orthogonal persistence is a property of systems, not languages. 06:06:33 * shachaf is iffy about this IVar-with-read-outside-of-IO thing. 06:06:46 shachaf: Yes, but for the moment accept it on faith. 06:06:54 elliott: do you think it would be possible to change the GHC runtime system so that it's orthagonally persistent? 06:06:59 That and waitUntilForced are all you need to accept to believe that unsafeInterleaveIO is just another concurrency mechanism. 06:07:29 elliott: in a way that you could... like... turn on as a language extension perhaps? or an IO action or....? 06:07:47 waitUntilForced as in "wait until (read var) is evaluated"? 06:07:50 kallisti: I don't know much about the GHC runtime, but I dunno, since it's thoroughly entrenched in C and traditional operating systems... maybe, since the number of C structures it uses is limited, and youc ould swap out the allocator... I'm not really interested in that, though. Also you're misspelling orthogonally. 06:07:51 No, I don't like that at all. 06:08:20 shachaf: Oh, hmm, my implementation is broken. But it's trivial to fix without introducing new primitives. 06:08:25 shachaf: What do you think of observable sharing? 06:08:32 That's possible to do solely from IO. 06:08:48 And that "breaks" Haskell's semantics in similar ways; you can observe things you Can't(tm) about pure values. 06:08:48 That's at least one more level of evil than concurrency primitives. 06:08:56 Sure, you "can" do anything from IO. 06:09:01 shachaf: It's an implication: "if waitUntilForced is OK, then this is just concurrency". 06:09:03 I think they are all wrong. Better way, make separate parts of the program, one is IO, and then another program takes the execution of that program as an IO to make a new IO from that, so that way include all threading and "undefined" use error and memory manage and so on, so that both sides are mathematically correct even though their combination, if combined directly, isn't. 06:09:15 shachaf: You "'can'"? 06:09:18 I'm not sure what you're getting at. 06:09:20 But I think you'll agree that putStrLn is more benign than writing into /dev/mem. 06:09:45 Sure. I'm not denying that. I'm just asking why, or if, you think waitUntilForced is less benign than observable sharing. 06:10:06 I'm not sure I said that. 06:10:24 (Were I Conal, I would win by pointing out that the fact that you can do anything in IO means we have no idea what Haskell programs actually mean and then riding a unicorn off into the sunset.) 06:10:29 shachaf: That's why I said "or if". Sheesh :P 06:10:44 elliott: I was trying not to Godwin Conal into this discussion, man. 06:11:05 I parenthical-Godwinned him. 06:11:07 There's probably a law involving Conal and discussions of IO in Haskell. 06:11:09 What do you think my suggestion means (if anything)? 06:11:40 elliott: Anyway, I think observable sharing is less benign than concurrency primitives. 06:11:57 I don't know what "benign" actually means, of course. 06:11:59 shachaf: Why do you believe I'm saying unsafeInterleaveIO is as benign as concurrency primitives in stock Haskell? 06:12:13 Why do you believe I believe that? 06:12:25 What I am saying is: If you accept Var and waitUntilForced as OK, then unsafeInterleaveIO *literally is* a concurrency feature. (Not even a primitive.) 06:12:38 Oh, well, sure. 06:12:39 shachaf: Because you keep answering my questions as if you do. 06:12:42 You gave an implementation up there. 06:12:50 Well, yes, that's the point. 06:12:55 Well, right. 06:13:03 Are we arguing about *that*? 06:13:04 I'm just saying that Var and waitUntilForced both seem a lot less horrible than unsafeInterleaveIO. 06:13:05 That would be silly. 06:13:14 Which is why I almost believe unsafeInterleaveIO is OK. 06:13:26 But I don't really, because I don't totally believe in Var. 06:13:35 Why does waitUntilForced seem less horrible than unsafeInterleaveIO? 06:13:38 Ah, this is Var: http://hackage.haskell.org/packages/archive/sink/0.1.0.1/doc/html/Data-Sink.html 06:14:08 elliott: Your implementation *does* use unsafePerformIO. 06:14:10 Oh, wait, it doesn't. 06:14:51 "Sinks are a more flexible alternative to lazy I/O (unsafeInterleaveIO)." 06:14:53 shachaf: Actually, waitUntilForced I have zero qualms about. It's Var I find suspect. But it doesn't seem horrible because reacting to pure values in side-effectful ways is sort of the entirety of what IO does. I have absolutely no qualms -- beyond my standard qualms about IO, I mean, if we're in the sin bin, might as well use it -- about IO-based observable sharing, and waitUntilForced actually seems more benign than that to me. 06:15:18 I'm not sure I'd want my thing to be called "more flexible alternative to unsafeInterleaveIO". 06:15:40 shachaf: Well, Var is blantantly less powerful than unsafeInterleaveIO, because you'd have to just immediately do the IO to make use of it like that :) 06:16:55 shachaf: Actually, you don't even really need waitUntilForced. 06:17:45 entangle :: IO ((), ()); entangle = do { v <- new; return (unsafePerformIO (write v ()), read v) } 06:18:23 unsafeInterleaveIO m = do { value <- new; (trigger, wait) <- entangle; forkIO (evaluate wait >> m >>= write value); return (trigger `seq` read value) } 06:18:59 I'm pretty sure anything called "entangle" isn't benign at all. 06:19:06 Glad we're on the same page! 06:19:09 I really want to put that on Hackage now. 06:19:23 As long as it, like, starts with acme-, man. 06:21:50 -!- NihilistDandy has quit (Quit: Linkinus - http://linkinus.com). 06:22:41 How much mathematically correct do you think my suggestion is, compared to the other way? 06:23:50 entangle :: IO ((), ()) 06:23:50 entangle = 06:23:50 fmap ((`putMVar` ()) &&& takeMVar >>> both unsafePerformIO) newEmptyMVar 06:23:53 shachaf: Beautiful, no? 06:24:10 :t both 06:24:10 Not in scope: `both' 06:25:56 Does window have two hose? 06:26:40 monqy: join (***) 06:26:59 shachaf: I've decided that isn't worthy of the name entangle. 06:27:08 shachaf: I shall now construct an entangle where 06:27:29 After (a, b) <- entangle, forcing either "a" or "b" only terminates when the other is. 06:27:32 That is, err, they synchronise. 06:29:12 what would be worthy of the name entongle 06:30:00 What is the mathematical name for a kind of mathematical structure like I described above "class C"? 06:31:28 i don't know :( 06:31:29 sorry 06:32:14 Do you know someone know mathematics better? 06:32:35 monqy: do you like my revised entangle i think its: grate 06:33:26 i dont know what its about ;_; black magicks??? 06:33:44 monqy: entangle returns a pair of ()s; forcing each () blocks until the other is forced 06:33:54 that is, evaluating either terminates only when both are evaluated 06:34:09 wonderful 06:34:38 sounds like a mutex-like thing 06:35:31 quintopia: yes but this is with pure values :') 06:35:33 they're just 06:35:35 quantum magic 06:36:18 To me it seems mathematically incorrect; the result of the program should always have an answer according to its input, not according to the number of times it is used. 06:36:23 i think it doesnt sound much like the behavior of quantum entanglement 06:36:56 monqy: here's my next trick...... 06:37:01 cross :: IO (a -> b, b -> a) 06:37:07 guess what it doe 06:37:08 s 06:37:18 oh no 06:37:23 :D 06:39:17 lolwat 06:40:00 *Main Control.Parallel> (f, g) <- cross :: IO (String -> Int, Int -> String) 06:40:00 *Main Control.Parallel> let x = f "hi"; y = g 42 in x `par` y `par` (x, y) 06:40:00 (42,"hi") 06:40:00 *Main Control.Parallel> (f, g) <- cross :: IO (String -> Int, Int -> String) 06:40:00 *Main Control.Parallel> let x = f "hi"; y = g 42 in (x, y) 06:40:00 ( 06:40:03 monqy: isn't it beautiful 06:40:25 Quantum entanglement is still mathematicall correct, however. 06:41:27 shachaf: You gotta think cross is benign. 06:41:28 It's the benignest. 06:41:40 its spookey 06:41:55 what does it do? 06:42:36 it um 06:42:39 i'm not even sure how to explain it 06:42:45 does it do anything? 06:42:47 one function feeds the value into the other 06:42:50 in 06:42:53 a very unsanitary way 06:43:17 is it a swap, or something far more diabolical? 06:43:27 its 06:43:29 dibblocal 06:44:59 rumor has it that cross is an abominantion 06:45:21 I think my "class C" resembles the first six Peano axioms on http://en.wikipedia.org/wiki/Peano_axioms so maybe it is a "Peanoid" 06:45:37 Is that even a word? 06:46:08 its piano 06:46:29 Can you play piano? 06:46:31 monqy: here's a wonderful thing you can build with cross 06:46:33 tell :: IO (a -> (), a) 06:46:33 tell = do 06:46:33 (f, g) <- cross 06:46:33 return (f, g ()) 06:46:45 oh wait that doesn't work quite right 06:46:49 Peanon aksioomat ovat matematiikassa italialaisen matemaatikko Giuseppe Peanon esittmt yhdeksn aksioomaa, jotka mrittvt luonnolliset luvut. Aksioomat perustuvat funktioon S, jolle S(a)=a+1 (merkitn mys Sa=a+1) kaikilla luonnollisilla luvuilla a. 06:47:08 yes 06:47:23 Good. 06:47:23 *Main Control.Parallel> (f,x) <- tell :: IO (Int -> (), Int) 06:47:24 *Main Control.Parallel> f 42 06:47:24 () 06:47:24 *Main Control.Parallel> x 06:47:24 42 06:47:27 i fixed it 06:48:45 shachaf: Hey, I could combine these with kmc's mutation hack. 06:49:04 vary :: IO (a, a -> IO ()) -- you can write multiple times 06:51:27 Is there a better name than "peanoid"? 06:51:59 elliott: not IO (IO a, a -> IO ()) ? 06:53:41 copumpkin: Hell no! 06:53:51 copumpkin: This all got started with entangle :: IO ((),()); guess what it does. 06:53:52 oh ok 06:54:18 sounds useful 06:54:57 That's not a guess. :( 06:55:50 um 06:55:52 elliott, kallisti update 06:56:05 it does all sorts of evil shit with unsafeperformio and then gives you a () 06:56:15 copumpkin: Sheesh! It gives you TWO ()s. 06:56:18 copumpkin: Two ENTANGLED ()s. 06:56:21 zomg 06:56:23 Entangled with value (). 06:56:31 they sound extremely useful 06:56:40 both of them 06:56:48 copumpkin: Either one only evaluates to () when both are being forced. 06:56:53 It's a synchronisation primitive! 06:57:13 You both just look at your ()s at the right time, and once it's in WHNF you know you've both looked at it. 06:57:14 lol 06:57:23 entangle = do 06:57:24 a <- newEmptyMVar 06:57:24 b <- newEmptyMVar 06:57:24 return (sync' a b, sync' b a) 06:57:24 where sync' x y = unsafePerformIO $ 06:57:24 putMVar x () >> (takeMVar y `onException` takeMVar x) 06:57:43 -!- Darth_Cliche has quit (Quit: SLEEP, GLORIOUS SLEEP). 06:58:32 elliott, shall I assume you read updates when I say update? 06:59:06 I don't read kallisti's new updated code. 06:59:12 He's too defective to be fixed by incremental patching. 06:59:17 But it's good to know someone's on the job. 06:59:18 lol 07:06:28 -!- PiRSquared17 has quit (Quit: Bye ...). 07:10:55 elliott: ;_; 07:16:16 ok im slep 07:16:20 zzzs 07:17:10 z 07:20:37 -!- elliott has quit (Ping timeout: 240 seconds). 07:26:09 how are extensions implemented? 07:26:28 are they just patched into GHC or is there like an API. 07:43:50 -!- itidus21 has quit (Ping timeout: 252 seconds). 07:49:46 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 07:58:19 kallisti, update 08:11:15 Do you know the "two envelopes problem"? I think if you are allowed to open it, the solution is to count the money, and if it is odd then you have to switch. But, if the smaller money is even then the larger money will be a multiple of four, and so on. Is the people offering you the envelopes trying to trick you? 08:24:43 -!- zzo38 has quit (Remote host closed the connection). 08:26:43 @tell elliott Aw, I was eating dinner while you were innovating. 08:26:43 Consider it noted. 08:31:38 -!- azaq23 has quit (Read error: Connection reset by peer). 08:46:20 my vim-like project will be called atto 08:49:21 attoboy 08:56:21 it will be done when elliott's next project is 08:58:32 coppro: @to? 08:58:50 -!- itidus21 has joined. 09:01:23 "western side of the international dateline" is that in absolute terms or relative to the way "east" and "west" are usually framed. 09:02:16 oh okay 09:02:18 absolute terms 09:02:25 by moving west of the date line they're in the eastern time zones. 09:04:29 imagine how much European commerce would get fucked up if the date line was suddenly shifted to the prime meridian. 09:12:34 so a thought just occured to me while reading the trolley problem on wiki.. 09:13:15 shachaf: ? 09:13:22 oh 09:13:27 hmm... I like it 09:13:29 @to 09:13:29 Maybe you meant: todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell do 09:13:37 lol 09:13:41 brilliant 09:13:51 my project name sets off lambdabot 09:14:02 a trolley is heading to kill 5 people on some track.. but those 5 people have the power to divert the trolley to kill 1 person 09:14:51 so here my pondering is, should the 5 people accept their fate, or kill the 1 by diverting the trolley 09:16:45 congratulations, you discovered moral dilemmas 09:17:01 now this opens up an interesting aspect of the trolley problem.. of supposing that in the regular trolley problem, the person could ask the people involved what they think 09:21:54 i would also try to take into account the side-effects of the decision 09:22:48 like, it may be that someone has a big stash of money waiting for you if you choose one decision over the other 09:22:59 -!- Madoka-Kaname has quit (Ping timeout: 255 seconds). 09:23:10 or you may owe a debt to one party 09:25:16 kallisti, update 09:29:34 -!- Ngevd has joined. 09:29:48 Hello! 09:30:00 Ngevd, updates 09:30:29 Thank you 09:31:24 You're welcome 09:31:53 Site won't load... 09:33:35 -!- zzo38 has joined. 09:38:58 -!- Ngevd has quit (Ping timeout: 252 seconds). 09:44:40 -!- sebbu2 has quit (Read error: Connection reset by peer). 09:44:51 -!- olsner has joined. 09:47:20 -!- sebbu2 has joined. 09:47:20 -!- sebbu2 has quit (Changing host). 09:47:20 -!- sebbu2 has joined. 10:03:30 -!- Ngevd has joined. 10:10:28 Hello! 10:11:48 Once a long time ago, my sister was attempting to use my computer without my permission. The computer wasn't on, and didn't require a floppy disk to boot. However, she took a blank disk from my cupboard, inserted it into the computer, and then pushed the disk eject button. She did this over and over again, until finally she turned to me and said: "I put the disk in and push the START DISK button, but it just comes back out! Am I doing something 10:12:30 Ah, the days when computers didn't do what computers did 10:14:35 zzo38: you got cut off at "Am I doing somethin" 10:14:40 -!- oerjan has joined. 10:16:10 g wrong?" 10:16:52 I remember the first time I used a computer 10:17:00 so, had she ever successfully used any computer before then? 10:17:16 I was three or maybe four 10:17:33 olsner: I don't remember now. 10:18:56 If I learnt COBOL, I'd be a second-generation COBOL programmer 10:27:13 @hoogle (r,r) -> a -> Array r a 10:27:13 Data.Array listArray :: Ix i => (i, i) -> [e] -> Array i e 10:27:13 Data.Array accumArray :: Ix i => (e -> a -> e) -> e -> (i, i) -> [(i, a)] -> Array i e 10:27:13 Data.Array.IArray listArray :: (IArray a e, Ix i) => (i, i) -> [e] -> a i e 10:27:30 > listArray (1,10) (repeat 0) 10:27:31 array (1,10) [(1,0),(2,0),(3,0),(4,0),(5,0),(6,0),(7,0),(8,0),(9,0),(10,0)] 10:27:59 ...is defaults to 0 a sensible thing for Haskell arrays to do <-- looks easy enough to make, anyway 10:28:40 of course it only makes sense for values of Num class 10:29:52 oh hm i think unboxed arrays might default in that way 10:30:17 @hoogle (r,r) -> a -> UArray r a 10:30:18 Data.Array.IArray listArray :: (IArray a e, Ix i) => (i, i) -> [e] -> a i e 10:30:18 Data.Array.MArray newArray :: (MArray a e m, Ix i) => (i, i) -> e -> m (a i e) 10:30:18 Data.Array.IArray accumArray :: (IArray a e, Ix i) => (e -> e' -> e) -> e -> (i, i) -> [(i, e')] -> a i e 10:31:14 i might be able to investigate this further if not for this barking dog sucking out my brain cells. 10:39:17 -!- Phantom_Hoover has joined. 10:41:48 * oerjan swats FireFly -----### 10:52:19 What is this about FireFly? 10:52:34 i noticed him in the logs 10:52:45 also he's so very swattable. it's in the name. 10:55:26 What would you call a function where f . f . f = id <-- period 3 10:56:47 (it's an element of the permutation group of its domain) 10:57:08 hm also order 3, then 11:07:06 Do you know the name of a generalized kind of mathematical structure satisfying the first six Peano axioms (as given in that Wikipedia article)? 11:07:16 > let countStairs = [1,1,1] ++ map (sum . take 3) (tails countStairs) in countStairs 11:07:18 [1,1,1,3,5,9,17,31,57,105,193,355,653,1201,2209,4063,7473,13745,25281,46499... 11:08:16 ah i see what you did there 11:08:20 I called it a "peanoid" but maybe there is a different name 11:08:40 so thats a fibonacci-3 :-? 11:08:56 im sure it has better name 11:09:10 zzo38: 2-5 are axioms of predicate logic with equality, i think, so rather implicit in any normal set theory structure 11:09:24 (well, axioms or propositions) 11:09:33 oerjan: Yes; that leaves axioms 1 and 6 11:10:58 zzo38: then you only have a constant and a monic predicate, which i think gives a decidable theory 11:11:09 er wait 11:11:13 *function 11:11:31 it's a rather simple algebraic variety. 11:11:40 don't know if it has a name 11:12:02 That is why I suggested "peanoid" but maybe there can be better name, I don't know 11:12:35 (Like they have "groupoid" and that stuff) 11:13:18 -!- sebbu2 has changed nick to sebbu. 11:14:02 zzo38: http://en.wikipedia.org/wiki/Peano_axioms#Interpretation_in_category_theory might be somewhat relevant, even if not exactly the same 11:15:20 or is it really, that looks complicated 11:16:50 I did see that, and I think that isn't really what I was looking for. 11:17:51 They are talking about a specific category there. 11:17:59 oh wait s/algebraic variety/variety (universal algebra)/, if you're looking up on wikipedia 11:20:08 http://en.wikipedia.org/wiki/Algebraic_structure calls it "pointed unary system" 11:21:41 I know I saw on the Peano axioms article, pointed unary systems. That kind of category does still mean something to me, but I am not trying to make a category. 11:22:20 zzo38: no this second link is not category theory, it's just the same term used for the algebraic structure 11:22:42 OK 11:23:52 Yes I can see that. 11:24:35 so thats a fibonacci-3 :-? <-- it was discussed in http://stackoverflow.com/questions/8686376/recursive-haskell-and-stack-overflow which elliott linked to 11:24:45 A pointed unary system is a bit more generalized kind that can have "one or more distinguished elements, often 0, 1, or both" 11:25:04 i just made the list version 11:25:52 But yes, it is still a pointed unary system. 11:26:54 i've heard "pointed set" as a set with a single distinguished element, so i think it's usually 1 unless otherwise specified 11:27:32 However, mine has exactly one distinguished element which the structure provides (it could have others, although the others are not provided by my structure) 11:28:36 yeah 11:34:34 Is there a Haskell library providing such a class? 11:35:05 i don't know 11:35:32 Pointed is something else, iirc 11:39:37 -!- PatashuXantheres has joined. 11:39:49 I think fans of unsafeInterleaveIO would consider it unfair, because it's literally a description of the (return . unsafePerformIO) implementation :) <-- the advantage of unsafeInterleaveIO is in the better guarantees against unwanted execution 11:41:02 e.g. since it isn't a pure result, it cannot be inlined by ghc's optimizer 11:41:14 -!- Patashu has quit (Ping timeout: 240 seconds). 11:41:22 *inlined in multiple places 11:42:37 -!- PatashuXantheres has quit (Read error: Connection reset by peer). 11:42:53 Yes, I think Pointed is something else. 11:54:04 -!- Patashu has joined. 12:00:10 -!- zzo38 has quit (Remote host closed the connection). 12:09:25 -!- lahwran has joined. 12:10:07 uhhhh 12:10:15 google doesn't know about that md5sum ... 12:10:21 :( 12:10:26 -!- readme has joined. 12:11:17 http://codu.org/logs/_esoteric/ 12:11:17 `log topic.*codu 12:11:59 No output. 12:12:03 wat 12:12:33 `log | http://codu 12:12:55 shuf: memory exhausted 12:13:01 sheesh 12:13:29 `log solidity.* | http://codu 12:13:52 2011-12-25.txt:09:33:27: kallisti: you know i just looked it up on http://codu.org/projects/hackbot/fshg/index.cgi/rev/d30da6e6e1c6?revcount=240 12:14:09 ....wat 12:14:16 oh duh 12:14:26 `log [|] http://codu 12:14:32 2011-11-20.txt:17:06:18: -!- elliott_ changed the topic of #esoteric to: The IOCCC is back on! http://www.ioccc.org | http://esolangs.org/ | http://codu.org/logs/_esoteric/ 12:14:45 oh well 12:14:53 -!- oerjan has set topic: http://codu.org/logs/_esoteric/. 12:15:43 `welcome lahwran 12:15:46 lahwran: 12:15:53 >_< 12:15:56 `welcome lahwran 12:15:59 lahwran: 12:16:05 wtf 12:16:08 haha 12:16:14 HackEgo really isn't working well today 12:16:18 `welcome 12:16:21 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 12:17:24 `@ oerjan echo What do you mean I'm not working? 12:17:27 oerjan: What do you mean I'm not working? 12:17:55 -!- readme has quit (Quit: Lost terminal). 12:20:05 fungot: Please help your fellow bot-friend HackEgo get better. 12:20:05 fizzie: i am just as confused. you just don't encourage, because even though mr van den burg for an enormously well done.' granny handed it to me, for there are elements that go to/ head by a cliff similarly composed, but including many nodular and stalactiform concretions: i found " 640? 1. a `while' and `write in' or ' ' land" into either, man! you have a whip? why do 12:20:06 fizzie: You have 1 new message. '/msg lambdabot @messages' to read it. 12:21:13 I suppose it was pointles to expect any help from that direction. 12:22:27 ^style 12:22:27 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot* homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 12:23:48 "granny" probably from discworld, and then there are some very darwinistic elements. 12:23:56 Especially the / bug. 12:26:11 ^style darwin 12:26:11 Selected style: darwin (Books by Charles Darwin -- you know, that evilution guy) 12:26:32 fungot: What's all this "men are descended from apes" nonsense? 12:26:33 fizzie:/ love :) a dog by a turkey; selection :) mate by female birds; shewn by birds in confinement well know that many tropical plants and other productions will have retreated from both sides towards/ equator, to fnord 12:27:04 / = the, :) = of. 12:28:40 fungot: Man, Darwin sure was ony happy guy? 12:28:41 fizzie: distribution :) coral-reefs, and their being found near barmouth, is quite helpless, and/ tentacle moves. see pfeffer, :( fnord." here it is impossible to doubt that/ reefs are distant from/ nearest or fnord source, together with their modification through natural selection 12:28:41 that's a pretty bad bug 12:28:59 I don't know what :( is. 12:29:21 In? 12:29:31 Very possible. 12:29:46 fungot: What's in where? 12:29:46 fizzie: pot 1: 36: 22 4? 8. 12:29:54 "Ah." 12:33:53 00022550 55 4f 54 50 51 55 45 53 54 50 53 4c 41 53 48 74 |UOTPQUESTPSLASHt| 12:33:53 00022560 68 65 6f 66 61 6e 64 69 6e 74 6f 61 69 74 68 61 |heofandintoaitha| 12:33:53 00022570 74 6f 6e 69 73 61 73 77 69 74 68 62 79 68 61 76 |tonisaswithbyhav| 12:34:22 the, of, and, in, to, a, i, that, on, is, as, with, by, ... 12:34:37 And the punctuation goes 12:34:41 ^source 12:34:41 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 12:36:07 Hmm... 12:36:48 If I'm reading it right, it's just /, :), and anything after that should work out right. 12:37:08 And it gets "and" right. 12:37:20 Maybe Darwin was just being frowny there. 12:40:58 i see an "in" too 12:41:15 also "to", "a" 12:47:42 But the punctuation is messed up too 12:48:07 So the :( was some other punctuation for reals; don't have time to check out what. 12:48:21 (To the shops now.) 12:53:32 -!- olsner has quit (Ping timeout: 240 seconds). 13:06:59 -!- olsner has joined. 13:07:10 -!- oerjan has quit (Quit: LAteerrrrrrrrr). 13:18:11 -!- sebbu2 has joined. 13:18:11 -!- sebbu2 has quit (Changing host). 13:18:11 -!- sebbu2 has joined. 13:19:55 -!- sebbu has quit (Ping timeout: 240 seconds). 13:26:10 -!- ais523 has joined. 13:27:17 -!- Madoka-Kaname has joined. 13:27:17 -!- Madoka-Kaname has quit (Changing host). 13:27:17 -!- Madoka-Kaname has joined. 13:27:35 @tell oerjan aha. a permutation group. 13:27:36 Consider it noted. 13:28:01 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 13:30:07 -!- Ngevd has quit (Ping timeout: 252 seconds). 13:32:08 haha: http://www.theverge.com/microsoft/2011/12/29/2667941/microsoft-windows-phone-sms-bug-fix 13:32:18 now /that's/ an impressive vulnerability to make by mistake 13:32:53 (apparently, you can reboot a Windows phone, and break the SMS handling software even beyond a reboot, with a specially crafted text message) 13:33:17 my guess is some sort of vulnerability in encoding handling, but I don't know 13:44:41 ais523: I spent a good portion of yesterday trying to find multi-byte character exploits in an IRC bot that emulates sed's s command 13:44:49 so that I could execute arbitrary sed on it. no luck though. 13:45:28 the bot owner has foiled me by only looking at strings as single byte sequences. :P 13:45:47 heh 13:46:16 kallisti: just the bit inside the ///? or does the bot let you put letters afterwards? 13:46:25 it only allows some options 13:46:40 I tried the opotion r and e options. 13:46:51 er, I'm not sure what opotion was supposed to be. 13:48:52 oh and by r I mean w 13:49:04 I SHOULD GET MORE SLEEP BUT I DON'T THINK THAT IS HAPPENING 13:49:08 and I have a lot of work to do. 13:50:13 hmm, I'm unsure if I was asleep overnight; I probably was for bits of it 13:51:26 -!- Deewiant has quit (Ping timeout: 240 seconds). 13:56:57 -!- Ngevd has joined. 13:57:01 Ngevd: heyo 13:57:08 Hello 14:16:23 -!- monqy has quit (Quit: hello). 14:39:35 -!- olsner has quit (Quit: Leaving). 14:50:10 -!- sebbu2 has changed nick to sebbu. 14:58:44 kallisti, what's up? 15:02:31 sebbu! 15:02:49 my guess is some sort of vulnerability in encoding handling, but I don't know 15:02:49 ? 15:02:52 Phantom_Hoover, you aren't kallisti and sebbu isn't up 15:03:00 If it was a buffer overflow... 15:03:16 sebbu: Phantom_Hoover's two lines before you ?ed are unrelated, I think 15:03:31 Phantom_Hoover: it'd be quite impressive to buffer overflow in a text message 15:03:34 char buffer[141]; 15:03:39 see, no buffer overflow there ;) 15:03:44 it's 16:03, hard not to be up 15:03:46 Exactly. 15:04:01 sebbu, you don't pay much attention to this channel, do you? 15:04:02 Ngevd: work. 15:04:13 ais523, irc raws can be 512 utf-16 characters long 15:04:13 Being asleep at four in the afternoon is not uncommon. 15:04:33 i'm not the siesta type 15:04:37 sebbu, we're talking about SMSes. 15:04:42 oh 15:04:59 what if someone send a text of several sms ? 15:05:14 That doesn't make much sense? 15:05:14 does it concatenate them before or after your buffer ? 15:05:19 A text is one SMS, isn't it? 15:05:27 not mandatory 15:05:50 if i write 142 characters, it'll use 2 sms 15:06:11 http://en.wikipedia.org/wiki/Concatenated_SMS 15:06:13 Phantom_Hoover: mobiles automatically split a text into multiple SMS and rejoin it, nowadyas 15:06:37 they already did that 7 years ago 15:06:44 didn't use much my mobile before then 15:06:49 Still, buffer overflowing with that is impressive. 15:07:00 we don't know if it was a buffer overflow or something else 15:07:03 yet 15:07:06 beside, it's 160, not 140 ;) 15:08:00 [16:03:32] sebbu, you don't pay much attention to this channel, do you? <-- i only use brainfuck & D as esoteric languages :p 15:08:23 (and some others which aren't much used, but not exactly esoteric) 15:08:28 ais523, I know; the point is that a buffer overflow would be hilarious. 15:08:55 It's also only 160 if you stick to the 7-bit GSM alphabet. 15:10:09 There's no programming languages on wikipedia called H or I 15:10:32 I T U aren't used if i remember well, H should be 15:11:14 N and O aren't 15:11:17 A isn't? 15:11:27 P also isn't? 15:11:34 T is 15:11:52 U to Y aren't 15:12:11 A,H,I,N,O,P,U,V,W,X,Y 15:12:19 A is Assembler, oftern used as asm 15:13:07 There's an esolang V 15:13:10 although asm gets the .s extension 15:13:26 And Y 15:13:41 H,I,N,O,P,U,W,X 15:14:37 http://forum.osdev.org/viewtopic.php?f=13&t=14992&start=0 H exists 15:14:59 I NO U P WX 15:15:22 PIX NO WU 15:16:14 there's algol-n & n-lang 15:16:28 http://gitorious.org/n-lang 15:17:01 IOPUWX 15:17:19 http://blog.radicalbreeze.com/?p=213 15:17:23 I exists 15:18:46 O and P... probably don't 15:18:52 But there is P'' 15:19:03 Or is that a computational model, rather than a language? 15:19:16 Bah, doesn't count either way 15:19:34 U does 15:19:34 http://init.org.pk/papersandpublications/P5.pdf 15:19:38 i think all exists 15:19:43 +letters 15:19:55 Can't find O or P 15:28:39 -!- derdon has joined. 15:41:16 -!- Vorpal has joined. 15:57:31 -!- Ngevd has quit (Quit: Goodbye). 16:08:51 -!- elliott has joined. 16:11:19 -!- oerjan has joined. 16:12:46 boo! 16:12:46 oerjan: You have 1 new message. '/msg lambdabot @messages' to read it. 16:14:59 oerjan: it's a very interesting message 16:15:00 you'll find 16:15:15 @clear-messages 16:15:15 Messages cleared. 16:15:19 *MWAHAHAHA* 16:15:47 * oerjan whistles menacingly 16:17:35 this group of messages has been permuted out of existence. 16:28:11 -!- nooga has joined. 16:28:18 ha! 16:28:36 ha factorial 16:29:38 oerjan: shachaf hates you 16:29:38 elliott: You have 6 new messages. '/msg lambdabot @messages' to read them. 16:29:47 * oerjan cackles evilly 16:30:18 11:07:16: > let countStairs = [1,1,1] ++ map (sum . take 3) (tails countStairs) in countStairs 16:30:24 oerjan: excuse me i am now allergic to countStairs 16:30:36 lahwran: hey 16:30:39 you're not lambdabot 16:30:49 elliott: but you linked it in the first place! 16:30:51 stop tab-completing i type la 16:31:44 -!- Klisz has joined. 16:32:57 I wish I could put a tab in my nick. 16:33:33 11:39:49: I think fans of unsafeInterleaveIO would consider it unfair, because it's literally a description of the (return . unsafePerformIO) implementation :) <-- the advantage of unsafeInterleaveIO is in the better guarantees against unwanted execution 16:33:35 I could name myself a 16:33:38 oerjan: um that is the real implementation 16:34:26 elliott: only with a heap of NOINLINE flags, surely 16:34:38 elliott: that's not what the code looked like when I checked the source... 16:35:18 there were more #'s 16:37:10 oerjan: {-# INLINE unsafeInterleaveIO #-} 16:37:11 unsafeInterleaveIO :: IO a -> IO a 16:37:11 unsafeInterleaveIO m = unsafeDupableInterleaveIO (noDuplicate >> m) 16:37:22 {-# INLINE unsafeDupableInterleaveIO #-} 16:37:22 unsafeDupableInterleaveIO :: IO a -> IO a 16:37:22 unsafeDupableInterleaveIO (IO m) 16:37:22 = IO ( \ s -> let 16:37:22 r = case m s of (# _, res #) -> res 16:37:23 in 16:37:25 (# s, r #)) 16:37:35 proving unsafeDupableInterleaveIO equivalent to return . unsafeDupablePerformIO left as exercise to reader 16:37:36 elliott: my point isn't about the real implementation really, that can of course depend on knowing what ghc does under the hood. my point is that unsafeInterleaveIO will _always_ be guaranteed to only run its action once and share its result among its users, even if return . unsafePerformIO doesn't. 16:37:47 also note INLINE flags :P 16:37:55 oerjan: well yes 16:38:13 oerjan: my comment was meant as an acknowledgement that some people do not even think it's unsafe 16:41:04 also note INLINE flags :P <-- heh. but that's not return . unsafePerformIO, which would need NOINLINE. 16:42:16 -!- Sgeo_ has changed nick to Sgeo. 16:44:33 import Control.Monad; import System.Posix.Process; import System.IO.Unsafe; main = fix (forever . unsafeInterleaveIO . forkProcess) 16:45:20 oops Data.Function 16:45:57 in any case, that wouldn't fork anything afaict 16:46:00 oerjan: um... unsafeDupableInterleaveIO is exactly that 16:46:07 just expanded out 16:46:14 oerjan: yep. it's very safe. 16:46:17 elliott: O KAY 16:46:20 oerjan: it's perfectly safe because the return will put it in a lambda... 16:46:49 return a = IO (\s -> (# s, a #)) 16:46:54 elliott: erm i'd say i have a hunch that noDuplicate does the work of NOINLINE there. 16:47:05 (sheesh.) 16:47:10 oerjan: dude... unsafePerformIO uses noDuplicate 16:47:14 it's unsafeDupablePerformIO that doesn't 16:47:23 unsafePerformIO :: IO a -> a 16:47:23 unsafePerformIO m = unsafeDupablePerformIO (noDuplicate >> m) 16:47:30 {-# NOINLINE unsafeDupablePerformIO #-} 16:47:30 unsafeDupablePerformIO :: IO a -> a 16:47:30 unsafeDupablePerformIO (IO m) = lazy (case m realWorld# of (# _, r #) -> r) 16:47:51 elliott: yes, i recall something about ghc doing that despite it not being mandated by the standard 16:47:56 ok unsafeDupableInterleaveIO differs in that it takes the State RealWorld# from the world it gets, but w/e 16:48:02 oerjan: it is mandated 16:48:10 istr 16:48:18 istr it isn't. 16:49:14 that is, istr a discussion that unsafePerformIO is permitted to duplicate but that ghc doesn't. 16:50:08 good thing i'm checking the report :P 16:50:14 where the FUCK is unsafePerformIO 16:50:40 so how safe is GHC's unsafePerformIO since it doesn't duplicate. 16:51:09 elliott: *F**K 16:51:12 kallisti: ... 16:51:26 elliott: ... 16:51:42 i'm jumping out the window, please give all my money to ais523 and kallisti to make them feel guilty -> 16:52:10 elliott: good thing you're on the ground floor 16:52:18 I... am? 16:52:26 elliott: ffi isn't it? 16:52:44 i checked every foreign module, i'll grep the pdf 16:53:28 oerjan: it's... not in the pdf at least 16:53:49 elliott: hm did they replace it with a different function? a vague bell is ringing 16:53:52 all I can find is unsafeLocalState... 16:54:04 but that sez "It is expected that this operation will be replaced in a future revision of Haskell." and also it barely allows you to do anything 16:54:47 or hm is the bell that they left something out of the report... 17:01:07 ISTR people saying unsafePerformIO is standard now, but maybe that was just my own echoes :) 17:01:41 oerjan: hm what's the most elegant way to get [x,y,z,...] as [(x,y),(y,z),(z,... 17:02:05 with the last element not becoming the first element of a tuple if the list is odd-length 17:02:06 :t groupBy 17:02:07 forall a. (a -> a -> Bool) -> [a] -> [[a]] 17:02:13 nope 17:03:25 > groupBy (==) "hello" 17:03:26 ["h","e","ll","o"] 17:03:31 aka group 17:03:34 @hoogle [a] -> [(a,a)] 17:03:34 Prelude zip :: [a] -> [b] -> [(a, b)] 17:03:35 Data.List zip :: [a] -> [b] -> [(a, b)] 17:03:35 Data.Graph.Inductive.Query.Monad apply :: GT m g a -> m g -> m (a, g) 17:03:42 > zip [1,2,3] [2,3] 17:03:43 [(1,2),(2,3)] 17:03:48 > zip [1,2,3,4] [2,3,4] 17:03:49 [(1,2),(2,3),(3,4)] 17:03:55 aha 17:04:12 @src groupBy 17:04:13 groupBy _ [] = [] 17:04:13 groupBy eq (x:xs) = (x:ys) : groupBy eq zs 17:04:13 where (ys,zs) = span (eq x) xs 17:04:13 > ap zip (drop 1) [1,2,3,4] 17:04:17 > ap zip (drop 1) [1,2,3,4] 17:04:17 mueval-core: Time limit exceeded 17:04:18 [(1,2),(2,3),(3,4)] 17:04:24 :t span 17:04:25 forall a. (a -> Bool) -> [a] -> ([a], [a]) 17:04:25 > (zip <*> drop 1) [1,2,3,4] 17:04:26 [(1,2),(2,3),(3,4)] 17:04:34 > group "mississippi" 17:04:35 ["m","i","ss","i","ss","i","pp","i"] 17:04:37 > (zip <*> drop 1) . map length $ [[1,2],[3,4],[],[4]] 17:04:39 [(2,2),(2,0),(0,1)] 17:04:43 span id [False, False, True, True] 17:04:45 > span id [False, False, True, True] 17:04:47 ([],[False,False,True,True]) 17:05:08 > map (fromEnum . uncurry (==)) . (zip <*> drop 1) . map length $ [[1,2],[3,4],[],[4]] 17:05:10 [1,0,0] 17:05:13 > sum . map (fromEnum . uncurry (==)) . (zip <*> drop 1) . map length $ [[1,2],[3,4],[],[4]] 17:05:15 1 17:06:26 > sum . (zipWith (fromEnum . uncurry (==)) <*> drop 1) . map length $ [[1,2],[3,4],[],[4]] 17:06:27 Couldn't match expected type `b -> a' 17:06:27 against inferred type `GHC.Ty... 17:06:29 @quote aztec 17:06:29 quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers 17:06:34 elliott: ^ 17:06:36 :t zipWith (fromEnum . uncurry (==)) <*> drop 1) 17:06:37 parse error on input `)' 17:06:40 :t zipWith (fromEnum . uncurry (==)) <*> drop 1 17:06:40 Couldn't match expected type `b -> c' against inferred type `Int' 17:06:41 In the first argument of `(.)', namely `fromEnum' 17:06:41 In the first argument of `zipWith', namely 17:06:45 oh 17:06:48 :t zipWith (fromEnum .: (==)) <*> drop 1 17:06:49 forall a. (Eq a) => [a] -> [Int] 17:06:57 elliott: ^^ 17:07:10 oerjan: wtf are you pinging me repeatedly for, I saw it 17:07:14 I'm already using that? 17:07:25 :t sum . zipWith (fromEnum .: (==)) <*> drop 1 . map length $ [[1,2],[3,4],[],[4]] 17:07:26 Couldn't match expected type `[a -> b]' 17:07:26 against inferred type `[a1] -> [Int]' 17:07:26 In the second argument of `(.)', namely 17:07:28 :t zip `ap` tail 17:07:29 forall b. [b] -> [(b, b)] 17:07:30 hm i suppose 17:07:39 :t sum . ap (zipWith (fromEnum .: (==))) (drop 1) . map length $ [[1,2],[3,4],[],[4]] 17:07:41 Int 17:07:43 > sum . ap (zipWith (fromEnum .: (==))) (drop 1) . map length $ [[1,2],[3,4],[],[4]] 17:07:45 1 17:07:47 excellent 17:08:00 > zip `ap` tail [1,2,3] 17:08:01 Couldn't match expected type `[a] -> [b]' 17:08:01 against inferred type `[t]' 17:08:05 > zip `ap` tail $ [1,2,3] 17:08:06 [(1,2),(2,3)] 17:08:10 Hmm! 17:08:18 * Sgeo actually has use for that, maybe 17:08:19 :t curry (uncurry (==) . length &&& length) 17:08:20 Couldn't match expected type `(a, b)' against inferred type `[a1]' 17:08:20 In the second argument of `(.)', namely `length' 17:08:20 In the first argument of `(&&&)', namely `uncurry (==) . length' 17:08:25 :t curry (uncurry (==) . (length &&& length)) 17:08:26 Couldn't match expected type `(a, b)' against inferred type `[a1]' 17:08:26 No idea how to remember that though 17:08:26 In the first argument of `(&&&)', namely `length' 17:08:26 In the second argument of `(.)', namely `(length &&& length)' 17:08:29 sheesh 17:09:47 context for all this: http://stackoverflow.com/questions/8689188/count-consecutive-sublists-with-same-length 17:10:13 :t sum . ap (zipWith $ fromEnum .: (==)) (drop 1) . map length 17:10:14 forall a. [[a]] -> Int 17:10:19 perfect i think. 17:11:06 oerjan: hm should I keep the $ there or nest parens 17:11:09 i usually don't do $ in parens 17:11:10 feels wrong 17:13:30 > map length . group . map length $ [[1,2],[3,4],[],[4]] 17:13:32 [2,1,1] 17:13:55 > map length . group . map length $ [[1,2],[3,4],[3,3],[],[4]] 17:13:56 [3,1,1] 17:14:01 huh 17:14:10 > sum . map (subtract 1 . length) . group . map length $ [[1,2],[3,4],[3,3],[],[4]] 17:14:12 2 17:14:38 * elliott steals, posts as comment :P 17:14:54 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaa 17:15:14 :t group 17:15:15 forall a. (Eq a) => [a] -> [[a]] 17:15:39 oerjan: hey i wrote the subtract 1 and sum parts! 17:15:51 ok who is going on an upvote spree of my stuff 17:15:54 is it Sgeo, is it oerjan 17:15:58 or do people just really like my questions today 17:16:26 I don't remember the last time I upvoted you 17:16:29 If I ever have 17:16:37 clearly it must be oerjan 17:16:38 -!- iconmaster has joined. 17:17:04 elliott: subtract 1 = pred, btw 17:17:21 lol 17:17:23 oerjan: I don't like using pred like that 17:17:28 because of the Enum constraint 17:17:37 no but seriously if anyone here is upvoting my stuff en masse, please reverse it 17:17:42 but you're using length, so the type is fixed :P 17:17:47 oerjan: IT'S HABIT :'( 17:18:25 oh well it can't be oerjan he hasn't cast any votes :D 17:18:28 otoh it could be kallisti 17:18:39 as he's upvoted the same number of questions that i just got upvoted 17:18:41 and was last seen 25 seconds ago 17:18:57 * oerjan isn't voting, he may not even have enough reputation to vote. or maybe it's that i haven't actually bothered to log in properly. 17:19:10 Oh, on SO 17:19:31 kallisti: plz don't upvote my stuff unless you actually think it's worthwhile independent of me being on my crazy rep spree, it's not exactly much of an achievement to get 200 rep every day by way of having people I know upvote it all :P 17:19:37 elliott: I hate oerjan? 17:20:16 shachaf: He made a factorial joke. 17:20:26 Are you kidding? Achievement unlocked: Voting ring! 17:20:52 ok kallisti is evidently just going to ignore me 17:20:59 Why do I hate factorial jokes? 17:21:05 Oh, wait, wait, that. 17:21:17 http://stackoverflow.com/questions/8502201/remove-file-if-it-exists-in-haskell/8502391#8502391 17:21:19 No, obviously I don't include oerjan in the people I hate. 17:21:31 oh nvm 17:21:36 I thought deprecated was typo'd 17:21:40 yay factorial 17:21:41 but there was a smudge on my screen. :P 17:21:42 Factorial jokes? As in, saying "9 factorial?" when someone says 9!? 17:21:47 * Sgeo has done that 17:21:47 Sgeo: yep 17:21:48 elliott: but no I haven't upvoted anything ever. 17:21:56 kallisti: dude, your vote totals are on your fucking profile. 17:22:05 and? 17:22:08 all time by type month 17:22:08 3up2question3 17:22:08 0down1answer 17:22:18 you've upvoted 3 things 17:22:21 therefore: not upvoting you 17:22:38 * kallisti mad 17:22:38 coincidentally, I just got two upvotes on my questions that haven't been touched in days in rapid succession 17:22:57 sigh 17:22:59 kallisti: whatever 17:23:06 must be your reverse psychology convincing people in this channel to upvote stuff. 17:24:00 kallisti: why are you even bothering to deny it anyway 17:24:08 lol, what? 17:24:38 surely you're trolling right now. There is absolutely no way you are capable of such a huge logical blunder. 17:24:49 dude, I got an upvote on an answer and two questions in rapid succession after they were left untouched for ages, your vote total just became 3, and you were active 20 seconds ago when i checked your profile immediately afterwards 17:24:53 reverse them 17:25:13 elliott: those upvotes were already there. 17:25:58 I *have not given a shit about stackoverflow in a while* I became active to see your "awesome answers" 17:26:51 I'm bothering to deny it because it's not true. 17:28:18 unless I entered some kind of subconscious torpid state where I visited three of your answers and upvoting them 17:28:44 ok i guess somebody else just made 3 votes on dead questions and answers in rapid succession :P 17:28:44 perhaps some sort of subconscious man-love fugue. 17:29:07 yep 17:29:25 that is SO TOTALLY UNLIKELY 17:31:03 also my awesome answers are too awesome to have quotes around them thx 17:31:42 `awesome 17:31:45 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: awesome: not found 17:31:52 * oerjan cry 17:32:41 needed more transfinite ordinals, anyway 17:32:43 oh thank god, a mod in /r/haskell finally notices that tr0lltherapy is a shit-posting moron 17:33:04 shall we have a therapeutic ban? 17:33:30 sorry, I've been too busy with multiplayer AceHack 17:33:31 oerjan: yes, ban kallisti 17:33:32 it's surprisingly awesome 17:33:44 ais523: can i play 17:33:50 but i have no proof that kallisti is tr0lltherapy 17:33:55 my motto is "kill everybody else" 17:34:04 oerjan: you have no proof god exists and you still ban him!!! 17:34:06 wait. 17:34:13 elliott: no unless you compile it yourself (the only server's whitelist-based), and no because PvP isn't implemented 17:34:16 oerjan: this is just a subconscious defensive reaction to my subconscious man-love upvote fugue conspiracy. 17:34:22 disregard. 17:34:23 ais523: worst game 17:34:23 (I'm not sure whether I want to /disallow/ it or not, it just isn't /implemented/) 17:34:35 kallisti: when are you subconsciously marrying? 17:34:35 ais523: make it a setting? 17:34:45 elliott: but it isn't /implemented/ 17:34:49 setting might make sense 17:34:50 ais523: when it is 17:34:56 just not sure what'd happen if different people set it to different values 17:35:07 off: moving into player displaces like pet; on: pvp? 17:35:12 oerjan: unfortunately I think elliott's subconscious is too young to marry. 17:35:20 elliott: moving into player is currently impossible 17:35:23 the game will just disregard the command 17:35:30 kallisti: ah. 17:35:57 er... what 17:36:02 no man-love conspiracy here. 17:36:03 never. 17:36:05 ais523: lame 17:36:08 that's what I meant to say. 17:36:25 * kallisti silent stalks elliott's SO page and upvotes every single answer. 17:36:28 ais523, which game is this? 17:36:42 acehack 17:36:44 ah 17:37:56 ais523: you missed User:JBethJenkinsm 17:37:58 why is "subconscious torpid manlove fugue" so fun to say. 17:38:08 oerjan: thanks 17:38:35 kallisti: because it makes your subconscious dance with joy 17:38:38 http://esolangs.org/wiki/User:JBethJenkinsm 17:38:38 * elliott reads tr0lltherapy's comments for his two minute's hate 17:38:53 "haskell's brittle types are often hostile to changes in the real world, like unicode 17:38:53 i now used typed racket...which is far less brittle imo" :D 17:39:02 oerjan: I was too jumpy after almost accidentally deleting some genuine esolangs 17:39:06 [on batman] "this stupid character has been beaten to death. kill him and make a movie about something that hasn't been made four times before" 17:39:29 ais523: you may wish to ping graue again. 17:39:35 elliott: "hostile to changed in the real world, like unicode" ......what? 17:39:37 this spam is never gonna stop on its own 17:39:42 let me double that for emphasis: 17:39:44 .........WHAT? 17:39:54 elliott: I have done, I got no reply 17:39:59 maybe triple with more ellipsis: 17:40:02 kallisti: sounds like one of our spambots 17:40:02 ...................WHAT!!? 17:40:04 ais523: err, do you know what the word "again" means? 17:40:18 I should invent as esolang titled "Administaration Jobs Globally Apply" and watch someone accidentally delete it 17:40:24 kallisti: i believe its something like "if you['re an idiot and write your program with bytestring then converting it to text takesl ike 5 minutes which is too much a penalty for using the wrong data type for what you mean" 17:40:33 iconmaster: ais523 is too cunning for that 17:40:35 elliott: probably better if someone else pings him, so he knows it's not just me being awkward 17:40:37 I've trained him 17:40:44 ais523: fair enough, I will 17:40:47 iconmaster: elliott creates pages with spammy names quite a bit 17:41:11 ah beat to it I see 17:41:16 (quite a bit = twice) 17:42:18 What's wrong with Typed Racket? 17:42:46 Although I guess it lives in a mostly dynamically-typed ecosystem, which seems like it could be annoying 17:43:37 elliott: 5 minutes? is that an exaggeration? 17:44:11 well if you have a huge program you gotta sed the imports 17:44:15 and not all functions are in both i guess 17:45:09 "HSQL doesn’t provide parameterized SQL statements at all" W. T. FUCKING. F. 17:45:26 what the fucking f 17:45:36 what the fucking fuck. 17:45:41 [Haskell-cafe] Are all monads functions? 17:45:41 By Chris Smith - 5:26am - 6 authors - 6 replies 17:45:47 hey oerjan i hate you f or making me read hasekel-cafe 17:46:07 apparently WriterT is a function. 17:46:09 they actually say this 17:46:11 in the post 17:46:14 what the fucking fuck is fucking with all the fucking fucking? 17:46:18 elliott: yeah that question was awkward :P 17:46:33 i guess if you assume every monad is a function 17:46:37 then m (a, w) is a function too :P 17:46:43 WriterT, ErrorT, Either, [], Maybe... 17:46:51 oerjan: everything is a function in haskell q.e.d. 17:46:59 it's just church encodings, maan 17:47:00 -!- derdon has quit (Remote host closed the connection). 17:47:06 Reader and State are functions, so I guess if those are the only examples one can think of offhand... 17:47:08 elliott: maaaan 17:47:19 - Is it reasonable to present monads to newcomers by saying : monads are 17:47:19 basically always functions. 'return x' will then be a function that always 17:47:19 return 'x' regardless of its input and >>= is a special composition for 17:47:19 this occasion. 17:47:22 Sgeo: Cont too 17:47:24 PLEASE NEVER PRESENT MONADS TO NEWCOMERS 17:47:53 kallisti: fuck if i know 17:48:02 And functions are monads 17:48:11 Well, a monad 17:48:34 ^^probably not the correct way to phrase that 17:49:05 GADTs are functions over functions with functions on functions around functions within functions over functions before functions after functions between functions inside functions 17:49:41 see? Haskell is easy. 17:49:47 -!- quintopia has quit (Ping timeout: 252 seconds). 17:50:24 Sgeo: ((->) r) is a monad 17:50:26 hth 17:50:40 [[ 17:50:41 Maybe and [] have still the same meaning: they can be seen as functions: 17:50:41 - they represent the result(s) that might or might not have a computation 17:50:41 - *they have to be called/ran/executed* (wichever term you prefer) through 17:50:41 Data.Maybe.maybe or Data.List.foldX, so that we can extract some value out 17:50:41 of them. 17:50:43 It's just that their input is () (void). But in Haskell, the type: 17:50:45 () -> Maybe a 17:50:47 is useless, Maybe a is sufficient. 17:50:49 Maybe in that case "procedure" is then a better term than function. 17:50:51 ]] 17:50:53 oerjan: ouch, i thought that would be the end of it. 17:51:13 haskell-cafe seems to be filled with people who program in haskell but don't know haskell 17:51:31 "But still, I maintain my previous view." THIS IS BECAUSE YOU'RE DUMB 17:52:09 elliott: sounds like a good place for me 17:52:13 except I don't program in Haskell much 17:52:31 * Sgeo was about to rant about a monad tutorial on Reddit, but ehird already did 17:52:34 Maintaining one's previous view is the first skill to being an Internet person. 17:52:38 Well, rant in here, which is useless 17:53:12 Although that's not the way I would have thought of to poke that hole 17:53:24 shachaf: i agree! oh wait 17:53:54 elliott: By the way, everthing is a function in Haskell, remember? 17:54:07 Some thigns are just zero-argument functions. 17:54:10 ye olde zero argumetn functions 17:54:18 shachaf: oerjan: everything is a function in haskell q.e.d. 17:54:47 hmm, 60 over 6 17:54:56 elliott: Curses. 17:55:33 * shachaf is off to the "airport" in a few minutes. 17:55:54 The "airport". 17:56:57 If you know what I mean. 17:57:00 (I mean the airport.) 17:57:14 (But not immediately.) 17:57:29 -!- quintopia has joined. 17:57:29 -!- quintopia has quit (Changing host). 17:57:29 -!- quintopia has joined. 18:01:07 happy Australian Mailman Mailing List Reminders Day! 18:02:06 yay 18:02:24 yay at me getting the name right? 18:02:28 hmm, shouldn't it be Australian mailman mailing list mailing list reminders day? 18:02:40 ((Australian (mailman (mailing list))) ((mailing list) reminders)) day 18:02:51 seems needlessly formal 18:04:13 > do x<-"test";;;;[x] 18:04:14 "test" 18:04:28 ";;;;"? 18:04:37 that's what i was testing :P 18:05:01 > let x = 2;;;;;;;in x 18:05:01 2 18:05:17 > do x<-"test";;;;[x];;; 18:05:18 "test" 18:07:00 > case 1 of 1 -> 1;;;;2 -> 2;;; 18:07:01 1 18:07:22 Oh no, so many sea creatures. 18:07:27 > case 1 of ;;;;;;1 -> 1;;;;2 -> 2;;; 18:07:28 1 18:07:42 > let ;;;;;;x = 2;;;;;;;in x 18:07:43 2 18:07:54 > do ;;;;x<-"test";;;;[x];;; 18:07:55 "test" 18:08:33 > let { f = x where ;;;;;x=2;;;; } in f 18:08:34 2 18:08:45 looks like it applies to all the blocks 18:09:28 > if ;;;; 42 then ;;; 29 else ;;; 1 18:09:29 : parse error on input `;' 18:09:31 > if 42 then ;;; 29 else ;;; 1 18:09:32 : parse error on input `;' 18:09:34 :( 18:09:42 > if 42 ;; then 29 ; else 1 18:09:43 : parse error on input `;' 18:09:46 :( 18:10:26 > if 42 ; then 29 ; else 1 18:10:27 : parse error on input `;' 18:10:58 i thought that was a new addition in 2010? 18:11:05 > do if 42 ; then 29 ; else 1 18:11:06 : parse error on input `;' 18:11:07 oh wait 18:11:10 lambdabot is on ghc 6 still iirc 18:11:58 > do {;;;;x<-"test";;;;[x];;;} 18:11:59 "test" 18:12:07 :D 18:12:34 35 over 6 :) 18:12:58 elliott: looks like you might turn in early? ;) 18:15:23 -!- kallisti has quit (Ping timeout: 252 seconds). 18:15:30 kallisti: look at that comedic oerjan jokemaker. ha ha ha. 18:15:34 yes, while /quat. 18:17:17 -!- kallisti has joined. 18:17:17 -!- kallisti has quit (Changing host). 18:17:18 -!- kallisti has joined. 18:18:17 quit quat quut 18:21:24 oerjan: heh, that's actually plausible 18:21:38 it's wrong, but it could be right if I didn't know it was wrong 18:21:46 well quu is sadly underrepresented 18:21:56 oerjan: hmm 18:22:06 q u consonant is even rarer than q non-u in English 18:22:14 although I imagine that quu is pretty rare too, indeed 18:22:23 it's perfectly pronounceable, and there's no more obvious way to write it, though 18:22:34 qut 18:22:49 squit squat squoot 18:23:46 -!- kallisti has quit (Ping timeout: 252 seconds). 18:29:04 -!- olsner has joined. 18:29:42 @hoogle reify 18:29:42 Language.Haskell.TH.Syntax reify :: Name -> Q Info 18:29:42 Language.Haskell.TH reify :: Name -> Q Info 18:29:42 package reify 18:30:25 i doubt reflection is included in hoogle, if that's what you're looking for 18:30:32 -!- kallisti has joined. 18:30:32 -!- kallisti has quit (Changing host). 18:30:32 -!- kallisti has joined. 18:30:52 no 18:32:56 -!- kallisti has quit (Remote host closed the connection). 18:35:14 -!- kallisti has joined. 18:37:08 oerjan: there's a guy in trondheim i want you to eliminate 18:37:30 he's guilty of submitting a slightly better answer than mine less than a minute after i do, after i spend about ten minutes researching the question 18:37:36 elliott: what happens when you answer all the questions? 18:42:07 -!- itidus20 has joined. 18:42:54 -!- TeruFSX_ has joined. 18:43:56 -!- xandy| has quit (Ping timeout: 252 seconds). 18:44:19 -!- Zwaarddijk has quit (Ping timeout: 252 seconds). 18:44:24 -!- Zwaarddijk has joined. 18:45:02 -!- itidus21 has quit (Ping timeout: 252 seconds). 18:45:03 -!- EgoBot has quit (Ping timeout: 252 seconds). 18:45:03 -!- HackEgo has quit (Ping timeout: 252 seconds). 18:45:05 -!- ineiros has quit (Ping timeout: 252 seconds). 18:45:13 -!- HackEgo has joined. 18:45:14 -!- EgoBot has joined. 18:45:26 -!- Madoka-Kaname has quit (Ping timeout: 252 seconds). 18:45:26 -!- olsner has quit (Read error: Connection reset by peer). 18:45:26 -!- TeruFSX has quit (Ping timeout: 252 seconds). 18:45:27 -!- coppro has quit (Ping timeout: 252 seconds). 18:46:08 -!- Klisz has quit (Ping timeout: 252 seconds). 18:46:11 -!- ineiros has joined. 18:46:17 -!- xandy has joined. 18:46:27 `log zjoin.*scanl1 18:46:41 2011-12-17.txt:05:00:24: zjoin = ZipList . diag . scanl1 (zipWith (flip const)) . map (getZipList) . getZipList where diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) [] 18:47:08 -!- coppro has joined. 18:47:08 oerjan: there's a guy in trondheim i want you to eliminate <-- hm? 18:48:09 -!- Madoka-Kaname has joined. 18:48:10 -!- Madoka-Kaname has quit (Changing host). 18:48:10 -!- Madoka-Kaname has joined. 18:48:17 look at oerjan, pretending he's not a deadly assassin. 18:48:50 oerjan: he's guilty of submitting a slightly better answer than mine less than a minute after i do, after i spend about ten minutes researching the question 18:48:55 > let zjoin = ZipList . diag . scanl1 (zipWith (flip const)) . map (getZipList) . getZipList where diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) []; x = [[[1,2],[3,4]],[[5,6],[7,8]]] in (zjoin $ zjoin x, zjoin $ map zjoin x) 18:48:56 Couldn't match expected type `Control.Applicative.ZipList 18:48:56 ... 18:49:03 oops 18:49:15 > let zjoin = diag . scanl1 (zipWith (flip const)) where diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) []; x = [[[1,2],[3,4]],[[5,6],[7,8]]] in (zjoin $ zjoin x, zjoin $ map zjoin x) 18:49:16 Couldn't match expected type `[[[a]]]' 18:49:17 against inferred type `Simpl... 18:49:41 ah 18:49:55 > let zjoin = diag . scanl1 (zipWith (flip const)) where { diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) []}; x = [[[1,2],[3,4]],[[5,6],[7,8]]] in (zjoin $ zjoin x, zjoin $ map zjoin x) 18:49:56 ([1,8],[1,8]) 18:50:23 elliott: too bad i'll never know who it is, then 18:50:59 oerjan: oh. well he goes to that university of yours :P 18:51:12 that godless, commie, liberal, SO-rep-stealing university. 18:51:22 * oerjan wonders if it's that guy he thought he saw the other day 18:52:06 oerjan: you thought you saw someone, but didn't know who it was? 18:52:08 hammar 18:52:14 and that made you doubt whether you saw them or not in the first place? 18:52:20 elliott: ah that it was 18:52:34 oerjan: YOU MISSED A PERFECTLY GOOD REPHEIST OPPORTUNITY! 18:52:51 Most SO outsiders don't know this, but you actually have to buy a device that plugs in via USB and dispenses physical rep. 18:52:55 That's the real currency. 18:52:58 elliott: what's a repheist 18:53:01 A heist of rep. 18:53:06 ah 18:53:07 Like a hatheist, but for rep. 18:53:24 * Sgeo is finally able to replicate the "Click closes tab" thingy 18:53:25 Epheists believe that god exists but is ephemeral, or something. 18:53:36 Pressing on the upper-right corner of the pad does that 18:53:55 How to change this behavior? 18:54:46 > let zjoin = diag . scanl1 (zipWith (flip const)) where { diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) []}; x = [[[1,2],[3,4]],[undefined]] in (zjoin $ zjoin x, zjoin $ map zjoin x) 18:54:48 ([1],[1*Exception: Prelude.undefined 18:54:54 Sgeo: it's probably assigned to middle-click? 18:54:54 there you go 18:55:03 oerjan: er oh dear 18:55:06 did you just prove it broken? 18:55:16 elliott: when bottoms are involved, yes 18:55:20 How do I unassign it from middle-click? 18:55:27 Sgeo: what os 18:55:31 oerjan: well, so is IO 18:55:33 Because LXDE's keyboard&mouse thing doesn't have the option 18:55:35 elliott, Lubuntu 18:55:50 Sgeo: look for a synaptics conf file in /etc/X11/xorg.conf.d 18:55:58 elliott: i still hope it's repairable, though 18:56:05 https://wiki.archlinux.org/index.php/Touchpad_Synaptics might help also 18:56:22 oerjan: well ok. i wouldn't call that completely broken though, since most standard monads violate the laws when bottoms are involved 18:57:15 why is Jack so much better than PulseAudio. 18:57:59 I don't seem to have an /etc/X11/xorg.conf.d 18:58:21 Sgeo: ls /etc/X11 18:59:03 http://pastie.org/private/rc2k4sviciszh6jlvifwyg 18:59:42 ah 18:59:45 dunno, try google :P 18:59:53 elliott: it's just that with the strict behavior of Prelude zipWith (which ghc's rewriting rules supposedly don't quite preserve btw), ZipList _does_ afaict fulfil the Applicative laws completely even with bottom; so it would be nice to have a similar Monad instance. 19:00:04 HAPPY 2011.99942922374, EVERYBODY!!! 19:00:25 oerjan: the strict behaviour? 19:01:31 elliott: when you zip two lists that both end at the same length, the first list determines whether it ends as [] or bottom 19:01:40 -!- olsner has joined. 19:02:10 oerjan: hmm... does this mean zip `ap` tail isn't safe for []? 19:02:12 > zip [1,2] (3:4:undefined) 19:02:13 [(1,3),(2,4)] 19:02:15 in the presence of rewrite rules 19:02:20 > zip (3:4:undefined) [1,2] 19:02:21 [(3,1),(4,2)*Exception: Prelude.undefined 19:03:16 There's no way to tell whether zip is being too strict or whether that's just because that tried to be printed.... wait, what, why would that be an exception 19:03:16 -!- olsner has quit (Read error: Connection reset by peer). 19:03:21 It should have been truncated 19:03:35 > length $ zip (3:4:undefined) [1,2]\ 19:03:36 : parse error on input `\' 19:03:38 > length $ zip (3:4:undefined) [1,2] 19:03:38 elliott: hm... 19:03:38 *Exception: Prelude.undefined 19:03:41 !!! 19:03:42 it should have? how exactly do you propose that happens? 19:03:43 Sgeo: ???? 19:03:47 > (zip`ap`tail) [] 19:03:48 [] 19:03:50 is it meant to magically realise the first list ends in _|_ 19:03:55 and notice the other one ends 19:03:58 > (zip`ap`tail) [x,y,z] 19:03:59 [(x,y),(y,z)] 19:04:00 you can only do that sort of thing with unamb 19:04:11 * Sgeo misparsed 3:4:undefined as [3,4,undefined] 19:04:12 oerjan: well obviously lambdabot might not trigger the rewrite rule :P 19:04:16 Sgeo: clap 19:04:46 elliott: i assume it happens too rarely to be a problem... 19:04:48 Sgeo: in Prolog notation, it'd be [3,4|undefined] 19:05:06 > zip [1,2] (3:4:undefined) 19:05:07 [(1,3),(2,4)] 19:05:13 o.O hmm 19:05:22 elliott: also i don't know any examples, i just noticed a comment in the ghc source for zip and zipWith's rewriting rules 19:05:30 Haskell needs more unamb 19:05:40 when trying to look up the exact ghc behavior 19:05:41 Sgeo: 19:05:41 @src zip 19:05:42 zip (a:as) (b:bs) = (a,b) : zip as bs 19:05:42 zip _ _ = [] 19:05:49 patterns are matched left-to-write 19:05:51 right 19:06:12 unamb is more audacious than my entangle, anyway :P 19:06:31 seeing as you can produce decidedly impure results with it 19:06:54 elliott: would lazy patterns do anything to correct that? 19:06:57 It would be nice if Haskell unambed stuff by default, such as ... did... something, with that definition 19:07:09 Gregor: Could I convince you to convert some clog logs to glogbot format without actually logging a channel actively? 19:07:17 kallisti: No, they would make zip crash and burn when it reached the end of the list. 19:07:24 Sgeo: I'll tell the committee right away. 19:07:35 elliott: Uhh ... why? 19:07:45 elliott: You realize the converter is open, no? 19:07:47 Gregor: tunes' pre-2011 logs are in an annoying zip file >_> 19:07:53 I want the nice web interface to #haskell pre-2011. 19:08:40 Ahhhhhhhhhhhhhhhhhh 19:10:15 riverrun, past Eve and Adam's, from swerve of shore to bend1 19:10:15 of bay, brings us by a commodius vicus of recirculation back to2 19:10:15 Howth Castle and Environs.3 19:10:15 Sir Tristram, violer d'amores, fr'over the short sea, had passen-4 19:10:15 core rearrived from North Armorica on this side the scraggy5 19:10:16 isthmus of Europe Minor to wielderfight his penisolate war: nor6 19:10:18 had topsawyer's rocks by the stream Oconee exaggerated themselse7 19:10:20 to Laurens County's gorgios while they went doublin their mumper8 19:10:22 all the time: nor avoice from afire bellowsed mishe mishe to9 19:10:24 tauftauf thuartpeatrick: not yet, though venissoon after, had a10 19:10:26 kidscad buttended a bland old isaac: not yet, though all's fair in11 19:10:28 vanessy, were sosie sesthers wroth with twone nathandjoe. Rot a12 19:10:30 peck of pa's malt had Jhem or Shen brewed by arclight and rory13 19:10:32 end to the regginbrow was to be seen ringsome on the aquaface.14 19:10:34 The fall (bababadalgharaghtakamminarronnkonnbronntonner-15 19:10:36 ronntuonnthunntrovarrhounawnskawntoohoohoordenenthur-16 19:10:38 nuk!) of a once wallstrait oldparr is retaled early in bed and later17 19:10:40 on life down through all christian minstrelsy. The great fall of the18 19:10:42 offwall entailed at such short notice the pftjschute of Finnegan,19 19:10:44 erse solid man, that the humptyhillhead of humself prumptly sends20 19:10:46 an unquiring one well to the west in quest of his tumptytumtoes:21 19:10:48 and their upturnpikepointandplace is at the knock out in the park22 19:10:50 where oranges have been laid to rust upon the green since dev-23 19:10:52 linsfirst loved livvy.24 19:10:54 Joyce's works enter public domain at midnight, happy copyright infringement day! 19:11:30 what, a copyright actually expiring? impossible! i guess they'll soon reverse that. 19:11:59 ulysses isn't quite mickey mouse 19:12:04 My == and /= are going to be partial functions 19:12:12 ok 19:12:13 :/ 19:12:24 elliott: I don't have the disk space >_> 19:12:36 Gregor: WTF is taking up all your fucking disk space? 19:12:44 Lots of shit <_< 19:12:54 Gregor: I run a fucking Minecraft server that backs up every 6 hours and I have so much space free! 19:13:05 (OK, nobody has connected to it since the update, but still :P) 19:13:20 Sgeo: wait is this for the infinite precision real thing 19:13:26 because uh 19:13:33 yes it's true that you can't compare infinite digits in finite time 19:14:05 ais523: yay, just got my reminder 19:14:35 elliott: I get two 19:14:39 one as ais523, one as callforjudgement 19:15:06 ais523: that's like having a birthday on christmas and getting twice the presents :/ 19:15:10 not fair, forward one to an orphan 19:15:20 but I keep trying to tell people not to give me Christmas presents 19:16:14 Lesse what ncdu says ... 19:16:49 elliott: you can sign up a second account to the lists, you know? 19:17:02 ais523: that's like opening presents before christmas day! 19:17:05 incidentally, it's callforjudgement that does all the receiving; either can send 19:17:23 which is why you typically get original messages to Agora from me from ais523, and replies from callforjudgement 19:18:07 I never noticed 19:18:09 lessee join [[[1,2],[3,4]],[undefined]] = [[1,2]] is a given, the undefined is too deep. map join [[[1,2],[3,4]],[undefined]] = [[1,4], undefined] is also a given. oh dear i'm not sure this can be fixed. 19:19:06 oerjan: you realise you haven't even proved the laws work when ignoring _|_ like a reasonable person :P 19:19:20 elliott: i haven't? 19:19:43 what are you trying to prove as what? 19:19:48 oerjan: well, i never saw you do so. 19:19:58 ais523: ziplist monad 19:20:50 elliott: when you write sudo cat blah > file 19:20:55 blah is being written to file as a super user right? 19:21:02 Phantom_Hoover is a wasp discuss 19:21:04 kallisti: no 19:21:11 sudo is just another program. 19:21:29 ah I see. 19:22:07 kallisti: it's (sudo cat blah) > file, not sudo (cat blah > file) 19:22:20 usual method to redirect to files, writing them as root, is to use tee 19:23:21 elliott: well i believe that f <*> x = zjoin ((`fmap` x) `fmap` f) and zjoin . zjoin = zjoin . fmap zjoin, and that these two equations are precisely what's needed to have a join extending any Applicative to a Monad. 19:23:35 oerjan: oh you believe. ok that's as good proof 19:23:38 *good as 19:24:12 elements of the form ((`fmap` x) `fmap` f) are the rectangular lists, btw 19:24:19 *lists of lists 19:24:35 elliott: Culprit: All these damned chroots :) 19:24:40 wow if i don't get 5 rep in 4.5 hours i'm gonna kill someone 19:24:47 Gregor: hardlinks? 19:24:51 elliott: it's StackOverflow, it's not that serious… 19:25:03 ais523: yes i meant i'm literally going to kill someone thank you for interpreting me correctly :) :) :) 19:25:05 r.i.p. ais523 19:25:16 elliott: Remember when I installed chroots and it broke friggin' everything? 19:25:16 whens the trains to bham run 19:25:18 Erm 19:25:20 s/chroots/hardlinks/ 19:25:23 elliott: it's not even serious enough to make jokey death threats on IRC 19:25:26 Gregor: Yeah, because you used a shitty script :P 19:25:39 ais523: --ais523 "nomic has ruined my sleep schedule" ais523 19:25:49 elliott: Suggest a non-shitty script. 19:25:49 elliott: it only ruins it on occasion 19:25:52 Gregor: with nix you would automatically get the benefits of hardlinking >:) 19:26:01 ais523: I only want to kill people for rep on occasion 19:26:18 Gregor: http://linux.die.net/man/1/hardlink? 19:26:38 Only run it on /usr of chroots tho :P 19:26:40 Nothing mutable. 19:27:08 I typically use ln for hardlinking 19:27:21 also, I forgot it was possible to compare files 19:27:32 for a moment, I thought it was like comparing funcitons 19:27:34 *functions 19:27:40 guys... 19:27:48 Sgeo: the lack of terminating == for computable reals is a well-known thing. 19:27:52 my mom didn't know what "nocturnal" meant. 19:27:57 hmm, that manpage is worrying 19:28:06 because it doesn't explain what it does aobut symlinks 19:28:07 *about 19:28:12 Sgeo: basically, there's a theorem that says any always terminating function on computable reals must be continuous. 19:28:15 kallisti: what nationality is she? 19:28:24 American, of course. 19:28:26 like me. 19:28:35 oerjan: *deterministic? 19:28:46 ais523: facepalm 19:29:01 you can create a function that outputs at random if the answer is sufficiently close to a breakpoint 19:29:30 oerjan: i don't think you need a result that strong, anyway 19:29:43 Phantom_Hoover is a wasp discuss 19:29:46 although i'm not sure what weaker result you could prove it with :) 19:29:58 No, how dare you suggest I'm Anglo-Saxon???? 19:30:08 Also I think I'm technically Catholic. 19:30:14 No I meant a buzz wasp. 19:32:23 elliott: Here goes nothin'! 19:32:59 Gregor: RIP chroots 19:33:56 oerjan: *deterministic? <-- that's part of the definition of function hth 19:34:41 oerjan: well, a function can be deterministic, but give different outputs for different representations of the same computable real 19:34:46 so is nondeterminstic if you identify them 19:34:51 that's what I was getting at 19:34:57 [16:30:21] @messages 19:34:58 eek 19:34:59 hm? 19:35:15 Gregor: RIP chroots // Probably 19:35:22 lahwran: it's asking lambdabot if there are any messages for him 19:35:26 lahwran: your nick is uncomfortably close to lambdabot 19:35:34 ah 19:35:42 lahwran: I did /query la@messages to read lambdabot messages :P 19:35:45 You got in the way! 19:36:03 lahwran: which happens to be the main bot we use here to send messages 19:36:04 what client? 19:36:05 oerjan: well, a function can be deterministic, but give different outputs for different representations of the same computable real 19:36:05 so is nondeterminstic if you identify them 19:36:05 that's what I was getting at 19:36:11 ais523: I can't tell what you're talking about but it sounds like nonsense 19:36:32 elliott: you know about time-sorted tabcomplete? 19:36:36 elliott: OK, you agree that it's possible for two computable reals to be equal, even though you can't determine the fact? 19:36:43 lahwran: yeah, but i'd just connected :P 19:36:50 ah 19:36:57 ais523: I do not believe you can write a function which distinguishes two representations of the same computable real. 19:37:08 Saved: 53.85 MiB 19:37:12 ... yaaaaaaaaaay X_X 19:37:12 elliott: if it's operating on the representations, it's trivial 19:37:19 and that's how you implement such functions on a computer 19:37:30 Gregor: are you on a system where 53MiB is worth saving? 19:37:34 No 19:37:40 I can't tell who is a bot and who's not :s 19:37:44 ais523: Statement contradicting previous statement followed by incorrect statement 19:37:49 lahwran: We're all bots apart from lahwran. 19:37:54 oh, okay 19:38:02 elliott: Don't forget about fungot. fungot's not a bot. 19:38:03 Gregor: prof., on/ carrot. i suppose that i meant was that on certain points along/ lines :) intersection at/ galapagos archipelago, birds :) paradise, and some to both sexes. 19:38:14 lahwran: the easy way to see if something's a bot is to see if other bots refuse to listen to it 19:38:45 !help 19:38:46 ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 19:38:56 ^bf ,[.,]!!help 19:38:56 !help 19:38:56 ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 19:39:00 err, what? 19:39:02 -!- iconmaster has quit (Read error: Connection reset by peer). 19:39:10 ais523: well it sounds a bit like those examples of things you can compute about a turing machine's behavior, like whether it ever goes right of a certain point - and which because of rice's theorem etc. can never capture what a TM calculates 19:39:12 I guess fungot is indeed not a bot 19:39:14 ais523: whitsunday island is :) small size in comparison with those :) another region, whence it takes its name :) red sea. " i say my notion, but i venture to give you fnord but it has lately occurred to me that we here see that, if we suppose/ case :)/ potato, as we shall hereafter see, compared with/ cross-bred offspring between two species/ male sexual element can act not solely on/ descendants from i; so will it be pretend 19:39:34 *capture anything about 19:39:35 ais523țiu}iË`r523: as producing changed conditions, schmankewitsch's experiments on. -flowers :). fnord near. fnord near. fnord :) pigs in china. -occurrence :) pencilled feathers in fowls. 19:39:52 ^style 19:39:52 Available: agora alice c64 ct darwin* discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 19:40:08 elliott: Any other brilliant suggestions :( 19:40:09 now I'm confused 19:40:11 @tell fizzie ais523È›“i¼ÆÁÂÀu§¥‘–Å}i¿½Ã‹¶ª`r523: as producing changed conditions, schmankewitsch's experiments on. -flowers :). fnord near. fnord near. fnord :) pigs in china. -occurrence :) pencilled feathers in fowls. 19:40:12 elliott: dependence :), upon/ fleece :) sheep. -in cats. -in pigeons. -in breeding fowls. -in ducks. 19:40:12 Consider it noted. 19:40:22 Gregor: How many chroots do you have 19:40:28 elliott: and it didn't do that in response to anything of mine 19:40:33 Four >_> <_< 19:40:38 hmm, I wonder if those are consecutive ASCII codes 19:40:40 Gregor: How big are they 19:40:58 ^bf ,[+.]!¼ 19:40:58 19:41:06 apparently not 19:41:22 hmm, such a program would better be written in Easy 19:41:34 elliott: Smallest is 1.2GB, largest is 2.4GB (glogbot) 19:41:36 -!- itidus22 has joined. 19:41:40 Err, 3.4GB 19:42:32 Gregor: Why not store past glogbot logs gzipped 19:42:49 OK, people would have to ungzip after rsyncing, but making the web interface use zcat shouldn't be hard. 19:42:54 And text gzips STUPIDLY well. 19:42:58 ais523: i think Gregor removed the ignore lists from his bots when he implemented the zero-width space method to make all the others ignore his instead 19:43:11 ah, OK 19:43:25 clearly I'll have to write a bot that uses zero-width-space as a command character 19:43:40 lol 19:43:41 Gregor: Why does glogbot run in a chroot? 19:43:47 It doesn't run untrusted code or anything. 19:44:00 elliott: in case someone's trying to hack it with specially-crafted IRC messages? 19:44:05 who knows, it works for Windows Phone 19:44:28 elliott: Because I can't move it now >_> 19:45:01 Gregor: ...why not... 19:45:15 killall glogbot; mv; ./glogbot 19:45:23 Instantly like 1 gig saved 19:45:24 "mv;"? 19:45:24 "killall glogbot" ain't a good idea. 19:45:32 -!- itidus20 has quit (Ping timeout: 248 seconds). 19:45:52 Gregor: Have you heard of... glogbackup. 19:45:56 $ mv 19:45:57 mv: missing file operand 19:45:57 thought so 19:46:00 elliott: Yeah, but I don't integrate them 8-D 19:46:01 Gregor: Anyway, just trigger the watchdog thing manually. 19:46:07 Gregor: Why not store past glogbot logs gzipped <-- won't this affect `log aversely? 19:46:11 You have a Linux-based watchdog mechanism, right? 19:46:13 i.e. non-ping based 19:46:14 but I had to check the manpage first, just to make sure 19:46:18 elliott: Yes 19:46:23 oerjan: Well, yes. 19:46:26 Gregor: Trigger it 19:46:33 it might have renamed the current directory over my home directory, or something like that 19:46:36 by analogy with cd 19:47:23 -!- zzo38 has joined. 19:47:36 ?messages 19:47:36 You don't have any new messages. 19:47:42 Liar. 19:47:52 :D 19:50:14 hah 19:50:26 I've got a party for 15 today 19:51:12 hmm, doesn't that mean you'd have to duplicate some roles? 19:51:25 and I'm not sure there's enough food in the whole dungeon to keep them going very long 19:54:57 just stack the dwarfs in the height, it'll be fine 19:55:17 oerjan: you've clearly played df 19:55:38 Gregor: Sheesh, I just told you how to save like a gig and HOW DO YOU REPAY ME 19:55:38 surprisingly, no 19:55:44 oerjan: C L E A R L Y 19:58:08 elliott: I WILL REPAY YOU WITH DEATH 19:58:12 ... HEY 19:58:19 Who put the log URL back in the /topic??? 19:58:51 -!- Gregor has set topic: Log URL (sha512sum-compressed): d1fe384376eb732f625af811f9e9cdffd9071544ff885acff0dc7c6b7a29598f0a3103dec749cc825fb0e7db39fc33c1cab94be7bc72f629c360995e0a4bb58a. 19:59:05 -!- oerjan has set topic: Log URL (sha512sum-compressed): d1fe384376eb732f625af811f9e9cdffd9071544ff885acff0dc7c6b7a29598f0a3103dec749cc825fb0e7db39fc33c1cab94be7bc72f629c360995e0a4bb58a | http://codu.org/logs/_esoteric/. 19:59:16 :( 19:59:23 oerjan: OK, /that/'s hilarious 19:59:38 having the log URL in the topic is useful 19:59:46 although arguably the SHA version is enough to satisfy Freenode 19:59:54 !glogbot_ignore as is this, despite it not actually working 19:59:56 as is this, despite it not actually working 20:00:21 -!- Gregor has set topic: Logs: http://hugeurl.geeks.org/?M2JjZjA5Njk0YzVmOGU3MGMyZjA0ZjhlOWVjMzc2ZGQmMTQmVm0wd2QyUXlVWGxWV0d4V1YwZDRXRmxVU205V01WbDNXa2M1VjFac2JETlhhMk0xWVd4S2MxZHFRbFZXYkhCUVZqQmFZV015U2tWVWJHaG9UVlZ3VlZadGNFZFpWMDE1VTJ0V1ZXSkhhRzlVVjNOM1pVWmFjVkZ0UmxSTmF6RTFWVEowVjFaWFNraGhSemxWVm0xb1JGWldXbUZrUjFaSFYyMTRVMkpIZHpGV2EyUXdZekpHYzFOdVVtaFNlbXhXVm1wT1QwMHhjRlpYYlVaclVqQTFSMXBGV2xOVWJGcFZWbXR3VjJKVV. 20:00:29 Err ... 20:00:32 That got cut off >_> 20:00:39 It works tho 20:00:40 how surprising. 20:00:57 elliott: Doesn't seem to? 20:00:58 Then enter a gopher URL with an obscure DNS entry 20:01:14 -!- elliott has set topic: Logs available through content-addressed HTTP at d16921e5091fab3bd6f8d3ccd27a02af21a3220f. 20:01:21 Gregor: Oh, indeed not 20:01:30 content-addressed HTTP? 20:01:36 Sure 20:01:47 * oerjan sigh 20:01:57 is #esoteric-minecraft logged? 20:02:01 Ü 20:02:13 ais523: yes 20:02:20 #esoteric-minecraft is a SECRET, you should NEVER say #esoteric-minecraft in this channel, or people might know that #esoteric-minecraft exists! 20:02:25 Also that. 20:02:29 (In fact, it was the cause of the anti-clog revolution.) 20:02:42 You will ruin everything if #esoteric-minecraft is mentioned here. 20:02:49 Stop it. :p 20:03:07 I take it #esoteric-blah isn't? 20:03:17 elliott: OK, I'll stop mentioning #esoteric-minecraft . 20:03:28 ais523: indeed 20:03:38 we should use #esoteric-blah more 20:03:46 -!- oerjan has set topic: Absolutely NO mention of #esoteric-minecraft! | http://codu.org/logs/_esoteric/. 20:05:26 dammit i thought the neighbors were smart enough to keep their dogs indoors _tonight_... 20:05:36 are they scared of fireworks? 20:05:48 aren't all dogs? anyway i hear barking. 20:05:55 and fireworks. 20:05:55 They were, but now they /are/ fireworks. 20:05:59 (Guahahah et cetera) 20:06:42 (i suppose there must be _some_ dog who loves fireworks. which probably means it's even more important to keep it away from them.) 20:06:54 -!- elliott has set topic: http://codu.org/logs/_esoteric/. 20:07:37 There's that "dog grabs a firework-shooting pole and carries it around, shooting fireworks everywhere" video, I think it was on the YouTube front page the other day when I went by. 20:07:37 fizzie: You have 1 new message. '/msg lambdabot @messages' to read it. 20:08:54 http://www.youtube.com/watch?v=N9FBVli2viw -- I don't really know why it says "click here for a midget" in the corner. Sometimes the internet, it is puzzling. 20:09:40 (Also it just seems to be one sample of a genre.) 20:09:50 fizzie: YouTube people trying to get more views 20:10:24 -!- Klisz has joined. 20:10:53 a smidget of a midget 20:10:55 I'm a little scared of the amount of pleading and general terror that YouTubers seem to have about not getting enough comments, ratings, and subscriptions 20:11:00 it's as bad as elliott with SO rep 20:12:09 If I don't get 1,000,0000000000000,0 stoack oevrflow rep byt omorrow i wil say "dam nthe whole world", forward to friends+family or suffer in eternal darkness 20:12:17 * oerjan has a hunch smidget is misspelled 20:12:22 (APPROVED BY PRESIDENT OF AMERICA) 20:13:33 oh it's smidgen 20:13:45 elliott, does XFCE not have such crappy lack of easy to use customizability? 20:13:51 Compared to LXDE 20:13:57 * Sgeo is starting to really be ticked off 20:14:53 * oerjan is mostly annoyed because this was the one evening he thought he count on not hearing that damn barking 20:15:00 *could count 20:15:00 woof 20:15:37 * oerjan hits elliott with the saucepan ===\__/ 20:16:12 bark 20:25:15 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 20:25:20 Have any you written any FurryScript codes? 20:27:44 no 20:30:35 Then learn? 20:31:24 :( 20:34:17 zzo38: but the page says that if you reach it, unless you're interested, to go to a random page instead 20:34:27 were you expecting people to not honour that requirement? 20:35:23 ais523: No, I meant if you reached it *using a RANDOM PAGE function* 20:35:27 Maybe I should make it clear. 20:35:42 zzo38: it says "after a random page search" 20:35:46 and I've done at least one of those in the past 20:35:47 so it is after 20:35:56 zzo38: i don't think the random page function usually goes to the User: namespace (or any other than main) 20:36:06 OK, I removed that note. 20:36:17 oerjan: Yes I think you are correct; I fixed it 20:36:36 And yes I agree the grammar was wrong 20:36:58 -!- Phantom_Hoover has joined. 20:37:07 -!- Phantom_Hoover has quit (Changing host). 20:37:07 -!- Phantom_Hoover has joined. 20:37:29 Phantom_Hoover: YOUR CLOAK IS FOOLING NO ONE 20:38:06 hmm, I wonder what my ping to phantom hoover is like? 20:38:07 we have the same ISP 20:38:20 -0.1 s 20:38:25 ais523: (diff) (hist) . . N User:PepanoMofumo‎; 19:56 . . (+2,955) . . PepanoMofumo (Talk | contribs) (New page: Occupation interview isn't just concerning the proper attire. Nonetheless, that could make a huge difference there. Females often give a job interview attire too much of a credit. These p...) 20:38:48 http://esolangs.org/wiki/User:PepanoMofumo 20:39:06 elliott, hey, mock ais523 for his ISP too. 20:39:13 ais523: ha ha, virgin 20:39:16 also, virgin media user 20:39:36 not my ISP, really 20:39:43 I don't have my own connection, so it's borrowed 20:39:46 luckily, it hasn't gone wrong 20:39:55 no we were 20:39:55 yeah those virgin guys aren't exactly rocket scientists. oh wait... 20:39:56 isp 20:39:58 freinds 20:40:00 the impression I get from the Internet of Virgin is that it's very good when it's working, and very bad the rest of the time 20:40:19 I've... never really had a *bad* experience with it. 20:40:25 It's just a bit naff. 20:40:47 are they telling the truth when they claim to have a faster connection than everyone else's? 20:41:08 Dunno, does everyone else have to wait overnight to torrent things? 20:41:28 I assume so 20:41:31 depends on how large the things are, ofc 20:42:30 incidentally, the spambot's advice about interview dress is entirely sensible, apart from looking like machine-translated English 20:42:31 well, virgin offer fibre-otpic 20:42:32 but so does bt nowadys 20:44:01 -!- monqy has joined. 20:45:20 Is this document of FurryScript understandabout to you, or no good? 20:46:33 i didn't read it 20:54:48 -!- centrinia has joined. 20:57:41 `welcome centrinia 20:57:53 centrinia: 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:57:58 Hello elliott. 20:59:23 "Or should I call you.......... DAD" 20:59:35 Are you sure? 21:05:44 s/DAD/BAD/ 21:08:15 Tell me if you think any command missing from FurryScript, which you would find important 21:08:31 [21:07] [wallops] And I hear that in 53 minutes it's time for FINLAND to enter the new year 21:08:46 Rset in peace, Finland. 21:08:50 ais523: wait, how do I get wallops? 21:08:52 zzo38: it needs a goto-but-not-really command 21:08:54 all languages do 21:08:57 elliott: /mode elliott +w 21:09:01 I have it in an onjoin script 21:09:02 im walloped 21:09:04 only with ais523, not elliott 21:09:14 I just dewalloped you 21:09:17 or would have, were I an op 21:09:26 oper? 21:09:34 I don't think channel op has anything to do with dewalloping other poeple 21:09:36 *people 21:09:39 ais523: What is a goto-but-not-really command? 21:09:53 Channel operator and server operator are two different things 21:10:15 zzo38: it's like a goto, but not really 21:10:41 I do have continuations 21:10:47 hmm, that'll do 21:11:16 Did you read it? If you do, then you can see that it have continuations too 21:11:59 If anything in there is not understandable then please notify me 21:12:00 ais523: well, I got * #esoteric :You're not a channel operator 21:12:28 elliott: sure you didn't aim it at #esoteric rather than me? 21:12:37 perhaps your client automatically puts the name of the current channel in the command 21:12:41 if you aim it at someone lse 21:12:42 *else 21:14:36 ah, I might have mixed up the arguments 21:14:41 but yes, I suspect it does 21:14:50 Ha ha! It isn't about GameCube! So now push the explode button and your TV set will explode and money will come out. 21:16:21 Is it more money than the TV's worth? 21:16:35 I guess so. 21:20:00 o 21:20:34 O 21:20:56 elliott, another reason I use my own DNS server: my ISP DNS keeps dying 21:24:37 [wallops] if you'd like your country walloping let me know (assuming i'm around) 21:24:41 it'd be nice if wallops said who they were from 21:25:43 28-mrmist/Wallops- 21:25:44 they do. 21:25:56 PEB server and bad client 21:25:57 hmm, in that case, my client is deleting it 21:26:02 "PEB server"? 21:26:07 problem exists between ... 21:26:13 aha 21:26:28 * elliott considers asking mrmist for the south pole 21:26:41 it probably lives in UTC 21:26:47 they use new zealand time there 21:26:50 but the south pole has no defined timezone 21:26:51 ah, aha 21:26:51 obviously 21:26:55 however 21:27:01 indeed, but the people living there need to name times somehow 21:27:02 its day lasts 3 months or 6 months or something in total 21:27:04 that's why I assumed UTC 21:27:06 so i think a new day should begin in 2012 21:27:11 and 6 months, obviously 21:27:16 so it would actually be meaningful 21:27:18 ais523: oh, right 21:27:33 ais523: the reason they use new zealand time is because they fly there from nz 21:27:39 because... NZ is far south : 21:27:40 :P 21:30:12 Is the [[StateFlip]] esolang turing-complete? It has flipping and fixed mirrors, and infinite memory. 21:33:49 libya, lowercase. 21:42:12 elliott: wat 21:43:17 * oerjan suspects lahwran of being a rotidder 21:44:12 -mrmist/Wallops- Just 30 minutes to go for Romania libya Egypt and many more! 21:45:13 it's camelcase because sahara 21:45:37 oerjan: but why lowercamelcase, not uppercamelcase? 21:46:15 Egypt gets the upper because pyramids. 21:47:07 I live in Canada there are many timezones depending what province you are in. 21:47:54 this is when the chinese come here to gloat. except they've already gone to bed, i guess. 21:48:05 in their one huge timezone. 22:01:06 -!- GreaseMonkey has joined. 22:02:51 the much of congo 22:03:29 * oerjan does the conga 22:05:50 Gloat gloat gloat. 22:06:01 We just did the thing thing future thing. 22:06:19 yes 22:06:32 I think the monads and comonads that depend on a monoid can be made into indexed monads and index comonads that depend on a category. 22:06:44 merry christmas fizzie 22:06:58 -!- DCliche has joined. 22:07:19 elliott: Honk you. 22:08:34 -!- Klisz has quit (Disconnected by services). 22:08:39 -!- DCliche has changed nick to Klisz. 22:13:24 isreal 22:13:33 http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=is+israel+real 22:14:41 http://en.wikipedia.org/wiki/Edward_Lear 22:14:44 wow 22:15:07 Phantom_Hoover: wow? 22:15:09 I will never look at The Owl and the Pussycat the same way again after seeing that photo. 22:15:48 Runcible spoons aren't real?? 22:15:59 My parents told me that they were spoons with a bowl at each end. 22:16:54 http://www.straightdope.com/columns/read/1228/whats-a-runcible-spoon 22:18:15 If you use the [()] for natural numbers, then >> is multiplication and <|> is addition 22:20:32 Phantom_Hoover: Your parents apparently aren't the only ones: http://www.bodgers.org.uk/bb/phpBB2/viewtopic.php?f=15&t=357&start=15 (from about the sixth message down) 22:21:54 "My dictionary says - 22:21:54 Runcible Spoon . . . "a fork curved like a spoon, with three broad prongs, one of which has a sharpened outer edge for cutting." " 22:21:56 I 22:22:05 I really want to refer to sporks as runcible spoons. 22:22:10 You may. 22:22:23 Google image search for "runcible spoon" in quotes seems to return mostly sporks, anyway. 22:22:44 fizzie: it's like a spork that's also a knife 22:23:16 > (mapM_ . const) [(),()] [(),(),()] 22:23:17 [(),(),(),(),(),(),(),()] 22:23:31 zzo38: ^ 22:23:34 ais523: Yes, a sporf. 22:23:42 ais523: you realise the topic was just that all the definitions of runcible spoon contradict each other, right? 22:23:45 is that the ofificial name? 22:23:50 elliott: oh, no I don't 22:23:57 ais523: vorpal 22:23:59 I'm rarely paying more than tangential attention to teh channel 22:24:05 *the 22:24:14 just I'm better at hiding it than Vorpal 22:24:19 and occasionally use scrollback rather than asking 22:24:20 I don't think it's very official-official. "A sporf is a generic term for a single eating utensil combining the properties of a spoon, fork, and knife.[1][2] One popular brand was invented by William McArthur in the 1940s in Australia and sold with the brand name Splayd, another brand with a serrated edge is the Eazi-Eater[3]" 22:24:25 well, marginally better at least 22:24:38 * elliott wants a single utensil for all purposes 22:24:42 including murder 22:24:42 knork is the knife-fork, and spife is the spoon-knife. 22:24:45 elliott, actually, the topic was my parents lying to me in my childhood. 22:25:06 Phantom_Hoover: It was a lie-to-children to protect you from the terrible secret of runcible spoons. 22:25:12 http://en.wikipedia.org/wiki/Lusikkahaarukka -- us Finns can't even make a spork right. 22:25:17 SHOVING WILL PROTECT YOU FROM THE TERRIBLE SECRET OF RUNCIBLE SPOONS. 22:25:27 NO PUSHING 22:25:28 fizzie: I misread that line as being from elliott originally 22:25:34 fizzie: Lusi...kka..haa...rukka. 22:25:37 Seriously, Finnish? 22:25:41 Seriously? 22:25:47 and it didn't strike me as out of place at all that elliott would claim to be Finnish 22:25:55 although I'd expect him to be lying if he did so 22:25:56 It's just "lusikka" and "haarukka" combined. 22:26:03 Spoonfork. 22:26:04 hmm, now I wonder why I believe elliott comes from Hexham 22:26:17 ais523: I don't, it's an elaborate ruse to make a fool out of Ngev. 22:26:18 given that I don't normally believe him when he claims to come from a particular location 22:26:19 Ngevd. 22:26:23 Is this the same as how you get offended when people refer to you as 'he'. 22:26:25 Hatched as a secret plot yeras before he even came here. 22:26:41 ah right, on the basis that Hexham is an awfully obscure and specific place to lying about having come from 22:26:45 Birmingham, on the other hand… 22:27:03 I'm actually from Glasgow. 22:27:05 (hahahaha no 22:27:08 ) 22:28:14 ais523: I have successfully fooled you into not believing the one true thing about me -- I'mf rom Finland. 22:28:22 `words --finnish 15 22:28:27 murooppajoisammottakus voivaan tulvollisemmat tällitseviileveämmälle suoristisemia lämmempienne ryhmitta asettumille vällämme akuttamissä suureimpieni herroksuaali jäseni kujo euraavina 22:28:33 You aref rom Finland? 22:28:34 I will laugh so much if lusikkahaarukka comes up 22:28:35 MUROOPPAJOISAMMOTTAKUS, MOTHERFUCKERS! 22:28:38 -!- elliott has quit (Quit: Leaving). 22:28:44 > cycle "griffel " 22:28:45 "griffel griffel griffel griffel griffel griffel griffel griffel griffel gr... 22:29:05 -!- elliott has joined. 22:29:10 `date 22:29:13 Sat Dec 31 22:29:13 UTC 2011 22:29:21 `words --lusikka --haarukka 15 22:29:25 Unknown option: lusikka \ Unknown option: haarukka 22:29:57 > sequence_ . init . tails $ [(),(),(),()] 22:29:59 [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()] 22:36:43 -!- DCliche has joined. 22:41:08 -!- Klisz has quit (Ping timeout: 276 seconds). 22:41:47 * oerjan suspects lahwran of being a rotidder 22:41:48 a what? 22:42:03 * oerjan whistles innocently 22:42:13 google doesn't know :| 22:42:45 -!- Deewiant has joined. 22:44:12 you can safely assume that 90% of what i say that you don't understand, is a pun. 22:44:24 90%? 22:44:25 well alrighty then 22:44:25 100% 22:44:29 puns are good 22:47:23 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 22:48:39 I don't know either 22:50:30 -!- zzo38 has quit (Remote host closed the connection). 22:56:37 -!- Phantom_Hoover has joined. 23:15:36 Phantom_Hoover, elliott kallisti update 23:16:39 Seen. 23:18:19 * shachaf shachaf shachaf * 23:18:32 monqy 23:18:52 elliott: I just read that thread about monads being functions thanks to you. 23:19:08 enjoy 23:19:20 i 23:19:30 I thought having stopped to read -cafe@ would save me from that sort of thing. :-( 23:19:49 wher 23:19:50 e 23:19:50 shachaf, monqy, believe me, you don't want to be on Sgeo's update list. 23:19:51 I think I need to quit the Internet or something. 23:19:53 On that topic, Sgeo, add shachaf and monqy to your update list. 23:20:01 "Answer - I only had the equivalent of the Maybe type, and I was trying 23:20:01 to force it where the MaybeMonad should go." 23:20:01 What? 23:20:05 What. 23:20:10 I just... what. 23:20:27 Phantom_Hoover: I was on it for an update or two but then i escaped 23:20:51 elliott: HE HAD THE EQUIVALENT OF THE MAYBE TYPE, AND HE WAS TRYING TO FORCE IT WHERE THE MAYBEMONAD SHOULD GO 23:21:03 It's not a Monad unless its name ends with "Monad", you know. 23:21:11 elliott, checked micahrjohnston's twitter again; it appears that he lured someone else in to be dashed upon the rocks of his stupidity like some kind of idiot siren. 23:21:21 shachaf: I'm more worried by the fact that adding a () -> made it work than that he couldn't define the monad int he first place. 23:21:26 Phantom_Hoover: thanks for the update........................... 23:21:29 i think......... 23:21:44 oh no does this mean i'm on two update lists now 23:21:47 >unsubscribe 23:21:48 >unsubscribe 23:21:56 you need that () -> to get a jump start into the monad 23:22:08 elliott: Now I'm looking at that post on Reddit thanks to you. 23:22:20 shachaf: the monads one? 23:22:21 have fun 23:22:36 "I say this is trivial because this Monad isn’t very interesting. But it does guarantee an order. For instance, I can write: \n MyMonad 1 >>= MyMonad . (+) 2 >>= MyMonad . (*) 10 \n This will return MyMonad 30, because the order of operations is guaranteed." 23:22:37 help i want to see stupid people?? 23:22:41 -!- Klisz has joined. 23:23:06 Man, where would we be without monads guaranteeing orderings for us? 23:23:17 oh 23:23:20 are you talking about that 23:24:12 Both examples he gives for "guaranteeing ordering" are commutative monads. 23:25:04 > Just 3 <**> (Just 5 <**> Just (-)) 23:25:05 Just 2 23:25:23 @ty (<**>) 23:25:24 forall (f :: * -> *) a b. (Applicative f) => f a -> f (a -> b) -> f b 23:25:29 @src <**> 23:25:29 (<**>) = liftA2 (flip ($)) 23:25:47 -!- DCliche has quit (Ping timeout: 244 seconds). 23:25:49 -!- Patashu has joined. 23:26:01 shachaf: That's amazing. 23:26:18 amaZING 23:26:25 @ty liftA2 23:26:26 forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c 23:26:41 why is this haPPENING 23:26:46 the monads 23:26:48 wHY 23:27:00 elliott: Hey, I was away from the Internet all day. I can take a bit to catch on. 23:27:04 * shachaf is now at airport. 23:27:10 monqy: because 2012, is end times 23:27:18 shachaf, wait, that's the Reddit thing that calls monads a tool for ordering, right? 23:27:22 all order must cease 23:27:29 shachaf: Catch on to what. 23:27:43 Anyway, the () -> guarantees ordering. 23:27:46 That arrow can't go backwards. 23:27:46 OK, this is breathtakingly awful. 23:27:56 elliott: All the making-fun-of-monad-tutorials you've been doing. 23:28:14 s/on/up/ 23:28:20 also, hippo knew jeer, everyone! 23:28:34 elliott, is this on Reddit or -cafe? 23:28:51 It spreads everywhere. 23:28:59 Sgeo: which part 23:29:03 mnoads are functions in cafe 23:29:05 monads are ordering is reddit 23:29:09 IS HASKELA PURE??? is cafe 23:29:22 Link to the functions one? 23:29:31 http://groups.google.com/group/haskell-cafe/t/1e2a2cfb2e93bcd2 23:29:35 haskela, the monstrous child of haskell and ursala 23:29:47 elliott: Wait, what? 23:29:53 * Sgeo suddenly remembers that Ursala exists. 23:29:54 Oh, a 100-post thread. 23:30:02 * shachaf might just not read that. 23:30:33 * Sgeo vaguely wonders how ST is conceptually a function 23:30:45 I mean, in their implementation, maybe 23:30:48 But conceptually? 23:31:03 Sgeo: Well, it's (STMap s -> (a, STMap s)) 23:31:21 Ah 23:31:30 newRef :: a -> STMap s -> (STRef s a, STMap s) 23:31:33 readRef :: ... etc. 23:31:43 You can't implement STMap in Haskell, though. 23:31:57 Not even with Dynamics? 23:32:16 i read the first page of that groupes and 23:32:19 wow i cant read more 23:32:27 Sgeo: Well sure, but that's cheating. 23:32:32 Sgeo: That requires Typeable. 23:32:37 Oh, rihgt. 23:32:38 right 23:32:42 You can do it with Any and unsafeCoerce, though. 23:32:43 I have. 23:32:58 You get all the ugliness of ST with none of the performance. 23:33:04 You can do it with, like, IORefs and unsafePerformIO, too. 23:33:08 monqy: there's only one page of that thread 23:33:35 elliott: Ah, Conal asks whether Haskell is denotative. 23:33:42 oh 23:33:53 Truly, -cafe@ is like clockwork. 23:34:05 evita toned 23:34:36 shachaf: Hey, look at the /rest/ of that thread. 23:34:42 Conal came in and I was like "FINALLY". 23:34:43 "This explanation of monads is simple, easy to understand, and wrong." 23:34:50 elliott, YOU OXFORD COMMIE BASTARD 23:34:50 elliott: Which part? 23:34:55 WE ARE NO LONGER FRIENDS 23:34:59 Phantom_Hoover: I love Oxford commas sorry. 23:35:05 i 23:35:05 shachaf: I assume you mean the purity one. 23:35:08 Right. 23:35:13 /ignore elliott*!*@* 23:35:17 Phantom_Hoover: :} 23:35:23 I don't object to Conal's comments or anything. 23:35:33 you, can, never, use, too many, commas,,, 23:36:15 'ʻ 23:36:20 Ugh, Unicode. 23:36:26 I need to fix this. 23:36:57 I wonder whether Phantom_Hoover has actually ignored me. 23:37:13 @tell Phantom_Hoover hi 23:37:14 Consider it noted. 23:37:30 elliott: Where do you have more karma? reddit or stackoverflow? 23:37:46 What do you have more of? Metres or kilograms? 23:37:47 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 23:37:53 @clear-messages 23:37:53 Messages cleared. 23:38:03 @tell Phantom_Hoover hi 23:38:03 Consider it noted. 23:38:07 shachaf: SO. 23:38:08 @clear-messages 23:38:09 Messages cleared. 23:38:09 "Answer - I only had the equivalent of the Maybe type, and I was trying 23:38:09 to force it where the MaybeMonad should go." 23:38:11 elliott: Remember Andrew Coppin? 23:38:13 I don't get it 23:38:14 But SO's grows like a billion times faster. 23:38:14 I wonder where he's gone. 23:38:19 shachaf: Vaguely? What did he do. 23:38:23 It's preternaturally quiet in here without elliott. 23:38:27 Oh, he used to post on -cafe@ a lot. 23:38:29 @tell Phantom_Hoover hi 23:38:29 @tell Phantom_Hoover hi 23:38:30 @tell Phantom_Hoover hi 23:38:30 Consider it noted. 23:38:30 @tell Phantom_Hoover hi 23:38:30 @tell Phantom_Hoover hi 23:38:30 Consider it noted. 23:38:30 Consider it noted. 23:38:30 Consider it noted. 23:38:30 Consider it noted. 23:38:33 @clear-messages 23:38:33 Messages cleared. 23:38:34 omg,,, 23:38:35 shachaf: I only recently started reading -cafe. 23:38:57 He posted on -cafe@ to the point that dons told him to go ask his questions in IRC. 23:39:22 :D 23:39:27 -!- oerjan has set topic: The commatose channel | http://codu.org/logs/_esoteric/. 23:39:31 shachaf: Oh, is he the guy whose package names start with AC-? 23:40:09 Ohh, it's MathematicalOrchid. 23:40:10 *That* guy. 23:40:13 * Sgeo combines the two notions of Monad 23:40:23 Monads are functions that have an Ord instance! 23:40:24 Oh, he does that? 23:40:32 Sgeo++ 23:40:43 instance Ord (World -> (a, World)) 23:40:47 ^rainbow Phantom_Hoover: hi 23:40:47 Phantom_Hoover: hi 23:40:56 @clear-messages 23:40:56 Messages cleared. 23:40:58 > var "elliott: hello" 23:40:59 elliott: hello 23:40:59 elliott: Remember Andrew Coppin? <-- i'm sure i saw him just the other day 23:41:23 ^rainbow @tell Phantom_Hoover hi 23:41:23 @tell Phantom_Hoover hi 23:42:06 ^rainbow ^rainbow 23:42:06 ^rainbow 23:42:42 ^choo ^choo 23:42:42 ^choo choo hoo oo o 23:42:52 ^echo ^echo 23:42:52 ^echo ^echo 23:42:52 ^echo ^echo 23:42:52 ^echo ^echo 23:43:08 ^style ^style 23:43:08 Not found. 23:43:29 ^asc ^asc 23:43:29 94. 23:43:31 ^rainbow hi Phantom_Hoover 23:43:31 hi Phantom_Hoover 23:43:32 * shachaf 's flight leaves in a moment. 23:43:42 shachaf: Are you flying to Finland for your military service? 23:43:50 No. 23:43:59 * Phantom_Hoover 's flight leaves in a monad. 23:44:01 Good bye, #esoteric. Goodbye#esoteric. 23:44:26 hmm, is it bad that I interpreted Goodbye#esoteric as a Java method pointer? 23:44:52 :t scanl 23:44:52 forall a b. (a -> b -> a) -> a -> [b] -> [a] 23:44:56 * oerjan waves 23:45:07 ais523: yes. 23:45:09 Java has method pointers now?!? 23:45:34 well, references 23:45:55 hoopy gnu jar 23:46:18 * Phantom_Hoover → 2012 23:46:20 -!- Phantom_Hoover has quit (Quit: Leaving). 23:46:33 shachaf: Are you flying to 2012. 23:46:41 Are you flying across the date line to stay in 2011. 23:48:45 * Sgeo will be back in a while 23:48:57 Going outside, because my legs feel weird 23:49:32 thanks