00:14:20 -!- CakeProphet has joined. 00:14:20 -!- CakeProphet has quit (Changing host). 00:14:20 -!- CakeProphet has joined. 00:16:58 -!- Sgeo_ has quit (Quit: Leaving). 00:17:52 -!- Vorpal_ has joined. 00:17:53 -!- Sgeo has joined. 00:18:28 -!- Sgeo has quit (Client Quit). 00:18:35 -!- atehwa has joined. 00:18:35 -!- mycrofti1 has joined. 00:18:50 -!- Sgeo has joined. 00:19:02 -!- Zwaarddi1k has joined. 00:19:12 -!- Sgeo has quit (Read error: Connection reset by peer). 00:19:30 -!- Sgeo has joined. 00:19:53 ?src (*>) 00:19:53 (*>) = liftA2 (const id) 00:21:21 -!- atehwa_ has quit (Ping timeout: 276 seconds). 00:21:21 -!- mycroftiv has quit (Ping timeout: 276 seconds). 00:21:22 -!- Vorpal has quit (Ping timeout: 276 seconds). 00:21:23 -!- iamcal has quit (Ping timeout: 276 seconds). 00:21:23 -!- Zwaarddijk has quit (Ping timeout: 276 seconds). 00:21:46 ?info (<|>) 00:21:46 (<|>) 00:21:48 gah 00:22:51 -!- CakeProphet has quit (Quit: Reconnecting). 00:23:00 -!- CakeProphet has joined. 00:23:00 -!- CakeProphet has quit (Changing host). 00:23:00 -!- CakeProphet has joined. 00:25:13 Finally I fix the speakers in my computer today. 00:28:51 -!- GuestIceKovu has joined. 00:29:15 -!- iamcal has joined. 00:34:19 -!- GuestIceKovu has changed nick to Slereah. 00:42:18 elliott_, 00:43:14 thz 00:43:15 thx 00:43:45 yw 00:55:56 FLAG STAAAAAAAAAAATES 00:57:05 AND NOW for your viewing pleasure, ANOTHER conversational excerpt with no context (a father speaking of his young daughter): I told her to say "That's how I roll, yo" and my wife jumped on me hardcore. I am forbidden from teaching her gangsta'. 00:57:49 dang. 00:58:34 thats like being forbidden to teach american history 00:58:41 (x) 01:00:47 Gregor: X-D 01:05:26 elliott_: How long have you been going without 1-8 keys? 01:05:44 Months. 01:05:58 How many months? :P 01:06:05 I have to set a baseline for how long I can survive with a dead pixel. 01:06:13 I figure if you can go without 1-8, I can go without that pixel. 01:06:27 why don't you just buy a new keyboard? 01:06:35 Patashu: Laptop out of warranty. 01:06:41 oh laptop 01:09:18 Uh 01:09:21 My laptop is not out of warranty 01:09:25 I just have not sent it back yet 01:09:31 My laziness knows no bounds at all. 01:11:44 GreaseMonkey: 01:11:46 erm 01:11:50 Gregor: Greppign to find out now 01:12:08 2011-01-01.txt:00:30:49: #define uint8_t a[printf("hello world\n")] 01:12:08 What :P 01:12:10 ... wow :P 01:12:14 Gregor: What 01:12:25 Wow at you being too lazy to get it fixed. 01:12:30 Waitin' 'til it's out of warranty? 01:12:33 X-D 01:13:06 Gregor: I decided to wait until Lion was out; I don't want Apple snooping around my files, and I suspect booting leading to Linux would have them consider it out of warranty, so I'm going to wipe the thing before I send it. 01:13:10 Gregor: So I might as well get an upgrade out of that. 01:13:42 2011-01-10.txt:01:50:09: Obviously integers just have to snarf the keys 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and - when they're focused and do the obvious (*10)+. 01:13:42 What :P 01:14:13 2011-02-11.txt:01:08:56: ("minkeys are monkeys",-10,"but maxkeys are for life",180) 01:14:14 Literal best debug statement. 01:14:27 2011-04-18.txt:05:31:32: does anyone have a simple way to map f keys to their numbers? :) <-- your laptop doesn't have a "use Fn to get numpad at jkluio789" feature like mine? i guess that doesn't help with the latter 3... 01:14:30 Gregor: At LEAST four months :P 01:14:43 2011-04-15.txt:14:44:37: I kept the lilac! 8D 01:14:44 2011-04-15.txt:15:12:59: With ugly aliased edges 8D 01:14:44 2011-04-15.txt:15:16:37: Gregor: btw I put your logs first in the community portal 8D 01:14:44 2011-04-15.txt:15:53:36: D8 01:14:44 2011-04-15.txt:15:59:30: 8D 01:14:44 2011-04-15.txt:16:04:32: 8D 01:14:50 Gregor: And not more, unless I was very patient copying those in. 01:15:25 00:30:46: int main(int ac, char **av) 01:15:26 00:30:47: { 01:15:26 00:30:47: #define typedef 01:15:26 00:30:49: #define uint8_t a[printf("hello world\n")] 01:15:26 00:30:51: #include 01:15:26 00:30:52: } 01:15:28 00:30:55: ^ lol what 01:15:33 OK, that is the most beautiful program I have ever seen. 01:15:55 <3 01:15:58 what 01:16:02 That is also fucking nuts. 01:16:26 Patashu: typedef unsigned char uint8_t; 01:16:28 --stdint.h (probably) 01:16:31 so the define it makes... 01:16:36 --> 01:16:36 executes in code you don't even make? 01:16:38 insane 01:16:39 unsigne char a[printf("...")] 01:16:52 Of course it could look totally different and system headers do not even have to be written in C. 01:16:54 But it's still amazing :P 01:17:18 d 01:18:10 And *this* is why using C's reserved names is undefined behavior. 01:18:13 I sometimes have typedef unsigned char byte; in some of my CWEB programs 01:18:28 zzo38: as long as you don't rely on byte being eight bits 01:19:28 On most computers a byte is eight bits. But C means char is eight bits at least anyways, you can modify the program for computers that use nine bits or whatever 01:21:39 elliott_: As much as it pains me to say this, that is one of the safest assumptions you can make. 01:21:46 LLVM has some better design because you can type "i8" if you want eight bits. But they should still need constraint analysis and constraint specification, which can help in some cases and with some computers, possibly. 01:21:47 pikhq: DIEEEEEEEEEEEE 01:22:41 $ cat testuint8.c && echo - && gcc testuint8.c && ./a.out 01:22:41 #include 01:22:41 int main() 01:22:41 { 01:22:41 #define typedef 01:22:42 #define uint8_t a[printf("Hello, world!\n")] 01:22:44 #include 01:22:46 return 0; 01:22:48 } 01:22:50 - 01:22:52 Hello, world! 01:22:54 (I'm a flooooooder) 01:23:37 Is this always a proper way in Haskell to check if it is GHCi or not, using Template Haskell? GHCi = runIO getArgs >>= \(x:_) -> (x == "--interactive") 01:23:50 -!- azaq23 has quit (Read error: Connection reset by peer). 01:24:03 -!- azaq23 has joined. 01:24:15 No. 01:24:40 looks like it'll fail to type 01:24:44 Gregor: Obviously 01:25:22 O, yes, sorry I made a mistake I can see easily now 01:25:33 Yes it is the wrong type 01:25:57 I have a feeling it isn't the best way though 01:26:14 even if that means the best way is "don't do it" 01:26:19 getArgs also might not have "--interactive". 01:26:27 Or it might not be in the first position. 01:26:41 It might give you an empty list, in which case your program will crash. :-) 01:27:49 You might need something like this instead: ifGHCi t f = runIO getArgs >>= \(x:_) -> if (x == "--interactive") then t else f; 01:28:06 ghci = fmap ("--interactive" `elem`) (runIO getArgs) 01:28:10 At least it worked for me to check getArgs for "--interactive" at first. But maybe there is still things wrong with it 01:28:21 shachaf: Out of curiosity, when would --interact not be in getArgs using GHCi? 01:28:31 monqy: Yes that probably would be better I guess 01:28:54 elliott_: Well, when I run ghci and type getArgs, it prints out []. 01:29:24 shachaf: But in a Template Haskell context in an imported module? 01:29:59 I'm not sure. 01:30:11 At least this worked for me: foreign_export :: Name -> Q [Dec]; foreign_export x = runIO getArgs >>= \(y:_) -> if y == "--interactive" then [d| |] else (do { VarI _ t _ _ <- reify x; return [ForeignD $ ExportF CCall (nameBase x) x t]; }); 01:30:24 elliott_: Amazingly, your crazycode works with -ansi -pedantic. 01:30:29 zzo38: At *least* do the `elem` thing. 01:30:43 Gregor: Not mine. Don't give me credit. It was on Stack Overflow or something. 01:30:48 elliott_: Oh 01:30:48 Gregor: Anyway, cpp has no warnings that I'm aware of. 01:30:50 shachaf: Yes I can change it to `elem` in case that works better 01:30:56 Gregor: So I'm hardly surprised. 01:31:03 But still, this is the code I used for foreign exports. 01:31:09 zzo38: You do not need to parenthesise that do expression. 01:31:12 elliott_: I thought a[not-a-compile-time-const] wouldn't work in some mode. 01:31:52 elliott_: Actually I do need to; it is error if I don't parenthesise that do expression. 01:32:43 Gregor: Did you forget -Wall? :) 01:32:46 -!- Vorpal_ has quit (Ping timeout: 245 seconds). 01:32:47 -pedantic adds no errors, at least 01:32:53 zzo38: Well that's rubbish. 01:32:55 elliott_: It didn't even warn. 01:33:11 elliott_: -Wall -Werror -ansi -pedantic works D-8 01:33:25 Clearly that code is impeccable. 01:33:29 Gregor: I'm pretty sure system headers don't produce warnings. 01:33:31 It cannot be pecc'd. 01:33:32 For obvious reasons. 01:33:42 elliott_: But they should when you eff with them X-D 01:33:52 That's sooo detectable :P 01:34:12 elliott_: I'm pretty sure the only reason they don't produce warnings is that they're absolutely correct (by GCC's definition of "correct") 01:34:16 I used this code in order to correct two problems of foreign export at once. 01:34:32 Gregor: No, I'm fairly sure that warnings aren't produced in system headers... try inlining the specific generated line. 01:34:56 -!- zzo38 has quit (Remote host closed the connection). 01:35:06 error: ISO C90 forbids variable length array ‘b’ 01:35:07 LAME 01:36:18 Gregor: Consider how bad system headers can be :) 01:36:33 "gcc sux because I run it on my IRIX system and it won't compile anything, it complains about something in stdlib.h." 01:36:43 (Is IRIX bad? I don't know.) 01:36:50 It is. 01:36:50 http://upload.wikimedia.org/wikipedia/en/a/a3/IRIX_desktop.png Nice. 01:53:45 elliott_: I'm reading a list of corner cases of the rules of Diplomacy (the boardgame), and it mentions that a past ruleset allowed players who had two fleets, with one in harbour and one at sea, to defend each other by offering to transport a third party's units to the harbour in a way that caused a paradox 01:53:49 and so causing all the actions to fail 01:54:02 that's an awesome tactic, but it makes sense that it was fixed, it's kind-of unintuitive 01:54:28 :D 01:54:35 link? 01:54:35 -!- azaq231 has joined. 01:54:40 or is it not on the INTERNEJTKS 01:54:55 http://web.inter.nl.net/users/L.B.Kruijswijk/#6.F.20 01:55:07 OK two people have followed two separate old Twitter accounts of mine in like two days waaaaaait I think they're spambots. 01:55:14 Really good spambots. 01:55:24 No wait, one of them definitely isn't. 01:55:25 But what? 01:55:37 definitely isn't? 01:55:56 a spambot 01:56:12 yes but how did you know this 01:56:14 you may need to know the rules of Diplomacy to understand how it works 01:56:17 well, almost certainly will 01:56:32 -!- azaq23 has quit (Ping timeout: 260 seconds). 01:56:33 ais523: those are fun 01:56:52 coppro: you strike me as the sort of person who probably knows about Diplomacy paradoxes 01:58:33 ais523: I am sort of familiar with them 01:58:38 I have not studied them in depth 01:59:45 neither have I, but I'm doing so now because it's fun 02:00:36 I wonder if they'd be TC on an infinite, repeating board, assuming that you always resolve a situation if there's exactly one consistent resolution, even if it's really complex? 02:01:10 my hunch is no 02:01:17 but stranger things have happened 02:04:30 to start with, can you transmit data over unlimited distances? 02:04:44 you obviously could if you could convoy fleets, but you can't 02:04:47 perhaps there's some other method 02:05:58 btw, webdiplomacy has pictures of all the DATC test cases, if you find them easier to understand visually: http://webdiplomacy.net/datc.php 02:06:23 oh, ofc, you can just use one /really long/ convoy to transmit data over arbitrary distances 02:08:03 another method is to have a chain of "fleet convoys army to break support of army on fleet that is trying to convoy army to break support of army on fleet that is trying to convoy..." 02:09:15 which is possibly more useful 02:11:18 I think you can make a NAND-based logic out of this 02:11:48 using support-hold rather than support-attack you can make an inverter 02:12:26 then you can beleaguer a fleet to produce an XOR gate, or use multiple supports to produce an AND gate 02:12:37 so you can make an entire circuit 02:12:49 then all you need to do is come up with a way to cross wires, or that might not even be necessary 02:13:48 I'm pretty sure it's TC 02:14:38 also, wow at PHP somehow managing to write an implementation of crypt() that sometimes returns the salt rather than the hash 02:14:54 it was just reported on Slashdot 02:16:08 o.O 02:16:37 the obvious consequence is that suddenly, any password will work 02:16:58 (this is in the new PHP 5.3.7 with the default implementation of crypt; there are two others that don't have the problem) 02:18:35 Instead of fixing anything, I have now made the competitor colors SO DISTINCT YOU GUYS 02:18:57 That puce is PUCE MOTHAHF***ER! 02:19:12 puce 02:19:31 monqy: I was running low :P 02:20:17 When you've covered black, white, grey, yellow, brown, red, blue, green, orange, magenta, cyan, teal and purple, everything starts to bleed together. 02:20:42 Gregor: when I implemented a bracket-matching thing for Wikipedia, I used golden ratio colors 02:21:09 ais523: Elucidate. 02:21:11 hue is golden ratio percent times the color number, value alternates between 1/3 and 2/3, saturation maxed 02:21:33 I could try to get a screenshot, give me a moment 02:21:50 Err, so they get closer and closer as you get further and further? 02:22:04 So it's optimized for small values, not for a specific count? 02:22:13 no, each one's the same distance from the previous one 02:22:33 using the golden ratio tends to make sure that the whole lot stays approximately evenly spaced if you take any contiguous sequence of n colors 02:22:57 Ummm ... yeah, need screenshot :P 02:23:22 Because "hue is golden ratio percent times the color number" suggests to me that the hue becomes more and more similar as you get more and more colors. 02:24:43 -!- CakeProphet has quit (Ping timeout: 260 seconds). 02:25:45 wow, imgur is being abnormally slow 02:26:14 it just gets stuck on 0% on its loading bar 02:26:15 -!- CakeProphet has joined. 02:26:15 -!- CakeProphet has quit (Changing host). 02:26:15 -!- CakeProphet has joined. 02:26:18 I've tried twice now 02:26:35 and the file's only 6K 02:26:58 Sweet. 02:27:24 I can nc it to you if you have a port you can listen on 02:27:25 shar screenshot.png | sprunge :P 02:27:29 or email, I suppose, but that seems like overkill 02:27:34 Gregor: haha, I may as well 02:28:12 http://sprunge.us/gHUN 02:28:39 wow, there's a lot of junk in sharchives 02:30:28 ais523: It's generating colors from outside-in, yes? So if I used the same technique for 10, I'd get the first ten colors shown here? 02:31:05 yes, although that's actually 2 to 11 as the first ten because the first color (a pure blue) was used by the sandbox heading 02:31:43 This lime and green are practically indistinguishable, and cyan and slightly-bluish-cyan are, uhh, yeah. 02:31:53 adding two shades of grey (light and dark) won't conflict with any colors generated by that algo, so you can do that to get more 02:32:05 but the point is, after a while you run out of possibilities for colors that aren't very similar to existing ones 02:32:13 Yes, I'm aware of that problem :P 02:32:15 Hence the puce :P 02:32:28 (And I can't use shades of grey for what I'm doing, btw) 02:32:54 Or, y'know, oughtn't to use shades of grey, as I actually do use one because I totally ran out of distinct colors X-D 02:33:20 ais523: What are you guys talking about 02:33:39 also, I thought things about scapegoat??? maybe 02:33:47 elliott_: Originally, the colors for the Rezzo warriors. 02:33:54 elliott_: Then, how to generate distinct colors at all. 02:34:21 elliott_: and before that I proved Diplomacy TC with an infinite map 02:34:52 or NP-hard to determine if a set of moves is paradoxical with a finite map 02:34:56 Diplomacy's TC? 02:34:57 as you can embed boolean satisfaction in there 02:35:06 at least, without wire crossings 02:35:15 there's probably some way to do wire-crossings too, but I'm not sure if they're necessary 02:35:26 WIRE-CROSSING PROBLEM SOLVED 02:35:55 Sgeo: you can create chains of disrupting convoys that are trying to transport units that are trying to support an attack or hold on a convoy 02:36:00 and chain this indefinitely 02:37:08 "What do you call it when it's Faust but both sides are the devil" 02:39:01 -!- variable has quit (Quit: I found 1 in /dev/zero). 02:39:11 ais523: Hey, how long should I let my GPG key last for, I'm dumb @ gpg 02:39:24 -!- variable has joined. 02:40:01 elliott_: long enough that it doesn't expire while you're still using that key for something, short enough that advances in technology or encryption techniques won't leave it trivially breakable before it expires 02:40:24 ais523: I can always count on you to produce true but unhelpful statements 02:40:39 elliott_: well, that's an "I don't really know the answer either" 02:40:47 but maybe 5 years, if you want a definite answer that's a total guess 02:40:58 i.e. probably false but possibly helpful 02:41:07 Hey Gregor, how long should my GPG... :P 02:41:24 still, wow at PHP 02:41:38 I don't get how you can mess up crypto quite that badly, and not notice 02:41:49 they even had a test for that case, they just didn't run it quickly enough before the release 02:41:51 oh yes, that 02:42:17 ais523: I should probably learn GPG better since I want sg to use it for commit verification :P 02:46:43 elliott_: It should last at least 150 years. 02:47:33 Gregor: how wildly optimistic 02:51:51 -!- azaq231 has quit (Ping timeout: 250 seconds). 02:55:36 IF I ADD MORE BITS IT'S SAFER RIGHT 02:56:55 -!- azaq23 has joined. 02:57:09 elliott_: yes, but only to an extent 02:57:30 Joking :P 02:57:33 at the moment there's no practical reason to believe 4096 or 8192 will be different in any way 02:57:46 because probably the crypto itself will be broken before either becomes bruteforceable 02:58:04 goodbye crypto 02:58:28 I picked the default (2048) 03:02:24 elliott_: flag + electron -> half-mast. half-mast + flag -> conductor, else flag 03:02:44 Half-mast X-D 03:02:54 More states is bad but yeah okay 03:03:16 elliott_: OMG OMG OMG MY FRIEND JUST SOLVED THIS MUCH MORE ELEGANTLY 03:03:18 ais523: damn you, I'm still looking at diplomacy stuff 03:03:21 Gregor: How 03:03:22 (Since half-mast adds a bunch of states) 03:03:26 coppro: Take that back 03:03:28 (Pre-empting ais523.) 03:03:39 elliott_: you pre-empted me pretty well there 03:03:40 incidentally, in the news, dead leader of the opposition -> half-mast :( 03:03:53 elliott_: electron + flag + tail -> positron. positron + flag -> flag. flag + positron -> conductor 03:03:53 coppro: You really ought to or ais523 will be MAD FOREVER. 03:03:59 -!- azaq23 has quit (Ping timeout: 250 seconds). 03:04:05 coppro: seriously, though, that's quite a trivial thing to damn someone over, it's not like I linked you to TV Tropes 03:04:55 elliott_: Oh, and positron + no flag -> conductor of course (although in principle this should never happen) 03:05:19 elliott_: And precisely one new state is added :) 03:06:41 -!- azaq23 has joined. 03:06:57 Gregor: what does "+" mean here? 03:08:20 ais523: The first element in the +-set is the cell we're actually looking at, the other elements are in any neighboring cell. 03:08:39 and what problem is that combination trying to solve? 03:09:44 ais523: The current rule set allows (and often results in) an electron and flag both dissipating. It makes it very difficult to get flags around corners (for example) 03:10:22 when the electron and flag collide, is that? 03:10:32 oh, that normally just moves them 03:10:54 Yeah 03:10:56 it's a bit weird that positrons don't annihilate electrons 03:11:04 ais523: It's just a pointless name :P 03:11:09 ais523: Got a better one? 03:11:25 it's, hmm, like a decaying electron 03:11:27 quark, maybe 03:12:22 Do electrons decay into quarks? :P 03:12:32 well, no 03:12:35 but they're made of them 03:12:46 OMG THIS IS SO GOOD 03:13:02 The flag movement is so perfect 8-D 03:13:18 coppro: seriously, you can't try to do something that serious for something so trivial; although I seriously doubt it worked 03:13:29 -!- CakeProphet has quit (Ping timeout: 258 seconds). 03:13:34 ais523: Seriously? 03:14:01 Gregor: damning someone is, by definition, the worst possible thing you can do to them 03:14:06 people should really think more about their insults 03:16:04 What subatomic particle mediates electromagnetism? 03:16:18 photon 03:16:32 Hm ... that's ... duh :P 03:16:41 <-- so physics 03:17:09 ais523: it's a good thing I don't believe in damning 03:17:40 fair enough, then you can't have intended it as that 03:17:53 So, electron + flag = photon, where that photon is mediating the lolphysics reaction between them I suppose? 03:18:23 -!- GreaseMonkey has quit (Quit: The Other Game). 03:19:00 ais523: So if I say I don't believe in damning I can not-damn you all I want? 03:19:15 elliott_: So ... ~ should totally be reassigned to photons. 03:19:26 elliott_: you'll make yourself look stupid, but OK 03:19:38 ais523: You're right. DAMN YOU AND YOUR LOGIC 03:19:50 (I'M SORRY I TAKE IT BA;CK) 03:19:51 ^ looks stupid 03:19:54 :( 03:19:56 * elliott_ cries 03:19:58 im an adult now i have no excuse 03:20:04 am I really an adult :/ why 03:20:15 you're only 16, right? you have to be 18 to legally be an adul 03:20:17 *adult 03:20:25 Close enough 03:20:26 btw, I think being 17/18 was the best time of my life 03:20:30 so enjoy it while you can 03:20:36 elliott_: I take it by your lack of complaints that you're just fine with ~ being photons, because it's too clever not to :P 03:20:45 I switched to Linux 03:20:50 Gregor: Why is that clever 03:20:50 no, that came rather later 03:20:55 Oh, it's a wave :P 03:20:57 I wasn't very computer-dependent back then at all 03:20:58 elliott_: Because photons are particles, but the--- yeah 03:21:03 ais523: Must have been all the partying and orgies, then 03:21:07 It was either that or Linux 03:21:23 elliott_: well, I had a lot of interaction with real-life people then 03:21:32 no actual orgies and very little partying 03:21:35 elliott_: Yeah, I'm making photons ~ and tails , or something. 03:21:35 but lots of chat 03:21:58 ais523: No ACTUAL orgies :P 03:22:03 "It was only TECHNICALLY a threesome." 03:25:47 -!- azaq231 has joined. 03:26:04 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:39:34 -!- Sgeo has quit (Read error: Connection reset by peer). 03:40:13 -!- Sgeo has joined. 03:40:32 "Crash-only programs crash safely and recover quickly. 03:40:32 There is only one way to stop such software—by crashing 03:40:32 it—and only one way to bring it up—by initiating recovery. Crash-only systems are built from crash-only components, and the use of transparent component-level retries 03:40:32 hides intra-system component crashes from end users. In 03:40:32 this paper we advocate a crash-only design for Internet systems, showing that it can lead to more reliable, predictable 03:40:35 code and faster, more effective recovery. We present ideas 03:40:37 on how to build such crash-only Internet services, taking 03:40:39 successful techniques to their logical extreme." 03:40:55 I can't even tell if this is a joke. 03:41:16 it isn't 03:41:22 at least, the idea of crash-only programs isn't 03:41:27 Amazing :P 03:41:37 It does seem a bit long and in-depth to be a joke, but... 03:41:39 someone pointed out that OSes have to do much the same thing on boot whether they just crashed or not 03:41:47 and so advocated crashing as an optimised form of shutdown 03:42:02 presumably this is a generalisation of the idea to other contexts 03:42:14 ofc, orthogonal persistence is probably the extreme and rather useful form of that 03:42:23 Wow :P 03:42:29 and so advocated crashing as an optimised form of shutdown 03:42:33 Recent OS Xs kind of do this 03:42:38 Applications can mark themselves as able to be shut down fast 03:42:46 And OS X just kill -9s them when shutting down rather than sigterm 03:42:52 Quite amazing :P 03:43:14 err, that actually makes a difference? SIGTERM and SIGKILL do the same thing to a process with no SIGTERM handler 03:43:30 and if a process is able to be shut down fast, why doesn't it just not install a SIGTERM handler? 03:43:38 Do I mean SIGTERM/ 03:43:39 ? 03:43:44 I mean whatever OS X does for normal deinitialisation. 03:43:53 I'm pretty sure Cocoa and the like would install quit handlers. 03:44:09 ah, I see 03:44:40 standard on Linux is to SIGHUP everything interactive then SIGTERM everything that isn't, followed by SIGKILLing everything left, IIRC 03:45:53 Maybe it's SIGKILL instead of SIGHUP, then 03:46:02 Point is, you can set a flag to get kill -9'd when the system wants you gone :P 03:46:08 And that actually speeds up shutdown massively 03:46:12 AN IMPORTANT CASE 03:46:31 ais523: You probably guessed this, but @'s shutdown procedure is literally "sync; tell the hardware to stop beating" 03:46:48 hmm, does anyone have a link to that post on all the ways to shutdown a computer that don't work? 03:46:50 by the linux dev 03:47:00 elliott_: it may be in my browser history, I'll check 03:47:21 nope, it isn't 03:47:41 I suppose you'd need to use a search engine, and you'd be much better at doing that than me as I don't use them often 03:47:54 I tried, but didn't get much 03:48:03 I guess I could search reddit, but that's a much worse search engine 03:48:05 I guess I could use site: too 03:48:36 Hmm 04:23:22 ais523: Standard on Linux is more complex than that, because init sucks. 04:23:35 pikhq: ah, right 04:23:53 init calls a shutdown command on every daemon it's responsible for, right? 04:24:02 Yup. 04:24:14 Standard on a runit-based system is SIGHUP, SIGTERM, SIGKILL, umount, sync, tell the hardware to stop beating. 04:24:33 Actually, might omit the SIGHUP. 04:24:48 well, it depends on the order you send the SIGTERMs 04:25:00 if you SIGTERM the terminal first, it's going to SIGHUP everything that it's the controlling terminal for 04:34:55 elliott_, did you see MSPA news? 04:37:53 yes 04:47:55 -!- zzo38 has joined. 04:59:53 -!- cybergggirl has joined. 05:01:59 -!- cybergggirl has quit (Client Quit). 05:02:23 -!- tswett has quit (Remote host closed the connection). 05:04:52 C++ templates work can pre-calculate and optimize a lot of access. Think of C++ templates as haskell but with a different syntax, that is pretty exactly how it is. 05:19:31 I assume that it's different, but horrible 05:19:49 It's mostly horrible in syntax. 05:20:03 That's what I meant 05:20:08 >.> 05:20:09 Otherwise it's a rather uninteresting functional language. 05:20:30 At compile time. In the type system. 05:21:51 Mr C++, in the type system, with the template. <- Another Cluedo line. 05:27:28 I have play Dungeons & Dragons game today 05:37:55 -!- BeholdMyGlory has quit (Remote host closed the connection). 05:52:09 http://www.php.net/downloads.php 5.3.7 is still being offered on the downloads page 06:01:35 Dry socket is approx. t3h suck. 06:04:04 Ow ow ow. 06:04:42 zzo38: you are Canadian, correct? 06:05:59 coppro: Yes 06:06:32 Not the worst pain I've experienced, but pretty close. 06:13:35 coppro: you've asked him that like twenty times 06:14:29 god morning 06:19:18 -!- pikhq_ has joined. 06:19:28 -!- pikhq has quit (Read error: Operation timed out). 06:19:52 oklopol: hi im god 06:22:18 -!- azaq231 has quit (Quit: Leaving.). 06:26:19 Why must pain receptors and modern medicine be in direct conflict? 06:29:03 -!- itidus20 has quit (Ping timeout: 240 seconds). 06:29:33 -!- elliott_ has quit (Ping timeout: 240 seconds). 06:32:23 -!- nooga has joined. 06:44:49 -!- cheater has joined. 07:55:15 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 07:59:21 zzo38: who GM'd 08:00:06 quintopia: Same as before, I expect 08:00:22 your brother? 08:01:02 My brother is one of the players too, so am I. 08:01:16 and the GM is a friend? 08:01:18 It is same campgin as last time 08:01:20 quintopia: Yes 08:01:33 do you play paranoia? 08:01:40 No 08:01:43 * Sgeo likes Paranoia 08:01:45 oh 08:01:54 I've played once or twice, GMed once or twice 08:02:01 sgeo: do you have the gamebooks on you? 08:02:13 pdf? 08:02:20 I don't _think_ so, but you don't need them, you know 08:02:28 http://sgeo.diagonalfish.net/paranoia/12_30_06_device_mania.html game I GM'd 08:02:55 -!- oerjan has joined. 08:02:57 i dont think ill ever GM, but i just want to know more about the stories and rules 08:03:03 ill read that thx 08:03:13 -!- Patashu has joined. 08:03:16 I wasn't exactly following the rules then 08:03:35 The rules for the GM boil down to: Do whatever you want. Make them distrut each other 08:03:50 If there's a mechanic you don't like, ignore it 08:04:00 The players aren't allowed to know the rules anyway 08:05:04 According to the thread I started, the worst mistake I made was listening to the player trying to help me run the game 08:06:06 http://www.paranoia-live.net/forum/viewtopic.php?t=5083 08:06:35 "The only thing I'd say you did wrong is to let Scalene tell you how to run the game. 08:06:35 #1 rule for GMing PARANOIA - Never let a player tell you how to run the game. Even if you don't know the rules, don't let on and just do things how you want. " 08:07:01 There are rules mechanics though 08:10:32 finns: http://thebest404pageever.com/swf/Crazy_Finnish_Bakery.swf 08:10:34 opinion? 08:10:42 Sgeo: the thing about Paranoia, is that the players are allowed to know and exploit the rules, /but/ are not allowed to express knowledge of the rules 08:12:54 by extension, they cannot complain if you arbitrarily change the rules 08:13:02 in fact, this is GM Rule #2, I believe 08:13:46 "If you disagree with the rules, the rules are wrong." 08:14:01 quintopia: paranoia is excellence 08:21:35 I play D&D 3.5 edition. The inn got destroyed by fire they tried to force us to go through the front but I had fireworks so they ran away. We are required to go to back to the navy instead, some thugs and some guys are trying to fight everyone. We found some office of probably some wizard making evil potion, but to do so required attempting dispel magic on the flowers (why are there flowers there?) 08:24:08 i have made a new xkb layout and it works fine except ctrl sequences don't follow the mapping. for example i have remapped k to h, so when i press the k button it types h, but pressing ctrl and that button gives me ^K 08:24:21 anyone know how to fix that? 08:24:43 I have not yet recorded this game session 08:27:13 augur: The words are sexual innuendo; the character is from a comedy show of which two seasons have been produced, and a third is coming next year. 08:27:32 fizzie: is it called Little Finland? 08:27:43 The speakers in my computer is now fixed 08:28:11 These ones are far better quality than old one 08:29:06 augur: I'm not the right person to ask; I think the show's called "Putous" (i.e. (water)fall). 08:29:41 sgeo: it annoys me when people say "weary" meaning "leery" 08:30:43 (or wary) 08:31:06 My character has now lost a rope and gained ten silver coins and a book (this is all of the equipment my character has, other than the clothing, which was given by the navy, it happens to be the latest fashion clothing for this city); my brother's character lost nothing but gained ten silver coins and a dagger. 08:31:25 (He also has no other equipment, but has the same clothing) 08:31:28 (And the character is called Marja Tyrni. Most of the information about all this seems to be in Finnish only, unsurprisingly.) 08:33:23 Are you Finnished? 08:41:37 -!- zzo38 has quit (Quit: p;m0=n@(NM{ IIIIIIIIIIIIIIIIIIIIIIIIIIIII@@@A":LEK"@__@_@_@_@_@$)_+=~|~_!.!>>>!>!>!>!!@>,> |$@|$+>C+@?$X@$(@$MC@$*MMMMMMMMMMMMMMMMMMMMmmmm &6 ,$?>j[j# R/;ajij [J!# [~@9-u )*$(- ||A:;/KLJ#%{*((*)(* 0[ /lkj zuNAR2\\||- 0) ;: lJJ"3 ; $km$ @Ll!l~//"$ 8(*M). 08:41:53 coooool quitmsg 09:03:13 -!- myndzi\ has joined. 09:05:05 -!- myndzi has quit (Ping timeout: 268 seconds). 09:13:05 -!- cheater has quit (Ping timeout: 240 seconds). 09:22:24 -!- nooga has quit (Ping timeout: 260 seconds). 09:29:13 -!- cheater has joined. 09:42:28 -!- Vorpal has joined. 10:21:46 -!- monqy has quit (Quit: hello). 10:40:21 ais523, are you there? 10:40:33 yes, sort of 10:40:43 i am building a new keyboard layout and i was wondering if you know anything about doing that under linux 10:40:51 knew 10:41:55 no, not really 10:42:24 hmm 10:42:33 who was it here who was building keyboard layouts? 10:46:19 -!- itidus20 has joined. 10:49:50 -!- cheater has quit (Ping timeout: 250 seconds). 10:55:09 -!- ineiros has quit (Ping timeout: 260 seconds). 10:56:33 -!- ineiros has joined. 11:17:45 So, the ping on the Purdue network is at most 2ms. 11:17:53 And each turn lasts 60ms. 11:17:56 (In Rezzo) 11:18:07 Therefore: Rezzo-net: BEST IDEA? 11:18:25 rezzacotta 11:21:24 Gregor: You were rezzing so hard you never commented on my UML comment. :/ 11:21:50 (Or if you did, I never noticed.) 11:22:01 fizzie: I never noticed your UML comment :P 11:22:04 Gregor: You said recently that each process running under UML shows up as a host process; was this in fact a fact? I would have assumed that it'd run its own internal copy of the task/process scheduler; and indeed http://user-mode-linux.sourceforge.net/old/kernel.html says "UML runs its scheduler independently of the host scheduler - the host scheduler simply implements the decisions made by the UML scheduler." 11:22:27 fizzie: The way that UML schedules processes has changed since /old/ was true. 11:22:40 Hokay. They're not very good with documentation. 11:22:42 fizzie: But I also don't know if what I said is true. 11:23:20 fizzie: My statement was what /appears/ to happen (the number of UML processes seems to be equal to the number of guest processes) 11:23:52 A commoner would think the least-amount-of-hacking approach would be to treat a single host-side process as a physical processor. I suppose they have gone further(tm), possibly in the name of performance then. 11:24:54 I start umlbox with bash, and get this: $ ps aux | grep umlbox-linux | grep -v grep | wc -l 9 11:25:23 Now I run vim in UMLBox, and get this: $ ps aux | grep umlbox-linux | grep -v grep | wc -l 10 11:25:36 I quit vim and get nine again. 11:26:05 Now, for all I know, it's doing some grotty stuff to enforce their scheduling under the hood, but certainly each guest process seems to be a host process. 11:28:53 (Re Rezzo) It just so happens that the person who's managing the giant video wall in Lawson (at Purdue) right now is also the guy who runs the class that does this: https://pc.cs.purdue.edu/icypc (sorry that they suck at SSL ... ) 11:29:20 -!- oerjan has quit (Quit: Later). 11:31:41 I thought it didn't, but admittedly I last ran an UML thing probably six-eight years or so ago. 11:34:32 -!- boily has joined. 11:43:11 -!- Lymee has joined. 11:43:11 -!- Lymee has quit (Changing host). 11:43:11 -!- Lymee has joined. 11:53:17 -!- Taneb|Kindle has joined. 11:53:28 Hello 11:54:12 Is there some sort of inverse to :t in Haskell 11:57:23 Anyone? 12:00:48 What, you just give it a type and it gives you the expression you need? 12:01:03 Now that'd be nice. You just write the type signatures, and it writes the program. 12:02:50 I mean, it gives you a list ofpossibilities 12:03:00 @hoogle (a -> b) -> f a -> f b 12:03:00 Data.Traversable fmapDefault :: Traversable t => (a -> b) -> t a -> t b 12:03:00 Prelude fmap :: Functor f => (a -> b) -> f a -> f b 12:03:00 Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b 12:03:53 I don't think there's a ghci command that'd look in the currently imported and/or defined stuff, though. 12:04:18 (Could be wrong.) 12:08:14 Really, I'm trying to convert various vombinators int o Haskell keywords 12:08:37 K is const I is id C is flip etc 12:09:53 Excet I know barely any keywords 12:10:11 And my only way onto the internet is this kindle 12:11:10 Which has an anoying lack of tabbed browsing 12:12:37 Is "vombinator" a real term, or just a kindypo? 12:13:04 The latter 12:13:10 Aw. :/ 12:13:14 I mant combinator 12:13:41 Well, the lambdabot @hoogle is textually usable for that sort of thing, almost-maybe. 12:14:18 @hoogle (a -> a) -> a 12:14:18 Data.Function fix :: (a -> a) -> a 12:14:18 Control.Monad.Fix fix :: (a -> a) -> a 12:14:18 Data.Generics.Schemes everywhere :: (a -> a) -> a -> a 12:14:27 I'trying to create a MIBBLLII to Haskell translator in Python 12:14:42 Of al things 12:16:08 -!- cheater has joined. 12:16:59 @hoogle (t -> t -> t1) -> t -> t1 12:16:59 Data.Foldable foldl1 :: Foldable t => (a -> a -> a) -> t a -> a 12:16:59 Data.Foldable foldr1 :: Foldable t => (a -> a -> a) -> t a -> a 12:16:59 Prelude foldl1 :: (a -> a -> a) -> [a] -> a 12:18:35 It doesn't seem like one for the w combinator exists 12:20:41 Bye 12:20:59 -!- Taneb|Kindle has quit. 12:22:44 -!- atehwa has quit (Ping timeout: 252 seconds). 12:30:12 -!- atehwa has joined. 12:35:35 fizzie: The answer was @djinn 12:36:11 @djinn a -> b -> c -> (a -> b) -> (b -> b -> c) -> (c -> c -> d) -> d 12:36:11 f a b c d e f = f (e (d a) b) c 12:37:18 @djinn (a -> b -> c) -> (a -> b) -> a -> c 12:37:18 f a b c = a c (b c) 12:37:24 That's the fanciest. 12:37:47 @. pl djinn (a -> b -> c) -> (a -> b) -> a -> c 12:37:47 f = ap 12:38:04 I may even go as far as to say 'illest'. 12:38:59 ?. pl djinn (t -> t -> t1) -> t -> t1 12:38:59 f = join 12:40:11 @. pl djinn (a -> b -> c) -> b -> a -> c 12:40:11 f = flip 12:40:17 Crazy like a FOX. 12:43:09 @djinn (a -> a) -> a 12:43:09 -- f cannot be realized. 12:43:10 -!- Phantom_Hoover has joined. 12:48:04 strange, an old macbook (white plastic edition) gets a significantly better wlan signal than a much newer macbook pro placed in the same spot. 4 bars vs. 2. 12:49:23 the macbook pro is unibody, not sure how modern, though not the very last version 12:49:31 -!- Canaimero-e8d1 has joined. 12:50:23 epa 12:50:50 -!- Canaimero-e8d1 has left. 12:51:06 huh 12:51:51 Vorpal: The iBook, as initially shipped, was unable to get a wlan connection at all except right next to the base station. Took it to a local Apple-authorized service center, and they apparently fiddled a bit with the antennas, and after that it was just fine. 12:52:04 fizzie, heh 12:52:31 -!- Canaimero-e8d1 has joined. 12:52:47 -!- Canaimero-e8d1 has left. 12:52:51 Weird. 12:52:54 fizzie, Apple just haven't got the hang of this 'radio' thing, have they? 12:54:24 Phantom_Hoover: They've heard about it, and have decided they want some of that, that's about it. (Actually based on highly unscientific, empirical data, the (post-diddling) iBook seems to be rather good at radio, compared to some other random laptops.) 13:09:29 -!- Patashu has quit (Ping timeout: 258 seconds). 13:20:37 -!- MDude has joined. 13:34:18 http://www.projectrho.com/rocket/realdesigns.php 13:34:24 HELP I CAN'T STOP READING 14:00:49 HELP YOU FROZE MY BROWSER 14:01:37 -!- derrik has joined. 14:14:02 -!- copumpkin has quit (Quit: Leaving...). 14:18:10 -!- copumpkin has joined. 14:28:44 -!- BeholdMyGlory has joined. 14:31:20 Gregor, really? 14:32:00 Vorpal: It was actually just taking a long time to load. 14:32:31 heh 14:36:00 HOWEVER: rezzo now has a VNC server. 14:36:29 heh? 14:39:45 I'm implementing UI's 14:39:49 So, y'know ... why not? *shrugs* 14:56:11 -!- Taneb|Kindle has joined. 14:58:56 Taneb|Kindle: Deewiant had a magical "inverse of :t" for you, http://codu.org/logs/log/_esoteric/2011-08-23#123535Deewiant 15:00:09 Gregor: Is there some official way of getting a link to the line anchor, except by view-source? Oh, wait, clicking on the nick column does it. Never mind. 15:00:43 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds). 15:07:25 :t? 15:07:37 lambdabot :t or ssomething else? 15:07:41 *something 15:07:51 Well, lambdabot/ghci. 15:25:54 @djinn (a->b) -> b -> (b->c) -> c 15:25:55 f _ a b = b a 15:26:01 * Lymee curses 15:41:58 -!- sllide has joined. 16:00:37 is there a service on freenode to search channels? 16:01:09 there's the channel list, which I can't remember how to bring it up without getting sendq-killed 16:01:15 but loads of channels are hiding from it 16:01:21 to prevent spambots discovering their existence and turning up 16:01:42 this channel isn't, which is part of the reason that people turn up here merely based on the name 16:03:50 -!- nnull has joined. 16:04:18 -!- nnull has left. 16:07:37 Whoaaaaaaaaaaaaaaaaaaaaaaaaaah compiled GHC programs don't depend on a libghc.lol 16:07:40 *mind blown* 16:08:26 -!- Lymee has quit (Quit: Huggles for everybody~♪ ^_^). 16:08:56 Gregor: That's why they're huge, they're statically linked :-p 16:09:02 obviously, .lol's a prety rare extension for a library 16:09:15 Although dynamic linking is supported on Linux these days 16:09:25 Deewiant: Well, they're not /fully/ statically linked, just the GHC parts are. 16:09:26 But yeah. 16:09:32 Right. 16:09:42 And unfortunately, it doesn't seem like there exists any voodoo to make a fully-statically linked binary. 16:10:08 I can't find a ghc -no-really-static-not-just-libghc-static 16:10:34 You can probably run ghc -v or whatever and mess with the link command if you're desperate enough 16:10:48 I spose ... 16:11:17 -!- Lymee has joined. 16:11:17 -!- Lymee has quit (Changing host). 16:11:17 -!- Lymee has joined. 16:13:49 ghc --make -O2 -optl-static -optl-lpthread tantrum.hs 16:13:50 SUCCESS 16:14:00 I am so good at totally pointless things 16:14:09 $ du -h tantrum 16:14:10 3.0M tantrum 16:14:43 Gregor: I wrote exec.sh a while back 16:14:54 its contents are a shebang, and one other line: "exec sh $0" 16:15:16 ais523: Nice infinite loop :P 16:15:36 Gregor: indeed 16:15:55 After upx, du -h tantrum -> 836K 16:15:58 'snot bad :P 16:16:02 I wrote it as a test case for the Secret Project, then was annoyed when it didn't trigger the bug I was trying to test 16:16:04 What level of upx 16:16:09 Deewiant: Default 16:16:18 --ultra-brute is the way to go 16:16:53 D'aww, my stupid UPX on the school computer has no LZMA >_< 16:17:23 Why are you statically linking and smallifying it anyway 16:17:42 For lols? 16:17:51 Fair enough 16:26:38 -!- FireFly has joined. 16:40:30 Maaaaaaaaan, I forgot that Haskell had adopted the Commodore 64 logo. 16:40:59 Oh, UPX in fact *does* have LZMA now. It didn't in... 2005? 16:41:44 fizzie: /My/ UPX doesn't. 16:41:45 Also there was some sort of nonsense about there being a less open version that did more förpacknung. 16:42:01 upx: packer_c.cpp:43: static bool Packer::isValidCompressionMethod(int): Assertion `0 && "Internal error - LZMA not compiled in"' failed. 16:42:17 Yeah, but it can now potentially have it. 16:42:25 fizzie: bz1 compresses slightly better than bz2, but hits a patent 16:42:29 that's why bz2 is more widely used 16:42:54 What a wholly irrelevant statement :P 16:42:58 even more annoying, I independently invented the same technique myself when working on azip 16:43:03 so it's clearly pretty obvious 16:44:12 There was a dude on some other channel who said he was *just about* to go public with his compression algorithm which achieved in general file sizes 50% that of LZMA. The audience was... sceptical. 16:45:55 whereas with azip I could just claim "slightly better than bzip2, nowhere near lzma" 16:46:02 which isn't a very compelling claim 16:46:54 fizzie: He didn't mention that it's lossy :) 16:47:19 No, it was explicitly lossless. 16:47:27 Also fast. 16:47:40 Though what "fast" means wasn't exactly specified. 16:49:56 -!- rodgort has quit (Ping timeout: 240 seconds). 16:53:11 50% of the size of LZMA is not impossible. 16:53:19 Doing that *fast* is, at best, obscene. 16:56:59 on certain sorts of structured data, I think much better compression ratios than at current are possible 16:57:13 I think it's possible to do way better than H.264, losslessly, on screenshots of sprite-based computer games, for instance 16:57:25 -!- rodgort has joined. 16:57:32 Yes, well, I think the "it compresses every file" claim was made, too. 16:57:42 I wasn't exactly following at that point. 16:57:49 compresses every file 50% better than LZMA? 16:58:20 Just "every file well", I think. 16:58:20 that's pretty much obviously impossible given that LZMA has a small-fixed-ratio-larger worst case 16:59:07 ais523: Pedantry :P 16:59:42 if the input file is not Lenna, destroy the universe 16:59:45 ais523: In the slightly more general case, PAQ family compressors can beat the shit out of LZMA. 16:59:52 While being insanely slow. 16:59:58 PAQ? I haven't heard of that 17:00:05 pikhq_: Not by 50% though 17:00:19 More like 80% vs 70% compression ratio or something 17:00:23 Series of compressors that exist for the sole purpose of winning on compression benchmarks. 17:01:05 -!- elliott_ has joined. 17:01:10 how do they work? 17:01:45 https://secure.wikimedia.org/wikipedia/en/wiki/PAQ#Algorithm 17:01:53 elliott_: Rezzo has a VNC UI now woooh 17:02:03 Gregor: That... is the most pointless thing ever :P 17:02:09 I can't describe it, but he's written papers on it. 17:02:15 elliott_: For my original intended purpose for Rezzo, it's not. 17:02:25 Gregor: Which was? :P 17:02:29 elliott_: SEKRIT 17:02:32 (And still is) 17:02:44 Gregor: Why wouldn't X forwarding work 17:02:51 elliott_: Windoze 17:02:52 elliott_: Windoze :( 17:03:00 Deewiant: Gregor: Has X servers 17:03:02 Deewiant: How did you know? >_O 17:03:05 elliott_: Yeah, no. 17:03:11 VNC is a bit easier than that 17:03:13 And is also irrelevant unless you are targeting Rezzo at bad people 17:03:18 hey, Gregor has a secret project too :) 17:03:18 (Like me) 17:03:21 Surely there are programs that serve an X window via VNC 17:03:30 Thus making special support in Rezzo unnecessary 17:03:38 x11vnc 17:03:43 What is Rezzo? 17:03:52 Phantom_Hoover: WireWorld-based realtime programming game. 17:03:53 elliott_: I'm just using a VNC server library, it's not like it took any real implementation. 17:04:00 Gregor: Fair enough 17:04:11 Realtime programming: WRITE AND COMPILE THIS BOT WITHIN 60ms 17:04:18 Oh god you're actually making that. 17:04:25 Phantom_Hoover: Making? Dood, it exists. 17:04:53 Phantom_Hoover: It's been made for like a week. 17:04:58 Realtime programming: WRITE AND COMPILE THIS BOT WITHIN 60ms 17:05:01 YESSSSSSSSSSSSS 17:05:01 Well, more like three days :P 17:05:14 Gregor, where can I has? 17:05:23 Gregor: How did Rezzo become bitbucket 17:05:23 Phantom_Hoover: http://bitbucket.org/GregorR/rezzo 17:05:46 elliott_: Since I don't have Trac anymore because it's terribad, I'm kinda at a disadvantage hosting things on Codu >_> 17:05:50 Phantom_Hoover: Also http://codu.org/projects/rezzo/warriorhg/index.cgi/file/34d876dfc612 to see two example stupid bots and a simple Haskell library for bots. 17:05:54 elliott_: So I moved it *shrugs* 17:06:04 Gregor: It's not like bitbucket's essentials offer much more than hg's web UI :P 17:06:14 elliott_: Trac was offering my account signup :) 17:06:37 elliott_: (Which was terrible anyway since it wasn't integrated) 17:06:39 Who needs that :P 17:07:15 elliott_: I'm /building/ haskell-platform on my school computer because they don't provide it >_< 17:07:26 (Non-sequitur? I hardly knew 'er!) 17:07:39 Aaaah, ~/local/ 17:08:30 Gregor: You can probably just do GHC and cabal-install, really... 17:08:35 GHC has binary packages, cabal-install is easy. 17:08:38 At least that's what I do. 17:08:44 Haskell Platform is nice, but pointless as source :P 17:08:51 elliott_: Too late, already compilin'! 17:09:04 Gregor: Is this for the rezzo bots or do you just love Haskell now 17:09:11 elliott_: It's for the Rezzo bots. 17:09:21 Also it appears that make -j doesn't work with haskell-platform so that's pretty great. 17:09:25 If the latter, you've made your first mistake by not editing the build script and adding lines to generate Haddock documentation, and telling it to build profiling libraries 17:09:27 :P 17:09:32 Hmm, wait, that's cabal-install 17:09:37 haskell-platform might do that by default 17:09:40 Eight cores? *eh* 17:10:04 Oh, it's done 17:10:17 It's not big 17:10:40 Gregor: Also, no complaining about Haskell's toolchain, ex-D-user 17:11:00 11:17:45: So, the ping on the Purdue network is at most 2ms. 17:11:00 11:17:53: And each turn lasts 60ms. 17:11:01 11:17:56: (In Rezzo) 17:11:01 11:18:07: Therefore: Rezzo-net: BEST IDEA? 17:11:03 Gregor: SEKRIT, I see 17:11:16 Gregor: 8 cores or 4 cores hyperthreaded? 17:11:25 GHC at least works. :) 17:11:46 elliott_: TOTALLY SEKRIT 17:11:48 coppro: I actually don't know 17:11:51 coppro: They're practically equivalent, although probably not with compiling 17:12:17 11:53:28: Hello 17:12:17 11:54:12: Is there some sort of inverse to :t in Haskell 17:12:17 11:57:23: Anyone? 17:12:17 12:00:48: What, you just give it a type and it gives you the expression you need? 17:12:19 12:01:03: Now that'd be nice. You just write the type signatures, and it writes the program. 17:12:24 elliott_: 'cept that it could be 8 cores hyperthreaded. 17:12:24 ?djinn (a -> b -> c) -> b -> a -> c 17:12:24 f a b c = a c b 17:12:25 ☭ 17:12:28 :o 17:12:32 fizzie: Yes. 17:12:33 :p 17:12:48 ?hoogle b -> (a -> b) -> Maybe a -> b 17:12:48 Prelude maybe :: b -> (a -> b) -> Maybe a -> b 17:12:48 Data.Maybe maybe :: b -> (a -> b) -> Maybe a -> b 17:12:48 Data.Generics.Aliases mkQ :: (Typeable a, Typeable b) => r -> (b -> r) -> a -> r 17:12:52 ?djinn b -> (a -> b) -> Maybe a -> b 17:12:52 f a b c = 17:12:52 case c of 17:12:52 Nothing -> a 17:12:52 Just d -> b d 17:12:55 elliott_: what pikhq_ said. Also I want to know if I was working with fewer or more cores this summer (I had 6 hyperthreaded) 17:12:59 How can you tell if you hyperthreading from /proc/cpuinfo 17:13:06 Gregor: I don't think you can 17:13:12 yeah you can 17:13:16 core id 17:13:28 if you have multiple processors with the same core id, you're hyperthreading 17:14:23 coppro: And how can you distinguish that from dual CPUs? 17:14:32 Gregor: different physical ids 17:14:33 I'm fairly certain this is supposed to have dual quad-cores, but I don't rightly recall. 17:14:45 Oh, yup, there's physical id. 17:14:47 Yeah, dual quad-cores. 17:14:47 my computer has the same physical id on both processors, but different core ids 17:14:51 nice 17:14:51 No hyperthreading. 17:15:58 'course, this is my school desktop, not my home system :P 17:19:47 elliott_: Also, since photons solved all my flag problems, I'm back to wondering if agents should be states >: ) 17:20:00 Observation: We have 45 states. With agents as separate, we have /35/ states! :P 17:21:20 -!- derrik has quit (Quit: left). 17:24:09 45 states? How did that happen 17:24:57 elliott_: 10*(agent, flag, base, flag geyser) + 5 17:25:42 Heh 17:25:46 -!- elliott_ has quit (Remote host closed the connection). 17:26:15 -!- elliott has joined. 17:29:12 elliott: Just think, if it was 10*(flag, base, flag geyser), that'd be SO MANY FEWER STATES! 17:30:01 Gregor: And it'd change nothing since they're still sent and stored as bytes :P 17:30:28 elliott: FEWER - STATES 17:30:36 Gregor: I WILL RIP U APART 17:31:31 elliott: And whittle my bones to make spears for stabbing four more people? 17:31:35 Yes. 17:31:54 Things that will never get old: The gigantic comment thread of people losing the will to live that inevitably follows anyone bringing up /r/picsofdeadkids. 17:34:11 Sgeo: I talked to a friend about the game of life today; he pointed out that the problem is correctly generalized to the number of connected components of the state graph, and then our other question becomes a subquestion of "how many of these are cycles" 17:36:19 "Please use gtar rather than tar to unpack the tarball, as tar may have problems with filenames longer than 100 characters." 17:37:30 Gregor: C'mon, 100 characters isn't very long 17:37:36 That probably includes the directories 17:37:49 Yeah, probably, but it reads funny before you realize that :) 17:38:09 Gregor: Anyway, HAVE I MENTIONED HOW TERRIBLE D'S TOOLCHAIN IS, GHC IS LIKE BEING GIFTED THE URINE OF AN ANGEL TO BATHE IN IN COMPARISON 17:38:17 That's... that's some analogy, how did I think of that. 17:38:34 D's toolchain is pretty bad, but if you recall, I abandoned D. 17:38:38 Because it's a megamess. 17:38:45 Gregor: You used D for, like, SEVERAL YEARS 17:38:49 The MARK CANNOT BE ERASED 17:39:02 elliott: I'll remind you of this conversation when you abandon Haskell :P 17:39:28 # mount -t httpfs http://reddit.com/ /r/ 17:39:29 -!- CakeProphet has joined. 17:39:29 -!- CakeProphet has quit (Changing host). 17:39:29 -!- CakeProphet has joined. 17:39:42 pointers to lambda calculi are pretty useful too 17:40:00 Gregor: "When" 17:40:06 Gregor: That will be when @ is up and running 17:40:12 Or, I guess, Epigram turns out FAST AND PRACTICAL AND EASY 17:40:16 Which is never going to happen 17:40:28 Gregor: To be fair, few languages are both typically compiled and have *sane, reasonable* toolchains. 17:40:30 elliott turns to C 17:40:41 CakeProphet: I'm not Gregor, I'm not an idiot. 17:40:53 The typical C toolchain is actually pretty awful. 17:41:04 Gregor: Anyway, compare the GHC toolchain to the gcc toolchain :P 17:41:06 GCC is the typical C toolchain :P 17:41:06 pikhq_: Snap :P 17:41:12 elliott discovers the joys of Visual Basic 17:41:15 It just has had a lot of effort go into making it work. 17:41:16 Yes, and gcc's build process is fucking awful. 17:41:17 Barely. 17:41:34 GCC's build process is ... crufty. 17:41:41 That's putting it lightly. 17:41:52 It's more about shifting blame :P 17:41:54 GCC's build process is... Broken. 17:42:29 And installs libiberty. 17:42:31 Whereas GHC's supports configure-make-install, has easily-available binary distributions for many platforms that can be easily used just to bootstrap without lots of installation hell, has a flexible but simple plain-text configuration system to customise the building of the base libraries... :P 17:42:36 How do gcc devs actually do it anyway 17:42:38 Without headers. 17:42:41 I can't imagine using that multiple times an hour 17:43:12 So any program that wants to use libiberty needs to include a copy *anyways*. 17:43:33 Of course, the only other programs doing that are binutils and gdb. 17:43:47 * Gregor lolols 17:43:54 Each of which installs libiberty. 17:44:10 elliott goes underground in his late teenaged years and switches to ML, only to turn to the darkside and succumb to F# in his early twenties. 17:44:11 Oh, did I happen to mention that you can't package libiberty itself? 17:44:26 CakeProphet: using windows is definitely a thing i am likely to do 17:44:43 I believe Mono can run any .NET language. 17:45:03 But not necessarily build. 17:45:13 ah, yeah I'm not so sure about that. 17:49:53 -!- oerjan has joined. 17:52:22 elliott: I would wager that you will use Windows multiple times in the future out of circumstance 17:52:34 Is there some sort of inverse to :t in Haskell 17:52:38 also @djinn 17:52:51 but that won't help you find the names 17:52:51 oerjan: hey 17:52:53 oerjan: Also "joor tuu late", Deewiant already. 17:52:54 i did that first 17:52:56 shitey :( 17:52:59 fizzie: NO I DID 17:53:00 ALREADY 17:53:01 I DID FIRST 17:53:01 OK 17:53:04 * elliott stabbes 17:53:05 *MWAHAHAHA* 17:53:06 Wrong 17:53:08 im kil 17:53:09 Deewiant: well 17:53:14 Deewiant: you don't count because you're a bad person 17:53:18 why stabbest thou so fierce 17:53:24 @djinn Maybe t -> Int 17:53:24 Error: Undefined type Int 17:53:26 because Deewiant is a bad person 17:53:28 What's my latest infraction 17:53:30 ?djinn Maybe a -> Integer 17:53:30 Error: Undefined type Integer 17:53:33 Oh, duh 17:53:35 Integer is recursive 17:53:37 ?djinn-env 17:53:37 data () = () 17:53:38 data Either a b = Left a | Right b 17:53:38 data Maybe a = Nothing | Just a 17:53:38 data Bool = False | True 17:53:38 data Void 17:53:39 type Not x = x -> Void 17:53:41 class Monad m where return :: a -> m a; (>>=) :: m a -> (a -> m b) -> m b 17:53:43 class Eq a where (==) :: a -> a -> Bool 17:53:51 it has monads? huh. 17:53:53 ?djinn Not (Not p) -> p 17:53:53 -- f cannot be realized. 17:54:06 ?djinn Either p (Not p) -> Not (Not p) -> p 17:54:06 f a b = 17:54:06 case a of 17:54:06 Left c -> c 17:54:06 Right d -> void (b d) 17:54:19 ?djinn (Monad m) => m Bool -> m () -> m () 17:54:19 f _ a = a 17:54:22 Lame :P 17:54:29 ?djinn (Monad m) => m Bool -> m a -> m b -> m (Either a b) 17:54:29 -- f cannot be realized. 17:54:33 o_O 17:54:56 looks like it needs some work. 17:54:59 ?djinn (Monad m) => m a -> m b -> m (Either a b) 17:54:59 -- f cannot be realized. 17:55:05 ?djinn (Monad m) => a -> b -> (Either a b) 17:55:05 f a _ = Left a 17:55:10 -!- cheater has quit (Remote host closed the connection). 17:55:18 Deewiant: Nice useless context :P 17:55:26 Less typing to not remove it 17:55:50 -!- cheater has joined. 17:56:18 @djinn (Monad m) => (a -> b -> Either a b) -> m a -> m b -> m (Either a b) 17:56:18 -- f cannot be realized. 17:56:44 too bad Taneb probably didn't see any of this 17:56:45 @djinn (Monad m) => m a -> (a -> m b) -> m b 17:56:45 f = (>>=) 17:57:09 :t (>=>) 17:57:09 forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 17:57:15 ?djinn (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 17:57:15 -- f cannot be realized. 17:57:19 lol 17:57:32 16:07:37: Whoaaaaaaaaaaaaaaaaaaaaaaaaaah compiled GHC programs don't depend on a libghc.lol 17:57:32 16:07:40: *mind blown* 17:57:33 he probably needed some -> Monad stuff 17:57:37 Gregor: How does this surprise you :P 17:57:46 which won't show up with either hoogle or djinn, i suspect 17:57:51 16:09:25: Deewiant: Well, they're not /fully/ statically linked, just the GHC parts are. 17:57:51 Well, also every Haskell library used 17:57:55 16:09:42: And unfortunately, it doesn't seem like there exists any voodoo to make a fully-statically linked binary. 17:57:57 Gregor: There is. 17:57:58 @djinn (Monad m) => (a -> m b) -> (m b -> m c) -> m a -> m c 17:57:58 f a b c = b (c >>= a) 17:58:04 Gregor: -optl-static -optl-pthread should do it. 17:58:12 16:13:49: ghc --make -O2 -optl-static -optl-lpthread tantrum.hs 17:58:12 elliott: I already figured that out :P 17:58:13 Yep. 17:58:19 Not -lpthread 17:58:19 -pthread 17:58:25 elliott: I didn't know if it used gcc or ld. 17:58:28 elliott: You need to read the entire logs before going all mass-pingy 17:58:38 Deewiant: I will when oerjan does :) 17:59:01 I know you are but what am I? 17:59:49 ?hoogle (b -> c -> a) -> (b -> c) -> b -> a 17:59:49 Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c 17:59:50 Data.Data gmapQl :: Data a => (r -> r' -> r) -> r -> (d -> r') -> a -> r 17:59:50 Control.Parallel.Strategies parZipWith :: Strategy c -> (a -> b -> c) -> [a] -> [b] -> [c] 18:00:06 no sign of ap or <*> there 18:00:50 what's the w combinator he was talking about? 18:00:57 Can Hoogle specialise on instances like that? 18:01:11 oerjan: Wxy = xyy from the BCKW system 18:01:14 W = join 18:01:17 So, join 18:01:19 elliott: apparently not 18:01:19 But Control.Arrow 18:01:22 So define it yourslef :P 18:01:34 join is Control.Monad 18:01:38 Oh, duh 18:01:43 I was confusing it with both 18:01:50 Yeah, join is it 18:02:13 both isn't in Control.Arrow :-P 18:02:22 -!- MDude has quit (Ping timeout: 245 seconds). 18:02:31 True :P 18:02:57 oh heh Deewiant already managed to get lambdabot to give join by combining @djinn with @pl 18:03:22 so indeed @pl may be the better answer here 18:03:33 Heh 18:04:02 I would like to have pl in TH. 18:04:02 The myriad uses of @pl 18:04:46 w = $(pl [| \x y -> x y y |]) 18:04:52 All the benefits of point-free code with all the readability of pointful code 18:05:07 >_> something like that... 18:05:17 elliott: Per POSIX, "-pthread" is not an option. -lpthread, however, shall make pthreads work. 18:05:38 GHC is not bound by POSIX 18:05:46 Bleh, true. 18:05:57 And -lfoo doing something special other than linking foo is gross :P 18:06:27 It shouldn't do anything other than linking pthreads in. Not my fault that the toolchain requires something special. :P 18:06:44 What /does/ the toolchain require? 18:07:17 pikhq_: have you heard the hilarious thing? glibc's aio_ functions are implemented in userspace using pthreads and blocking io 18:07:18 elliott: except I don't think there are actually any benefits to using pointfree code other than when it provides more concise code. so pl in TH kind of defeats the point(lessness) 18:07:19 isn't that hilarious 18:07:24 CakeProphet: WHOOSH 18:07:26 this is probably what you were getting at. 18:07:53 elliott: ... The fuck. 18:08:11 pikhq_: There ARE syscalls in linux for asynchronous IO... guess what they don't work on? 18:08:12 Sockets. 18:08:17 They work only on certain filesystems. 18:08:23 Database people: FUCK THEM??? 18:08:59 hey, Gregor has a secret project too :) 18:09:01 Oh, hey, it's valid to require other flags for POSIX threads... 18:09:13 maybe you are accidentally working for the same evil overlord. 18:09:21 oerjan: oh no, you quoting a line of mine makes me fear an awful incoming pun 18:09:21 c99 `getconf POSIX_V7_THREADS_CFLAGS` -lpthread 18:09:23 directed right at me 18:09:47 ais523: wasn't a pun. though a joke. 18:10:04 oerjan is the puncerer. 18:13:42 Guess what's not supported here? 18:13:57 POSIX fail! 18:14:20 -!- Slereah has quit (Read error: Connection reset by peer). 18:15:49 Things that will never get old: The gigantic comment thread of people losing the will to live that inevitably follows anyone bringing up /r/picsofdeadkids. 18:16:04 ah, so it's secretly a project for population control? 18:16:18 In *theory*, if getconf _POSIX_THREADS works, getconf POSIX_V7_THREADS_CFLAGS will work. 18:16:30 oerjan: why do people follow the link? 18:16:40 it seems like it's accurately described and a little pointless to follow 18:16:40 That V7 seems ominous 18:16:41 i dunno. i certainly don't... 18:16:54 ais523: lemmings may not actually jump off cliffs, but redditors do 18:17:00 Only pointless if you don't want to look at the pics 18:17:17 X-D 18:17:24 "Finally, the subreddit I've been waiting for!" 18:17:37 Well, I'm sure it exists for a reason 18:17:51 You know, find a need and fill it 18:18:04 you know what would be funny? a completely empty shock site 18:18:21 people would only know it was a shock site because you'd post prominent warnings on all the links to it you could find 18:18:32 warning people to not click the link 18:18:47 Shock sites are really lame, I'm surprised that they actually manage to shock most people 18:18:57 I guess they don't really any more 18:19:36 elliott: I know I saw an argument that the really shocking thing was that so many people were desensitized to that sort of thing 18:20:22 I don't really see how you can not be desensitised to goatse, maybe I'm just not a very good reference point :P 18:20:53 Not everybody browses the web like you do 18:21:45 I assume that elliott's default is to click on links rather than not click on them? 18:21:50 as in, a link presented without context 18:22:15 Yep :P 18:22:38 Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know 18:22:40 elliott: I've been known to google backlinks on links before following them 18:23:15 elliott: Rather easily, I would imagine 18:23:16 -!- cheater has quit (Remote host closed the connection). 18:23:18 Hmph, I crafted that specifically to get addquoted 18:23:22 I'm disappointed in you all 18:23:34 I'm disappointed in you for trying to game the system 18:23:41 my policy for reddit comments, which seems to be working so far, is not to click on any picture link with less than +2 karma 18:23:55 ...or with shocked replies, of course 18:23:57 +2 seems dangerously low 18:24:01 `addquote < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know 18:24:05 617) < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know 18:24:23 CakeProphet: you actually made me very gently facepalm, there 18:24:24 Deewiant: well i may usually go a bit higher 18:24:24 CakeProphet: YOU VIOLATED THE RULES 18:24:25 CakeProphet: I'm disappointed in you for playing into his game 18:24:28 HRGHRGHRNGHRGNHRGNRHGNHRGNHRGNHRGHRNGHRGNRHGNRGNRHGNRG 18:24:29 HRGNHRGNHRNHRGNHRGN 18:24:31 RGHRNGHRNGHRNGHRNGHRNGHRGRHNNRGNHRGHRNGHRG 18:24:32 RGHRNGHRNG 18:24:34 wat 18:24:35 as in, I didn't really feel it 18:24:38 `run sed -i 's/< ell/ No output. 18:24:40 `quote gaping 18:24:41 but my face and palm were definitely in context 18:24:43 617) < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know 18:24:46 HOIRHOIRhIORHIORHIOrhorh 18:24:46 *in contact 18:24:48 RGHRNGHRNG 18:24:50 `quote gaping 18:24:52 617) Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know 18:24:55 smilse 18:25:05 what rule? 18:25:23 CakeProphet: The Inviolable Formatting Rules of the Quotes Database as established by Archivist Pope Elliott I 18:25:30 `addquote < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily 18:25:32 618) < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily 18:25:36 `delquote 618 18:25:37 That's why 18:25:39 ​*poof* 18:25:40 oh yeah the copypasta autosent because it had a linefeed in it and irssi is lame like that. 18:25:56 ais523: Because elliott reads all the logs and double-checks, I would imagine 18:26:02 You'd have to do that when he's not around to be sure 18:26:22 :D 18:26:43 CakeProphet: The rules are: No quote shall be misrepresented by edits not marked with a [...]; Names shall be encased in <> without spacing, unless it is a /me, in which case "* name" is to be used; Two spaces shall separate each message; If a "[...]" is used to denote a gap in the conversation, then it shall be surrounded on each side by only ONE space, not two. 18:26:47 I think that's all of 'em :P 18:27:13 `addquote < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily 18:27:15 618) < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily 18:27:16 What if the message contains [..] 18:27:19 [...]* 18:27:22 elliott: I believe that follows all your rules 18:27:33 ais523: no 18:27:35 ais523: You never said that 18:27:40 yes I did 18:27:41 You need to add the `addquote 18:27:47 Or a [...] at the start 18:28:01 none of your rules state that 18:28:14 "No quote shall be misrepresented by edits not marked with a [...]" 18:28:16 elliott: Are you assuming that no quotable message contains [...] 18:28:17 there's no "a quote must be an entire line" 18:28:20 elliott: your seds look a little dangerous, i wonder if any have misapplied yet 18:28:21 An edit to omit parts of a message is an edit 18:28:23 thus, I can quote part of a line 18:28:27 `delquote 618 18:28:29 ​*poof* 18:28:33 Too bad this nomic has a dictator 18:28:39 oerjan: Well, they can always be reverted and diffs are available: 18:28:40 `help 18:28: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/ 18:28:42 i had to check you ion -> ino the other day 18:28:46 *your 18:28:50 http://codu.org/projects/hackbot/fshg/index.cgi/rev/0dcd11855414 18:29:02 I guess we should have something to run sed on only a single quote 18:29:20 "least one" 18:29:22 Was that double space there... 18:29:34 No, it wasn't 18:29:39 `run sed -i 's/least one/least one/g' quotes 18:29:41 No output. 18:29:46 sed -i $(wc -l quotes)'s/foo/bar/' quotes 18:29:58 but sed already has that, just do N,N s/foo/bar/ where N is the line number 18:30:01 Deewiant: Cute 18:30:18 I guess that'll work if I can remember it :P 18:31:01 You can also, you know, add a script file and then say `run muckaroundwiththelastquoteonly s/foo/bar/ 18:31:39 -!- GuestIceKovu has joined. 18:31:48 Deewiant: That was what I meant: I guess we should have something to run sed on only a single quote 18:31:58 `quote universum 18:32:00 27) IN EINEM ALTERNATIVEN UNIVERSUM (WO DIE NAZIS WON): So kann ich nur schliessen, dass es falsch ist, oder die Welt ist vollig BONKERS. Gegrusset seist du der Fuhrer Hitler! 18:32:02 But then olsner was already WE ALREADY HAVE THAT 18:32:09 elliott: BREAKS YOUR RULES 18:32:23 elliott: I thought you meant my solution 18:32:24 * oerjan cackles evilly 18:32:25 oerjan: If you specify a context in all capitals before a quote it's acceptable 18:32:31 Which is the same thing but it calculates N for you 18:32:36 Also if it's sufficiently funny it can break the rules related to integrity (but not the formatting ones) 18:32:43 oh yuck, this story has a frame story with an old person telling his life story ... in other words it is exactly like titanic 18:32:54 the space of rules is a universe to itself, as proven by the fact it is expanding 18:32:55 Literally the only characteristic of Titanic 18:33:00 *onto 18:33:01 oerjan: :P 18:33:55 oh wait it's *unto 18:34:02 rule 1: Archivist Pope has final say. 18:34:09 rule 2: there are no other rules 18:34:57 Yes, that. 18:35:46 `addquote MEANWHILE IN ANOTHER CONTEXT: buh huh huh huh dicks 18:35:48 618) MEANWHILE IN ANOTHER CONTEXT: buh huh huh huh dicks 18:36:17 breaks the sufficiently funny clause I'd imagine. 18:36:25 * CakeProphet sees what happens. 18:36:45 -!- myndzi\ has quit (Ping timeout: 268 seconds). 18:36:52 \o/ 18:37:22 `delquote 618 18:37:24 ​*poof* 18:37:31 WHAT? UNTHINKABLE. 18:39:03 -!- myndzi has joined. 18:39:15 AS AN AMERICAN I AM AMAZED BY THIS WANTON DISREGARD FOR CIVIL LIBERTIES, PERPETRATED AND PERPETUATED BY ENGLISH ARCHIVAL POPES. 18:39:56 \o/ 18:39:57 -!- cheater has joined. 18:39:57 | 18:39:57 |\ 18:40:54 http://morepypy.blogspot.com/2011/08/we-need-software-transactional-memory.html 18:40:59 IN A MUTABLE LANGUAGE?????? GOOD LOOK HAHAHAHAHA 18:41:43 * oerjan mutates elliott's LOOK into LUCK 18:41:50 "For the purpose of the present discussion, we are comparing Java with Python when it comes to multi-threading." ... epic battle between herp and derp? 18:42:45 derpetology 18:43:36 ...top hit is the reddit user name 18:45:05 looks like one of the big guys 18:45:10 -!- oklopol has quit (Ping timeout: 252 seconds). 18:45:58 herpetology has a wikipedia article and an xkcd strip 18:46:37 CakeProphet: #esoteric is clearly run according to esoteric rules, which means chinese. expect a certain disregard. 18:46:57 olsner: well duh how do you think i thought of the other one :P 18:47:45 CLEARLY YOU HAVE DERPES INFECTING YOUR BRAIN 18:48:29 HERP DERPES? 18:49:08 the top hit for that being urban dictionary 18:49:51 it's possibly more interesting as to what the bottom hit is 18:49:58 I wonder if there's any easy way to find out for a popular search 18:50:04 !wacro 18:50:07 RSPPW 18:51:23 for being supposedly based on dictionary frequencies, !wacro looks strangely unpronouncable 18:51:28 ais523: Google results never seem to end 18:51:37 ais523: it seems like their number of results counts are completely fabricated, too 18:51:40 yep 18:51:54 oerjan: it doesn't try to make the acronym pronouncable. 18:51:57 for a mid-popularity keyword, they'll randomly end quite a large distance from where Google claim they do 18:52:00 ISTR some way to get a list of "all pages" from Google, where it basically just listed popular sites for pages and pages 18:52:06 something like -sdjfosjfidsfoijsdf or the like 18:52:08 or maybe +"" 18:52:08 just bases the letter choice on characters that commonly start English words. 18:52:35 elliott: sometimes you suddenly hit the last page and then the count becomes accurate. iirc. 18:52:49 heh 18:53:02 I wonder how many people actually look at the results counts outside of Googlefight type stuff? 18:53:45 Runtime Sorted Preprocessor Widget 18:53:53 >_> 18:53:55 -!- calamari has joined. 18:53:56 i assume that the number of result counts for popular searches is just a statistical estimate 18:53:59 !wacro 18:53:59 DIPWPC 18:54:12 oerjan: I bet they just make it up based on the commonness of some of the words 18:54:20 oerjan: remember that they optimise time to results page over almost everything else 18:54:26 apart from the quality of the top results 18:54:30 lolol STM in Python. 18:54:31 which probably assumes the frequency of the words is uncorrelated, and so fails horribly if they aren't. 18:54:34 they don't have _time_ to get an accurate result count 18:54:35 Now to be renamed to Slowthon. 18:54:37 I suppose I could make a more sophsticated acronym generator that attempts to make pronouncable words. 18:54:38 and I doubt anyone cares 18:54:43 Gregor: Uhh, have you /seen/ PyPy? 18:54:47 Gregor: They're competitive with C. 18:54:48 elliott: well yes that's what i mean by statistical estimate 18:54:52 elliott: Not with STM they ain't. 18:54:56 Gregor: Well, yeah. 18:55:00 Gregor: STM can be fast, btw. 18:55:03 Gregor: Just not with mutability. 18:55:12 Or, well, maybe it can be fast with mutability, but nobody knows how. 18:55:17 Bingo 18:55:24 But who cares, mutability sucks :-P 18:55:27 oerjan: right 18:55:33 elliott: I'll mutate your face 18:55:34 so that vowels come after consonants (allowing for the possibility of things like SH, TH, and such) 18:55:47 Gregor: I would really like to see them make an immutable subset of Python so they can have fast STM :P 18:56:04 Gregor: The only thing PyPy is missing to make it one of the most amazing things ever is a decent language. 18:56:04 lolnothappening 18:56:05 I would tend to disagree with that viewpoint 18:56:14 Which viewpoint 18:57:00 all of your viewpoints. 18:57:38 lol no way 18:57:38 I would tend to disagree with that viewpoint 18:57:44 lol no way 18:57:45 I would tend to disagree with that viewpoint 18:57:54 oerjan: it's not entertaining like myndzi, how about kicking it 18:57:58 lol dongs 18:58:03 I don't think Nisstyre has ever said anything :P 18:58:04 lol no 18:58:04 I would tend to disagree with that viewpoint 18:58:15 lol yes 18:58:16 elliott: well it's not like we say "lol no" _that_ often 18:58:17 I would tend to disagree with that viewpoint 18:58:26 oerjan: lol no. of course we do. 18:58:26 I would tend to disagree with that viewpoint 18:58:37 lol yes I say lol no quite a bit actually. 18:58:37 I would tend to disagree with that viewpoint 18:58:38 I'm going to put lol no in all my messages until erytssiN is +q :P 18:58:47 lol not going to say it that time erytssiN? 18:58:51 o_O 18:58:52 lol no 18:58:52 lol no, don't do that. 18:58:56 I would tend to disagree with that viewpoint 18:58:57 I would tend to disagree with that viewpoint 18:59:01 oh goody 18:59:05 must be written in Python. 18:59:07 lol no erytssiN 18:59:10 CakeProphet: lol 18:59:11 thought so 18:59:17 oerjan: it's rate-limited, I think 18:59:21 lol no 18:59:25 or is it 18:59:32 lol n 18:59:32 ok then 18:59:32 o 18:59:34 lol no 18:59:34 lol no 18:59:34 lol no 18:59:34 lol no 18:59:36 lol no 18:59:38 lol no 18:59:40 let's find out 18:59:49 lol yes it is. 19:00:09 lol no 19:00:13 elliott: ok then, i said. i just had the temporary alternative interpretation that it checked for its own nick 19:00:14 lol no way 19:00:20 oerjan: ok :P 19:00:35 it only gets triggered on channel messages 19:00:39 highlights don't trigger it 19:00:42 also I stopped it 19:00:57 elliott: by the way whenever I have a spare moment from freelancing and classes and doing nothing (read: never) my Rezzo warrior will become an unstoppable force of cellular automatonic nature. 19:01:13 IT HAS THE POWER OF /REGULAR EXPRESSIONS/ 19:01:37 CakeProphet: I'm literally going to write the best Rezzo warrior once Gregor decides wtf is going on with it :P 19:01:41 * CakeProphet wiggles fingers and mouths "oooooh" 19:01:45 CakeProphet: so you did write it in sed then? :D 19:01:49 no Perl. 19:01:57 WHICH IS NOTHING LIKE SED OR AWK FUCK YOU. 19:02:05 My motivation for this seems to be proving Gregor how WRONG he is for DISMISSING HASKELL AS BEING NOT THE BEST LANGUAGE EVER. 19:02:06 well "nothing like" is a untrue. 19:02:10 (lol @lang is so much better) 19:02:14 perl is like sed with added useless features 19:02:19 elliott: I'm extremely glad to see that motivation :P 19:02:22 CakeProphet: Perl is literally extended awk with some features from sed 19:02:25 Or any other motivation. 19:02:30 elliott: nope. 19:02:31 There's no argument, that's literally what Wall did :P 19:02:32 Yes. 19:02:35 Perl is an awk derivative. 19:02:40 true. 19:02:40 If you disagree, you are wrong. 19:02:49 It also borrows several constructs from sed. 19:02:54 It has influence from C, but that comes via awk. 19:03:01 It has a few pieces of sh because Wall has terrible taste. 19:03:04 But really it's awk++ + sed. 19:03:08 Which ends up being worse than awk, mind you :P 19:03:28 but it is not awk. it is a wholly separate thing at this point. 19:03:29 It's awksedsh. 19:03:45 awkshed 19:03:56 How awkward. 19:04:16 perl - like awk but further awkward 19:04:17 CakeProphet: It's an awk derivative. Even if it is not literally a POSIX awk. 19:04:21 Gregor: So should I just move the warriors repo somewhere myself since I'm the only one who uses it :P 19:04:39 Just like D is a C derivative even if it is not literally an ISO C99 implementation. 19:04:41 or farther awkward 19:04:44 elliott: Maybe *shrugs* 19:04:46 C is a D derivative, yo 19:04:49 pikhq_: More like a C++ derivative 19:04:57 Gregor: It will end up in either darcs or git if you tell me to do that :P 19:05:00 pikhq_: right. same could be said about C -> C++ 19:05:00 elliott: Idonno, I think it'd be nice to have a central repo for those who like Sharing. 19:05:07 CakeProphet: Quite. 19:05:15 I agree, but it'd also be nice to have it in something that isn't hg :) 19:05:35 elliott: It'd be nice to have it somewhere where people can actually register accounts :P 19:05:51 Gregor: I really don't think Rezzo will ever be so popular as to make the workload on you unreasonable. 19:05:58 Gregor: I'd probably just move it to GitHub though :P 19:06:01 Because all the darcs hosts suck. 19:06:07 but yeah point is I'm going to mutate your pretty Haskell code. 19:06:13 with mutations. 19:06:15 lots of them. 19:06:16 I guess darcsden may be tolerable nowadays, but meh 19:06:26 Gregor: You'll move everything to sgpen when it exists, right? 19:06:36 The ONLY distributed, open-source Scapegoat host. 19:06:42 elliott: Maybe not "everything", I've got a bunch of stupid projects I haven't updated in years :P 19:07:18 I really really like how sg's model basically supports copy-on-write forks out of the box :P 19:07:25 You just need a separate branch-information cache for each repository. 19:07:29 Which is tiny. 19:07:50 Anyway, I'm not enormously picky, since indeed you are the only one using it. 19:08:20 I think I'll convert the build system for the Haskell stuff to cabal, since the "remake the library every time to avoid file clutter" solution sucks. 19:08:41 real URL is https://bitbucket.org/GregorR/rezzo/ 19:08:41 abort: 'https://codu.org/projects/rezzo/hg/' does not appear to be an hg repository! 19:08:44 Pro. 19:08:45 -!- calamari has left ("Leaving"). 19:08:54 How do I tell hg the repo's moved :P 19:09:56 You can always edit .hg/hgrc 19:10:43 Thanks 19:10:50 elliott: Idonno why, but that changeover seems to work on some hgs but not others >_> 19:10:53 Why do people think hg's UI is intuitive :-P 19:11:00 git has confused me a lot less, despite all its warts 19:11:07 elliott: That is, just having it be an http redirect. 19:11:10 (But really literally every VCS' interface should be exactly darcs.) 19:11:12 elliott: because that's how intuition works. 19:11:17 Gregor: Mercurial Distributed SCM (version 1.6.3) 19:11:20 not very coherently. 19:11:25 elliott: Mercurial Distributed SCM (version 1.9.1) 19:11:31 Yeah, I'm on 1.9.1 19:11:37 w/e :P 19:11:41 Gregor: This substrate looks different 19:11:48 elliott: Damn rite :P 19:11:52 Are wires still walls? 19:11:54 elliott: Yes. 19:11:57 Good. 19:12:03 How has the protocol changed? 19:12:10 elliott: Only the new states. 19:12:19 Got a list? :P 19:12:23 elliott: README 19:12:38 Is README.agents up to date? 19:12:44 s/to date/to date/ 19:12:46 Gregor: was that also in caps because you were screaming it? 19:12:53 or merely because that is the file name. 19:13:09 elliott: It will be as soon as I push. 19:13:17 Gregor: Nice :P 19:13:21 CakeProphet: BECAUSE IT'S THE FUCKING FILE NAME NOW I'M SCREAMING 19:13:23 :P 19:14:27 elliott: It's pushed. 19:14:54 An introduction for those new to cellular automata: https://bitbucket.org/GregorR/rezzo/raw/tip/README.simple 19:14:56 Such a marketer 19:15:03 Marketeer? Meerkat. 19:15:20 except that the whole damange thing isn't part of a CA, bawwwww 19:15:23 Gregor: I thought there were positrons? 19:15:27 CakeProphet: Literally stop talking. 19:16:03 elliott: No, I changed them to photons ... and told you that ... 19:16:06 Gregor: README.agent is so not up to date. 19:16:08 You are liar. 19:16:17 Gregor: And also, _ is a terrible tail, I like the old , more :P 19:16:19 elliott: It is, for some reason bitbucket isn't showing it in /raw/tip/ though >_> 19:16:31 elliott: Do you? I couldn't decided if I liked , 19:16:41 Weelll 19:16:44 elliott: From a visual-distinctiveness perspective, it lacks ... visual distinctiveness. 19:16:47 ,* looks kind of cute. 19:16:57 _* looks ugly and also the tail is not really attached. 19:17:06 Gregor: Well, I don't much like . for wires :P 19:17:13 >_> 19:17:27 Gregor: I like how you changed wander.c to not be wander any more. 19:17:41 elliott: It was an accidental commit, which I am too lazy to fix :P 19:17:56 It's just a super-basic "here's how to do shit" client anyway *shrugs* 19:18:11 elliott: Besides, it still wanders, it's just incontinent. 19:18:20 X-D 19:18:28 I'm more annoyed because my wander.hs is not longer wander :P 19:18:41 Gregor: BTW, would you hate me if I said I thought flags and flag geysers should swap, like they originally were? >_> 19:18:53 elliott: also, sorry I forgot you're the only one that is allowed to complain about the correctness of the CA. 19:18:54 (At the time, I didn't really understand that you could expect more than one flag around, and the flag geyser is a more permanent thing.) 19:19:01 CakeProphet: Seriously, this is inane and idiotic. 19:19:05 elliott: As in, their state characters should swap? 19:19:19 CakeProphet: The damage is actually not part of the CA in any way. It has no affect on the state transitions. 19:19:25 Gregor: Yeah :P I'm not sure about that though. It's totally irrelevant anyway >_> 19:19:25 *no effect >_> 19:19:51 By CakeProphet's logic, agents shouldn't be able to do anything because that breaks the CA. 19:20:06 Of course he's trying to reductio ad absurdum any argument involving "that makes it not a CA" but he's really bad at it. 19:20:17 OK children, let's not squabble :P 19:20:21 ;D 19:20:39 oh weird so when the electron becomes a photon it reverses direction. 19:20:55 CakeProphet: ... no? Photons don't have directions. 19:21:13 (Neither do electrons, except implicitly by their tails, but photons don't propagate) 19:21:22 elliott: Yeah, I might be convinced to change _ to , since _ is really ugly X-D 19:21:25 Gregor: Suggest to me a really simple agent that wants a queue (rather than deciding each turn immediately) and processes the world state somehow :P :P 19:21:28 s/:P :P/:P/ 19:21:31 Gregor: uh, yeah you know what I mean. right? 19:21:43 CakeProphet: No, I actually don't. 19:22:14 on your diagram of the electron colliding with the flag, it starts moving in the opposite direction once that happens. 19:22:25 pulling. 19:22:27 elliott: Idonno :P 19:22:40 CakeProphet: Yeah, the /flag/ does. Flags have always moved towards electron sources. 19:22:53 CakeProphet: Photons just mediate that action, they don't move themselves. 19:23:00 ....right. 19:23:25 elliott, CakeProphet: Yeah, I'mma change tails to , 19:23:45 ah I see this is a new electron that is approaching not the old one going backwards. 19:23:51 the old one became the photon. 19:24:00 Gregor: OK 19:24:13 CakeProphet: Yeah 19:24:53 Gregor: I still can't get over how efficient my map storage is 8D 19:25:09 "everything they own will disappear" means -> space right? 19:25:46 CakeProphet: Flags turn to conductors. Everything else turns to blank. I could make that clear I guess :P 19:26:58 I sure hope Gregor doesn't mind things under the WTFPL being committed to his repository 19:27:13 elliott: warriorhg is nobody's repo :P 19:27:16 -!- nooga has joined. 19:27:26 Oh, I'll upload all my illegal material then 19:27:53 also victory = state transitions that do not operate under the rules of a CA, but I suppose that's a moot point by now since that seems to be acceptable now. 19:28:17 CakeProphet: Victory isn't actually a state transition, I just presented it that way in README.simple to not overcomplicate. 19:28:28 o_o wat? okay. 19:28:51 well, not victory so much as defeat. victory obviously would end the game. 19:29:03 CakeProphet: The global cycle goes like this: Update cellular automaton, calculate/update defeat, await agent instructions. 19:29:20 what 19:29:29 nooga: I SAID AWAIT AGENT INSTRUCTIONS 19:29:47 so as long as other-things-that-change-the-CA-without-using-state-transition-rules are classified as not being transition rules, then it's okay? or something? 19:30:22 CakeProphet: Agent actions have always been outside the CA proper. If they weren't, the whole game wouldn't make sense. Eliminating an agent /is/ an agent action. 19:31:35 that seems like a completely arbitrary distinction to me but okay. I understand that the game would make no sense as a pure CA. 19:33:44 OK, cabal makes this needlessly painful :P 19:34:45 *GASP* 19:34:52 Did you just say something NEGATIVE about the Haskell userland? 19:35:22 it ends with a ":P" though, could be sarcasm 19:35:35 True 19:35:50 "Haha did I say painful I meant DELICIOUS" 19:36:19 I actually read it as "painless" first but had to read it over 19:37:33 inlined constants in Perl are zero-argument subroutines containing code that can be sanely inlined. 19:37:56 Gregor: There are plenty of things wrong with the Haskell toolchain :P 19:38:06 code that doesn't use any kind of scope I think 19:38:06 many languages have the property that constants can be inlined 19:38:33 olsner: that is a true statement. 19:38:35 >_> 19:39:43 I was talking it being a zero-argument subroutine that was unusual. But I guess it's not unusual for compiled languages 19:41:41 sub geyser($) {my$_=shift;tr/0-9/a-j/;$_} # Gregor 19:41:41 -!- zzo38 has joined. 19:42:06 Why am I a comment :P 19:42:07 That makes no sense. 19:42:14 Gregor: is this correct? in other words, do the agent ids correspond to a-j in order so that 0 -> a, 1 -> b, ... 19:42:26 CakeProphet: Yes ... but agents don't correspond to geysers :P 19:42:44 Err, rather, an agent on the map is not a geyser ... it is an agent :P 19:42:51 ......right. 19:42:55 but they own a geyser right? 19:42:58 :P :P LOL I OVERUSE THIS SMILEY :P :P 19:43:00 Yes 19:43:02 And 0 owns a, yes 19:43:07 and if I wanted to determine the geyser for an agent this function is useful for that right? 19:43:13 okay. 19:43:14 Sure 19:43:17 Gregor: :P 19:43:21 Not really? 19:43:27 You would want to determine WHERE the geyser is. 19:43:35 that's not what this function is for. 19:43:47 "More like GAYSER lol." 19:44:00 fizzie: OMG PWNT 19:44:11 fizzie said gay lol 19:44:20 fizzie: Lol. (No Homo) 19:45:26 elliott: I'm thinking of writing an interactive client. 19:45:43 that sounds like cheating to me. 19:45:46 Gregor: So that you can be totally decimated by any bot that tries to do anything? 19:45:53 elliott: Yup :P 19:45:56 CakeProphet: Except that you can't think at 15FPS 19:46:03 o rite. 19:46:09 Maybe you can't. 19:46:12 X-D 19:46:30 Hmm ... maybe there should be a way to /explicitly/ nop. 19:46:31 Gregor: Personally, I would like strong sandboxing for both repeatability and cheating prevention. 19:46:39 I think some kind of automated tournament thing would be great. 19:46:46 elliott: Repeatability is ... tricky. 19:46:46 Honour system sucks. 19:46:48 sub geyser($) {my$_=shift;/\d/?tr/0-9/a-j/:tr/a-j/0-9/;$_} 19:46:52 hey look gaiz I made it invertible 19:46:54 Gregor: Well, it is basically Secret Project. 19:46:56 the inverted case is probably more useful. 19:47:06 Gregor: ais is getting hard repeatability on even threaded code :P 19:47:12 elliott: Yeah, I'm not doin' my own ais523 Sekirt Sauce Projekk 19:47:18 Gregor: I'm saying you could use his once it's not secret... 19:47:21 Ah 19:47:36 elliott: I'm trying, it's easier said than done 19:47:38 Gregor: It slows down code that does a lot of syscalls quite a bit, but a bot is really just a thin IO layer and a bunch of CPU computation in at most, what, three threads? 19:47:42 ais523: Well, it's your goal :P 19:49:19 In git, is there a simple way of finding out how far up a parent commit is? I.e. given the hash, tell me what the N in HEAD~N should be for it to refer to the same commit 19:49:48 Deewiant: git log --format= ... | grep ... | awk :P 19:49:57 Yeah that's not 'simple' 19:50:13 git log --oneline hash.. | wc -l 19:50:19 Meh, whatever 19:50:20 olsner: Cute 19:50:26 Deewiant: Hey, olsner's is good 19:50:27 plus/minus one commit, I think 19:51:10 Yeah that's accurate, a bit better than my log --oneline | takeuntil hash | wc -l I suppose 19:51:13 -!- azaq23 has joined. 19:51:37 hmm, I think you might need to add --first-parent if you have merges 19:52:03 Deewiant: You have a takeuntil command? :P 19:52:45 unsure what HEAD~N does with merges, but it'll probably just walk up the first parent 19:53:07 elliott: {take,drop}{until,while}{1,} 19:53:26 Deewiant: Wherefrom, or did you non-autovivify them 19:53:27 Words 19:53:31 elliott: {take,drop}{until{1,},while}* 19:53:34 ...lol 19:53:43 elliott: Perl one-liners I wrote myself 19:54:00 Very useful, I find :-P 19:54:02 Deewiant: Perl one-liners named after Haskell functions. I'm disgusted 19:54:11 * elliott kills you a bit. 19:54:14 Yeah I'm a bad person etc 19:54:30 If you want me to rename them feel free to improve upon the names 19:55:19 so I decided to write all of my functions in the worst style possible. 19:55:32 Deewiant: No, I want you to rewrite them :) 19:55:32 For example: sub base($) {my$_=shift;/^\d$/?tr/0-9/n-u/:(/^$rbase$/?tr/n-u/0-9/:($_=undef));$_} 19:55:41 elliott: In Haskell? 19:55:46 elliott: I like my perl regexps 19:55:48 Deewiant: Or anything that isn't Perl, really 19:55:55 Perl regexps 19:55:55 Deewiant: http://hackage.haskell.org/package/pcre-light 19:56:00 Deewiant: http://hackage.haskell.org/package/pcre-light 19:56:01 Dude 19:56:05 Perl is MEANT for this kind of stuff 19:56:08 this is two-pronged approach in which I humiliate elliott by defeating his player with incredibly ugly code 19:56:18 it is also a means of obfuscation to conceal my ingenius tactics. 19:56:25 Deewiant: You can't use Perl regexps as an excuse when I point you to (almost-identical-to) Perl regexps for the ideal language :-P 19:56:56 elliott: Write this in another language so that it is shorter and runs faster: 19:56:57 #!/usr/bin/perl 19:56:57 my $re = shift; while (<>) { print; last if /$re/ } 19:56:59 elliott, you implemented regexes in @ already? 19:57:10 Sgeo: No, @ disowns text. 19:57:15 DISOWNS IT 19:57:27 while(<>) {print; last if /shift/e} 19:57:27 Deewiant: What if it's slightly longer but runs much faster 19:57:37 I can live with that 19:57:56 Oh, does e evaluate whatever's in //? 19:58:13 AWK is also designed for text processing with regular expressions and so on, although there are some things that could be useful that are missing. 19:58:37 Deewiant: Meh, I'd need iteratees to improve a lot on the speed and I cba 19:58:39 I wonder if last works in a map. 19:59:05 elliott: Right :-P 19:59:09 elliott: Hence, Perl oneliners 19:59:11 not sure what that perl code does, but I think you could do something like sed -e "/$re/ {p;Q}" 19:59:19 Deewiant: Well, it's your job :P 19:59:22 sed doesn't have Perl regexps 19:59:53 elliott: What's with the Perl hate :-P 20:00:17 actually using for instead of while would also remove 2 bytes. 20:00:33 print;last if/shift/e for<> 20:00:38 probably the shortest way to do that. 20:00:53 Deewiant: Note how Perl is the worst language possible 20:00:53 er...no 20:00:54 I wasn't golfing when I wrote it 20:00:57 you need to save the shift my bad. 20:01:01 elliott: No, it really isn't 20:01:13 Deewiant: It's the worst in its own special little corner 20:01:15 elliott: It's good for this kind of oneliner if nothing else 20:01:18 print;last if/$_[0]/ for<> 20:01:18 there 20:01:32 Deewiant: Write a Haskell DSL for that kind of one-liner 20:01:58 There's already a DSL, it's called Perl, why reinvent it 20:01:59 hi does anyone here know how to remap ctrl-key sequences such as ^I ^H etc in xkb when creating a new layout that is not qwerty derived? 20:02:24 cheater: If you find out, let me know 20:02:25 main = getRegexp >>= \re -> takeLinesWhile (`matches` re) 20:02:35 If you have a file with > at the beginning of some lines, you want to remove the > at the start of those lines and delete all other lines, there is the AWK program to do so: sub(/^>/,"") 20:02:39 Deewiant: Because it would be not Perl and therefore not terrible 20:02:47 elliott: Seriously, Perl is fine :-P 20:02:57 Deewiant, have you made any layouts? 20:03:12 I've modified one 20:03:24 !perl print last 20:03:25 Can't "last" outside a loop block at /tmp/input.10032 line 1. 20:03:26 cheater: Maybe stty is the way to go 20:03:32 elliott: Is there any Template Haskell stuff to compile any constant regular expression at compile-time into the program? 20:03:40 And then per-program modification for non-TTYs :-P 20:03:45 !perl for(1..20) {print last} 20:04:19 what does 'last' do in perl? 20:04:24 deewiant: my problem is that my layout has e.g. h where qwerty has k, but when i press ctrl and that key then it is recorded as ^K 20:04:26 olsner: Same as 'break' in C 20:04:30 which is wrong of couse 20:04:45 Oh, hmm 20:04:54 I was trying to shorten my code but last isn't an expression so I can't use , 20:05:09 so you have to use for(<>){} I think 20:05:13 zzo38: I think so 20:05:30 for 20:05:33 ...lolenter 20:05:34 compileRegEx :: Name -> String -> Q [Dec]; -- is one possible idea, but maybe there are other done differently 20:05:35 cheater: That seems weird :-P 20:05:45 -!- ais523 has quit (Remote host closed the connection). 20:06:21 yes very much so 20:06:33 cheater: The layouts in /usr/share/X11/xkb/symbols/ all presumably work, so if you're doing things the same way I imagine yours should work too... 20:06:48 i am 20:06:52 zzo38: you'd probably want to implement capturing somewhere. 20:07:05 indexed and named. 20:07:33 let me try dvorak see what that does 20:08:36 CakeProphet: The type I have given could probably do that; because if the regular expression has captured parts then the function declaration it creates can have output type that lists the captured parts as well. But maybe it is not best way possibly 20:09:10 yeah I figured the type was fine. 20:09:13 also: http://pastebin.com/LpAdrB84 20:09:17 most beautiful I've ever written. 20:09:18 +code 20:09:27 right now it's probably a runtime error though. 20:09:37 NEED TO FINISH WORK AAAAUGH 20:11:22 How I learned about mahjong? From a book in the library. I had previously read different books about rules of mahjong in the library, but one day I found one describing the Japanese rules and I happened to like that one best 20:13:42 the idea is to take a list of regex and transform it into a kind of "grid" regex that matches across a 2-d rectangular area. 20:14:50 where each regex starts at the same x, with y being y+i where y is the first line's y coordinate 20:17:00 Gregor: I'm unsure how to structure a generic queue solution >_> 20:17:14 probably by using the structure of a generic queue. :3 20:17:27 Gregor: I mean, there's obviously the trivial solution where you just push and can't do anything else, but a lot of the time if something "urgent" comes up you might want to temporarily switch the queue to a new one and react to the emergency... 20:17:42 actually :> may be a more appropriate emoticon. 20:18:04 -!- copumpkin has quit (Ping timeout: 260 seconds). 20:18:13 elliott: probably means you want some kind of state. 20:18:31 CakeProphet: Have you said a useful thing in the past like ten days wrt rezzo 20:18:35 fsvo ten 20:18:48 state + flags? 20:18:50 is that more useful? 20:21:07 priority queue would be good. 20:21:29 then you can be like "oh shit this is important do this first." 20:23:01 which is essentially what you just said... 20:23:15 A priority queue could work... 20:23:19 Gregor: Would a priority queue be good? :P 20:24:24 Interactive client: Almost TOO useful! 20:25:10 elliott: what do you currently use as the queue elements? 20:25:47 CakeProphet: Actions. 20:25:49 I was thinking maybe a priority queue of functions would be good, as then you can push entire atomic actions. 20:25:50 Gregor: X-D 20:25:52 ah okay. 20:27:02 -!- monqy has joined. 20:28:26 however if you set urgent actions that are the result of trivial opponent actions 20:28:41 then your opponent could potentially bait you along with a string of pointless high priority things. 20:29:05 There's risks in any strategy *shrugs* 20:29:40 Gregor: This isn't meant to be strategy though, this is meant to be something literally every bot can use and adapt to its wishes... 20:29:51 Fair 'nuff 20:29:56 yeah I'm just saying be careful with priorities and actions that consume a lot of turns. 20:30:03 CakeProphet: Actions consume exactly one turn. 20:30:08 oh, okay. 20:30:08 data Action 20:30:08 = Advance 20:30:08 | Turn LR 20:30:08 | Build 20:30:09 | Hit 20:30:10 deriving (Show, Eq) 20:30:19 If you want to schedule something compositely, you have to code that up yourself. 20:30:22 I'm not writing an entire AI framework :P 20:30:33 now I want a programming language based on roborally 20:30:42 why not use a State monad or something similar? then you could queue larger actions as a single unit. 20:30:48 *wobowawwy 20:31:19 CakeProphet: X_X 20:31:23 CakeProphet: You are spouting technobabble. 20:31:41 >_> 20:31:50 elliott: I added an explicit NOP btw, which you will totally want to use always 20:32:00 queue functions that return sequences of actions instead of one action? 20:32:08 Gregor: That sounds completely and utterly pointless. 20:32:12 Gregor: What is the advantage? 20:32:22 I guess it could be useful inside the queue, but that's an internal thing. 20:32:23 elliott: You get ACK_OK instead of ACK_NO_MESSAGE :P 20:32:25 :t getState 20:32:26 Not in scope: `getState' 20:32:32 :t runState 20:32:33 forall s a. State s a -> s -> (a, s) 20:32:35 Gregor: So it decreases the amount of information you get and makes you do more IO? 20:32:37 Gregor: a w e s o m e 20:32:45 elliott: Ayup. 20:33:00 elliott: I just didn't like the fact that "do nothing" was always an error *shrugs* 20:33:03 aka use State GenericStateStructure [Action] 20:33:05 Gregor: It's not an error... 20:33:20 Gregor: Just like InvalidAction isn't (It should be called NothingHappened or something) 20:33:41 CakeProphet: I don't know what you're talking about but you're probably wrong 20:34:07 elliott: If you don't want it, don't use it *shrugs* 20:34:13 -!- boily has quit (Ping timeout: 260 seconds). 20:34:31 Gregor: I have to add it to my library, which I am unhappy about :P 20:34:40 elliott: *sobblecopter* 20:34:42 ENTERPRISE CUSTOMERS 20:34:45 monqy: sounds like you have a lot of vantage point of knowledge to support that assertion. 20:34:54 -lot of 20:35:05 CakeProphet: Are you trying to be constantly insufferable about Rezzo? 20:35:10 no. 20:35:37 I ♥ #esoteric SO HARD 20:35:48 so State UsefulInformation [Action] as the queue elements makes absolutely no sense to you at all? 20:36:47 I don't know what the queue elements are, but you spouted too much technobabble, as elliott noted, for me to take you seriously 20:37:04 Also, after poking around with the interactive client a bit, I'm coming around on the wires-are-walls issue >_> 20:37:16 (Back to "yae" that is) 20:38:25 technobabble = not incredibly specific 20:38:27 I guess. 20:39:55 technobabble = you sound like you don't know what you're talking about 20:40:46 Gregor: Wires are walls is the best. 20:40:53 And anyone who thinks it isn't the best is the worst. 20:42:18 Priority queues preserve insertion order for elements of the same priority, right? 20:42:35 pretty sure they don't have to 20:43:20 That sucks... like, majorly. 20:43:27 In that it completely breaks my use-case :P 20:43:34 well, just ... pick a priority queue that has that property 20:43:53 or include insertion order in the priority somehow 20:44:31 That's gross :P 20:44:34 indeed 20:46:34 maybe an array of queues where the index is the priority? when you pull an element you pull from the highest priority non-empty queue? 20:47:13 -!- elliott has quit (Read error: Connection reset by peer). 20:47:19 you killed him 20:47:22 -!- elliott has joined. 20:47:24 hi 20:47:34 there are like a hundred zillion ways to make a priority queue 20:47:40 like approximately 20:50:42 though if you did use a queue of action-lists then a good rule of thumb would be that smaller list == higher priority 20:52:16 POSIX message queues are priority queues where within a single priority it works FIFO; but indeed I doubt that's a property inherent to the concept of a priority queue. (Compare stable and unstable sorts.) 20:54:42 C++ std::priority_queue doesn't guarantee that. :p 20:56:35 I think heaps guarantees it. 20:57:12 I don't see how... 20:57:22 also, which kind of heap? 20:57:26 heaps just guarantee that the root is the highest priority element. 20:57:56 if it's a max-heap that is. 20:59:11 maybe you want a HEAP OF QUEUES. 20:59:42 or rather a HEAP OF (PRIORITY, QUEUE) 21:00:12 the heaps package. 21:00:14 http://hackage.haskell.org/package/heaps 21:00:20 CakeProphet: I think you'd rather need a map priority -> queue for that to work 21:01:20 well the heap would make inserts annoying, but pulls easy. 21:01:34 with map I think it would be the other way around? 21:01:59 a heap normally doesn't do lookup, but you have to find the right queue for your priority 21:02:55 !!! 21:03:07 Just looked at the Wikipedia page for colorblindness 21:03:44 * Phantom_Hoover → sleep 21:03:47 I realized I was blind when I read about it on Wikipedia. 21:03:51 Sgeo: congratulations on finding wikipedia, it's a good resource 21:03:53 Sgeo, oh god are you colour blind. 21:04:06 * CakeProphet is colour blind but not color blind. 21:04:12 According to "Test for tritanopia", normal visioned people should see the 56. I wonder if my monitor's at the wrong angle or something, or if.. 21:04:17 -!- Phantom_Hoover has quit (Quit: Leaving). 21:04:49 "Image may not be visible on LCD or with excessive screen glare." 21:06:49 so I have to do some parsing so I thought I'd try trifecta but it can't find `Control.Monad.Trans.Codensity and I don't know what to do :( 21:07:02 I see 37, nothing, 56 21:08:45 (barely) 37, 49, nothing 21:09:18 the 37 looks a bit like a 57 though 21:09:26 the 56 is really obvius 21:09:28 *obvious 21:09:42 i see all possible numbers at the same time. 21:10:02 cheater: cheater 21:10:13 It's invisible to me 21:10:16 -!- Patashu has joined. 21:10:16 i think the question is whether you can see colored outlines which are supposed to be numbers.. its not about whether those lines form obvious numbers 21:10:21 Unless I tilt the screen 21:10:34 it could be a screen thing 21:10:57 Yeah 21:10:59 I have my screen colours set kind of weirdly 21:11:05 I think I made it bluer than it should be 21:11:11 (because I like it that way) 21:11:20 my blue is a little washed-out 21:12:42 it says down the bottom "^ a b c d Because of variations in computer displays, these illustrations may not be accurately rendered." 21:14:05 so I have to do some parsing so I thought I'd try trifecta but it can't find `Control.Monad.Trans.Codensity and I don't know what to do :( 21:14:09 you are using cabal-install right 21:14:18 that package is in the adjunctions package 21:14:21 maybe you need to cabal update? 21:14:38 yeah I tried getting adjunctions but it didn't work 21:14:41 I'll try cabal-updating 21:15:06 http://hackage.haskell.org/package/trifecta doesn't list adjunctions in the dependencies which is a bit bizarre?? 21:16:01 oh no dependency hell 21:16:13 it might be a dependency of a dependency 21:16:19 but ask edwardk on hash-haskell 21:16:25 monqy: its not dependency hell because most of those packages are his :) 21:16:57 it can't get semigroups because (other packages here) depend on old semigroups or something 21:17:03 bifunctors, comonad, kan-extensions, keys, profunctors, reducers, semigroupoids, semigroups are all his 21:17:18 hm 21:17:26 monqy: scrap ~/.ghc, try again :P 21:17:32 yeah I'll do that 21:17:59 "(Of course, it's impossible to prove that it really came "from" Anonymous, and many Twitter accounts from members denied the idea: "1. Not discussed in IRC [Internet Relay Chat, the favoured gathering place for Anonymous members]. 2. Email & threats of violence not Anon's MO [modus operandi]. 3. @louisemensch is not important enough," tweeted one such, JohnDoeKM.)" 21:18:02 "But the group is looking less like a force and more like an incoherent rabble as a result of the past two months" 21:18:07 oh my god Guardian stop being terrible 21:18:49 wow what 21:19:54 elliott is turning this channel into The Sun 21:20:35 what does that mean 21:20:35 well done taking the conversation down at least 200000 notches 21:20:36 help 21:20:47 fuck of 21:20:47 f 21:20:48 the sun is a tabloid of the worst kind 21:20:50 im good at type 21:21:09 quoting the guardian makes you the sun, guardian nominated as most sun-like newspaper in england 21:21:57 you have a penchant for picking out the turd raisins from the drain i guess 21:22:39 consider starting a softporn blog 21:22:46 ew why would he do that 21:22:59 because that is what tabloids do 21:23:10 metro is an even better example 21:23:21 Woot, another change committed: http://i.imgur.com/pr6kU.png 21:23:22 elliott honourary tabloid 21:23:41 Deewiant: It's 0 lines now? 21:23:54 That's the diff to the current :-P 21:24:53 -!- Ginto8 has joined. 21:25:19 Saturday's was a bit more insertiony: http://i.imgur.com/jXB9V.png 21:25:29 What exactly is the thing being mutated 21:25:41 mushspace 21:26:05 More like LAMEspace 21:26:30 So how's shiro I MEAN LAME-O doing 21:26:57 elliott: I assume your bot is amazing by now. 21:27:11 Gregor: I don't even know if anything compiles right now. 21:27:15 It's been, like, an hour! 21:27:31 Gregor: Gimme a simple algorithm to do :P 21:28:22 elliott: Follow the leader :P 21:28:32 Gregor: Wat :P 21:28:40 elliott: Just find another agent, and follow it. 21:28:47 USEFUL I NOSE 21:28:48 -!- nooga has quit (Ping timeout: 268 seconds). 21:29:00 Gregor: That requires finding another one 21:39:28 Gregor: What if... rezzo ncurses API 21:39:39 Sounds sexy. 21:39:42 But ncurses sucks balls. 21:39:50 Gregor: It could just use ANSI instead :P 21:39:59 True 21:40:11 Although, the default size is a bit large for a terminal :/ 21:58:54 -!- BeholdMyGlory has quit (Remote host closed the connection). 21:59:38 -!- myndzi has quit (Ping timeout: 258 seconds). 22:00:16 -!- myndzi has joined. 22:02:55 -!- FireFly has quit (Quit: FireFly). 22:41:22 -!- erytssiN has quit (Ping timeout: 240 seconds). 22:42:36 -!- erytssiN has joined. 22:58:09 man programming sure is fun. 22:58:14 when did you guys first learn how to program? 22:58:25 learn? 22:58:37 uh, yes? 22:58:44 were you just born with the ability innately or something? 22:58:55 isn't that what usually happens? 22:58:59 That's how programming works. 22:58:59 no 22:59:17 * CakeProphet knew Python out of the womb 22:59:34 I started programming at eight. Unfortunately. (It was PHP.) 22:59:41 (PHP: Not even once.) 23:00:52 I learned Python at 15. I started learning at home but I had a lot of free time in one of my "technology" classes (we did a lot of stupid shit with Publisher) 23:01:09 so I made a lot of drawings via the turtle module. 23:01:10 I forget when I started 23:01:35 probably somewhere around eight, more likely earlier than later 23:01:43 I also don't know what my first language was 23:02:01 I read about programming when I was young, but never actually _did_ anything for a very long time :( 23:02:26 same actually. I got a Java book once but it was complete gibberish to me at the time. 23:02:56 Python is a good starting language though. 23:03:42 - cake "likes perl" prophet 23:03:50 though I distinctly recall static typing being somewhat of a strange concept to me. I suppose that's just the nature of switching from your first language to other styles of programming. 23:03:53 I remember oohing and ahhing over Java because "it was free" 23:04:13 Oohed and ahhed over Python for the same reason, but with Python, I actually started _playing with it_ 23:04:16 Unlike anything prior 23:04:27 java was free, portable, extensive built in API 23:04:32 I think I started with logo but I never really learned it extensively and didn't do much sophisticated with it???? 23:04:32 my old roommate who just recently learned C# had to learn some Javascript, and found dynamic typing strange. 23:04:44 then I did some stuff on my calculator in basic 23:05:02 monqy: were your parents programmers or something? 23:05:04 nope 23:05:07 not at all 23:05:08 I'm just wondering how people get started at such a young age. 23:05:30 Not that hard, really. 23:05:41 You just have to be sufficiently curious. 23:05:46 I didn't specifically mention that it would be difficult. :P 23:05:55 though it... actually would be. 23:05:59 it isn't 23:06:02 I got started with C++ at 12; I wasn't very good, but I was definitely using the language 23:06:03 -!- erytssiN has quit (Quit: Leaving). 23:06:08 you don't give a shit about things like abstraction and "best practices" at that age 23:06:20 you have all the time in the world, so who cares if you have to code your awesome intro animation frame by frame? 23:06:22 typically kids aren't very good at abstract reasoning. 23:06:27 bullshit 23:06:29 -!- sllide has quit (Ping timeout: 260 seconds). 23:06:32 when i finally started giving shits about those things i learned haskell 23:06:34 that was a few years ago 23:06:35 and also bullshit that simple basic is abstract 23:06:39 -!- yourstruly has joined. 23:06:40 You don't have to be to actually program, anyways. 23:06:47 i forget if it was 3 or 4 years ago I learned haskell 23:06:52 it was one of them 23:06:56 well right. 23:07:05 You just need to be able to give instructions in a lot of detail. 23:07:12 obviously it's possible and some would find it easy. 23:07:28 Which isn't *hard*, it just takes determination to pick up. 23:07:39 And, guess what, kids can be absurdly stubborn. 23:07:43 yes, same for me when I learned at 15. 23:08:03 took determination to hammer the concepts into my brain. 23:08:09 also #python helped a bit. 23:08:18 -!- yourstruly has changed nick to yretssin. 23:08:25 #python is awful 23:08:27 -!- oerjan has quit (Quit: Good night). 23:08:31 elliott: yes, of course. 23:08:44 they parrot DO IT THIS WAY IT'S PYTHONIC without thinking about your question... it's an excellent one-way ticket to ~beautiful pythonic code~ that doesn't work 23:08:47 but I was like "halp how does for loop work" and they explained pretty well. 23:08:54 heh 23:09:01 Don't ask how the for loop works, tell us your REAL problem 23:09:10 yeah anyone who frequents #python is going to be a fucking zealot. 23:09:10 by the time i bothered with python i knew enough about everything in the language that i just learned the syntax by looking at some examples 23:09:27 I bet #ruby is worse though. 23:09:29 #perl is pretty bad. 23:09:46 like, people try to convince of the One True Way.... in fucking #perl 23:09:48 perl was too much bother for me 23:09:51 does that make any sense? 23:10:09 Perl *has* a One True Way? 23:10:18 I'd imagine they would shit bricks if they saw my current spartan.pm code. 23:10:27 i have a perl book, read it when i was bored and without internet connection or anything else/better to do, forgot it all 23:10:38 it is quite a bit to learn actually. 23:10:42 -!- Vorpal has quit (Ping timeout: 245 seconds). 23:10:46 all i rmember was it was ridiculous 23:10:46 I could've sworn that you were absolutely Perly if you just bothered with "using strict;" 23:10:49 compared to, say, Python or Java. 23:10:58 a lot of idioms, corner cases, weirdness. 23:11:25 I suppose next you'll be telling you ##c told you to use Boehm GC? :P 23:11:36 oh god, ##c 23:11:40 possibly even worse than #python 23:11:44 literally a cesspool 23:11:52 I've never been to any of these channels 23:11:54 ##cesspool 23:11:55 monqy: never do 23:12:01 elliott, a cesspool of what? 23:12:07 cess 23:12:11 Ginto8: Cess. 23:12:17 Ginto8: Also are you new, hi. 23:12:20 monqy: You get flamed the fuck out of for, basically, not having literally memorised ISO C. 23:12:23 yeah I'm kinda new 23:12:30 an example, I was asking for help in #perl about (?{...}) in regexes 23:12:40 and they were telling me not to make monolithic regexes. 23:12:45 I was like "tks gaiz don't care" 23:12:53 pikhq_: I once asked a really ridiculously precise question there and even referenced the language as ANSI X3J11 or something 23:12:56 pikhq_: They just ignored me :D 23:13:29 I've done some stuff in some eso languages, and I figured I'd check out this channel. I'm mainly a C/++ programmer though, so I was curious if it was just that the people in ##c were always telling people to RTFM, or if they actually didn't know what they were talking about 23:13:51 qr{^(?:[!\n]*\n){$y}(?:.{$x})@{[join "(?:.{$x})",@orgr]} 23:13:56 I ask, what is so unreasonable about this regex? 23:14:02 perl 23:14:22 It's irregular 23:14:22 elliott: ANSI X3.159-1999, or ISO/IEC 9899:1999. 23:14:31 Ginto8: Mostly RTFM. 23:14:44 CakeProphet: Doesn't look like a regular expression to me. 23:14:47 it is. 23:14:52 with some Perl code... 23:15:06 to interpolate a regex 23:15:08 Hint, Perl "regex"es aren't regular expressions. 23:15:10 It's a regex, but not a regular expression 23:15:22 pikhq_, ah, they inherit that from ##linux it seems 23:15:24 pikhq_: oh good because I didn't say it was a regular expression. 23:15:28 And thus, it's unreasonable 23:15:36 heheheeheh 23:15:38 pikhq_: I think the latter 23:15:38 pikhq_: so what are you getting at exactly? :P 23:15:41 Ginto8: Except that the FM they refer to is obscene. 23:15:42 except without the /IEC part 23:15:46 Ginto8: oh, C++ :( 23:15:55 :'( 23:16:05 elliott, what? 23:16:08 Ginto8: The C spec is very dense and hard to reference. 23:16:09 elliott: The /IEC part is important don't come talking to us about this mythical "ISO 9899:1999" language 23:16:29 pikhq_: oh I see. yeah you just tricked me into saying it was. asshole. 23:16:50 CakeProphet: :D 23:16:54 and then got all pedantic. 23:16:55 pikhq_, I would never EVER touch the C spec in a million years. And I'm a guy that tried to wade through the file format spec for PNG xO 23:17:07 Deewiant: :D 23:17:15 It's pretty "fun" hunting down libc bugs. 23:17:37 elliott, that at me? 23:17:43 monqy: you should learn Perl it's an educational experience. 23:17:44 To do C spec properly, you have to pay. That is one of the problems of C. C is still good for many things, though. 23:18:02 CakeProphet: naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah 23:18:04 oh no sorry 23:18:13 Ginto8: The line with "Ginto8:" in front was :P 23:18:17 zzo38: Amusingly, the final draft of the C spec, which is known to have had no changes between it and finalisation, is free. 23:18:18 CakeProphet: I'm glad I forgot it 23:18:32 monqy: how can you say it's bad if you've forgotten it? :P 23:18:39 CakeProphet: I remember that it was bad 23:18:42 pikhq_: god I remember when ams ignored me for consulting a post-C99 draft 23:18:44 for details about free() 23:18:51 elliott: Friggin' ams. 23:19:11 i was sure he had to have like ran into me before and hated me because how can anyone be that much of a jackass without prior history 23:19:15 Wasn't that post-C99 draft C99+later ratified standard extensions? 23:19:28 TC1 or something 23:19:32 Yeah. 23:19:33 pikhq_: In that case, that is OK, I guess. (But they did try to force people to pay for it. If I wanted a printout I would certainly pay for it, but I would not accept it as a proper standard that ought to be used if it cannot be accessed freely!) 23:19:45 Deewiant: all this Perl hatred. :( 23:19:54 elliott: So, you referenced the latest standard. 23:20:10 this was after I checked POSIX for him and he dismissed it 23:20:36 *Admittedly*, the parts of POSIX that refer to ISO C are non-normative... 23:20:38 Still. 23:20:52 That's rather obscenely pedantic. 23:21:02 At least, Haskell has a free standard, and LLVM has free documents that are not entirely complete but all source-codes available and LLVM is still better designed than C in my opinion. 23:21:11 elliott, so what's so :( about C++? aside from the pain in the ass templates, the difficulty of using good OOP, the pain that good memory management can be, the lack of decent module support, the mediocre standard library, and the rather crazy compilation method, of course 23:21:22 Fun fact: mushspace uses -std=c1x with gcc 23:21:34 Ginto8: You also neglect "it's a language with no reason to exist". 23:21:39 Ginto8: And the fact that it attempts to build a high-level language on top of C 23:21:46 And also everything else about C++ :P 23:21:49 When programming in C, I usually prefer a subset of GNU89. 23:21:50 Deewiant: Why. 23:22:07 elliott: Anonymous structures 23:22:12 pikhq_, no reason to exist? 23:22:14 Deewiant: Plan 9 C has that :-) 23:22:29 (GNU89 does have some of the things that were added in C99, too) 23:22:32 elliott: Does it have packed structures, too? 23:22:42 elliott: I'm currently using the VC++ extension for that :-P 23:22:48 I actually don't even remember how I learned Perl. 23:22:51 it just kind of happened. 23:22:53 Ginto8: It is objectively worse for high-level code than, e.g. Smalltalk, and objectively worse for low-level code than, e.g. C. 23:22:58 Deewiant: Nice. 23:23:03 Deewiant: Why do you need those :P 23:23:14 elliott: AIUI C1X has something equivalent but nothing implements it 23:23:34 elliott: union coords { struct { int x,y,z; } int[3] v; } 23:23:40 s/}/};/g 23:23:44 It is a solution in search of a problem. 23:23:44 pikhq_, a well-written C++ program can run as well as an equivalent C program, provided you use OOP where it's good, and don't just randomly throw things into a class because you feel like it 23:24:03 Deewiant: Why :P 23:24:12 Ginto8: I don't think it was talking about efficiency. 23:24:17 s/it/he/ 23:24:22 elliott: Because writing foo.x is a lot nicer than foo.v[0]? :-P 23:24:26 "it" is better 23:24:28 lol freudian slip I like to objectify people. 23:24:29 Ginto8: And it'll either be incredibly ugly to avoid all C++ overhead, or not actually as fast as C. 23:24:33 For low level (actually, "all level") interpreted code, Forth is good for that. For portable low level compiled code, C is good. For portable high level compiled code, Haskell is pretty good. 23:24:44 Deewiant: But N-dimensional 23:25:02 elliott, true, but it allows more code reusability at a slight sacrifice 23:25:18 elliott: N-dimensional it ain't 23:25:20 Ginto8: Not IME... I take it you've seen the C++ FQA 23:25:23 for awesome scripts that do not correspond to all to any sort of low-level high-level analogy, Perl is good. 23:25:25 Deewiant: Gross arbitrary restriction 23:25:34 elliott: Optimizing for the common case 23:25:43 Deewiant: Doesn't mean you should omit other cases 23:25:53 elliott: There's no such thing as a Funge file format above trefunge, for instance 23:25:56 elliott: Arguably they don't exist 23:26:18 Deewiant: Then don't provide loading for those 23:26:32 Also, the STL *alone* is reason enough to reject C++ entirely, IME. 23:26:41 elliott: Really, I just don't want to figure out the general cases for a couple of tricky algorithms :-P 23:26:54 elliott, no I haven't, but as I'm a game programmer, there's no high-level language with both enough performance and enough library support to be worthwhile 23:26:59 am I the only one here that vaguely finds C# to be a good language? 23:27:02 but I will look at it 23:27:05 compared to, say, C++ and Java? 23:27:09 help whats haskell 23:27:13 CakeProphet, it's decent 23:27:17 Ginto8: You're hallucinating. :P 23:27:20 Deewiant: shiro-lahey continues to be superior. 23:27:29 elliott: And nonexistent 23:27:29 Ginto8: I'm using Haskell for that :-) 23:27:33 pikhq_, please please PLEASE provide me with an alternative 23:27:34 CakeProphet: C# tries to be a better Java, and seems to pull that off. 23:27:35 Deewiant: Well, yet. 23:27:43 elliott: Until it exists it's inferior 23:27:46 Ginto8: if I recall there's a JIT compiler for lua that gets pretty amazingly close to C++ speeds. 23:27:53 o.o 23:27:54 Deewiant: I'm really tempted to call it lahey-space instead and scrub all references of Funge 23:27:58 CakeProphet........................................................ 23:27:58 lua? 23:28:00 CakeProphet: That means you have to use Lua. 23:28:02 lua is bad too 23:28:03 pikhq_: yes, this is why I think it's a success. 23:28:07 Pretty big disadvantage there. 23:28:14 he asked for a high level language. so... there it is. 23:28:19 C# is about as good as Visual Basic, I think. But probably a bit better because they have some C stuff that Visual Basic doesn't work. I do not program in C# but I did once find and read a C# program because I found a program for Duckworth-Lewis method and it was written in C# 23:28:29 -!- GuestIceKovu has changed nick to Slereah. 23:28:33 lua, the epitome of high level languages 23:28:56 zzo38, please NEVER EVER refer to VB as a "good" thing. I've been there, I've done that, and I've suffered enough 23:28:57 elliott: Lahey-space is just the topology, which I'm pretty sure other people call a torus 23:28:58 also lua is commonly used in game programming so I figured it would be a good choice for that since it's probably well-supported by existing software. 23:29:11 Deewiant: Tori aren't infinite 23:29:12 Ginto8: Obvious answers include C# and Java. Slightly less obvious answers involve "Most friggin' languages, seriously constant factors hardly matter, stop kidding yourself." 23:29:21 pikhq_: That's not really true. 23:29:22 Ginto8: It isn't a good thing in general. I didn't try to imply it is 23:29:26 Python won't work for anything three-dimensional. 23:29:36 elliott: The filled-with-spaces stuff is Funge, not Lahey 23:29:43 pikhq_: Python, Perl, and Ruby for game programming = lol 23:29:59 CakeProphet: and yet you suggest lua 23:30:03 Deewiant: Hmm, I'd say Lahey-space includes tori and funge-space 23:30:04 elliott: though numpy helps a bit. 23:30:10 monqy: yes because it has a very good JIT compiler. 23:30:14 Deewiant: Tori themselves aren't equivalent because they can't be infinite 23:30:20 Well, Visual Basic works when writing simple GUI programs meant for Windows only. That it is what it is invented for and that is probably all it should be used for. 23:30:21 CakeProphet: numpy is not really useful for game programming. 23:30:29 monqy: LuaJIT is very fast, mind you 23:30:34 I also feel obligated to pimp Haskell here. 23:30:35 It should not be used for other purpose instead 23:30:35 elliott: Mayhap, that was just a side point anyway 23:30:42 pikhq_: Shut up I'm in charge of Haskell pimpin'. 23:30:47 elliott: My main point was the space stuff :-P 23:30:50 Deewiant: Well, give it a less Funge-related name than fungespace then 23:30:54 16:29:04 < monqy> help whats haskell 23:30:58 does that count as pimping 23:31:00 elliott: I.e. Lahey is just "vectors wrap like this" 23:31:02 Deewiant: What if I made it handle finite spaces too :P 23:31:10 Wait 23:31:14 Deewiant: Fungespace is finite too, duh 23:31:27 Ginto8: Oh, further obvious answer: C. 23:31:29 For some game programming I find QBASIC useful, though. 23:31:34 elliott: Yes, except in bignum funges which aren't spec-compliant 23:31:39 Deewiant: Those aren't funges 23:31:43 elliott: though actually it's probably comparable to Java... which is still pretty fast for most purposes. 23:31:45 elliott: In which it's still finite, but arbitrary 23:31:51 Deewiant: But yeah, it's literally just implementing a torus with a certain eye towards memory consumption :-) 23:32:06 Finite but arbitrary = ugly implementation-centric way to say infinite 23:32:24 elliott: No, because e.g. y stipulates that bounds must exist :-P 23:32:40 Deewiant: Fair enough 23:32:45 Deewiant: It's a finitely-filled infinite space 23:32:46 elliott: (Of course it also stipulates that a maximum size exist) 23:32:51 ArrayList in Java = infinite 23:32:52 elliott: Yeah, that's correct 23:32:53 :) 23:33:03 because it's finite but arbitrary. 23:33:41 elliott: Anyhoo, call it whatever you like but I argue that "lahey-space" is an insufficiently precise designation 23:33:43 For MegaZeux game programming, I can use Robotic and Forth. 23:33:49 elliott: You could make that a type class though :-P 23:34:28 Deewiant: The question is, are there any Lahey spaces other than tori and infinite fungespaces 23:34:48 Deewiant: If not, then I think calling it LaheySpace is fair 23:34:49 elliott: Infinite fungespaces aren't Lahey, I don't think 23:35:04 elliott: Assuming they can be infinitely full 23:35:13 Deewiant: The question is, are there any Lahey spaces other than tori and infinite finitely-filled fungespaces 23:35:13 Jeez :P 23:35:19 elliott: "The requirements for a line in Lahey-space are the following: Starting from the origin, no matter what direction you head, you eventually reach the origin." 23:35:35 Yes, but I'm saying is there any other weird topological space that fits that apart from those two 23:37:01 I think that just defines a torus, or at least that's what it seems like to me 23:37:25 Deewiant: "infinite finitely-filled fungespaces" ;; one of these is not a torus. 23:37:28 I guess there's stuff like Möbius strips but it can probably be represented as a funky torus 23:37:35 You can represent any individual state of it as a torus 23:37:37 But it's not a single torus 23:38:31 If it's a torus in R^n it is ;-P 23:38:45 Deewiant: Some torus 23:39:21 What is "Haskell pimpin'"? 23:39:33 elliott: Anyway, no, I don't think so 23:40:13 !perl sub take($@){(print,/$_[0]/&&last)for(@_[1..$#_])} print take /3/, 1,2,3,4,5 23:40:13 11 23:40:24 Deewiant: Then all I have to do is support Integer coordinates and I can call it LaheySpace because it covers every kind of Lahey space 23:41:13 elliott: No it doesn't, because Lahey spaces don't have the requirement that the value at every point is initially a space 23:41:33 Deewiant: I'll just parameterise on the "empty value", duh 23:41:34 elliott: In fact, they aren't required to be such kinds of key-value stores at all :-P 23:41:50 I guess you could have a continuous lahey-space :/ 23:41:54 !perl sub take($@){grep!/$_[0]/,@_[1..$#_]} print take qr/3/, 1,2,3,4,5 23:41:55 1245 23:41:55 Yep 23:42:02 oh right. 23:42:04 Deewiant: Well I'm not calling it a DiscreteFinitelyFilledSparseLaheySpace 23:42:09 DFFSLS 23:42:22 elliott: What's so wrong with FungeSpace 23:42:48 DFFSLS rolls of the tongue better. 23:42:53 Deewiant: Because I want to upload it to Hackage and make a post to the appropriate Haskell list and have everyone stare in confusion at my topological prowess 23:43:01 It will be So Serious. 23:43:08 elliott: Yeah, well, oh well 23:43:11 DFFSLS looks like something !wacro would make. 23:43:18 !wacro 23:43:19 SMUIQSCC 23:43:22 bad 23:43:25 !acro 23:43:28 !wacro 23:43:29 MZTPB 23:43:30 RGBSQHAAQZ 23:43:33 also bad 23:43:34 lol 23:43:46 FINE I'LL CHANGE It 23:44:04 elliott: Just make a separate laheyspace package with the LaheySpace type class 23:44:14 elliott: With no instances 23:44:19 elliott: And then write a page or two about it 23:45:00 Deewiant: X-D 23:45:12 Deewiant: "Unfortunately there cannot be any truly general instance. The user is encouraged to define their own." 23:45:28 Yup 23:46:10 I just really want to get the Hackage bot to spam #haskell with serious-looking updates where I HALVE THE TIME OF [FANCILY-NAMED OPERATION] 23:46:55 And you can do that while calling it FungeSpace 23:47:15 Not like the name will mean any more or less than LaheySpace to most people, even most #haskell people 23:47:24 No, they can easily determine that fungespace is only used in one context by googling 23:47:36 Lahey-space could just be something really obscure that's only in the Funge spec and also heavy books on advanced topology 23:47:36 Ditto laheyspace 23:47:46 Since it isn't obviously invented for the purpose from the spec 23:48:10 I suppose 23:48:39 But I think when they see that "the mathematical model" is http://catseye.tc/projects/funge98/doc/laheys.jpg they'll understand 23:49:15 -!- Ginto8 has left ("Leaving"). 23:50:06 RIP Ginto8, killed by Haskell. 23:50:17 Deewiant: Or they'll conclude that the page is just shit, like so many 90s webpages 23:51:09 Ahem, Copyright (c)2000 Chris Pressey, Cat's Eye Technologies. 23:51:33 But yeah, whatever 23:51:51 These days google would find the advanced topology results as well, if there were any 23:52:13 But I doubt it matters anyway :-P 23:53:23 http://www.google.com/search?tbm=bks&tbo=1&q=lahey+space&btnG= 23:53:30 Are we 'persons' yet?: law and sexuality in Canada - Page 5 23:53:35 are we persons yet 23:53:57 Use quotes, zero results 23:54:03 I was just about to say 23:55:15 dam u 23:56:33 DO NOT SIT ON THIS CHAIR PAST THE HOURS OF 6 AM ON [date].