00:00:10 pikhq: DAILY REMINDER THAT KITTEN'S SERVICE MANAGEMENT SOLUTION IS THE BEST??? 00:01:26 I hope that's fixed but the only way I can test it is to kill glogbot :P 00:02:29 Well, never mind, I could make it react to something else as if it was glogbot quitting. 00:03:10 -!- fungot has quit (Ping timeout: 244 seconds). 00:03:18 elliott: At a minimum, it can't be worse than what's common. 00:03:39 -!- Taneb has quit (Ping timeout: 258 seconds). 00:03:43 If it has any sort of intelligence at all in its design, that is. :P 00:03:43 -!- glogbackup has joined. 00:03:49 Hello glogbackup! 00:03:54 Your services will not be necessary thank you. 00:04:20 And can anyone tell me why I should have to wait for every single daemon ever to start before getties spawn? 00:04:53 -!- fizzie has quit (Ping timeout: 276 seconds). 00:05:12 -!- glogbackup has left. 00:05:41 Turns out my dead-man's switch had a bug, it wouldn't set properly when codu came BACK :( 00:06:16 the man somehow stayed dead 00:06:21 I could understand waiting until *certain* daemons spawn for getties to start, but every single damned one? 00:06:36 I genuinely don't need to wait for e.g. apached to start before I log in. 00:06:47 Erm, just apache. 00:06:51 Gregor: Have you ever actually merged glogbackup locks in 00:06:57 elliott: Haven't even implemented it :P 00:07:10 elliott: But it's nice to know they may or may not be there if I do or do not need them! 00:08:12 X-D 00:10:16 -!- fizzie has joined. 00:22:57 -!- augur has joined. 00:24:09 -!- augur has quit (Remote host closed the connection). 00:25:17 -!- hagb4rd has quit (Ping timeout: 240 seconds). 00:26:01 -!- sllide has quit (Read error: Connection reset by peer). 00:29:17 -!- hagb4rd has joined. 00:35:10 -!- ive has quit (Quit: leaving). 00:37:55 -!- boily has quit (Ping timeout: 260 seconds). 00:43:59 15:32 < ais523> CakeProphet: "you" = ? 00:44:13 context? 00:44:15 ah, he's not here. 01:00:15 -!- tiffany has quit (Quit: nini~). 01:02:29 -!- hagb4rd has quit (Ping timeout: 240 seconds). 01:04:54 -!- elliott has quit (Remote host closed the connection). 01:50:36 -!- copumpkin has quit (Ping timeout: 255 seconds). 01:56:07 -!- pkzip has joined. 01:56:35 -!- oerjan has quit (Quit: Good night). 01:58:36 whats the Topic ? 01:58:48 -!- madbr has joined. 01:59:05 ... 01:59:39 did some progress on the definition only language :D 02:00:10 Its a human Forth-language ? 02:00:29 nah, I'm not sure which language it's the most like 02:00:32 or a cpu-oriented one.. 02:00:45 your no programmer 02:00:47 but there are 5 constructs 02:00:48 me guesses 02:00:55 * pkzip figures 02:01:19 - variables and multidimensional variable array 02:01:20 s 02:01:42 you reinvented Forth with variables.. 02:01:53 Should I inform chuck ? 02:02:01 - iterators/expression only variables 02:02:36 - litterals/immediates (ex: 5, 'a') 02:02:53 if its a programming language, u had just reinvented Forth ! 02:03:01 ( as was foretold ) 02:03:07 ( by the fathers ) 02:03:07 - comparators (=, !=, < >, <=, >=) 02:03:23 - math operators (+ - * /) 02:03:25 elders, my mistake 02:03:37 is it using reverse-polish math ? 02:03:44 actually it's prefix 02:03:52 so forwards-polish :D 02:03:52 prefix-forth 02:04:03 there was someone working on it 02:04:15 anyways there's no stack 02:04:15 his name was john 02:04:23 so it can't be forth 02:04:42 it has to use stacks somewhat 02:05:03 oh i get it 02:05:10 esoteric programming languages 02:05:15 - there's no defined execution order: statements are to be executed in any order, any number of times 02:05:18 my fav !!!!!!!!!1 02:05:29 oh 02:05:38 i hate the fucked-up psycho ones 02:05:43 haha 02:05:48 what about unlambda 02:05:59 I like the useful ones. 02:06:11 - variables can only be defined. they can never be undefined 02:06:13 stuff like my own version of brainfuck 02:06:17 -!- zzo38 has joined. 02:06:30 or a very minimal brainfuck with some good ideas 02:06:39 also there is only one value that variables can have: true 02:06:53 its a joke langauge 02:07:01 no it's actually turing complete 02:07:35 it can't pass turing if all variables have only one value 02:08:15 well, the "iterator" values can have any integer value 02:08:22 including over 2^32 02:08:35 but they're only valid inside the statement 02:08:49 the trick is that a value can be true, or undefined 02:09:34 when I try to work on a language, its something that wud at least interest someone 02:09:35 and since you can make an array, you can make a numerical variable by making an array and only defining one of the values 02:10:11 When I do a language I'm trying to come up with a new, mind expanding paradigm :D 02:10:33 -!- Sgeo|web has joined. 02:10:48 so to define the variable "toto" to 5, you would go 02:10:51 toto 5 02:11:08 theres nothing to learn after Forth and LISP, and AOP, and.. oh.. i guess your right.. 02:11:27 which actually means if(true) { toto[5] = true } 02:11:50 to do varz = varx + vary, you would go 02:11:53 but I prefer my mix of C/Forth/With-LISP-Macros wud be the best 02:12:13 varz z varx x vary y = z + x y 02:12:23 this actually means 02:12:47 -!- Aune has quit (Quit: Lämnar). 02:12:50 Its too late for me to try and comprehend what ur trying to code there 02:13:03 and I am the only hacker in here, so.. 02:13:14 the only one listening.. 02:13:15 if (varx[x] && vary[y] && x+y==z) varz[z] = true 02:13:57 anyways, it's really neat because it's turing complete despite the fact that variables can't ever change (!) and it has no program flow (!!) 02:14:15 are you the one spending time on breaking cryptographic codes and such ? 02:14:23 of the ones ? 02:14:29 just a bunch of statements that define a variable (to true) if its conditions are true 02:14:34 Hmmm. pkzip. Any relation to Phil Katz? 02:14:52 pkzip: actually no, I'm a sound coder irl 02:14:55 pkzip is the old dos zipping 02:15:05 though i kinda hate it now 02:15:07 7z is better 02:15:12 Yes, Phil Katz' ZIP. :) 02:15:13 it was super-cool in the 90s 02:15:34 sound coder 02:15:34 tar(1) is, of course, better. But hey. 02:16:08 tell me why linux can't use the features that device-driver writers wrote into their drivers ? 02:16:25 Windows drivers 02:16:49 since the same Windows/API/MFC code 02:16:50 pikhq: I wonder how I'm going to garbage collect my language... seems hard :D 02:16:52 Because in order to do that you'd basically have to have a clone of substantial portions of Windows in Linux. 02:17:09 This isn't impossible, but it's *insanely* hard. 02:17:38 why can't they just translate the code they already .. oh wait.. its close-code 02:17:44 It's basically much easier to go ahead and reverse-engineer the sound cards, and thereby get native Linux drivers. 02:17:47 its not open-source ? 02:17:47 Precisely. 02:17:54 Windows drivers aren't. 02:17:59 Linux drivers are. 02:18:20 why would anyone use sound card driver features ever anyways 02:18:25 And all too often the Linux drivers are written without any documentation available. 02:18:30 But the same companies that give those drivers to Linux users, write it to fit Windows.. 02:18:36 I put a username/password in the cabal configuration file but it won't go. Did I do it wrong? 02:18:52 pkzip: It's actually not the sound card designers that make the drivers, usually. 02:19:12 Real-Tek sound drivers 02:19:15 Most of the Linux drivers for *anything* are made by someone else. 02:19:16 sound cards are all the same nowadays anyways 02:19:21 or whats its caled 02:19:47 pkzip: is that another ac98 based system? 02:19:54 yep 02:19:59 its super-cheap 02:20:04 but good enough 02:20:19 wait no it's ac97 02:20:27 AC97 is the class of sound cards that have actual documentation available. Courtesy of being designed to a spec. :) 02:20:36 yea 02:20:45 that is what bugs me 02:20:58 once you get buffer streaming working they are all the same anyways :D 02:21:08 madbr: Not *quite*. 02:21:11 I can't get the one silly feature they gave Windows Sound Drivers 02:21:19 madbr: Some of them have hardware mixing. 02:21:43 Audio-Effects, EQs 02:21:44 pikhq: saves, what, 0.01% cpu? :D 02:22:10 pkzip: news flash: on ac97 those are actually done in software, not hardware 02:22:10 madbr: ALSA sucks ass, and PulseAudio sucks worse; thus, hardware mixing saves much more than 0.01%. :P 02:22:19 I know 02:22:23 pikhq: jesus 02:22:48 madbr: It's at least to the point where it's not a *notable* performance gain any more. 02:22:52 But it still sucks ass. 02:23:25 how can you mess that up 02:23:28 so, no echo/chipmunk effects to Linux users still ? 02:23:33 it's like, a multiply and addition 02:23:54 pkzip: tbh those effects should be done by the software 02:23:58 By having the sound done via a dozen abstraction layers. 02:23:59 -!- copumpkin has joined. 02:24:05 Linux drivers made by the actual company that makes the thing being driven: nvidia GFX, ATI GFX, Intel GFX ... and nothing else. 02:24:17 (Exaggeration :P ) 02:24:17 Dumb Echo/Chipmunk/Stone-Room, etc .. 02:24:17 pikhq: man, how many layers do you even need? 02:24:57 I almost went to study sound engineering, its quite a funny story 02:25:31 ALSA kernel -> ALSA library -> dmix -> PulseAudio -> [...] 02:25:32 I assume you just bumped into it 02:25:43 Mixing happens in PulseAudio and/or dmix. 02:25:48 or have you studied that from the start ? 02:25:53 Context switches are involved in that mixing. 02:26:08 pikhq: nasty 02:26:33 -!- augur has joined. 02:26:47 Admittedly, PulseAudio is entirely unnecessary, and serves largely as an expensive nop. 02:26:49 -!- augur has quit (Remote host closed the connection). 02:27:16 Oh, even worse. PulseAudio is often configured to redirect sound to it via ALSA. Giving you: 02:27:22 nop ? No-Operative/ion ? 02:27:42 ALSA kernel -> ALSA library -> dmix -> PulseAudio -> ALSA library -> [...] 02:27:55 pkzip: Pretty much. 02:28:33 pikhq: right... sounds ripe for a cleanup 02:29:00 madbr: For comparison, here's the OSSv4 stack: OSS -> program 02:29:24 then why doesn't alsa get dumped in favor of oss? 02:29:32 Because derp. 02:29:46 OSS was dumped in favor of ALSA way back when. 02:30:02 (the in-kernel OSS sucked, and the external one was proprietary) 02:30:18 also, for audio app plugins, you should probably dump ladspa and make a linux version of VST2 02:30:35 pikhq: ah, I see. 02:30:38 I only use faith-based sound drivers, so .. :-/ 02:30:52 :P 02:30:55 madbr: Also fun, ALSA is a Linux-specific API. 02:31:07 All the other UNIXes (and I mean *all*) use OSS. 02:32:46 One of the big things I see in modern UNIXes is the idea that complicated is better. 02:32:57 Erm, s/UNIXes/Linux distros/ 02:33:44 that's not true for sound APIs :D 02:33:47 Adding more onto the heap is somehow better than actually replacing things. 02:33:54 It's not true for most things. 02:34:44 for sound APIs it's really just about just doing a sound callback and keeping latency as low as possible 02:34:58 buffers go out -> victoly! 02:35:11 It's especially "fun" for init schemes. It's managed to reduce /sbin/init to a program that executes a shell script and spawns getties. 02:35:46 but yeah sound APIs are hit or miss 02:36:06 some are nasty (OpenSL) 02:36:27 There was this OS for this latency-OCDers.. 02:36:28 OSS is merely a bit strange. 02:36:53 open("/dev/dsp", "w"); // ... 02:37:05 is it buffering or callback oriented? 02:37:32 Buffering, I guess? 02:37:50 To interact with it you write PCM to the device file. 02:37:59 yeah that's buffering 02:38:51 how does it handle synchronization? 02:39:47 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 02:40:35 smallest audio api I've seen is 2 function calls 02:40:54 Beats me. 02:41:20 init, and a function that pushes in a sound buffer (blocks until the sound hardware is ready to take another buffer) 02:41:43 Well. I'd imagine what it does is the file descriptor blocks. 02:42:23 In fact, actually, I'm almost positive that's what it does, considering the behavior of cat raw-pcm >/dev/dsp 02:42:37 mhm 02:44:10 yeah that would work 02:44:58 tbh anything that will get you 20ms latency or less is fine :3 02:46:39 -!- Jafet has joined. 02:47:18 -!- pkzip has left. 02:48:53 kinda wondering how to garbage collect this language... seems really hard 02:55:06 (Having no context) What about the language makes it difficult to GC? 02:55:23 Gregor: madbr's ignorance of functional language evaluation and garbage collection. :) 02:55:29 :D 02:55:46 but yeah basically all you do is define new variables to "true" 02:56:00 usually inside arrays 02:56:23 you cannot undefine variables once they are defined 02:57:05 so doing brainfuck's array actually requires a 3 dimensional array: 02:57:31 data[execution_step][index][value] 02:58:42 uh, how you index an array with only true? 02:58:48 or are there other kinds of values as well? 02:58:54 cakeprophet: somple 02:58:58 simple 02:59:28 suppose you want to set index 45 to value 88 on step 61 02:59:36 ah 02:59:47 you simply define data[61][88][45] 02:59:51 (as true) 02:59:57 and leave the other values undefined 03:00:00 okay so there are integers too. 03:00:01 cool. 03:00:26 well, there are integers but you can't actually store them :D 03:01:19 you store the value 45 by making an array and only defining the entry 45 :D 03:01:29 okay 03:01:35 now how do you give a brainfuck interpreter unbounded memory. 03:02:00 easy 03:03:29 -!- augur has joined. 03:03:30 you store the size of the array, then when doing > you check if it's over the size, if yes, you define a new index with value 0 so that it can be used by subsequent execution steps 03:03:40 all arrays are unbounded 03:04:42 -!- pikhq_ has joined. 03:05:33 -!- simpleirc936 has joined. 03:06:22 so yeah it's hard to GC because the number of defined values always increases, never decreases 03:06:25 -!- pikhq has quit (Quit: Reconnecting). 03:06:48 so there has to be a way to recognize values that have become irrelevant and can be discarded 03:06:53 but I don't know how :D 03:08:09 -!- simpleirc936 has quit (Remote host closed the connection). 03:13:31 also you're going to get a copy of pretty much each variale for each execution step, dunno how to prevent that 03:14:47 -!- myndzi\ has changed nick to myndzi. 03:15:02 Use bloom tables 03:15:46 madbr: Why not similarly to a more normal language? Unreachable etc. 03:15:55 If you never get unreachabl... wait, hmm 03:16:20 yeah would need to be some special kind of unreachable : 03:16:23 :D 03:16:28 Read up on SSA. :) 03:16:33 You still need to maintain a table of which variables were defined, even if you can't see the value 03:16:39 Or maybe I'm misunderstanding 03:18:14 the point of the language is that any potential variable is either true or undefined 03:18:32 so values aren't really used 03:18:37 Oh 03:18:50 What does garbage collection even mean then? 03:19:17 mostly it means that the set of defined variables doesn't grow indefinitely with each execution step :D 03:20:35 like, the other catch with the language is that variables can't be undefined 03:20:39 Why would it without GC? 03:20:59 so essentially, to do computation, you have to keep defining new variables 03:21:24 Oh, so.. wouldn't that make GC meaningless if this language were to be interpreted? 03:21:45 Wait, no 03:21:48 Is there scoping? 03:21:52 nope 03:21:53 -!- copumpkin has joined. 03:22:14 So, how could a name ever be unreachable, unless you're statically analyzing a file? 03:22:14 it has to be GC'd in some way or else the memory would just blow up 03:22:38 that's what I'm trying to figure out :D 03:23:10 madbr: It's possible to make a language that has unavoidably bad implementations, you know 03:23:21 Not saying that that's necessarily the case here 03:23:29 But I think you might want some sort of static analysis? 03:23:42 So that you act AS IF variables aren't undefined, but secretly you undefine them? 03:24:29 well, there has to be some way to figure out when a variable can't produce any new definitions I guess 03:25:39 once a variable cannot be used in the computation of new definitions, then it's effectively unreachable 03:27:07 and can thus get garbage collected 03:27:32 I'm not sure there's a way to do this without solving the halting problem though :D 03:29:25 It should be harmless to fail to GC a subset of variables that are unreachable 03:29:46 There's nothing impossible about a machine that solves the halting problem but gives false positives or false negatives 03:30:25 Proof: For all turing machines, my machine outputs n 03:30:28 "Halts" 03:30:40 hmm 03:32:11 -!- kmc_ has joined. 03:32:16 then it doesn't solve the halting problem, does it? 03:34:02 sgeo: essentially, the real problem is that since you can't change the state of something once it's declared, you have to create a new state on each step 03:34:50 so typically you'll have the new state being created, and the old state, but steps before that are already unreachable 03:35:00 -!- kmc has quit (Ping timeout: 240 seconds). 03:35:09 -!- Sgeo|web has quit (Ping timeout: 265 seconds). 03:37:42 -!- kmc__ has joined. 03:41:12 -!- Sgeo|web has joined. 03:41:19 -!- kmc_ has quit (Ping timeout: 260 seconds). 03:41:26 I got a recaptcha consisting of partially greek symbols 03:41:39 I ended up typing deltamuwhatever 03:41:51 * Sgeo|web feels like a jerk 03:42:55 Sgeo|web: Don't worry, it won't be transcribed into that. 03:43:08 As far as I know recaptcha requires several people to enter the same thing before it counts as valid. 03:47:22 i guess what is needed is a way to tell from an array[x][y][z] that, say, anything before x=50 has become unreachable 03:48:26 Can only constants go in array[x][y][z]? I don't get how one does indexing 03:52:40 the language has a second sort of variables that are only valid for a particular statement 03:52:46 that take numerical values 03:53:19 so for instance to add the values from varx and vary into varz, you'd go 03:54:07 if(varx[x] and vary[y] and z==x+y) define varz[z] 03:54:24 or, in shorthand notation, 03:55:09 varx[x] vary[y] z=x+y : varz[z] 03:55:57 x y and z take numerical values 04:00:25 -!- pikhq has joined. 04:01:24 -!- pikhq_ has quit (Ping timeout: 252 seconds). 04:02:45 -!- augur has quit (Remote host closed the connection). 04:09:48 There are some things I don't like much about the functions for WriterT, such as the contraints on the type for "tell". It is (Monoid w, Monad m) but I think it should be (Applicative m) 04:10:20 My own function "mpure" is like this: mpure :: Applicative f => w -> t -> WriterT w f t; mpure x y = WriterT $ pure (y, x); 04:14:25 -!- hagb4rd has joined. 04:17:57 How many bijective functions of type [a] -> [a] are there? 04:20:11 if you restrict them to be lists of the same length n, then n! 04:20:15 if not, infinitely many 04:20:55 Yes, that is what I thought. And is it the case the output list will always be the same length as the input list? 04:21:14 yeah, but that's one of the assumptions there 04:21:26 having duplicate elements may reduce the number of functions a bit, since you can't distinguish them 04:22:57 That is true but the input could have or not have duplicate elements regardless of the function. 04:23:26 The assumption I make is that only finite lists are used. But nothing else; not even Eq class. 04:25:49 Infinite, then. To start with, there's the class of functions that simply duplicate the first element a fixed number of times, and do nothing on []. 04:26:03 This *alone* gives you infinite bijections, and that's not even the entire set! 04:27:05 Can you please give an example? 04:27:37 example1 (x:xs) = x:x:xs;example1 [] = [] 04:27:51 And what is its inverse? 04:28:13 example1' (x:xs) = xs;example1' [] = [] 04:29:44 But, you can have example1 (example1' "hello") == "eello" I think it is not inverse 04:31:01 Hrm. 04:34:08 example1 maps from the set of lists to the set of lists that are either null or have a duplicate element at the start, and example1' maps from the set of lists that are either null or have a duplicate element at the start to the set of lists. 04:34:19 It's not my fault that Haskell doesn't encode this at type level. 04:34:44 O, OK. Well, then they are bijective. But then they are not bijective on the type I specified! 04:35:08 Yes they are, your statement was just vague. :P 04:35:34 -!- songhead95 has quit (Ping timeout: 265 seconds). 04:36:03 If you want it to be a bijective mapping from the set of lists to the set of lists, then the maximum number of bijections is O(n!), where n is the maximum length of lists you're considering. 04:36:23 And if you're considering all finite lists, then n is infinity, and there you go. 04:37:01 Wait, why did I put O()? 04:51:55 -!- augur has joined. 05:28:04 -!- MDude has changed nick to MSleep. 05:30:06 Can WriterT be used for probability distributions? 05:38:29 What is it called when a group has everything being their own inverse? 05:47:40 bunch of pairs? wish I knew 05:49:29 -!- kmc__ has quit (Quit: Leaving). 06:34:44 I have idea making payphones that even if inband signaling is used, can prevent redboxing. And it does not disrupt telephone calls, no secret keys are used, protocol can be public, etc. It can have three modes, red, yellow, green (and can be indiciated by LEDs of those colors). The initial mode is red. 06:35:13 * Red: Coins are accepted, keypad is enabled, microphone is disabled, commands received are accepted. 06:35:41 * Yellow: Coins are rejected, keypad is disabled, microphone is enabled, the only command accepted is to switch to red mode. 06:36:05 * Green: Coins are rejected, keypad is enabled, microphone is enabled, all commands received are rejected. 06:36:22 Is it good? 06:44:10 -!- zzo38 has quit (Remote host closed the connection). 06:47:53 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.). 06:59:19 -!- aloril has quit (Read error: Connection reset by peer). 07:04:40 -!- Jafet has quit (Quit: Leaving.). 07:14:09 -!- aloril has joined. 07:44:04 -!- jix has quit (Remote host closed the connection). 07:57:46 -!- madbr has quit (Quit: Radiateur). 08:08:36 -!- derrik has joined. 08:16:30 -!- Vorpal_ has joined. 08:19:25 -!- Vorpal has quit (Ping timeout: 240 seconds). 08:19:41 -!- Vorpal_ has changed nick to Vorpal. 08:41:05 -!- monqy has quit (Quit: hello). 09:17:04 -!- pkzip has joined. 09:17:28 -!- pkzip has left. 09:21:51 -!- sebbu has quit (Ping timeout: 248 seconds). 09:35:18 -!- hagb4rd has quit (Ping timeout: 240 seconds). 09:41:40 -!- jix has joined. 09:47:18 -!- Madoka-Kaname has quit (Ping timeout: 240 seconds). 09:47:40 -!- Madoka-Kaname has quit (Changing host). 09:47:41 -!- Madoka-Kaname has joined. 10:04:08 -!- oerjan has joined. 10:05:33 -!- someoneyouhate has joined. 10:07:24 -!- oerjan has quit (Client Quit). 10:07:49 -!- Madoka-Kaname has quit (Ping timeout: 256 seconds). 10:09:14 -!- ais523 has joined. 10:11:05 -!- Madoka-Kaname has quit (Changing host). 10:11:06 -!- Madoka-Kaname has joined. 10:11:23 -!- oerjan has joined. 10:28:15 -!- Madoka-Kaname has quit (Ping timeout: 276 seconds). 10:30:02 -!- Madoka-Kaname has joined. 10:30:02 -!- Madoka-Kaname has quit (Changing host). 10:30:02 -!- Madoka-Kaname has joined. 10:32:10 @tell zzo38 What is it called when a group has everything being their own inverse? <-- i just saw the term "exponent 2" used on the gödel's lost letter blog 10:32:10 Consider it noted. 10:44:49 -!- hagb4rd has joined. 10:48:23 -!- derdon has joined. 10:54:21 -!- GreaseMonkey has quit (Quit: The Other Game). 11:08:48 -!- ais523 has quit (Remote host closed the connection). 11:08:57 -!- ais523 has joined. 11:18:14 :t id id id id id id id id id id id id id id id id id id id id id id id id id 0 11:18:14 forall a. (Num a) => a 11:18:14 :t id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id 0 11:18:14 forall a. (Num a) => a 11:18:37 > id id id id id id id id id id id id id id id id id id id id id id id id id 0 11:18:43 mueval-core: Time limit exceeded 11:18:45 > 0 11:18:48 0 11:19:09 > id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id 0 11:19:17 mueval-core: Time limit exceeded 11:19:36 http://www.reddit.com/r/haskell/comments/m7uph/whats_going_on_with_id_id_id_id_0/ 11:20:12 no one gave a really good answer to why it breaks in some contexts but not others, though 11:20:27 I was just about to say that someone finally did 11:20:34 oh? 11:20:36 In the form of http://codepad.org/2YrUqs1E 11:20:52 Core for a couple of id's 11:21:31 oh i guess :t doesn't need to actually generate the code 11:21:53 *core 11:21:56 Yep 11:22:14 > id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id id () 11:22:18 mueval-core: Time limit exceeded 11:22:29 hm () was supposed to work 11:22:57 i guess it may just take a longer expression to break 11:23:36 -!- derrik has quit (Quit: done). 11:29:16 You must've hit the ID-ten-T error. 11:30:08 -!- pikhq_ has joined. 11:30:39 -!- pikhq has quit (Ping timeout: 276 seconds). 11:39:33 -!- Phantom_Hoover has joined. 11:41:34 -!- Phantom__Hoover has joined. 11:44:30 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 11:53:25 -!- ais523 has quit (Remote host closed the connection). 11:53:52 My impression of Skyrim so far is that it is very much designed with console in mind when it comes to the interface. Heck there are even some sliders you have to use the arrow keys for rather than the mouse. Ugh. 12:33:54 http://killscreendaily.com/articles/things-i-ate-skyrim 12:40:48 Things I ate: Skyrim. 12:45:38 -!- aloril has quit (Ping timeout: 260 seconds). 12:58:12 -!- aloril has joined. 13:08:01 -!- ais523 has joined. 13:10:59 hmm, can someone here explain the "news at 11" meme for me? I don't get it, and knowyourmeme.com is no help 13:14:40 i think it's supposed to allude to ancient broadcast interruptions 13:14:59 ah, when a news story breaks and people are told of it interrupting an existing program 13:15:03 and when to look to see more? 13:15:07 yeah 13:15:44 it was already a cliche when i was reading usenet back in the 90s 13:15:47 why 11 specifically? 13:16:09 presumably some broadcaster had its evening news then? 13:18:48 there's http://www.imdb.com/title/tt0091624/ 13:37:30 -!- oerjan has quit (Quit: leaving). 13:54:00 Also: http://tvtropes.org/pmwiki/pmwiki.php/Main/FilmAtEleven 13:54:14 "The phrase originated in the 1970s, when stations began to run teasers for the late local news during Prime Time (such as "shootout at local gas station, Film at 11.") This was often a Justified Trope at the time, since it could take hours to transport exposed 16 mm film from a remote site to the station, develop it, edit it, and add a voiceover." 13:58:09 Also from the examples: "* Particularly on the Internet, "Film at 11" has taken on an ironic meaning, equivalent to Seen It a Million Times. 13:58:09 "Imminent Death of the Net Predicted. Film at 11." — common Usenet phrase, mid 1990's." 14:00:09 Finally, there's a stubticle of "Film at 11" in Wikipedia, but it doesn't say much else, except the claim that 11 p.m. is/was a "traditional timeslot for local news broadcasts in the Eastern and Pacific time zones of the United States". 14:00:17 (Is stubticle even a word?) 14:00:44 It's an icicle made of stubble. 14:01:27 Or is that like the sort of beardcicles you get in cold weather, except re shorter hair? They're not much fun. 14:05:48 -!- hagb4rd has quit (Quit: hagb4rd). 14:08:26 -!- tiffany has joined. 14:19:22 fizzie, I don't know, not having a beard or the conditions under which icicles would form on one. 14:20:48 fizzie, did you catch up with Homestuck, BtW? 14:21:07 Not yet. 14:21:14 I'm not quite sure they qualify as real icicles, but below -20 (apparently that's -4 Funnyheit) moisture from exhalation tends to freeze one's beard, and it's a bit uncomfortable. 14:21:29 I did do the prequel wander-around flash. 14:22:00 Temperatures outside the 25-to-minus-5 range? What is this witchcraft? 14:23:38 And yes, that was the best flash. 14:24:28 (Here in the south tip of Finland it doesn't really go below -10 very often, though.) 14:25:05 -!- hagb4rd has joined. 14:27:07 http://esolangs.org/wiki/Libertas 14:27:13 "Libertas is the first syntax-error runtime-error free programming language ever." 14:27:20 Let us disabuse the creator of this notion. 14:28:56 -!- Madoka-Kaname has quit (Quit: Hug~♪). 14:37:27 -!- boily has joined. 14:44:40 -!- Madoka-Kaname has joined. 14:44:40 -!- Madoka-Kaname has quit (Changing host). 14:44:40 -!- Madoka-Kaname has joined. 15:06:27 -!- MSleep has changed nick to MDude. 15:07:53 -!- hagb4rd has quit (Quit: hagb4rd). 15:08:09 -!- hagb4rd has joined. 15:18:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 15:25:51 -!- hagb4rd2 has joined. 15:26:09 -!- hagb4rd has quit (Disconnected by services). 15:26:24 -!- hagb4rd2 has changed nick to hagb4rd. 15:27:18 sry for join flooding. guess its gonna be fine now 15:34:31 Madoka-Kaname, oi, fix your ident order. 15:41:57 Phantom__Hoover: ITYM: 15:42:17 Madoka-Kaname!~moe@ppp-70-251-229-235.dsl.rcsntx.swbell.net, oi, fix your ident order. 15:46:13 -!- copumpkin has joined. 15:52:55 -!- nys has joined. 15:57:35 -!- Madoka-Kaname has quit (Quit: Hug~♪). 16:00:10 -!- Madoka-Kaname has joined. 16:00:10 -!- Madoka-Kaname has quit (Changing host). 16:00:11 -!- Madoka-Kaname has joined. 16:02:07 -!- Zuu has quit (Ping timeout: 244 seconds). 16:07:41 -!- pkzip has joined. 16:08:16 -!- pkzip has left. 16:16:54 -!- Ngevd has joined. 16:18:17 Hello! 16:18:21 I hurt my leg today... 16:18:51 I hut... all the legs. 16:21:05 so yeah some moment of time of numerical signifigance in the Gregorian calendar happened 16:21:14 * CakeProphet celebrates. 16:21:18 I waited for a ninth of a second. 16:21:31 We took about ten minutes out of history to celebrate 16:21:56 I was busy marking, I think 16:22:08 or at least, getting ready to enter marks into a computer 16:22:20 (on Friday mornings, we have eight people marking and I enter the marks in as they arrive) 16:22:46 Oooh 16:22:51 Schmancy system. 16:23:20 I can type in the marks more than eight times faster than another person can mark the work, though, so there's quite a bit of downtime 16:23:45 ais523: don't worry there's always 12/12/12 16:23:56 why would I worry about a coincidence of numbers? 16:24:10 and, provided that you live long enough, 22:22 on 2/22/2222 16:24:24 Shh, you'll get pikhq_ going. 16:24:25 CakeProphet: dates don't work like that 16:24:44 ais523: hm? 16:24:45 !c printf("%d",1<<25); 16:24:50 33554432 16:24:51 ais523: well yes 16:24:51 but 16:24:53 you can pretend 16:24:57 CakeProphet: there aren't 22 months in a year 16:24:58 that it's still February. 16:25:18 ais523: the month is at the beginning 16:25:20 2^25 being 33554432 is better 16:25:34 CakeProphet: how ridiculous 16:25:37 it's an American thing. 16:25:52 Phantom__Hoover: that reminds me, why were you deliberately winding up an op yesterday? 16:26:04 Which op? 16:26:10 me 16:26:10 actually there's 2/2/2222 AND 2/22/2222 16:26:13 woooooow 16:26:34 so much significance! 16:26:39 ais523, rest assured that the up-windery was entirely independent of your oppishness. 16:26:50 well, OK; but it's still incredibly bad form 16:27:27 Well no, because I have to concentrate hard to remember that you're an op. 16:27:42 Thus I was not deliberately winding up an op; it was accidental. 16:27:42 it's bad form to deliberately wind up anyone, whether they're an op or not 16:28:53 ais523: so you know how people say "November 11th, 2011"? 16:28:57 or, do people not say that where you live? 16:29:05 I say 11th of November 2011 16:29:08 CakeProphet: "11 November 2011" 16:29:10 anyway, that's where the m/d/y format comes from 16:29:16 -!- elliott has joined. 16:29:19 or just "the 11th" if the month/year are clear from context 16:29:26 I thought it was a corruption of y/m/d 16:29:37 Which in some ways DOES MAKE SOME sense 16:29:40 there's an "of" that's pronounced but not generally written 16:29:42 But it's still WRONG 16:29:59 amusing, there are "Quicksilver ingots" in Skyrim... How would that even work? 16:30:05 Gregor: So, I wasn't planning on getting the new Dinosaur Comics book. 16:30:09 (implying a correct ordering of elements in a date) 16:30:10 BUT IT HAS AN N-GRAM ANALYSIS 16:30:14 I MUST 16:30:17 Vorpal, immobilising in something else? 16:30:27 Vorpal, isn't quicksilver mercury? 16:30:29 elliott: you could incorporate that in your CORPUS 16:30:32 get it? 16:30:37 Phantom__Hoover: so basically, I want you to apologise 16:30:37 Ngevd, yes 16:30:44 !!! 16:31:00 Homestuck update, Minecraft pre-release 16:31:02 Ngevd, btw the Swedish name for mercury is kvicksilver. So this was obvious to me 16:31:16 Ngevd: No spoilers re: HS update 16:31:27 ais523, I'm afraid I can't tender that request. 16:31:28 Haven't/won't read yet 16:31:33 (Is that how 'tender' works?) 16:31:34 11/11/11 - "Examine room." 16:31:34 11/11/11 - "Enter name." 16:31:34 11/11/11 - "Homestuck" 16:31:34 11/11/11 - "==>" 16:31:34 11/11/11 - "[S] ACT 6" 16:31:35 Oh, look at that. 16:31:46 Phantom__Hoover: Stop being an asshole for no reason. 16:31:54 elliott: I somehow saw this coming I think. 16:31:55 Phantom__Hoover: isn't tendering, in that context, the process of asking a bunch of people for quotes 16:32:01 so you can accept the best one and get them to subcontract? 16:32:01 CakeProphet: So did everyone 16:32:08 it'd be a kind-of weird thing to do, really 16:32:34 02:02:53: if its a programming language, u had just reinvented Forth ! 16:32:36 Phantom__Hoover: Stop being an asshole for no reason. <-- that's elliott's job :P 16:32:39 this pkzip guy in the logs really likes forth 16:32:57 admittedly, Forth is a language it seems vaguely possible to reinvent by mistake 16:32:59 but not much more than that 16:33:24 Ngevd: it takes slightly more reasons than "because it'll upset them" for me to offend someone :) 16:33:27 slightly. 16:33:42 hmm, if space aliens had programming languages (and they probably do), which of ours do you think they'd have reinvented; not counting things like syntax differences 16:33:50 02:05:03: oh i get it 16:33:50 02:05:10: esoteric programming languages 16:33:50 02:05:15: - there's no defined execution order: statements are to be executed in any order, any number of times 16:33:50 02:05:18: my fav !!!!!!!!!1 16:33:50 02:05:29: oh 16:33:52 02:05:38: i hate the fucked-up psycho ones 16:33:54 02:05:59: I like the useful ones. 16:33:55 wow this guy is really annoying 16:34:03 I know someone who actually has had his birthday, and Christmas, ON THE SAME DAY! 16:34:03 In fact, I'll estimate that just under 1 in 365 people do 16:34:05 ais523: heh, you might like the Nock/Urbit posts 16:34:24 Ngevd: does he have his birthday and Christmas on the same day every year? 16:34:45 02:06:13: stuff like my own version of brainfuck 16:34:47 auugh 16:35:10 ais523, yup 16:35:15 (diff) (hist) . . N Libertas‎; 01:29 . . (+1,162) . . Pegasus (Talk | contribs) (New page: '''Libertas''' is the first syntax-error runtime-error free programming language ever. The interpeter will execute the instructions no matter what. =Examples= A hello world application: ...) 16:35:19 ais523: MAKE HIM STOOOOOP 16:35:33 elliott: that is at least a vaguely eso concept 16:35:38 it's not the same as what BF does 16:35:41 sure, it's probably a bad impl of it 16:35:47 but the concept isn't awful 16:35:55 http://esoteric.voxelperfect.net/wiki/Libertas 16:35:58 wow, it's really bad 16:36:14 it's just "make an empty object when you reference something undefined" 16:36:21 /Objective-C/ does that! 16:36:23 well 16:36:25 or rather 16:36:30 sending a message to nil produces nil 16:36:34 you just need to map undefined variables to nil 16:36:54 elliott: but the way its syntax works, you could come across fun ambiguities 16:37:02 fair enough 16:37:05 try to figure out how you output a string stored in a variable 16:37:24 (the obvious syntax for that, is the same as the syntax for extending toScreen with a new property) 16:37:28 02:16:08: tell me why linux can't use the features that device-driver writers wrote into their drivers ? 16:37:28 02:16:25: Windows drivers 16:37:28 02:16:49: since the same Windows/API/MFC code 16:37:34 i hope this guy leaves soon 16:37:45 What channel? 16:37:47 Oh, logs? 16:38:05 elliott: randomly mentioning ndiswrapper could potentially help, or hurt 16:38:13 ais523: in the logs? 16:38:15 would at least possibly have produced an amusing reaction 16:38:15 elliott: okay so I didn't predict any of this other stuff. Just that there will be more character introductions of that format. 16:38:23 elliott: that's the past tense of could 16:38:28 it's just the same as the present tense 16:38:33 so it's a little hard to tell them apart 16:38:42 no "coulded" or whatever in English 16:38:52 coulded :D 16:39:04 -!- rajdev5089 has joined. 16:39:17 I suppose I should have said "could have" there 16:39:18 elliott: I thought perhaps he was going to take us to the green hardboiled universe and introduce some characters or reintroduct the midnight crew or something like that. 16:39:21 hmm, who's rajdev5089? 16:39:24 `? welcome 16:39:31 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 16:39:33 elliott: I was going to do that, but didn't know if they were new or not 16:39:39 CakeProphet: Well, don't spoil me. 16:39:52 perhaps I should just welcome regulars randomly, so that if a not-quite-newbie comes in and I welcome them too, it doesn't look out of place 16:40:23 hey .. someone tell me 16:40:30 whats going on here 16:40:58 rajdev5089: this is an IRC channel about esoteric programming languages 16:41:04 who is ais523 ? 16:41:07 I am 16:41:23 where u from 16:41:40 why does it matter? this is IRC, there aren't any obvious international borders here 16:41:44 (HEXHAM IS NOT A COUNTRY) 16:41:53 whats mean esoteric 16:42:01 esoteric prorgamming languages 16:42:08 is it a public chat room right ? 16:42:22 rajdev5089: yes; but the chat rooms are all about different subjects 16:42:33 who are all here 16:42:37 and if you come to one that isn't about a subject you're interested in, the conversation probably won't be too interesting for you 16:42:47 all are software professionals ? 16:42:48 as in, we're here because we share a common interest 16:43:03 for some definition of professional 16:43:06 I'm definitely not a software professional 16:43:21 umm, my job involves at least some programming, does that count? 16:43:33 I'm sorta a software... person who's not even very good at pretending to be any good at programming 16:43:35 then who are you people.... u said its a programming language 16:43:46 We're software amateurs 16:44:01 amateurs mean ? 16:44:11 People who do things for entertainment 16:44:13 http://en.wiktionary.org/wiki/amateur 16:44:28 amateur mean sexy ? 16:44:35 right ? 16:44:37 Not especially 16:44:48 how many people are here ? 16:44:57 Yes, this channel is for software sexies. 16:44:59 * Phantom__Hoover → other things. 16:45:00 -!- Phantom__Hoover has quit (Quit: Leaving). 16:45:09 rajdev5089: 55, including you 16:45:20 dont we do personal chat here 16:45:42 depends what you mean by personal :P 16:45:53 rajdev5089: do you work on Firefox? 16:45:55 one to one chat 16:46:09 its a public chat here 16:46:34 can i see you people here 16:46:43 no, we're mostly invisible 16:46:46 I'm actually a stream of bist 16:46:48 bits 16:46:50 I live inside computer 16:46:57 really 16:47:02 elliott: enjoy being locked in your matrix of solidity! 16:47:08 how u live inside computer 16:47:23 * CakeProphet is a "software professional" 16:47:24 He's an AI 16:47:25 tell about you ais523 16:47:27 rajdev5089: you have to build yourself a matrix of all your hopes and dreams, scan your brain into it, and that locks you in 16:47:45 fungot? 16:47:51 fungot is dead?! 16:47:52 No fungot... 16:47:55 :'( 16:48:08 heh, I was about to ping fungot too, but it wasn't here 16:48:10 which country u belong to 16:48:11 `logs 16:48:13 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: logs: not found 16:48:16 `log 16:48:18 2011-07-31.txt:10:43:42: learn to `on` 16:48:27 rajdev5089: i actually flow all over the internet, i'm an AI worm 16:48:35 currently I'm in at least 8 continents 16:48:49 I'm Australian currently resident in Canada 16:48:52 ur real name elliot ? 16:49:06 elliott.exe 16:49:07 who is ngevd ? 16:49:12 Me 16:49:21 Ngevd: I run on @! 16:49:21 rajdev5089: you're from Bangalore, India, or at least somewhere nearby 16:49:30 ais523: omg hax 16:49:37 yes... 16:49:43 i m in banglore 16:49:52 so why do you need to ask us where we live, when it's typically easy to find out? 16:50:04 how u people know that i m from banglore 16:50:10 how to see ? 16:50:17 Because we know the secret 16:50:29 rajdev5089: Because of the Cameras. 16:50:30 tell me .. i will also find 16:50:43 oh my god guys 16:50:45 fungot, is gone. 16:50:52 * CakeProphet freaks the fuck out. 16:50:57 * CakeProphet is a frightened weasel. 16:51:23 tell me yar 16:51:36 what infirmation u know about me 16:52:07 All the information. 16:52:15 SCANNING VICINITY... 16:52:19 what else 16:52:21 rajdev5089: you like the color purple. 16:52:38 yes cakeprophet 16:53:04 rajdev5089: Your name... is rajdev5089. 16:53:13 then 16:53:57 * CakeProphet says in a cryptic voice, "your name is not registered to services." 16:54:18 * shachaf says in a hollow voice, "Fool." 16:54:43 rajdev5089: YOU Broadband & Cable India Ltd. is dedicated to your safety. 16:55:06 what ur saying elliot ? 16:55:20 i dont understand you elliot 16:56:12 err, you misspelt his name 16:56:17 * ais523 braces 16:56:36 ais523: rajdev5089 is clearly referencing some offline user 16:56:38 fizzie: help you are not fungot. no one is fungot. what is world at 16:56:41 `log \belliot\b 16:56:47 ais523: wow, I typo'd "elliott" as "elliot" 16:56:49 erm 16:56:51 other way around 16:57:02 deliberately typoing is often hard 16:57:05 2009-11-09.txt:23:31:24: Special thanks go to Joris Huizer, Elliot Hird, Arvid Norlander, 16:57:10 especially on a word you typo often 16:57:19 what u people saying 16:57:24 (random fact: I typoed about eight times in that line) 16:57:30 rajdev5089: are you a developer? 16:57:38 :# 16:57:41 i m really mad on seeing this 16:57:50 like grrrr mad? or bhasiuhiuwehruhwer made? 16:57:52 *mad 16:58:17 if someone is free mean tell me clearly what happening here 16:58:32 how to use this chat room 16:58:46 i m new here 16:58:46 rajdev5089: you probably don't want to use this one, as you seem to have no idea of what it's for 16:58:55 rajdev5089: Try #ubuntu. 16:59:00 Type: /join #ubuntu 16:59:06 yes 16:59:16 r u people male or female 16:59:32 u know..... who i am ? 17:00:11 We know everything, rajdev5089. 17:00:43 elliott: never say that, you attract attention from people who actually /do/ know everything 17:00:59 ais523: heh 17:02:01 who is ais523 17:02:07 rajdev5089: I am a sexy sexy female software professional. 17:02:11 rajdev5089: the owner of this channel 17:03:02 then who are you elliott 17:03:13 I am... you. 17:03:36 who is cakeprophet 17:03:57 A sexy sexy female software professional 17:04:00 send me some private msg people 17:04:18 who is ngevd 17:04:24 ngevd is hexham 17:04:44 hexham mean 17:04:47 I am Zoe Olivier and I have for the longest time been raised by foster parents, unaware of my status as a foster child. Then one day, I realized I have the power to divine through interaction with baking magicks. 17:04:53 Hexham is my name 17:05:12 ur male \ 17:05:21 hexham is male 17:05:27 Hexham can be either 17:05:30 it is since then that I exist in my current form, fighting the evils through divination of baked goods, and making the world a happy and good justice place for all!!! 17:05:46 rajdev5089: I feel compelled to point out that as an amorphous stream of bits, I have no gender. 17:06:03 hexham send me private msg 17:06:57 -!- augur has quit (Remote host closed the connection). 17:07:05 msg rajdev5089 Hello! 17:07:15 Ngevd: that isn't a private message 17:07:17 I saw it just fine 17:07:30 Woops 17:07:31 I'm tired 17:08:41 msg rajdev5089 u liek girls with dicks? 17:08:43 oops. 17:08:52 why 17:09:33 -!- ChanServ has set channel mode: +o ais523. 17:09:53 rajdev5089: I suspect you're in the wrong place, and you should probably leave 17:10:35 why ais523 17:10:43 what people discuss here 17:10:45 `quote 17:10:45 `quote 17:10:46 `quote 17:10:46 `quote 17:10:46 `quote 17:10:48 because you don't understand the purpose of this channel 17:10:54 457) Dear eHow: Please don't assume that my toilet works like that Or, at least, my toilet looks different 17:10:54 387) I figured out something about C program. If you use ? : a lot then you don't need as much parentheses but it makes it more difficult to understand. 17:11:11 20) there is plenty of room to have two heads 17:11:11 95) Clearly we should be like Mumbai and get of vehicle dors. Get of vehicle dors? I think Aftran had a French phrase there. Les vehicles d'or 17:11:11 230) Maybe they should just get rid of Minecraft. If more people want it someone can make using GNU GPL v3 or later version, with different people, might improve slightly. 17:11:44 ais523: hmm, I'm thinking 95; 20 can't be deleted because it would ruin the quotes after it 17:11:59 who is here 17:12:02 elliott: yes, OK; 457's good for a Sgeo quote 17:12:10 rajdev5089: try typing /names 17:12:21 CakeProphet: ouch, don't say that 17:12:26 :-$ 17:12:26 `delquote 95 17:12:29 ​*poof* Clearly we should be like Mumbai and get of vehicle dors. Get of vehicle dors? I think Aftran had a French phrase there. Les vehicles d'or 17:12:29 ais523: why not? 17:12:31 I thought of saying that myself, but realised why it's a really bad idea, and you should too, ideally 17:12:38 elliott: you want half the channel pinged? 17:12:42 cakepoint: ur real name 17:12:45 ais523: I don't think you know what /names is 17:13:07 elliott: I do; and I know it answers in a numeric not in-channel 17:13:18 I still nonetheless stand by my statement 17:13:20 ok yar.. bye you to all 17:13:23 bye 17:13:36 last one thing 17:13:42 rajdev5089: I told you my name is Zoe Olivier the Cake Prophet 17:13:53 sheesh 17:13:56 no one ever believes me 17:14:00 u people here talk about sexy things 17:14:04 all the time. 17:14:06 like Haskell. 17:14:08 so sexy. 17:14:17 what sexy here 17:14:19 > [1..] 17:14:20 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 17:14:25 All sexy here. 17:14:28 Speaking of French, qu'est-ce que l'arg est? 17:14:39 bye you to all 17:14:48 muaaahhhhhhhhhhh 17:14:52 bye you to rajdev5089 17:14:57 Life lesson for us all: http://9gag.com/gag/565257 17:15:53 mmm 17:16:19 -!- rajdev5089 has left. 17:16:30 friendship devouring 17:16:52 bye raj 17:17:10 poor guy. apparently really terrible at finding people to cyber with. 17:17:12 -!- ais523 has kicked ais523 there are actually quite a lot of ways to deop yourself, this is one of them. 17:17:15 -!- ais523 has joined. 17:17:57 yar 17:18:09 hi nys 17:18:10 Hello nys 17:18:18 :o 17:18:24 nys: hi rajdev5089 17:18:28 note: probably untrue 17:18:41 i think he was looking for some sexy pirates 17:19:10 nys: the funny thing is, from just "yar" and ":o" I had a good idea that you actually had a vague idea of what you were doing here 17:19:18 which is a little surprising, really, given how content-free those lines were 17:19:29 i know what i'm doing here 17:19:29 ais523: wat 17:19:33 i made some langs 17:20:13 #esotericf is a prestiguous group of eminent language designers. 17:20:15 -f 17:20:19 elliott: ":o" is a lot more encouraging than "i dont understand you elliot" 17:20:28 i like the way you rub your peg leg on my beard 17:20:41 ais523: you realise that nys didn't just join? :) 17:20:50 * CakeProphet is the esteemed creator the dupdog programming language. 17:20:53 CakeProphet: * Users on #esotericf: @elliott 17:20:54 elliott: yes, from the join/part layout 17:20:55 CakeProphet: Indeed. 17:21:06 I hadn't seen him/her here before, but had guessed he/she'd been here for a while 17:21:13 well, remembered so, at least 17:21:28 there are quite a lot of people who have been here for ages but I simply haven't noticed due to being oblivious 17:21:45 i was here once around five years ago I think 17:22:27 Your name seems somehow familiar... 17:22:27 but i probsably uses the nick architect1 back tshen 17:22:49 this nick is registered on this network 17:22:52 but not to me 17:22:59 /ns ghost nys 17:23:04 so I might be unintentionally impostering someone 17:23:46 WILL THE REAL NYS PLEASE STAND UP 17:23:55 i am the real nys 17:24:01 but only in a different way 17:24:46 -!- elliott has quit (Quit: Leaving). 17:26:16 MYSTERIOUS 17:26:33 * CakeProphet says in a cryptic voice, "cryptic." 17:26:41 Hi nys 17:26:48 hi you 17:26:55 =3 17:27:40 I should have called MIBBLLII WIBBLLII 17:28:02 are there any esolangs that have been removed from the wiki because they were too useful? 17:28:21 I don't think so 17:28:27 being useful and being esoteric aren't mutually exclusive 17:28:43 it's just unlikely to find a language that does both at once 17:28:53 (being eso is enough of a reason to make a language that you don't have to make it eso too) 17:29:01 befunge-98 17:29:02 *make it useful too 17:29:18 -!- elliott has joined. 17:29:23 Damn it, he's back. 17:29:24 I MEAN HI 17:29:48 hi 17:30:44 `? welcome 17:30:46 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 17:35:01 oh right, I have a serious and annoying question I've been putting off all week, because I suspect the answer is "that's impossible" 17:35:39 go on 17:35:48 given some code that you're treating as black-box (that is, that you can't see the internals of the code, but can run it), that you know is a sorting algorithm, is there any way to determine if it's using mergesort or not? 17:35:58 not 100% unfoolable, but even to make a decent guess in the common case? 17:37:09 ais523: hmm, how much of a black box is it? 17:37:23 ais523: if it's a function in a pure language, you can't, because all sorting algorithms are equivalent, modulo stability 17:37:31 one I can look inside but don't really want to have to, as it'd be faster to do so by hand than write a program to do it 17:37:33 does it take a comparison function, or are you forced to sort lists of integers? 17:37:42 I /can/ time it, but that's just going to prove it n log n 17:37:51 I assume you mean it's a Unix program, which means you can time it, which could be helpful 17:37:51 and it's using OCaml's built-in compare function 17:37:55 -!- augur has joined. 17:37:59 ais523: If you hadn't said "not 100% unfoolable", I would have just screamed "RIIIIIICE" at you. 17:38:01 which I think cannot compare two things equal unless they actually are equal 17:38:15 so I can't use stability tricks 17:38:17 ais523: yes, but you can try and get the worst case 17:38:25 right 17:38:25 if it goes really slowly on pathological quicksort data, it's probably not mergesort 17:38:34 Also, behold: 17:38:34 the hard part is, it's not even mergesort in particular I'm meant to be checking for 17:38:37 `? welcome @ elliott 17:38:37 but 3mergesort 17:38:40 elliott: 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 17:38:43 ais523: out of curiosity, what /is/ this program? 17:38:45 `url bin/? 17:38:47 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/? 17:38:50 `paste bin/? 17:38:52 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.813 17:38:53 which is like mergesort, except that you're splitting into 3 lists not 2 17:39:07 Gregor: You made the change in a way I don't like, I'm rewriting it :) 17:39:21 elliott: and it's student submissions, they're meant to be marked automatically 17:39:25 elliott: WAH WAH WAH 17:39:34 but I can't see an automatic method for determining that they're using the right algo in the sorting question 17:39:39 (none of the questions have required a specific algo) 17:40:19 Can you see how much memory it uses? 17:40:30 hmm, I guess so 17:40:40 but am not even sure that'd help, as OCaml is nondeterministically GCed 17:40:50 Hmm 17:41:44 I seem to remember "libertas" being latin for "for freedom"... 17:42:15 `revert 914 17:42:16 Done. 17:42:23 `fetch http://sprunge.us/eYAX 17:42:24 2011-11-11 17:42:24 URL:http://sprunge.us/eYAX [268] -> "eYAX" [1] 17:42:34 `run cd bin; patch -p1 <../eYAX 17:42:36 patching file '?' \ Hunk #1 succeeded at 1 with fuzz 2. 17:42:42 `rm eYAX 17:42:44 No output. 17:42:47 `? welcome > Gregor 17:42:49 welcome > Gregor? ¯\(°_o)/¯ 17:42:55 G'job. 17:43:03 Hmm. Ah. 17:43:19 There is an easy solution to this! 17:43:47 So have we all decided on a superior highlight character for that, by the way? 17:43:49 Since ? is taken 17:43:52 elliott: please tell me it's parsing the filename of stdout to determine who to ping 17:43:56 $anybody react to $? 17:43:57 Gregor: `? is fine *shrug* 17:44:00 ais523: lol 17:44:05 elliott: But it needs a space bleh >:( 17:44:12 elliott: It's really "`? " 17:44:23 Gregor: I'd make it react to any lowercase word without spaces followed by ? and EOL 17:44:25 what about ?? like #nethack uses? 17:44:27 ?? abc 17:44:27 abc 17:44:27 but others may dislike that :) 17:44:28 I want a really really old computer 17:44:33 wait what? 17:44:34 ?? 1+2 17:44:34 1+2 17:44:36 With vacuum tubes and magnetic tape 17:44:40 ??I suspect that it will still react to ? 17:44:40 is ?? an echo command for lambdabot? 17:44:44 ?? foo 17:44:45 foo 17:44:47 ??foo 17:44:50 Hmm 17:44:54 ?help ?? 17:44:55 help . Ask for help for . Try 'list' for all commands 17:44:58 ?help ? 17:44:58 ? [args]. 17:44:58 ? executes plugin invocations in its arguments, parentheses can be used. 17:44:58 The commands are right associative. 17:44:58 For example: ? ?pl ?undo code 17:44:58 is the same as: ? (?pl (?undo code)) 17:45:16 hmm 17:45:23 ?? c i op as 17:45:23 c i op as 17:45:38 ?? pl ?undo 2+2 17:45:38 pl 2 + 2 17:45:43 ah, interesting 17:45:44 And then I will set it up 17:45:44 And run Dwarf Fortress 17:45:44 ?? ?pl ?undo 2+2 17:45:44 Generate a really long history 17:45:44 And just have that in a room somewhere 17:45:45 4 17:45:50 ais523 can't read documentation. 17:46:01 @help @ 17:46:01 @ [args]. 17:46:01 @ executes plugin invocations in its arguments, parentheses can be used. 17:46:01 The commands are right associative. 17:46:01 For example: @ @pl @undo code 17:46:01 is the same as: @ (@pl (@undo code)) 17:46:01 elliott: the documentation gave /one/ leading ? 17:46:03 not two 17:46:08 Wow, it actually gives different help for the @ version. 17:46:15 ais523: yes, because it's implied to be part of a lambdabot invocation 17:46:16 @help pl 17:46:17 pointless . Play with pointfree code. 17:46:19 @ [args]. 17:46:19 @help ` 17:46:20 help . Ask for help for . Try 'list' for all commands 17:46:22 pointless . Play with pointfree code. 17:47:05 `fetch http://sprunge.us/OhSc 17:47:06 2011-11-11 17:47:06 URL:http://sprunge.us/OhSc [189] -> "OhSc" [1] 17:47:12 `run mv OhSC bin/'?'; chmod +x bin/'?' 17:47:14 mv: cannot stat `OhSC': No such file or directory 17:47:17 `run mv OhSC bin/'?'; chmod +x bin/'?' 17:47:19 mv: cannot stat `OhSC': No such file or directory 17:47:24 Gregor: ??? 17:47:53 `fetch http://sprunge.us/OhSc 17:47:54 2011-11-11 17:47:54 URL:http://sprunge.us/OhSc [189] -> "OhSc.1" [1] 17:47:57 elliott: lol 17:47:58 >_< 17:48:00 `run mv OhSC bin/'?'; chmod +x bin/'?'; rm OhSC.1 17:48:02 mv: cannot stat `OhSC': No such file or directory \ rm: cannot remove `OhSC.1': No such file or directory 17:48:04 oh 17:48:07 `run mv OhSc bin/'?'; chmod +x bin/'?'; rm OhSc.1 17:48:09 No output. 17:48:12 `? welcome > Gregor 17:48:14 Gregor: 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 17:48:20 `paste bin/? 17:48:22 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6308 17:48:23 Gregor: Behold the elegance. 17:48:27 `? yousuck @ elliott 17:48:29 yousuck? ¯\(°_o)/¯ 17:48:53 elliott: That's pretty genius. 17:49:06 `run sed -i 's/f $1/f $*/g' bin/'?'; # so that you can still run it from `run sanely 17:49:08 No output. 17:49:12 `run '?' welcome > test 17:49:14 No output. 17:49:15 ...oh wait :P 17:49:19 `revert -3 17:49:20 Done. 17:49:23 `help 17:49:23 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 17:49:34 Perfect 17:49:38 Gregor: Wait... 17:49:41 Gregor: I just had The Best Idea. 17:49:44 Uh oh 17:49:52 GOODBYE! 17:50:04 Also, Pietbot's achieved sentience WHILE NOT EVEN RUNNING 17:50:10 I am scared 17:50:13 Gregor: Writing to /home/ causes HackEgo to address what's written there to . 17:50:21 For example: `run wisdom > ~elliott 17:50:24 elliott: [wisdom] 17:50:28 Err, s/wisdom/fortune/g 17:50:54 ... that's dumb. /home/ existed for any reason it would be for actually private per-user files. 17:51:07 s/\. \//. If \// 17:51:12 Gregor: The reason to put it in /home is so that you can use ~foo :P 17:51:16 I know 17:51:20 Still. 17:51:41 Gregor: OK wait no I just had The Best Idea. 17:51:41 So I think we've all agreed on the prefix character ðŸ, right? 17:51:46 ðŸwelcome @ elliott 17:51:52 It's >, not @. 17:51:57 WATCH ME @ 17:52:01 WATCH ME @ THE NIGHT AWAY 17:52:17 Gregor: OK here is the best idea: HackEgo functions as a @tell bot... /by using Unix mail/. 17:52:27 >_O 17:53:11 It requires exactly two pieces of infrastructure from the outside: A user added whenever a new nick is spotted, and the first time a user speaks after receiving mail, HackEgo notifies them :P 17:55:23 -!- Ngevd has quit (Ping timeout: 245 seconds). 17:55:33 Ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 17:55:44 I half-mostly-kinda misunderstood the request :P 17:56:01 Hmmmm. 17:56:04 Consider it under consideration. 17:58:37 `? welcome ðŸ elliott 17:58:39 elliott: 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 17:58:49 `revert 17:58:50 Done. 17:59:00 `revert 934 17:59:01 Done. 17:59:04 You're a bad person, Gregor. 17:59:05 A VERY BAD PERSON 17:59:14 To be fair, I also added back @ :P 17:59:29 btw I can confirm that skyrim is buggy 17:59:33 Yeah but @ is like so unUnixy. 17:59:34 as would be expected 17:59:41 elliott: Waaah 18:00:02 elliott: foo > elliott should replace the very fiber of your being, not target the message at you. 18:00:13 for example, I'm currently unable to re-equip the item in my right hand except to a two-hand weapon or the flame spell. This just happened randomly 18:00:14 Gregor: HackEgo must live with its approximations of the ideal :P 18:00:24 `run '?' welcome | cat <<<'elliott: ' - 18:00:26 sh: Syntax error: redirection unexpected 18:00:34 ais523: sh =/= bash 18:00:38 Gregor: BTW, make `run start bash, not sh, please 18:00:42 `run bash -c "'?' welcome | cat <<<'elliott: ' -" 18:00:44 elliott: 18:00:46 bash goes into compatibility mode when run as sh 18:00:49 :( 18:00:51 which makes no sense for `run's interactive use 18:00:57 Ohyuk 18:01:00 ais523: what is with the trailing "? 18:01:07 * Gregor makes it start tcsh X-P 18:01:08 elliott: because it matches the " after -c 18:01:37 ais523: Oh 18:02:15 but it seems I've forgotten exactly how <<< works 18:02:28 oh and this ride to another town I just hired doesn't seem to actually ever leave 18:02:28 Gregor: BTW, I had some more thoughts about transactional semantics for HackEgo; as far as I can tell, it's simple, but there's one important caveat: 18:02:40 Gregor: Commands all run at once, /but/ you don't get the output of any command until they /all/ finish. 18:02:45 Vorpal: does it nonetheless arrive? 18:02:46 (Ignoring writes) 18:02:47 elliott: Done. 18:03:01 Gregor: I don't think that's so terrible as to make it not worth it, though; everything still takes the same amount of time. 18:03:20 It does mean that `sleep 30 is a bit annoying, but only Madoka-Kaname would do that, and HackEgo ignores her :P 18:04:17 `run bash -c "'?' welcome | cat <(echo -n 'elliott: ') -" 18:04:20 elliott: 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 18:04:26 "The easy way." 18:04:26 fizzie: So convenient. 18:04:26 Vorpal: does it nonetheless arrive? <-- no 18:04:31 `run ? welcmoe 18:04:32 boring 18:04:33 welcmoe? ¯\(°_o)/¯ 18:04:37 Oh, that works 18:04:43 ais523, it is just boringly plain broken. 18:04:54 Gregor: I'm tempted to replace `?'s > support with a "to" command, but I dunno... 18:05:06 "`? welcome > newbie" is shorter than "`run ? welcome | to newbie" :P 18:05:17 ais523, I assume you know that Skyrim had a day-1 patch? 18:05:21 Ooh 18:05:23 and I have that patch 18:05:25 I could make it `to newbie ? welcome 18:05:35 `run which to 18:05:36 ais523, so actually version 1.1 was released on the 11/11/11 18:05:37 No output. 18:05:39 `run while true; do '?' `t` > t2; cat t2; mv t2 t; done 18:05:49 ais523: that's going to be annoying... 18:05:54 bleh, do infinite loops not produce output anyway? 18:06:09 `run for x in `seq 1 5`; do '?' `t` > t2; cat t2; mv t2 t; done 18:06:10 wtf is `t` supposed to do. 18:06:11 bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found 18:06:13 bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory \ bash: t: command not found \ cat: wisdom/: Is a directory 18:06:17 `run for x in `seq 1 5`; do '?' `cat t` > t2; cat t2; mv t2 t; done 18:06:22 cat: wisdom/: Is a directory \ cat: wisdom/: Is a directory \ cat: wisdom/: Is a directory \ cat: wisdom/: Is a directory \ cat: wisdom/: Is a directory 18:06:24 sorry, missed a car 18:06:30 what? 18:06:33 `revert 934 18:06:34 *missed a cat 18:06:35 Done. 18:06:47 the idea's to repeatedly iterate ? 18:07:11 Poorly :P 18:07:13 so we have one ? then two ?s then three ?s, etc 18:07:18 Gregor: it's bash, it's not Haskell 18:07:35 Gregor: It would be kinda nice if we could revert single files... 18:07:45 elliott: Waaaaaaah 18:07:47 :P 18:08:00 Gregor: Pah :P 18:08:10 Hmmmmm 18:08:20 Since HackEgo is actually running umlbox, I could make .hg present but read-only. 18:08:44 That would be nice 18:08:50 `gdb 18:08:52 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: gdb: not found 18:08:55 :( 18:09:02 -!- monqy has joined. 18:09:07 Gregor: It would also be nice if we could install packages ourselves ;D 18:09:11 -!- Ngevd has joined. 18:09:42 elliott: Blurp 18:10:09 `echo Did I just break everything? 18:10:09 Well, Pietbot seems to work when it recieves a PRIVMSG from #esoTERiC 18:10:10 Did I just break everything? 18:10:11 Invalid .hg directory found. 18:10:14 lol 18:10:15 but not #esoteric 18:10:19 or #ESOTERIC 18:10:22 `echo Did I just break everything? 18:10:24 Did I just break everything? 18:10:55 -!- useless-fungot has joined. 18:10:58 Hmmmmmmmmmmmmmmmmmmm 18:11:00 What does 18:11:01 foo="$@" 18:11:02 do 18:11:19 ](:S:^):^ 18:11:36 ](test)S 18:11:45 You might want ]ul 18:11:49 OK, that didn't work, presently .hg is accessible :P 18:11:52 ]ul (:S:^):^ 18:11:52 :S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^:S:^ ...too much output! 18:11:55 ]ul (test)S 18:11:55 test 18:12:08 OK, the reaction to the first one was fast enough that there's definitely a bot involved 18:12:21 OK, fixed. 18:12:23 ]help 18:12:26 .hg is now present but read-only. 18:12:28 Go nuts. 18:12:31 ]ul (:S(a)*:^):^ 18:12:31 :S(a)*:^:S(a)*:^a:S(a)*:^aa:S(a)*:^aaa:S(a)*:^aaaa:S(a)*:^aaaaa:S(a)*:^aaaaaa:S(a)*:^aaaaaaa:S(a)*:^aaaaaaaa:S(a)*:^aaaaaaaaa:S(a)*:^aaaaaaaaaa:S(a)*:^aaaaaaaaaaa:S(a)*:^aaaaaaaaaaaa:S(a)*:^aaaaaaaaaaaaa:S(a)*:^aaaaaaaaaaaaaa:S(a)*:^aaaaaaaaaaaaaaa:S(a)*:^aaaaaaaaaaaaaaaa:S(a)*:^aaaaaaaaaaaaaaaaa:S(a)*:^aaaaaaaaaaaaaaaaaa: ...too much output! 18:12:37 yep, definitely 18:12:51 `revert 914 18:12:53 Done. 18:12:54 `fetch http://sprunge.us/NLfb 18:12:55 2011-11-11 18:12:55 URL:http://sprunge.us/NLfb [179] -> "NLfb" [1] 18:13:00 `run mv NLfb bin/'@'; chmod +x bin/'@' 18:13:02 No output. 18:13:04 (note: that is /not/ a sensible way to do a loop counter in Underload) 18:13:04 `@ ais523 ? welcome 18:13:06 ais523: exec: 9: welcome: not found 18:13:12 elliott: LOLOL U FAIL 18:13:13 o_O 18:13:15 HackEgo: thanks for that 18:13:22 `run @ ais523 \? welcome 18:13:24 ais523: 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 18:13:36 `ls 18:13:37 bin \ canary \ karma \ lastquote \ lib \ paste \ quotes \ share \ wisdom 18:13:50 hmm 18:13:52 elliott: Interpolation's a bitch, eh? 18:13:57 `run @ "ais523 ? welcome" 18:13:59 ais523: exec: 9: welcome: not found 18:14:05 Oh 18:14:11 `run echo "ais523 ? welcome" | sed 's/.* //' 18:14:13 welcome 18:14:16 `run @ 'elliott ? welcome' 18:14:17 Gregor: regexp's a bitch, eh? 18:14:18 elliott: exec: 9: welcome: not found 18:14:28 elliott: Yup 18:14:29 nothing to do with interpolation at all 18:14:34 but rather, splitting into args 18:14:41 `fetch http://sprunge.us/gFYW 18:14:42 2011-11-11 18:14:42 URL:http://sprunge.us/gFYW [182] -> "gFYW" [1] 18:14:43 `run @ elliott \? abc def 18:14:45 elliott: abc? ¯\(°_o)/¯ 18:14:45 `log 18:14:47 2009-04-28.txt:19:21:42: ehird, what did you say thenm 18:14:47 `run mv gFYW bin/@; chmod +x bin/@ 18:14:48 `hg log 18:14:49 No output. 18:14:57 `@ newbie ? welcome 18:14:59 newbie: 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 18:15:01 changeset: 949:5a502f968ae0 \ tag: tip \ user: HackBot \ date: Fri Nov 11 18:14:43 2011 +0000 \ summary: fetch http://sprunge.us/gFYW \ \ changeset: 948:9c64676a536c \ user: HackBot \ date: Fri Nov 11 18:13:03 2011 +0000 \ summary: run mv NLfb bin/'@'; chmod 18:15:03 Gregor: Tada 18:15:46 `@ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott @ elliott echo hi 18:15:50 elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: elliott: hi 18:16:05 `run hg log --style help 18:16:08 abort: style not found: help 18:16:17 `@ `yes @` help 18:16:19 ​`yes: exec: 9: @`: not found 18:16:20 Gregor: How list styles 18:16:24 elliott: I not know 18:16:31 OK, it wouldn't have worked anyway 18:16:41 bash isn't lazy 18:16:42 `run hg log --style compact 18:16:44 950[tip] 9d673ce664d4 2011-11-11 18:14 +0000 HackBot \ run mv gFYW bin/@; chmod +x bin/@ \ \ 949 5a502f968ae0 2011-11-11 18:14 +0000 HackBot \ fetch http://sprunge.us/gFYW \ \ 948 9c64676a536c 2011-11-11 18:13 +0000 HackBot \ run mv NLfb bin/'@'; chmod +x bin/'@' \ 18:16:49 ais523: bash. Still not Haskell? 18:16:58 Gregor: git log --oneline # git is more usable than hg 18:17:06 elliott: Waaaaah 18:17:20 `run hg log --template '{rev} {desc}\n' 18:17:21 elliott: Considering that every other command in git sucks ass, I don't know if I agree. 18:17:23 950 run mv gFYW bin/@; chmod +x bin/@ \ 949 fetch http://sprunge.us/gFYW \ 948 run mv NLfb bin/'@'; chmod +x bin/'@' \ 947 fetch http://sprunge.us/NLfb \ 946 revert 914 \ 945 run touch foo ; hg add foo ; hg commit -u Blerp -m - \ 944 run rm -f foo foobar 18:17:53 `run hg log --template '{author|obfuscate}' 18:17:55 ​HackBotHackBotHackBotHackBotHackBotHackBotHackBotBlerpHackBotHackBotHackBotHackBotHac& 18:17:56 Gregor: as in, git has one good command, or as in git commands alternate between good and bad? 18:18:01 Gregor: hg: still sucks ass! 18:18:16 what's the obfuscate filter's intended use? 18:18:17 (That so counts as sucking ass, because it's so confusing :P) 18:18:21 ais523: Generating HTML. 18:18:26 ais523: git has now shown me one good command in git. The rest are, to my knowledge, terrible. 18:18:29 Yes, hg comes with a mini templating language meant to let you us "hg log" to generate HTML pages. 18:18:41 elliott: yes, but why would you want to do that? it doesn't really block scraping at all 18:18:46 as HTML scrapers can generally parse HTML 18:18:52 ais523: actually, most don't bother 18:18:58 or at least didn't a while ago 18:19:14 ais523: why spent five hours parsing all the various ways to obfuscate emails? people who do that won't be fooled by your spam anyway 18:19:30 if you only scrape for emails in the most obvious format, you still get thousands upon thousands of them, and they're likely to be more gullible too 18:19:35 "Wait, you said TURKEY? I thought you said TURKS! Ha ha ha cannibalism." 18:20:14 elliott: because the motive in sending spam nowadays is no longer to get people to read the spam 18:20:26 but rather, because you've been hired to send the spam to X people 18:20:34 people don't roll their own spambots nowadays 18:20:41 ais523: well, sure 18:20:45 it's still a waste of time to deal with obfuscation 18:20:46 and the spambot owners are ripping off the spammers, just as the spammers are trying to rip off victims 18:21:01 nah, it lets you say you're sending to, say, 2 billion targets rather than 1 billion 18:21:15 (I'm guessing at the number of email addresses on the Internet there) 18:21:38 ais523: why not just lie? you're not going to be sending spam to that many people anyway 18:21:57 I, umm, honestly hadn't thought of that 18:22:24 ah right, it's because the people who harvest the addresses aren't the same as the people who send emails nowadays 18:22:37 and there's a bulk rate for email addresses that don't bounce on the black market 18:22:40 -!- MDude has quit (Ping timeout: 248 seconds). 18:22:44 and you won't get paid for the same address twice 18:23:08 let's just ask CakeProphet, he has first-hand experience! 18:26:41 Gregor: Hmm, having .hg is kinda nice, but it'd be nice if you could write to the parts where hg stores the info for the next commit 18:26:53 elliott: Nope. 18:26:54 I don't know what that would let you achieve, but it sounds nice :P 18:26:59 Gregor: :'( 18:27:09 "the people who harvest the addresses aren't the same as the people who send emails nowadays" is true as far as I can tell. 18:29:51 -!- Zuu has joined. 18:36:08 elliott: I misinterpreted .hg as a ccTLD 18:36:17 Doesn't exist :'( 18:36:18 is it actually one of those, and if so, where? 18:36:31 How long until +scapegoat is a ccTLD :P 18:37:03 -!- zzo38 has joined. 18:39:10 -!- augur has quit (Remote host closed the connection). 18:48:45 -!- Ngevd has quit (Ping timeout: 258 seconds). 18:53:31 Is there any sense in not just treating LF, CR, *or* CR/LF as \n when reading a file? 18:53:58 usually when it's binary data. 18:54:11 File containing text. 18:54:34 pikhq_: what if the file actually contains two consecutive newlines, one of which is CR, one of which is LF? 18:54:35 Of course, when you're dealing with binary data you don't want any munging at all. 18:54:40 uh, if you're writing a program to determine what kind of system you're on based on the line endings of files. :P 18:54:55 ais523: There is no platform on which this is going to come out right. :) 18:55:20 CR or LF but not CR/LF as \n? Seriously, WTF? 18:56:49 oh, a program that converts line-endings of one style to another. Well, actually no that would benefit from automatic line ending stuff. 18:58:24 CakeProphet: only if its output style was configurable 18:58:30 as in, the functionality's 18:58:36 right 19:00:55 encoding conversion. 19:01:14 Vorpal: So is Skyrim any good 19:01:26 insert-task-where-you-are-concerned-about-the-binary-representation-of-text-data. 19:01:54 elliott: he's probably too busy playing Skyrim to answer that. 19:02:01 pikhq_: Here's a good reason: \r\n is a separate list of codepoints to \n. 19:04:21 elliott: Why should that mean that on UNIX it gets rendered as ^M\n instead of \n? 19:05:06 http://www.fileformat.info/info/unicode/char/000d/index.htm 19:05:06 http://www.fileformat.info/info/unicode/char/000a/index.htm 19:05:13 "Text" usually means "sequence of Unicode codepoints". 19:05:22 -!- derrik has joined. 19:05:24 Mangling that sequence = mangling text. 19:05:34 Boy, you must hate Unicode normalisation. 19:06:06 That's a standard form of mangling :) 19:06:21 Or rather, I just don't consider /silent/ transformation of that sequence acceptable 19:06:26 *Not* rendering \r\n or \r as \n does not preserve the semantics of the text, even if it does preserve the codepoint sequence. 19:06:26 Since it's an actual operation 19:06:34 Shrug, define text 19:06:49 The question is, do you want to preserve the intended semantics, or the codepoint sequence? 19:06:58 elliott: is "the shit you just typed" a valid definition? 19:07:06 No 19:07:21 I here note that Windows generally already *performs* a similar mangling. 19:07:31 -!- Sgeo|web has quit (Ping timeout: 265 seconds). 19:07:39 The sequence "\r\n" gets handing to the program as "\n". 19:08:17 lots of things do then when opening files in text mode. 19:08:21 *do that 19:08:24 -!- augur has joined. 19:08:29 pikhq_: Windows is broken, how surprising! 19:08:39 pikhq_: Anyway invalid 19:08:43 That's not Unicode 19:08:49 Files are bytestrings 19:09:00 Windows just completely unacceptably mangles bytestrings by default :) 19:10:17 elliott: Per ISO C, this is completely permitted semantics for stdio. If you want no mangling, you should add "b" to your fopen. 19:10:38 C is broken???? OH GOD YOU'RE RUINING MY HEART 19:10:44 THIS IS SO UNEXPECTED!!! 19:11:19 As the default for stdio is that you're reading text in the system's encoding, not binary data. 19:11:38 It would be perfectly permissible for stdio to have a EBCDIC to ASCII conversion step, in fact. 19:11:49 Strange as hell, but perfectly permissible. 19:12:20 elliott: uh, Python, Ruby, Perl, and Haskell all do that kind of translation in text mode as well. 19:12:21 pikhq_: you're describing how C-INTERCAL's stdio actually works 19:12:21 or it could just use EBCDIC as its runtime character set or whatever they call it in C 19:12:24 (of course, performing this mangling is a violation of POSIX; "b" must be a no-op) 19:12:24 *CLC-INTERCAL 19:12:33 (or C-INTERCAL's in CLC-INTERCAL compat mode) 19:12:52 CakeProphet: Python and Haskell's file IO is based around Unicode strings 19:12:53 at last I think you can, they might've made it boring and standardized on ascii nowadays 19:13:01 God knows about Perl 19:13:06 Don't care about Ruby 19:13:36 both ruby and perl are based on Unicode as well. (at least in newer versions of Perl 5) 19:14:03 CakeProphet: you cannot "base a language" on Unicode 19:14:09 elliott: Perl's Unicode is massively beautifully overengineered, it blows most languages' out of the water 19:14:14 Ruby 1.8 called bytestrings String 19:14:14 elliott: ....seriously? 19:14:17 I don't know what 1.9 does 19:14:46 elliott: s/are based/ file IO are based/ 19:14:52 (for fucks sake) 19:14:58 CakeProphet: that's still not a meaningful statement 19:15:16 bytestrings are not sequences of unicode codepoints 19:15:29 < elliott> CakeProphet: Python and Haskell's file IO is based around 19:15:29 Unicode strings 19:15:35 it is possible to have a language which reads sequences of unicode codepoints and then encodes them in another encoding and returns the resulting bytestring for file IO reading operations 19:15:35 please take this horribly mangled quote of yours 19:15:39 as include perl and ruby to it. 19:15:42 s/as/and/ 19:15:45 CakeProphet: "Unicode" =/= "Unicode strings" 19:15:46 and you will get what I am saying. 19:15:52 elliott: this conversation is stupid. 19:16:18 no, you're just being stupid 19:16:18 -!- oerjan has joined. 19:16:31 brr, cold 19:16:54 elliott: I understand the difference between codepoints and encodings. 19:17:41 elliott: you're wasting your time trying to make a point out of it. 19:17:49 i'm not 19:18:13 if you seriously can't understand how "file IO being Unicode but still using bytestrings" is not a complete description 19:18:20 and not the same thing as "file IO uses a unicode string type" 19:18:21 then w/e 19:21:52 how does one represent Unicode without a sequence of bytes. 19:22:47 lol 19:23:17 -!- pikhq has joined. 19:23:22 is that a silly question? 19:23:37 -!- pikhq_ has quit (Ping timeout: 255 seconds). 19:23:56 s/\./?/ here I'll even make it a question with this special little symbol. 19:24:49 CakeProphet: With a sequence of glyphs. 19:25:04 CakeProphet: A sequence of... say... 19:25:06 Codepoints... 19:25:13 !!!!!!!!!!11111 19:25:18 ah. I still haven't upgraded to these codepoint-based machines. 19:25:22 still using bytes over here. 19:26:33 I can see why there's a discrepancy now. 19:26:36 It's funny because you're pretending to be so idiotic that you think "RAM is composed of bytes" is equivalent to "there are literally no types other than 'array of bytes' and it is impossible to distinguish them". 19:26:46 In other words, nice talking to you! 19:27:42 elliott: I'm saying there's not much distinguishing a bytestring encoded in Unicode and a sequence of codepoints 19:27:47 other than well... how they're encoded. 19:28:21 -!- MSleep has joined. 19:28:26 CakeProphet: Yeah! For instance, a string consisting solely of a codepoint that takes two bytes to encode in UTF-8 OBVIOUSLY has length 2. 19:28:42 2 codepoints + 2 codepoints = 5 codepoints 19:28:43 -!- MSleep has quit (Client Quit). 19:28:57 elliott: okay so then Perl uses a "unicode string type" 19:28:57 -!- MSleep has joined. 19:28:57 -!- MSleep has changed nick to MDude. 19:29:05 elliott: as I was saying.. 19:29:27 You cannot prove that just by checking length. 19:29:36 length_after_decoding_utf8 is a perfectly valid operation; Perl may call it "length". 19:29:57 Of course you can implement a Unicode string type by using an internal UTF-8 representation: the question is whether the abstraction is leaky. 19:30:15 Since Perl had approximately a billion decades before getting Unicode support, my guess as to the probability of there being no leaks in its abstraction is 0. 19:30:31 and therefore it is "not a unicode string type"? 19:30:59 Obviously: 19:30:59 CakeProphet: Yeah! For instance, a string consisting solely of a codepoint that takes two bytes to encode in UTF-8 OBVIOUSLY has length 2. 19:31:14 If length reported the length in UTF-8 bytes, it would obviously not be calculating the length of a Unicode string. 19:31:32 (Obviously you can cheat and say that there's an implicit _after_encoding_to_utf8 suffix to any abstraction leaks.) 19:31:41 "Returns the length in characters of the value of EXPR. If EXPR is omitted, returns the length of $_ . If EXPR is undefined, returns undef." 19:31:46 characters is in italics. 19:31:48 (That fails if Perl accepts, and retains, UTF-8 variants though...) 19:31:54 (e.g. that one that has no 0 bytes.) 19:32:02 CakeProphet: My argument extends to any operation. 19:32:14 Anyway, this is boring, and I need to go do things. 19:32:17 -!- elliott has quit (Quit: Leaving). 19:35:33 elliott: never say that, you attract attention from people who actually /do/ know everything 19:35:44 nah, we know that he doesn't really know everything. 19:36:49 Hmm. According to Unicode, conforming applications should accept the following as line terminators: U+000A U+000B U+000C U+000D (U+000D U+000A) U+0085 U+2028 U+2029. 19:38:24 what's 0xB? 19:38:30 vertical tab? 19:38:34 Yup. 19:38:52 I don't recognise the other three, but didn't really expect to 19:39:34 Those are NEXT LINE, LINE SEPERATOR, and PARAGRAPH SEPERATOR 19:39:41 no pagebreak? 19:39:48 U+0085 looks weirdest to me, it's in latin 1 but above ascii 19:40:02 It's from ISO-8859-1. 19:40:17 But not in Windows-1252. 19:41:28 It has a block of control codes at the same "location" than ASCII. 19:42:01 I'm not entirely certain the control codes are specified by ISO-8859-1 though, I'd appreciate a citation on this. 19:42:48 Strictly speaking they're not, there's merely defined space *for* control codes. 19:42:54 http://codu.org/projects/trac/ <-- behold my new and improved trac installation 19:42:59 ISO 8859-1 is the standard, it doesn't specify the control codes 19:43:13 However, it's usually used with the C0 and C1 control code set. 19:43:14 ISO-8859-1 is the preferred name for the charset which includes the control codes 19:43:28 C0 is the the set in ASCII. 19:43:37 Gregor: there is something wrong in today's logs between 17:14:19 and 17:17:57, i suspect some parts/quits and joins are missing 19:44:04 Yes, \r and \n technically aren't in ISO 8859-1. 19:44:06 -!- elliott has joined. 19:44:34 Gregor: oh hm, maybe just one part/quit (ais523) 19:44:43 Gregor: I like the copy of gcc-bf :P 19:44:49 oerjan: I didn't part, I kicked myself 19:44:50 oerjan: it was a kick 19:44:51 and then rejoined 19:44:55 ah. 19:45:05 elliott: 's useful. 19:45:10 I'd needed to unstealth, and then kicked myself as a simple way of stealthing again 19:45:12 Aha, kick. 19:45:15 I can add that. 19:45:17 Gregor: STILL, MISSING INFORMATION 19:45:31 ais523: How come you never gave me a gcc-bf tarball :P 19:45:34 Or did you, I might have just forgotten :) 19:45:47 elliott: I think I did 19:45:54 oh right, it was hosted on Vorpal's server, I think 19:45:57 no idea if it still is 19:46:11 perhaps now is a good time to chug a Coke, Monster, and Starbucks doubleshot. 19:46:18 yes I think it is. 19:46:59 afterwards I will link pics of my heart exploding. 19:48:23 elliott: 12:36 < pikhq> Hmm. According to Unicode, conforming applications should accept the following as line terminators: U+000A U+000B U+000C U+000D (U+000D U+000A) U+0085 U+2028 U+2029. 19:48:52 Anyhow, Perl certainly makes the Unicode attempt not too shabbily -- http://perldoc.perl.org/perlunicode.html -- the "Effects of Character Semantics" pretty much lists what they do; sadly there isn't exactly a list of what they don't do. (But they explicitly say they're not claiming any Unicode standard compliance.) 19:48:57 pikhq: Accept, not have automatically degraded for them 19:49:08 fizzie: I've seen a comparison of Unicode support in programming languages; Perl won 19:50:24 ais523: the results of a comparison of /painless/ Unicode support would be quite different. 19:50:43 Unicode support cannot be "painless" because it involves thinking 19:50:55 think pain 19:50:59 in character semantics, Perl's unicode support is pretty automatic 19:51:08 you just have to realise that what you're writing is talking about characters, not bytes or codepoints 19:51:17 No, it's usually about codepoints. 19:51:19 Not characters. 19:51:30 "(The only time that Perl considers a sequence of individual code points as a single logical character is in the \X construct, already mentioned above. Therefore "character" in this discussion means a single Unicode code point.)" 19:51:30 fizzie: in Perl, it's about characters 19:51:33 IIRC 19:51:34 ais523: if it's a function in a pure language, you can't, because all sorting algorithms are equivalent, modulo stability 19:51:38 ah, just for \X? boring 19:51:38 The above is from perldoc perlunicode. 19:51:55 i recall toying around with passing broken comparing functions to haskell's sortBy :P 19:52:03 oerjan: me too. 19:52:12 oerjan: Fixt, regenerating. 19:52:25 that way i could see what was compared in what order 19:52:26 Gregor: You never responded wrt transactional HackEgo :P 19:52:34 elliott: I have no response. 19:52:44 There's of course all kinds of modules, like Unicode::Normalize, which consider characters. 19:52:51 17:17:12: -!- ais523 has kicked ais523 from #esoteric: there are actually quite a lot of ways to deop yourself, this is one of them 19:52:53 Gregor: It was a question of the form "is this acceptable" 19:52:56 (under the assumption no pair is compared twice) 19:53:14 elliott: It's less than ideal, but if you put the work into making it, err, work, then I'll accept it :P 19:53:33 Excellent 19:53:33 `help 19:53:40 The way Unicode defines a "character" is rather non-trivial: http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries 19:53:41 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 19:53:43 monqy: `help 19:53:45 hi 19:53:50 Gregor: It's, uh, still written in bash, right? :P 19:53:55 fizzie: clearly we need an esolang whose only purpose is doing Unicode completely correctly 19:54:01 (But at least it's still a relatively simple algorithm, as long as you have the database.) 19:54:06 come to think of it, I guess Java probably can, but nobody has figured out how 19:54:16 elliott: Ayup 19:54:29 Gregor: Do I... have to keep that? :P 19:54:40 elliott: Most languages other than Haskell are acceptable. 19:54:49 What about... Haskell? 19:54:54 Miranda? Gofer? 19:54:58 O'Haskell? 19:55:03 Java has trouble even handling non-BMP stuff the way people usually use the java.lang.String API. 19:55:05 dph 19:55:07 Disciple? 19:55:13 elliott: perl 19:55:20 or is dph not considered as distinct from haskell as those 19:55:34 DPH is just a realtively simple language extension :P 19:55:46 elliott: BASIC 19:55:53 GdH 19:55:58 cloud haskell 19:55:59 Deewiant: God damn Haskell? 19:56:03 elliott: Fortran 19:56:06 Gregor: How are these sounding??? 19:56:07 elliott: Glasgow Distributed Haskell 19:56:08 coq agda epigram what else 19:56:14 elliott: Scala io 19:56:17 elliott: PLOF 19:56:22 Deewiant: Wow, didn't realise that even existed. 19:56:23 elliott: It's based on GHC 5.0 IIRC 19:56:26 elliott: How would you feel if I called it "newline normalisation"? 19:56:26 and clean, of course 19:56:28 Deewiant: Nice. 19:56:35 pikhq: Sure, just don't make it implicit 19:56:38 elliott: K 19:56:49 pikhq: Why are you doing this anyway 19:57:03 elliott: I was just thinking it'd be a hell of a lot nicer than "Derp ^M\n" 19:57:25 good name. 19:57:50 pikhq: solution: destroy all non-unix operating systems 19:58:19 Gregor: Why does HackEgo have DCC support... 19:58:23 CakeProphet: rip @ 19:58:25 pikhq: er, non-\n operating systems, rather. 19:58:31 hgegeheheh 19:58:36 how did g get in there 19:58:40 keyboar.d. 19:58:44 CakeProphet: And then make the network newline convention \n instead of \r\n? 19:58:51 elliott: It ... doesn't? 19:58:52 pikhq: oh, yes, of course. 19:58:56 I should switch to a nonquerty layout so my typos are more mysterious 19:58:58 Gregor: 19:59:01 4 . lib/dcc 19:59:01 25 maybe_dcc_chat() { 19:59:01 -!- Phantom_Hoover has joined. 19:59:05 pikhq: YOU WILL SEE A DRAMATIC INCREASE OF DATA THROUGHPUT 19:59:09 elliott: It has some leftover unused files. 19:59:14 because you're not stupidly using TWO WHOLE BYTES for lines. 19:59:27 Gregor: maybe_dcc_chat is an unused FUNCTION in a used FILE oh snapepe!!!! 19:59:31 pikhq: /dramatic/ 20:00:32 pikhq: we just need some kind of software apocalypse 20:00:41 so that we can redefine all of the standards so that they're sane. 20:01:11 and people won't complain about their code breaking 20:01:18 because THERE IS NO CODE MUAHAHAHAHA. 20:02:30 I never realised the Wolfram blog was so entertaining. 20:02:30 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 20:02:56 @tell lambdabot ur dumb 20:02:56 Nice try ;) 20:02:58 It's all like "Oh no we want to investigate this thing but we can't do the sums, GOOD THING WE HAVE MATHEMATICA". 20:03:23 hm... 20:03:28 pola-nice "$@" | 20:03:29 Gregor: ?????? 20:03:32 Gregor: Where's UMLBox??? 20:03:36 CakeProphet: Unicode without round-trip! YES 20:03:49 elliott: pola-nice is just a command name, it's implemented in lib/interp 20:03:52 Gregor: Oh, you call it "pola-nice" even though it's umlbox >_< 20:03:53 elliott: The name is just olde. 20:03:53 `echo oerjan: test 20:03:58 Gregor: That should really be umlbox-nice :P 20:04:00 oerjan: test 20:04:03 elliott: Waaaaaaaaaaaah 20:04:53 monqy: are you best porgrammeer now. 20:05:09 oh, it doesn't use that no-width space then 20:06:01 Gregor: What the heck is UNDO... 20:06:10 Phantom_Hoover: mathematicians discover programming languages? shocking. 20:06:54 fortunately they used the only one that can do sums. 20:07:14 Gregor: Oh... it's like atexit but weird 20:09:30 umlbox-nice "$@" | 20:09:30 head -c 16384 | 20:09:35 I don't think Gregor realises how short IRC lines are :P 20:09:39 Oops, spoiled my SECRET RENAME 20:09:53 what's umlbox-nice? 20:10:00 Like pola-nice but not STUPIDLY NAMED 20:10:01 its pola-nice 20:11:06 let me rephrase then: what's pola-nice? 20:11:27 nice 20:11:37 like umlbox-nice but STUPIDLY NAMED? 20:11:41 elliott: as in nice(1)? 20:12:14 umlbox-nice() { 20:12:14 nice -n10 /usr/bin/umlbox -n -B -f /opt -f /var/irclogs -f /etc/java-6-openjdk -R3128:127.0.0.1:3128 -T 30 -tw \ 20:12:14 /hackenv . -t /hackenv/.hg .hg -f "$ORIGDIR/lib" --cwd /hackenv env PATH="$UMLBOX_PATH" \ 20:12:14 HACKENV=/hackenv http_proxy="$http_proxy" "$ORIGDIR/lib/limits" "$@" 20:12:14 } 20:12:15 hth 20:13:17 oh, nice 20:13:21 hmm, Mastermind is pretty awesome right now; the host couldn't stop asking earlier 20:13:29 during the questions 20:13:36 I'm not sure if it's the actual program or a parody 20:13:41 oh, Children in Need, that makes sense 20:14:02 what's an underloved data structure in computing? 20:14:16 ais523: I wish I was the kind of person who could watch a parody without realising it :P 20:15:07 The Fibonacci heap gets no love, all heap-love goes to binary/binomial heaps. 20:15:35 fizzie: can I create an entire programming language around this data structure? 20:15:43 there's a nice law about parodies and reality being notoriously difficult to tell apart 20:15:49 I don't know if it'd be a very interesting language. 20:15:50 Poe's? 20:16:03 Phantom_Hoover: sounds about right yeah 20:16:05 Also BLOOD FILTERS, they're like Bloom filters except you kill people. (Disclaimer: not true.) 20:16:17 elliott: I don't think it was a parody; rather, someone had picked a plausible yet goofy specialist subject in order to trip up the host (the Transformers canon) 20:16:24 and the audience weren't taking it seriously 20:16:27 so nobody else could either 20:16:37 -!- someoneyouhate has quit (Ping timeout: 240 seconds). 20:16:54 well, I mean, a not-an-actual-episode 20:17:45 fizzie: maybe if it's homoiconic. :) 20:18:08 fizzie: You seem like the kind of person who knows about bash arrays. 20:18:26 elliott: I used them a little bit recently, but I can't say I'd *know* about them. 20:18:32 elliott: I hadn't watched the whole thing 20:18:46 Hmm, wait 20:19:04 elliott: what about bash arrays? 20:19:05 Gregor: All HackEgo stuff is command-triggered, right 20:19:06 I've used bash arrays once 20:19:20 elliott: Oh, man, bash arrays! 20:19:20 Gregor: Does HackBot let me run any code in the background :P 20:19:24 Don't get me started about bash arrays. 20:19:25 * shachaf mad 20:19:29 Thanks for that. 20:19:51 Previously I not mad, and now I mad. 20:19:59 don't bash arrays 20:20:00 shachaf: Yeah well, Gregor is a fascist and won't let me use Haskell. 20:20:12 Wait, what's the context? 20:20:20 Why do so many people think astrology gets the position of the Sun incorrect? That simply isn't true, and you can say a lot of valid things about astrology being wrong without having to say the position of the Sun is incorrect. 20:20:21 zzo38: You have 1 new message. '/msg lambdabot @messages' to read it. 20:20:22 Bash arrays are this thing where you get several hammers and then use them to bash in several nails at the same time. 20:20:25 * shachaf doesn't feel like reading all this scrollback. 20:20:27 elliott: Won't let you to use Haskell for what purpose? 20:20:33 HackEgo! 20:20:33 Use Haskell if you like to do so. 20:20:47 elliott: zzo38 has given you sage advice. 20:21:13 However it is true that you don't have to use Haskell for everything. 20:21:21 sage advice in good thyme 20:21:29 shachaf: TECHNICALLY I could use Haskell but then Gregor wouldn't pull. :'( 20:21:40 -!- Sgeo|web has joined. 20:21:50 -!- sebbu has joined. 20:21:51 -!- sebbu has quit (Changing host). 20:21:51 -!- sebbu has joined. 20:21:53 What program are you trying to write? 20:21:59 Something for Gregor? 20:22:21 I'm trying to make HackEgo's concurrency semantics not suck. 20:23:27 array = ( [2]=blah [50]=30 ) 20:23:32 best syntax 20:25:21 oerjan: Do you mean a group having everything being their own inverse is called exponent 2 group? 20:25:32 s/ =/=(?#no wait this is the best syntax)/ 20:25:45 zzo38: yes. because it's the same as every element having order 2. 20:25:58 O, OK. 20:26:00 (or 1) 20:27:30 In Haskell I used: minverse = id; (as a method of the Group class) 20:27:51 so apparently Steam was hacked. 20:28:16 indeed 20:29:01 Does this make a monoid? mempty = Equivalence (==); mappend (Equivalence f) (Equivalence g) = Equivalence $ \x y -> (x == y) /= (f x y /= g x y); I think it is a monoid, due to the XOR law. 20:29:59 I think it is also an exponent 2 Abelian group. 20:30:03 hm well it needs to be a monoid just when restricted to particular x and y... 20:30:20 so yes, i think so. 20:30:44 Hmm, wait. 20:30:55 Gregor: I might not need a background process to do this, but it'd be more convenient :P 20:32:05 zzo38: all exponent 2 groups are abelian, btw 20:32:31 oerjan: O, yes, OK. 20:32:47 CakeProphet: Did you see latest HS updates? If not, do a reaction video 20:33:04 It forms an exponent 2 group also due to the XOR law, I think. 20:33:12 Past the [S] I mean 20:33:20 Sgeo|web: UGH WHY DO YOU ALWAYS ASK ME THIS SHIT 20:33:20 yes. 20:33:36 Sorry 20:33:49 it was mentioned in the same godel's letter post, although there is some bug in the tex picture for the proof, i saw it myself and someone on reddit also did 20:33:57 Sgeo|web: no worries it was hyperbole. 20:34:01 you can tell because IT WAS LIKE THIS. 20:34:11 -!- someoneyouhate has joined. 20:34:22 someoneyouhate: hi. 20:34:35 * oerjan hits someoneyouhate with the saucepan ===\__/ 20:34:48 `@ someoneyouhate ? welcome 20:34:51 someoneyouhate: 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:35:54 zzo38: it works for each pair of x,y because both XOR and EQV are group operations 20:37:09 oerjan: is there a group on groups? 20:37:15 so it's essentially an indexed product of such groups 20:37:39 CakeProphet: i dunno 20:39:26 well you could have an operation that forms a group from two groups by taking the product of the two sets and then essentially &&&ing the two operations. 20:39:29 I think? 20:40:17 with the group being (Bool, (==)) when x == y and (Bool, (/=)) when x /= y 20:40:55 CakeProphet: yes, that's called the direct product 20:41:12 but it has no corresponding inverse 20:41:42 ah 20:41:55 oerjan: why is type-hackery so hard :( 20:42:08 elliott: because you're not doing it C++. :> 20:42:12 * CakeProphet is oerjan. 20:42:16 because obviously you can never get the trivial group (which is the identity) by combining anything else 20:42:48 (just from looking at the underlying sets) 20:43:06 oerjan: combining two trivial groups could just make a trivial group or something? 20:43:12 in other words: just hack it until there's an inverse. :P 20:43:30 crys 20:43:53 CakeProphet: two trivial groups _do_ give a trivial group. but nothing else does. 20:44:16 how about x * trivial = trivial 20:44:23 and vice versa. 20:44:33 we already have x * trivial = x, that's what identity means 20:44:42 oh. maybe I should learn some group theory. :P 20:44:48 yes you should 20:45:01 ah I see what you're saying. 20:45:04 incidentally i am doing the obvious identification of isomorphic groups here 20:45:50 instance x `Elem` (x :- xs) where type instance (x :- xs) `Without` x = xs 20:45:52 oerjan: :') 20:46:12 ooh wait, don't need instance there 20:46:32 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 20:48:12 good job haskelle 20:48:20 {-# LANGUAGE TypeOperators, TypeFamilies, GADTs, MultiParamTypeClasses, FlexibleInstances #-} 20:48:22 I'm back in my game oerjan 20:48:24 back in my game 20:48:26 no shame 20:48:29 it's not lame 20:48:30 uhhhhh 20:48:31 fame 20:48:39 oerjan: maybe you just need some concept of negative groups. :) 20:48:48 where combining a group with a negative group uh.... removes things. 20:48:59 so that you can get a trivial group from two inverse groups. 20:49:35 I managed to break the plot in Skyrim kind of. 20:49:35 CakeProphet: oh and i recall an argument why you cannot actually fix it by identifying things: if you take the product of (countably) infinitely many x's, then x * (x * x * ...) = (x * x * ...) meaning all x = identity if you have inverses for everything 20:50:51 elliott: you should stop programming immediately and start your hip hop career. 20:50:53 basically: Apparently it didn't expect me to kill someone that basically said he would report something back to his employer. 20:51:09 it's like with numbers, once you have infinity, subtracting infinity from infinity gives you a paradox. 20:51:28 if you assume things should be always consistent 20:51:29 Vorpal: One of the silliest things in Oblivion was the way those NPCs with the "plot-important" flag set just simply plain wouldn't die. 20:51:56 fizzie, I haven't spotted anything like that in skyrim so far. In oblivion you got that small icon above plot important ones 20:52:20 fizzie, I have to say that it would probably have been impossible to complete oblivion without the plot-important flag thingy though 20:52:42 Vorpal: In Morrowind you just got the awesome notice: "With this character's death, the thread of prophecy is severed. Restore a saved game to restore the weave of fate, or persist in the doomed world you have created." 20:53:10 btw don't run skyrim from an ssd, you will never be able to read the hints on the loading screens that way... 20:53:15 I know I'm not 20:53:23 Skyrim has that same property as Oblivion 20:53:24 oerjan: *sigh*, I need type-level sets 20:53:28 I don't generally go for random murdering, but the one single time I did I got that. 20:53:30 Some NPCs can't be killed 20:53:35 Deewiant, ah. Well this one could 20:53:43 elliott: it's typrtles all the way up 20:53:49 Yes, in Oblivion you could kill none of the peacefuls, I think? 20:53:52 Deewiant: What do I do if I need type level sets, thx 20:53:58 elliott: Cry 20:53:59 elliott: aren't instances kind of sort of like typelevel sets? 20:54:03 Deewiant: Already done 20:54:21 elliott: Go do something else 20:54:28 elliott: s/instances/typeclasses/ 20:54:41 Deewiant: Don't wanna, the only project left is @ 20:55:03 elliott: write a better Haskell. 20:55:03 I don't generally go for random murdering, but the one single time I did I got that. <-- I wasn't randomly murdering. If a rather nasty guy says he will report back to his employer, which I can tell will cause a lot of problems ahead, why would I /not/ try to kill him? There was no one else alive in that ruin than me and him and a lot of monsters at that time too... 20:55:06 Deewiant: I think it's not all peacefuls, just essential-for-the-main-quest; at least http://www.uesp.net/wiki/Oblivion:Essential_NPCs seems to suggest so, and that they become killable later if you're feeling bloodthirsty. 20:55:06 Vorpal: This review of Skyrim I'm reading claims that you can't kill NPCs with children (and maybe not the children themselves either?) nor plot-important NPCs 20:55:20 Deewiant, oh yeah I heard you can't kill children as well 20:55:24 haven't tried 20:55:27 Deewiant: Can't kill NPCs with kids? Laaaaaaaaaaaaaaaame 20:55:30 no idea about parents 20:55:35 Children are amazingly resilient in video games. 20:55:39 indeed 20:55:42 Only in relatively new games 20:55:45 heh 20:55:53 Yeah but parents aren't! 20:55:54 I'm sure there will be a mod to change that 20:55:55 In Fallout 2 you could freely blow them to bits, for instance 20:55:59 in my game there will be newborn babies that you can kill. 20:56:02 Not so in Fallout 3 20:56:03 Deewiant: MY KIND OF GAME. 20:56:15 elliott: They often pickpocketed your stuff so it was even justified 20:56:16 also: pregnant women 20:56:20 Deewiant, could be a Bethesda thing then? After all Fallout 3 is Bethesda 20:56:23 Deewiant: In Fallout 2 there was even a reputation title thing if you did it. 20:56:23 everyone can die. 20:56:26 Deewiant: I like your idea of justice 20:57:05 Vorpal: I think it's more of a "games are more mainstream now so the 'think of the children' people are onto us" thing 20:57:11 Deewiant, weren't you able to give them grenades or something? 20:57:16 And thus blow them up? 20:57:28 Deewiant: Oh wait, what I actually need is a ~/~ constraint! 20:57:31 Ha ha ha ha ha ha ha 20:57:33 Deewiant: http://images2.wikia.nocookie.net/__cb20100226092112/fallout/images/a/ab/Childkiller_Unused.jpg "This image was unused and the only Vault Boy image to ever be cut from Fallout 2. (I'm sure you can figure out why) I remember when I got the request to do a perk illustration for "Child Killer" that there would be no way to keep in from being offensive. I mean really! How do you make an illustration of "child killer" and keep it from being offensive? Any 20:57:33 way for some reason, I thought this was the least offensive way to do it. I have no idea what I was thinking. Even the designer who requested it realized it was a bad idea, so we fixed it. Looking back on it now, I can't believe I drew this." 20:57:39 Phantom_Hoover: In Fallout 2? Yes, that's one way 20:57:54 fizzie: :-D 20:58:12 fizzie: bahahahahahaha 20:58:15 best picture. 20:58:21 * CakeProphet sets this as his profile pic on Facebook. 20:58:43 Then they just went with a thoroughly rusty^Wlame http://images3.wikia.nocookie.net/__cb20050211175524/fallout/images/e/e3/Childkiller.jpg 21:02:36 I like it how the Unofficial Oblivion Patch contains "over 2200" bugfixes beyond the final official patch. It sure is a big game. 21:02:50 okay that was disappointing, the equivalent quest line to oblivions "become arch mage" was quite a bit shorter in skyrim 21:02:51 :/ 21:03:58 " http://www.esotericphilosopher.com/about/ you're welcome back anytime. as the page states, it doesn't matter what your profession is or what your academic expertise is, a mentality is transcendent. the philosopher of man mentality." 21:04:09 Wait, holy crap, he's that guy! 21:04:19 (This is from an msg.) 21:06:34 He said that to me too; thought I was special. :( 21:06:36 Couldn't match type `Or 21:06:36 (Equ [Char] [Char]) (Or (Equ [Char] Int) No)' 21:06:36 with `Yes' 21:06:36 Expected type: Yes 21:06:37 oerjan: :( 21:07:06 elliott, so wait, do we both become philosophers of mans? 21:08:38 oerjan: Holy shit, it WORKS. 21:08:39 * oerjan sidles away from the type madness 21:08:47 ooh 21:09:25 oerjan: http://sprunge.us/CABe 21:09:45 FullList (set denoted by separating each element by :- and terminating with ()) is a list containing one, and exactly one, value of each type 21:09:59 in arbitrary order 21:10:12 well 21:10:15 any type that's A, B, or C :) 21:10:34 Equ needs one more type parameter, standing in for a kind 21:10:35 so you'd do 21:10:36 data ABC 21:10:41 and prepend ABC to all the Equ lines 21:10:49 and it'd be FullList ABC (...) instead 21:10:58 and then it would be general 21:11:11 -!- augur has quit (Remote host closed the connection). 21:11:19 actually 21:11:27 you could just use the (A :- B :- ()) as the first parameter to Equ 21:11:28 and derive it 21:11:30 with TH 21:12:05 now oerjan gets to ask me wtf I'm doing :P 21:14:37 * oerjan keeps sidling away 21:15:28 oerjan: no you don't understand, i did this to solve an actual practical problem :( im becoming afraid of myself 21:17:38 hey oerjan what do you call the addsquaretorial, f(0) = 0, f(n) = n^2 + f(n-1) 21:18:53 oerjan: oh it's 1/6 n (n+1) (2n+1) 21:18:55 how... how obvious 21:19:24 @oeis 1, 5, 14, 30, 55, 91 21:19:25 fizzie, Deewiant: there seem to be no custom spell making in Skyrim. I really liked that feature of oblivion 21:19:26 Square pyramidal numbers: 0^2 + 1^2 + 2^2 +...+ n^2 = n*(n+1)*(2*n+1)/6. 21:19:26 [0,1,5,14,30,55,91,140,204,285,385,506,650,819,1015,1240,1496,1785,2109,2470... 21:19:26 :( 21:19:58 Squyramidal numbers. 21:20:43 fizzie: s/useless-fungot/fungot/ 21:21:12 elliott: well it's obvious if you know difference calculus 21:21:19 Deewiant: No I love him. so much. 21:21:21 -!- fungot has joined. 21:21:27 which we've discussed here several times 21:21:33 -!- useless-fungot has quit (Remote host closed the connection). 21:21:34 oerjan: not saying it's non-obvious 21:21:36 well, I suppose I did 21:21:42 I'm just saying I expected something prettier :P 21:22:25 the pretty ones are when you use binomial functions 21:22:32 ok, so this particular method only scales up to about 9 fields, whereas the more involved one can handle about 15 21:23:33 -!- Sgeo|web has quit (Quit: Page closed). 21:23:53 -!- boily has quit (Quit: WeeChat 0.3.6). 21:24:14 oerjan: anyway, I really wish this was easier :-( 21:24:19 * elliott continues to wait for oerjan to ask wtf he's doing :P 21:24:46 elliott: what are you doing? 21:25:20 olsner: have you seen the code? 21:25:45 * oerjan continues to sidle away 21:26:06 oerjan I HATE YOU JUST ASK ALREADY 21:26:37 -!- CakeProphet has changed nick to oerjanDrone1. 21:26:41 elliott: what are you doing? 21:26:45 -!- oerjanDrone1 has changed nick to Kallisti. 21:26:49 YOU ARE NOT OERJAN 21:26:49 -!- Kallisti has changed nick to CakeProphet. 21:26:57 elliott: GAH! HOW DID YOU KNOW?? 21:27:01 yeah i wouldn't censor wtf 21:27:16 oerjan: ASK ALREADY YOU ABOMINABLE PERSON 21:27:18 not intentionally censored. 21:27:22 that's like, two censoring levels 21:30:58 fizzie, Deewiant: other skyrim info: For alchemy you discover effects of ingredients by experimenting basically it seems. (In oblivion I believe it was based on your alchemy skill?) 21:31:40 I have practically zero memory of Oblivion so I don't really care about the differences 21:32:19 oh hey that pegasus guy made another language 21:32:35 at least since last i've seen 21:33:44 oerjan: Ask ask ask. 21:33:45 Deewiant, oh okay 21:35:19 wtf are you*NO CARRIER 21:35:42 oerjan: I WILL COME TO TRONDHEIM AND END YOUR EXISTENCE 21:35:53 sweet sweet oblivion 21:36:15 oerjan: don't you mean skyrim :DDDDDDdddddddd 21:38:27 no skyrim wtf are you talking about 21:39:08 Deewiant: explain the joke thankxse 21:39:28 -!- copumpkin has changed nick to RadicalFeminist. 21:39:52 yeah i need explanation i've been living in this cave you see.. 21:40:11 I used this for uniform probability distributions: uniform x = WriterT $ (flip (,) $ mpnormfunc (mempty <$ x) mempty) <$> x; 21:40:34 oerjan: indeed 21:40:39 oerjan: wait wait wait youa sked me wtf am i talking about :DDD 21:40:39 yesss 21:40:41 n ow i can tell you 21:40:45 curses 21:41:02 oerjan: ok so you know like 21:41:06 Foo <$> a <*> b <*> c 21:41:27 the problem with that is that for record types, that gets (a) really long and (b) unreadable (since the field names aren't there) 21:41:31 I could make probability distributions without even needing numbers or division or something like that 21:41:32 so 21:41:38 oerjan: you could do 21:41:48 Therefore, it is a "generalized probability distribution". 21:42:08 oerjan: data Foo = Foo {fooA :: Int; fooB :: String; fooC :: Double}; data Foo' f = Foo' {fooA' :: f Int; fooB' :: f String; fooC' :: f Double} 21:42:12 im guesseing idom brackets dcant do reccord typse 21:42:29 oerjan: and then do like: runFoo' $ Foo' {fooA' = a; fooB' = b; fooC' = c} 21:42:36 runFoo' :: Foo' f -> f Foo 21:42:44 oerjan: BUT THE PROBLEM IS: what if you want to run b before a? 21:43:32 fiendish. 21:43:33 oerjan: you could do lenses, and then have: data Assign t = forall v. Lens t v := v; mkFoo :: [Assign Foo] -> Foo 21:43:44 erm 21:43:55 oerjan: you could do lenses, and then have: data Assign f t = forall v. Lens t v := f v; mkFoo :: (Applicative f) => [Assign f Foo] -> f Foo 21:44:00 oerjan: mkFoo [fooA := a, fooB := b, fooC := c] 21:44:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 21:44:07 oerjan: but then the problem is, you can just leave off a field and not even get a warning 21:44:12 or duplicate a field 21:44:15 and that kind of sucks!! 21:44:28 suckest 21:44:29 oerjan: but with /this/, you can use a FullList (Assign f Foo) 21:44:35 erm 21:44:36 or rather 21:44:44 have you venbtured into the dark worlds of templates hskell yet 21:44:49 for sokving this 21:44:50 problem 21:44:51 i mean 21:44:55 oerjan: but with /this/, you can use a FullList ((FieldA := f Int) :- (FieldB := f String) :- (FieldC := f Double) :- ()) 21:44:55 (Specifically that) 21:45:04 oerjan: with data FieldA, FieldB, FieldC 21:45:19 oerjan: and it all works out! 21:45:32 assuming you define the equality to compare on the field name only etc. etc. etc. 21:45:48 oerjan: this is kind of ugly though :( any bright ideas??????? 21:45:56 -!- RadicalFeminist has changed nick to copumpkin. 21:46:20 how ugly does it compare with th uglies 21:46:26 monqy: how would you solve this with th 21:46:26 or could they ugly team up together 21:46:42 quasiquoters probably 21:46:46 Try using TH. It might help too 21:46:57 I would do it without quasiquoters, though. 21:47:25 that works too, if it works 21:47:53 elliott: gah, I started running a non-idempotent and hard-to-reverse script misconfigured 21:48:05 noticed, tried to kill the process in a panic, killed the wrong process 21:48:11 tricky stuff 21:48:13 -!- Phantom_Hoover has joined. 21:48:13 However it would be a bit difficult due to strong typing in TH quotations. There is a proposal that makes two types of quotations, strong and weak; so you can use a weak one and then make the result strongly typed instead. 21:48:16 Oh my god I saw that Transformers guy on Mastermind it was hilarious. 21:48:23 luckily, it turned out it was almost configured correctly 21:48:34 oerjan: :'( you unhelpful 21:48:38 and in particular, the error it's made is deterministic so I can fix it after the fact 21:48:46 Doing it with Homestuck would be funnier still, but I doubt it'd be allowed. 21:48:51 elliott: well i don't even know th 21:49:13 oerjan: i don't want to use th here and i don't think th will help 21:50:51 fizzie: new twist on dark brotherhood: it seems you can become hunted by them... 21:50:54 Then don't use TH if you don't like it. 21:51:35 -!- FireFly has quit (Changing host). 21:51:35 -!- FireFly has joined. 21:51:42 oerjan: http://sprunge.us/gCji 21:51:58 nice 21:53:25 elliott: something tells me that even if you make it work, the type errors for missing fields are going to make people want to kill you. 21:53:48 oerjan: thankfully that type error is much worse than it will be in reality 21:53:57 all the duplications of ((A := Int) :- ((B := String) :- ((C := Double) :- ()))) will just look like ABC 21:54:00 in actual use 21:54:36 o kay 21:54:44 oerjan: hey, if you have any better ideas... 21:57:11 oerjan: 21:57:14 Couldn't match type `Assign C :- ()' with `()' 21:57:14 Expected type: FullList 21:57:14 ABC (Without ABC (Assign B) (Assign B :- (Assign C :- ()))) 21:57:14 Actual type: FullList ABC () 21:57:14 In the second argument of `(:-)', namely `Done' 21:57:14 In the second argument of `(:-)', namely `(B := "hello") :- Done' 21:57:19 that's what it looks like when you omit the C field at the end 21:57:29 the "couldn't match type" line gives the full error 21:58:44 oerjan: meanwhile: sigh, why isn't there an infix -1 22:00:30 -!- hagb4rd has quit (Ping timeout: 240 seconds). 22:00:51 because once you want more than 0..9 you're going to start thinking of a better system than numbers 22:01:06 -!- wareya has joined. 22:01:13 note to self: http://sprunge.us/hdWe 22:01:24 oerjan: I know, I know, I just want to be able to use $ in my pseudo-literals :P 22:03:04 I think even like that, TH can help to make up the type instances and that kind of stuff 22:03:54 -!- Sgeo|web has joined. 22:04:47 zzo38: yeah, that was my plan 22:04:52 but I don't think it helps make a /nicer/ solution than this 22:04:55 just makes using this slightly less painful 22:06:17 -!- Ngevd has joined. 22:06:18 monqy: what would you do in my situation :'( 22:06:22 :t undefined { runIdentity = undefined } { runIdentity = undefined } 22:06:23 forall a. Identity a 22:06:31 what exactly IS your situatioateon 22:06:54 (exACTLY) 22:07:13 monqy: i mexplained it above :'( 22:07:28 :( 22:07:35 i'll 22:07:37 look againe 22:08:00 monqy: from oerjan: ok so you know like 22:08:02 to oerjan: this is kind of ugly though :( any bright ideas??????? 22:08:16 (i managed to clean it up from that slightly but yeah) 22:11:43 no freenode scum 22:11:44 no 22:11:44 2011-11-12 00:11:12 [freenode] -RichiH(~richih@freenode/staff/richih)- [Global Notice] Hi all. We wish you a very verily merry merrily 11:11:11 11.11.11-11! 22:11:47 you awful 22:11:47 CLOSE ENOUGH 22:11:48 people 22:12:03 Deewiant: oh wait for a second I thought it was 11pm 22:12:05 not 10pm 22:12:08 and they were using 12 hour clock 22:12:08 and 22:12:09 I wanted to 22:12:11 punch them 22:12:13 until they stopped existing 22:12:30 you cut off a good part 22:12:33 Oh, the -11 is a time zone 22:12:37 Crank it up to eleven and here's to hoping the world will not end in 2012; as always, thanks for flying freenode air! 22:12:39 That might make sense 22:12:42 Deewiant: thats even worse 22:12:44 i want to 22:12:46 kill people :( 22:12:57 wait Deewiant is on UTC??? 22:12:59 but 22:13:00 him 22:13:01 fniland 22:13:10 This is +2 22:13:13 ok.......... 22:13:15 oh 22:13:15 12 22:13:16 not 10 22:13:16 is how 22:13:18 clocks go 22:13:18 ok 22:15:47 anyway the way i would have done it with th would be something like the the (field id, f valiue) -> f wahtever except with compiles time checking in th that there are no missing or duplicated felds. of course this is probably just as bad as type system hakcery, and type system hackery is certainly cooler..... 22:16:11 monqy: that would be uglieir :( 22:16:16 yeah... 22:16:29 i will try to think of 22:16:31 how to help with 22:16:33 type system 22:16:34 ruining 22:17:35 *YAWN* 22:17:40 monqy: there's a part of me at this point that just wants to say 22:17:41 hi 22:17:46 monqy: [Assign Foo] 22:17:47 and 22:17:48 leave it at that 22:17:53 noo :( 22:17:54 but i would never forgive myself 22:18:02 My lack of pop-culture knowledge has failed me again... 22:18:12 [Assign Foo] and leave it at that is ... awufl 22:18:40 monqy: is this non-awful 22:18:49 lesss awful.... 22:18:53 because its type checkeD?? 22:19:21 possibility of runtime errors makes me 22:19:22 really sad 22:19:25 possiblyt 22:19:26 too sad 22:19:31 but 22:19:47 how to unsad cleanly ;_; 22:20:15 marquis de sad 22:20:34 can't find anything about records in she's idiom brackets page 22:20:36 ;_; 22:21:52 monqy: like I said, that would _not_ help 22:22:02 monqy: it's trivial to make a record with each field wrapped in f 22:22:02 i did not see that said 22:22:07 monqy: I showed that above 22:22:11 the problem is controlling the /ordering/ 22:22:21 with idiom brackets you can just do like ~(flip (+)) to flip the evaluation order, even if that is ugly 22:22:26 but you can't "flip" a record literal... 22:22:34 whew, finished work for the day, and now I'm too tired to play NetHack 22:22:37 help what should I do instead 22:22:38 unless you mean it'd depend on the order you specified in the fields in 22:22:42 in which case let me be the first to say, ewwwwwwwww 22:22:43 yes that was my hope 22:22:46 ais523: fail to play nethack 22:22:47 (don't mention Feather, I'm too tired for that too) 22:22:52 monqy: well ok it's not THAT bad but... 22:22:54 it's ugly but....is it uglier than what you have?? 22:22:56 not sure i want to use a preprocessor 22:24:54 set {field1 = as value1} This would probably be quicker if I started from scratch and just implemented Dijkstra's algorithm in Haskell 22:25:15 did your cleaning up clean up Equ, becaues Equ is real gross... 22:25:21 oerjan: wut 22:25:29 hm actually 22:25:29 monqy: that would be TH-generated 22:25:34 oh, good.. 22:25:45 chain =/\> set {field1 = as value1} same with the rest?? 22:26:10 where field1 are your wrapped versions... 22:26:14 above the last -- i mean 22:27:31 hm that wouldn't be typesafe though... 22:27:53 what language is this... 22:28:50 No wait, I don't want Dijkstra 22:29:02 -!- augur has joined. 22:29:11 oerjan: additionally, you'd get an "undefined record field lol" for each set... 22:29:32 oerjan: but I can't tell what you are trying to do with just some code without even type signatures. 22:30:21 elliott: well set would be a value of type Foo' something 22:30:36 more interested in chain and set and as's types 22:31:02 Hmm, I've realised an even more ridiculous thing about the Apollo computers. 22:31:42 A navigational computer small enough to fit on a spacecraft was built *less than fifteen years after the first silicon transistor was invented*. 22:31:43 hm actually =/\> and set is a predefined record which has dummy values for each Foo' field 22:34:17 chain is a dummy setter that does nothing. =/\> combines a setter with another modification 22:34:32 the setter being something monadic that preserves order 22:35:02 i don't know how to make it typesafe to check if all fields are set, though 22:35:14 oerjan: right. well that's just my [Assign Foo] situation, but ugly :P 22:35:26 mkFoo [field1 := value1, field2 := value2] 22:35:42 -!- derrik has quit (Quit: i disappear). 22:36:05 Is there a recommended way in Haskell to do Dijkstra's algorithm on a procedurally generated graph? 22:36:12 Do I have any idea what I'm saying 22:36:18 well ideally set {field1 = as value1} should have some type that involved field1 being set, but that's going to be awkward 22:36:55 Ngevd: you may just want to use http://hackage.haskell.org/package/astar 22:36:56 maybe something higher rank 22:36:56 ? 22:37:18 oerjan: oh you mean so you can't set multiple times? 22:37:24 well record updates cannot change types, full stop. 22:37:53 true, but set might be polymorphic 22:38:47 oerjan: idgi 22:39:00 but the scaffolding to make this actually put the fields in types is probably going to be worse than your solution :P 22:39:36 oerjan: the boilerplate can be autogenerated by TH 22:40:36 elliott: well say Foo' takes type arguments that tell the type of each field, and the right argument of =/\> is required to have exactly one of them not being (), or something 22:41:10 and that one should be () in something corresponding in the left argument 22:41:24 which means =/\> must be a method, i guess 22:41:47 oerjan: that would still change the type 22:41:49 set :: Polymorphic 22:41:53 set{...} :: NotPolymorphic 22:41:54 not possible 22:42:21 um of course that is possible, polymorphic values are restricted all the time in haskell :P 22:42:57 set would have polymorphic type Foo' f a1 a2 a3 22:43:28 oerjan: try it yourself if you don't believe me. 22:44:45 hmm, wtf 22:44:49 oerjan: it works, that must have changed 22:45:26 :t let x = Identity undefined in (x {runIdentity = True}, x {runIdentity = LT}) 22:45:27 (Identity Bool, Identity Ordering) 22:46:22 elliott: well of course the restriction might happen _before_ the modification 22:46:32 oh hmm right 22:54:31 What are a tropical semiring, possibilistic semiring, bottleneck semiring, truncation semiring, Lukasiewicz semiring, division semiring, formal languages semiring, etc? 22:55:28 oerjan: a job for you! 22:56:08 yay 22:56:19 clearly the answer is: no idea 22:56:35 well, i've got a _slight_ hunch some of those might be semirings. 22:56:48 but only some of them. 22:57:33 we wouldn't want to leap to conclusions. 22:57:41 I know they are semirings (I found them in a list of semirings) but I don't know the details of them. 22:57:41 might fall and break something. 23:00:52 elliott: read the new new updates? 23:01:06 Sgeo|web: HEY SGEO HAVE YOU READ THE NEW HOMESTUCK UPDATES 23:01:11 @tell Sgeo|web did you read them???? 23:01:11 Consider it noted. 23:01:23 It's @ask. 23:01:34 @tell elliott Is it? 23:01:34 Consider it noted. 23:01:44 @ask elliott what is @ask? 23:01:44 Consider it noted. 23:01:53 oh look, the same thing. 23:02:03 shachaf said 25s ago: Is it? 23:02:03 CakeProphet asked 15s ago: what is @ask? 23:02:04 @ask elliott I don't remember how it treats them differently, though I do remember that it does. 23:02:04 Consider it noted. 23:02:05 Mauybe 23:02:05 Sgeo|web: You have 1 new message. '/msg lambdabot @messages' to read it. 23:02:10 Note the part where CakeProphet is an idiot! 23:02:10 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 23:02:11 Oh. 23:02:27 elliott: man that is so different. 23:02:37 it is just being different with differency. 23:02:42 "said" 23:02:42 "asked" 23:02:47 * CakeProphet can read. 23:02:49 Looks different to me also Gregor answer my question already. 23:03:39 @list ask 23:03:39 tell provides: tell ask messages messages? clear-messages 23:03:54 clearly far too few options 23:05:22 @messages? 23:05:22 Sorry, no messages today. 23:05:41 elliott: so anyway did you read it? 23:05:48 notice anything odd? 23:06:20 I don't know what you're talking about. I don't speak English. 23:07:17 notice it. 23:08:04 why is there a vine going up that staircase? 23:08:06 what's up with that? 23:08:18 23:09:07 oh, I bet it's part of some real life MYSTIC RUINS that he desecrates frequently. 23:09:24 AAAH! 23:09:30 Updates nobody told me about! 23:10:15 homestuck eh 23:11:20 monqy: no there was an update to.....esoteric 23:11:33 oh 23:11:36 was it 23:11:46 libertas 23:12:13 because 23:12:16 i don't like libertas 23:12:18 bad update 23:12:51 no it was update to 23:12:53 the word esoteric itself 23:12:56 oh 23:12:57 what does it 23:12:58 mean 23:12:58 now 23:13:01 what 23:13:02 happened 23:13:16 nobody knows 23:13:19 :o 23:15:01 monqy: oH no i just thought of...........................another problem with..........m,y system 23:15:16 oh no 23:15:20 is it a 23:15:21 big 23:15:22 problem 23:15:22 a 23:15:23 bad 23:15:26 problem 23:15:43 worst problem? not that bad? oh no 23:17:03 monqy: 23:17:04 mkFoo 23:17:04 ( A := return 42 23:17:04 :- B := mkBar 23:17:06 ( X := getLine 23:17:08 :- Y := getLine 23:17:10 :- Done ) 23:17:12 :- C := getLine 23:17:14 :- Done ) 23:17:30 oh no?? 23:17:32 monqy: what if you want the getLine order to be 23:17:35 B.Y, C, B.X 23:17:40 how can you rearrange it to do that 23:17:40 h,,,,,,,,,m 23:17:42 hint: you can't 23:17:47 it only offers ordering within one mkBlah 23:17:48 ogh no 23:18:20 oerjan: :'( 23:18:27 lets us weep 23:18:30 pls 23:18:37 poor elliott, once again destroyed by his own perfectionism. 23:18:48 i can only imagine fixing it typesafely to be positiviely hideous in haskelle. 23:19:08 oerjan: what has this got to do with perfectionism 23:19:47 -!- Madoka-Kaname has quit (Ping timeout: 258 seconds). 23:20:13 -!- Madoka-Kaname has joined. 23:20:14 -!- Madoka-Kaname has quit (Changing host). 23:20:14 -!- Madoka-Kaname has joined. 23:20:39 well, ask a fish what water has to do with swimming 23:20:46 (aum) 23:20:58 oerjan: except that this ordering problem is an actual problem I have. 23:21:00 and it will tell you: BLUB 23:21:17 and none of the less-safe solutions fix it, either 23:24:32 > fix $ const "elliott's ordering problem" 23:24:32 "elliott's ordering problem" 23:25:04 Argh, I just stupidly looked at the Discworld wiki. 23:25:13 The character sketches are unbelievably awful. 23:26:12 Like, I don't think these people have actually looked at Kidby's illustrations or, in some cases, Pratchett's descriptions. 23:26:52 oh 23:26:52 Didn't realise you were a Pratchett fan 23:26:53 oh 23:26:56 OH DEAR GOD 23:26:59 HOAJGOPIAESHRGS 23:27:06 TV TROPES RENAMED "THE WESLEY" 23:27:09 hoajgopiaeshrgs 23:27:18 To what? 23:27:20 `wacro 23:27:22 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wacro: not found 23:27:24 !wacro 23:27:27 "Creator's pet." 23:27:42 wacro... 23:28:03 wacro doesn't love you any more. 23:29:55 monqy: oh HMmmmmmmmm 23:30:00 monqy: i think i could do this.... nomadiclaly 23:30:02 !echo now what 23:30:04 now what 23:30:10 :o 23:30:37 !wacro 23:30:40 monqy: except not proper monad 23:31:40 :o 23:32:06 monqy: oh!! it is monoid almost. 23:32:10 :o 23:32:16 almosT?? what are you DOING 23:33:26 monqy: assign :: (FieldOf t field) => field -> f (FieldType field) -> Assign f t (field :- xs); (>>+) :: Assign f t fields -> Assign f t (field :- fields) -> Assign f t (field :- fields); run :: (Complete t fields) => Assign f t fields -> f t 23:33:35 Complete t fields if true iff fields contains all fields of f 23:33:47 feifeiflds here can be full lenses 23:33:53 i think 23:34:01 so you can compose them to assign submembers in different order 23:34:06 except hmm i need infrastructure for that 23:34:12 but 23:34:15 that's the BASIC idea!!! 23:34:18 and it will be less awful than all of this 23:35:06 -!- sebbu2 has joined. 23:35:06 -!- sebbu2 has quit (Changing host). 23:35:06 -!- sebbu2 has joined. 23:35:21 monqy: oh wait it's actually 23:35:31 (>>+) :: Assign f t xs -> Assign f t ys -> Assign f t (xs :++: ys) 23:35:32 yaye 23:35:57 so the magic is in Complete then?? 23:36:56 monqy: I guess so yeah 23:38:31 -!- sebbu has quit (Ping timeout: 240 seconds). 23:39:14 monqy: HOW DO YOU SPELL FIELD 23:39:18 field 23:39:33 unless im typo. then it could be ANYTHING 23:39:35 feild, feld 23:39:37 feld is good 23:39:49 fdledl 23:39:51 I don't think I've ever done efild 23:39:53 oops. 23:40:18 ifeld 23:40:49 !show wacro 23:40:49 perl (sending via DCC) 23:41:24 wtf 23:41:29 !wacro 10 23:41:44 wacro magic mystery 23:41:55 oerjan: EgoBot is broken, remember 23:42:06 elliott: no it was fixed 23:42:13 oerjan: um what's the length of the list of permutations of a list as long as the list itself...... 23:42:18 im dum 23:42:19 -!- Aune has joined. 23:42:23 !perl print "hi"; 23:42:23 hi 23:42:30 hi 23:42:40 > permutations [a,b,c] 23:42:40 [[a,b,c],[b,a,c],[c,b,a],[b,c,a],[c,a,b],[a,c,b]] 23:42:45 > filter ((== 3) . length) $ permutations [a,b,c] 23:42:47 [[a,b,c],[b,a,c],[c,b,a],[b,c,a],[c,a,b],[a,c,b]] 23:42:47 oh wait 23:42:56 elliott: n! 23:43:07 oerjan: ni! 23:43:14 nnnnnn 23:43:21 oerjan: ah. so this new, simpler approach can handle... 5 fields. 23:43:28 yay 23:43:31 5 is enough fields for anyone 23:43:33 (actually that's not true :P) 23:43:43 just means I'll have to get more cleverer 23:44:53 !wacro 50 23:45:28 poor egobot 23:45:29 i cannot quite recall what was the correct syntax 23:45:36 it was that, i think 23:45:42 `log [!]wacro 23:45:53 poor hackego 23:46:05 2011-08-19.txt:23:36:46: !wacro 23:46:10 wacro 23:46:29 !acro 23:46:30 Array found where operator expected at /tmp/input.5546 line 47, at end of line 23:46:47 wtf 23:46:54 !macro 23:46:59 !userinterps 23:47:00 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo cpick ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph hello id insanetemp jethro kraut lperl lsh map monqy num numberwang ook pansy pi pikhq ping pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak wacro warez 23:47:00 or uh 23:47:01 `macro 23:47:06 GEISHAS 23:47:58 monqy: oh no i ju st realised something 23:52:45 `words 50 23:52:47 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: words: not found 23:52:52 `word 50 23:52:54 qiirricompos andmag abingena trospepit turvklescbitury que dra querg coneleontamonningedur andmianus svitted fuh per otran formair euoncasdationd her beanet everw zeim regafooll miarashiesubao wed nunstchi felton reriv gly antsuperditee hener munglo mming firtyciporones nclards es aslothir fee disfo cusisseo elrodous tent pu 23:53:00 or do you want wacro? 23:53:09 !wacro 23:54:16 hmm, okay. 23:54:32 oerjan: oh no bad thing!! 23:54:37 * Gregor is en-masse moving projects to bitbucket. 23:54:44 Gregor: even the bad ones? 23:54:50 elliott: No, only the ones that are maintained :P 23:55:00 oerjan: why is mapM not for applicatives :'( 23:55:02 (For some definition of "maintained") 23:55:17 Gregor: I'll spring my two questions on you, then! 23:55:43 -!- ais523 has quit (Ping timeout: 240 seconds). 23:55:48 Gregor: (a) Does HackBot support running some code continuously in the background? (usually blocked on a lock or whatever) This would vastly simplify my design. (b) Are you /sure/ I can't use Haskell? You have a recent GHC in /opt! 23:56:07 -!- someoneyouhate has quit (Ping timeout: 240 seconds). 23:56:25 elliott: (a) As in, user code, or just some other code that's part of the infrastructure? 23:56:31 elliott: (b) PFFFFFFFFFFFFFFFF 23:56:39 elliott: traverse 23:56:44 :t traverse 23:56:45 Not in scope: `traverse' 23:56:49 argh 23:56:53 Gregor: (a) Latter. 23:56:53 @hoogle traverse 23:56:53 Data.Traversable traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) 23:56:54 Data.Foldable traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f () 23:56:54 Control.Parallel.Strategies parTraverse :: Traversable t => Strategy a -> Strategy (t a) 23:57:01 Gregor: (b) I'M HAVING TO DO FILE LOCKING IN BASH YOU SHITHEAD 23:58:03 elliott: I never said it had to be bash. 23:58:16 elliott: Latter is fine; I mean, multibot itself is running continuously of course. 23:58:53 Gregor: (a) Yeah, but I'm not sure my soul will let me rewrite anything in a language that isn't Haskell :P (b) How do you do it, then 23:59:27 ?hoogle mapA 23:59:27 Data.List mapAccumL :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y]) 23:59:27 Data.Traversable mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c) 23:59:27 Data.List mapAccumR :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y]) 23:59:29 ;_;