00:00:15 olsner, you could check contributor list? 00:00:30 `quote 00:00:32 89) Discrimination fields ACTIVATE. 00:00:39 `quote 704 00:00:41 704) Vorpal: I was paying too much attention to elliott and not enough to my HP 00:00:59 `run echo "99) x" | cut -d') ' -f2- 00:01:00 cut: the delimiter must be a single character \ Try `cut --help' for more information. 00:01:05 `run echo "99) x" | cut -d')' -f2- 00:01:05 In constructor 'connectivity::OConnectionPool::OConnectionPool(const com::sun::star::uno::Reference&, const com::sun::star::uno::Reference&, const com::sun::star::uno::Reference&)': 00:01:06 x 00:01:18 olsner, ouch, wtf is that crap? 00:01:19 `run echo -n A; echo "99) x" | cut -d')' -f2- | tail -c +1; echo -n B 00:01:20 A x \ B 00:01:30 `run echo -n A; echo "99) x" | cut -d')' -f2- | tail -c +2; echo -n B 00:01:32 Ax \ B 00:01:48 Vorpal: as you already know, libreoffice 00:01:53 `fetch http://sprunge.us/QDQC 00:01:55 2011-11-03 00:01:54 URL:http://sprunge.us/QDQC [241] -> "QDQC" [1] 00:01:56 olsner, is someone applying java style com.sun.whatever to C++ code? 00:01:57 eww 00:02:00 `run mv QDQC bin/delquote; chmod +x bin/delquote 00:02:02 No output. 00:02:04 that is just gross 00:02:08 `addquote haha moron mountain 00:02:10 705) haha moron mountain 00:02:13 `unquote 00:02:15 ​*poof* haha moron mountain 00:02:18 `quote 00:02:20 401) [...] So it'll be a while before the boob will touch you back. 00:02:21 `quote 00:02:23 140) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. To comply with the GFDL, there's a copy of Wikipedia in there. 00:02:26 `quote 00:02:27 `quote 00:02:28 31) I am not on the moon. 00:02:29 320) it is from 2002 though, I was younger then 00:02:36 `unquote 00:02:38 `quote 00:02:41 Vorpal: idiot 00:02:42 550) like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with but that would be NP hard I think 00:02:42 ​*poof* I am not on the moon. 00:02:45 elliott, what? 00:03:02 Vorpal: `quote as i `unquote 00:03:06 `undo...that 00:03:08 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: undo...that: not found 00:03:10 `help 00:03:11 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/ 00:03:13 elliott, mine came after 00:03:18 `quote 00:03:18 `quote 00:03:18 31) I am not on the moon. 00:03:18 320) it is from 2002 though, I was younger then 00:03:18 `unquote 00:03:19 `quote 00:03:21 that is what I saw 00:03:22 Gregor: pls make `revert go to last revision, thanks 00:03:51 `revert 812 00:03:52 Done. 00:04:05 `quote 31 00:04:07 31) I am not on the moon. 00:04:24 -!- MSleep has joined. 00:05:11 `quote 00:05:13 268) gah, why does lose keep winning? 00:05:28 `quote 00:05:30 254) are you always careful to have a small enough margin so that it can't contain the proof? nddrylliog: i usually use latex, and make sure my hd is almost full 00:05:42 `quote 00:05:44 83) I'd imagine that it already has, and no one noticed 00:05:52 that what already has? 00:05:59 `unquote 00:06:02 bad quote 00:06:02 ​*poof* I'd imagine that it already has, and no one noticed 00:06:03 yeah 00:06:05 `quote 82 00:06:06 `quote 00:06:06 `log I'd imagine that it already has, and no one noticed 00:06:07 82) hmm... does anyone know a nonsense game designed for the mentally handicapped involving yelling 00:06:17 `quote 00:06:22 697) Can you file for univorce if you are unmarried and don't like yourself anymore? 00:06:27 `log I'd imagine that it already has, and no one noticed 00:06:30 `quote 00:06:35 358) what telnets are there [...] where are a list of telnets? 00:06:35 Vorpal: stop clogging it 00:06:38 63) if a girl is that cute, i don't care how many penises she has 00:06:38 No output. 00:06:42 `log I'd imagine that it already has, and no one noticed 00:06:59 No output. 00:07:05 `quote 00:07:08 2011-08-13.txt:01:49:52: 2) EgoBot just opened a chat session with me to say "bork bork bork" \ 8) TODO: sex life \ 66) What else is there to vim besides editing commands? \ 90) I'd imagine that it already has, and no one noticed \ 92) Where's the link to the log? 00:07:08 99) oklopol geez what are you doing here ...i don't know :< i actually ate until now, although i guess i also did other things... 00:07:32 it said no output then gave you the lock entry? 00:07:34 strange 00:07:41 "The most risky part of the intensional model is the use of hash 00:07:41 rewriting. It comes as a shock to some that this even works, i.e., 00:07:41 doesn’t produce broken binaries. In [2], we even wrote that “patch- 00:07:41 ing files [by rewriting hashes] is unlikely to work in general, e.g., 00:07:41 due to internal checksums on files being invalidated in the process.” 00:07:42 It turns out that this assessment was too pessimistic." 00:08:33 only installers and unpackers and such really check internal checksums 00:08:39 at least in my experience 00:08:58 I think .jars will break 00:09:00 see: META-INF 00:09:06 but you can just trash META-INF 00:09:21 elliott, well, the .jars don't need ELF patching 00:09:28 that wouldn't even make sense 00:09:47 Vorpal: this isn't talking about ELF patching, what makes you think it is 00:10:00 elliott, oh 00:10:01 okay 00:10:05 this is about rewriting references to a fake prefix after the fact 00:10:08 because the prefix depends on the output 00:10:15 -!- ive has joined. 00:10:29 elliott, what if it the length ends up wrong or such for the embedded string 00:10:38 Vorpal: the part being replaced is a hash 00:10:42 ah 00:11:03 elliott, what is the use of it? 00:11:30 Vorpal: content-based addressing for safe sharing of binary builds between multiple users from possibly-untrusted sources in Nix 00:11:40 ah 00:12:49 Vorpal: (without mutual trust between users) 00:13:39 obviously 00:14:51 -!- sllide has quit (Read error: Connection reset by peer). 00:15:52 -!- CakeProphet has joined. 00:16:09 higuys 00:16:17 `log sincere idle thought 00:16:23 2011-11-03.txt:00:16:17: `log sincere idle thought 00:16:31 `log idle thought 00:16:37 2006-08-20.txt:01:09:41: Just idle thought. 00:18:25 CakeProphet: ? 00:18:41 CakeProphet: Anyway, re: 00:18:42 07:32:55: ...you haven't seen Cascade yet? 00:18:43 07:33:08: Go watch that, then the first [S] of the intermission 00:18:43 07:33:35: ....I'm watching it right now, obviously. 00:18:43 07:33:38: as I just talked about it loading... 00:18:53 elliott: ugh read the logs sheesh you'll totally understand why I just did that. 00:18:57 CakeProphet: Sgeo was surprised because Cascade has been out since the 25th and everyone has seen it by now. 00:19:23 * CakeProphet is untrendy. 00:19:50 I got tired of waiting for updates so I took a break from homestuck. 00:20:02 but then finally decided since cool new stuff is happening I should check it out. 00:20:24 fortunately none of this makes any difference in the outcome of, well, anything. 00:20:26 CakeProphet: You realise the hiatus was announced ahead of time? 00:20:31 yep. 00:20:49 I was referring more to waiting in general. 00:21:01 I was just going to forget about Homestuck and then revisit once a new mass of updates had surfaced. 00:21:48 as a way to short circuit my impatience. :D 00:22:35 http://www.flickr.com/photos/eelcovisser/367433201/ 00:22:37 I need me one of these. 00:22:40 -!- tiffany has quit (Quit: Leaving). 00:23:08 elliott: I think instead you need 00:23:08 http://3.bp.blogspot.com/_0-b7ADnCqWs/S8JVH96_M1I/AAAAAAAAAG0/Eb1T9FutITM/s1600/rims.jpg 00:23:12 these dope rims. 00:24:09 Could the feature of Swiss Ephemeris to make fictitious planets be used to calculate the Ecclesiastical moon or the positions of where artificial satellites are supposed to be? 00:24:20 I imagine you need a step ladder to get in that thing. 00:24:37 though maybe somewhere in that blurry pixelation is a step-up bar. 00:24:49 http://www.flickr.com/photos/eelcovisser/367433201/ <-- is that a 4-power cord PSU? 00:25:05 I wasn't aware more than 2 power cords for a PSU existed 00:25:18 I wasn't aware rims could be quite this dope. 00:25:21 I think it's just four PSUs. 00:25:33 oh 00:26:02 CakeProphet, is that a weird no-air tyre? 00:26:22 I'm not sure. They may just be really thin. 00:26:42 but they certainly don't look inflated. 00:26:54 again, too many pixels and not enough tire to discern. 00:26:58 hot-swappable PSUs are infinitely cool btw 00:27:21 CakeProphet, don't you agree? 00:27:29 Vorpal: Do you have a spare computer. 00:27:34 elliott, why? 00:27:39 Vorpal: I need a build farm. 00:27:52 Vorpal: as a mindless tool I must agree. 00:27:57 elliott, not anything that would be useful to you. A pentium 3 with a dead hdd. 00:28:04 Great! It's build1. 00:28:06 and I don't have any other IDE disk 00:28:19 It can just netboot and run from RAM. 00:28:19 and VGA is dead on it 00:28:27 It's a server, don't need a display! 00:28:28 elliott, 256 MB RAM iirc 00:28:35 It can compile very small packages. 00:28:36 Slowly. 00:28:55 elliott, XD 00:29:01 elliott, you have that imac iirc 00:29:03 use that 00:29:10 No :P 00:29:26 elliott, anyway this is a non-issue until you actually have a working distro 00:29:29 this is what a typical American drives. http://aofg.blogs.com/photos/uncategorized/2008/08/08/rims.jpg 00:29:30 elliott, oh and it can't boot from usb iirc. 00:29:52 50 miles to and from work every day. 00:30:12 CakeProphet: I doubt they drive something with tyres like that. 00:30:12 elliott, I have a first model ibook with 64 MB RAM too 00:30:28 elliott: hahahahaha tyres 00:30:31 also, 00:30:36 <--- PRIMARY SOURCE 00:30:41 totally reliable. 00:31:10 I am an eyewitness to native American (read: not the amerind kind) practices. 00:32:34 CakeProphet: That is more accurate than I want to admit. 00:32:44 elliott: Some morons actually drive with tires like that. 00:32:56 I don't think I've seen it on an SUV, but hey. 00:36:29 * CakeProphet considers retyring to bed soon. 00:37:22 CakeProphet: You realise there are about two countries on the globe that say "tire", right? 00:37:23 -!- calamari has quit (Quit: Leaving). 00:38:14 elliott: well we both say "tire" I'm pretty sure. 00:38:22 :> 00:39:00 I really need ops so I can kick CakeProphet. 00:39:31 CakeProphet: Which country are you from, anyways? 00:39:55 the United States of America. 00:40:40 elliott: I think it's probably bettre that you don't have ops. 00:40:43 elliott: "Tire" is the more etymologically correct spelling. It derives from Middle English "tire". :) 00:40:58 pikhq: You're the more etymologically correct poop. 00:41:29 Hey guys should I move on to the loooong thesis I'm so lazy. 00:41:44 long thesis is looooong. 00:44:31 CakeProphet: You've convinced me, phd-thesis.pdf is oooopened. 00:44:36 monqy: Read this thesis for me? 00:44:38 I'm lazy. 00:44:57 I'm wondering how you could handle regular expressions like: 00:45:24 What, is Eelco a common name in some country? This guy is called Eelco and so is his supervisor. 00:45:26 (long|.*) .* is (lo+ng|\1) 00:45:50 CakeProphet: You don't. 00:45:52 where if the first choice in the first group is picked the first choice in the second group is forced. 00:46:05 You can't even do ".* .* is lo+ng". 00:46:09 Well. 00:46:13 without resorting to the usual Perl hacks. 00:46:15 You can but it probably doesn't mean what you want. 00:46:24 Depends, I guess. 00:46:28 okay well s/[.]/\S/g 00:46:45 "The results of the present thesis 00:46:45 are probably not what any of us had expected at the start; but then again, the nice thing 00:46:46 about a term like “variability” is that it can take you in so many directions." 00:47:30 variably many directions, perhaps. 00:48:25 "The #klaplopers provided a nice work environment in virtual space—though whether IRC 00:48:25 is a medium that increases productivity remains an unanswered empirical question." 00:50:01 I suppose one way to do it would be to have a way to tag lists of alternate choices. lists with like tags must match on the choice with the same index in their respective lists (requesting better wording) 00:50:06 Oh my God, this is the longest thing. 00:50:19 CakeProphet: Are you sure that regexp doesn't actually work in Perl already? 00:50:30 this is probably better than using conditional patterns or state stuff. 00:50:31 i.e. /(long|\S+) .* is (lo+ng|\1)/ 00:50:58 I suppose it does, yes... 00:51:09 except 00:51:10 for 00:51:15 blah cat is looooooong 00:51:19 is not intended 00:51:31 only blah cat is blah 00:52:35 CakeProphet: /(\S+) \S+ is \1|long \S+ is lo+ng/ 00:53:02 that quickly becomes unreasonable if the pattern becomes more complex but requires the same logic. 00:54:00 I am pretty sure Perl has some special variable for specifically such construct. 00:54:03 s 00:54:07 "This thesis is about getting computer programs from one machine to another—and having 00:54:08 them still work when they get there." 00:54:24 "this thesis is about portability" 00:54:29 they should have me as their editor. 00:55:29 pikhq: Did you see my bps question btw? 00:55:35 CakeProphet: No, it's nothing to do with portability at all. 00:57:59 ah yes they already have a tagging thing sort of. you can use (*MARK:NAME) and the (*SKIP:NAME) or something 01:00:07 -!- MSleep has changed nick to MDude. 01:01:19 -!- yorick has quit (Ping timeout: 260 seconds). 01:11:30 elliott: mrf 01:11:38 pikhq: hi 01:15:32 -!- yorick has joined. 01:33:04 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 01:39:13 http://j-lyric.net/artist/a0006c3/l00d951.html Engrish song lyrics are so very strange. 01:42:29 ah. 01:48:58 -!- copumpkin has changed nick to gourd. 01:50:15 -!- gourd has changed nick to copumpkin. 01:54:22 It's even better/worse if you hear it. 01:56:20 https://www.youtube.com/watch?v=h2-d2zHMJho Yeaaah. 02:02:42 And this is a band that tours in the US. 02:04:24 -!- Vorpal has quit (Ping timeout: 240 seconds). 02:28:29 -!- elliott_ has joined. 02:28:30 -!- elliott has quit (Read error: Connection reset by peer). 02:49:50 bye elliott 02:55:33 good riddance 02:55:40 i'm so tired 03:10:36 -!- centrinia has quit (Quit: Leaving). 03:21:01 Is there any such thing as ComonadPlus? 03:34:04 I do not have Control.Monad.Zip 03:43:31 it's in base, I guess you have too old a ghc 03:43:41 oh, it's for monad comrephensions 03:43:44 ghc 7.2 or up then i guess 03:51:30 -!- pikhq has quit (Ping timeout: 256 seconds). 03:51:33 -!- pikhq_ has joined. 04:09:46 -!- sxfil has joined. 04:26:54 -!- zzo38 has quit (Ping timeout: 252 seconds). 04:29:09 -!- sxfil has quit (Quit: begone). 04:33:40 elliott_: what thesis 04:33:57 nix 04:33:59 thesis 04:34:02 nix thesis 04:34:33 phd-thesis.pdf good name 04:38:48 -!- Sgeo|web has joined. 04:58:18 -!- zzo38 has joined. 04:59:10 When are more evening school assignments will be posted? 04:59:38 zzo38: you aren't running a Markov bot, are you? 04:59:56 I am not running a Markov bot. 05:02:22 -!- Patashu has joined. 05:03:26 zzo38: you aren't the Markov bot, are you? 05:04:04 zzo38: I ask because your previous question was not grammatically correct, and this is often caused by running a Markov bot. 05:06:05 coppro: like half the things said in here are grammatically incorrect 05:06:20 elliott_: yeah but most of them make sense all the same 05:06:27 uh 05:06:28 like that last one 05:06:29 did zzo38 not make sense 05:06:36 you clearly don't read the channel enough when me and monqy are around 05:06:37 also 05:06:41 what zzo said made perfect sense 05:07:00 no, it really doesn't 05:07:05 yes it does 05:07:06 see topic 05:07:07 especially since he's asking this channel 05:07:12 those are the current evening school assignments 05:07:13 oh 05:07:18 he is asking when more will be posted 05:07:26 dammit do I have to do them? 05:07:26 Maybe it make sense to elliott_ but it doesn't make sense to coppro. 05:07:28 if you paid attention more, you would understand things said in the channel more! 05:09:58 elliott_: you didn't answer my question 05:10:01 also attention is for losers 05:10:04 which question 05:10:18 < coopro> dammit do I have to do them? 05:10:23 coopro 05:10:24 s/oo/op/ 05:10:30 cooooooopro 05:10:34 that was addressed at me? anyway, yes 05:10:34 coproo 05:10:35 poocro 05:10:41 it's funny because coppro means poop4 05:11:02 dammit 05:11:22 they're easy; the underload ones at least 05:14:45 looking at 1 first 05:14:52 xor is trivial since you have nand 05:15:50 trying to think on the wire-crossing problem 05:15:53 (don't spoil it) 05:16:31 coppro: haven't done the circuite ones :) 05:16:40 underload is my one true love :') 05:20:27 elliott_: also the NOT gate there is overcomplicated 05:20:39 just link a cell up to a constant 1 05:22:08 tell atehwa, not me :) 05:23:03 oh, did atehwa write these? 05:23:39 ah, I see that he did 05:23:40 neat 05:23:46 coppro: he's the one doing the school 05:24:04 you might find it helpful to swim to helsinki 05:24:41 haha 05:24:45 I should give a talk on esolangs 05:25:07 elliott_: also you went idle in BN 05:25:14 it's been 7 days? 05:25:15 well you haven't yet 05:25:19 but you haven't done anything in 5 05:25:34 probably for the best for now, I'm a bit busy 05:25:39 hopefully I'll return before the end of the dynasty 05:30:17 pretty sure you can't cross wires in circuite 05:30:23 but I'm off to read more about combinatorial designs 05:48:14 coppro: "Circute is a cellular automaton (and quite arguably an esoteric programming language) developed by Chris Pressey in 2005 as a test of the wire-crossing problem." 05:48:14 so duh 05:48:20 oh is that a spoiler 05:48:21 sry :) 05:48:39 coppro: ^^^ HEY DON'T READ THE ABOVE ^^^ 05:51:02 Isn't that. 05:51:06 3D redstone pretty much. 05:51:17 2D* 05:51:26 * Madoka-Kaname wonders 05:51:31 Can you make a 2D wire crossing in Redstone/ 05:51:55 I doubt it. 05:55:52 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.). 05:56:36 "You are now graced with my absence." isn't that an evincar thing? 06:04:41 * Sgeo|web is currently reading about: Agda 06:05:52 monqy: oh maybe it client default 06:06:17 < 1320127749 343527 :evincar!~evincar@daffa.student.rit.edu QUIT :Quit: I give you the gift of lack of me. 06:06:20 nope different!!! 06:16:01 -!- quintopia has quit (Ping timeout: 276 seconds). 06:22:20 -!- oerjan has joined. 06:23:48 -!- quintopia has joined. 06:23:49 -!- quintopia has quit (Changing host). 06:23:49 -!- quintopia has joined. 06:43:51 -!- hagb4rd has joined. 06:48:20 -!- MDude has changed nick to MSleep. 06:54:33 -!- monqy has quit (Quit: hello). 06:59:31 -!- Ngevd has joined. 07:01:49 It is my birthday today 07:02:33 Happy prime age! 07:02:43 I'm in the prime of my life 07:02:58 Ngevd: die :( 07:03:00 And have been for quarter of an hour 07:03:15 elliott_, stop being so young. 07:03:22 You think you know everything! 07:03:23 Hey, monqy's younger. 07:03:25 Also cooler. :'( 07:03:26 elliott_: 16 is a very powerful age too 07:03:28 * elliott_ mediocre. 07:03:31 But when you get to my age... 07:03:32 fourth power, even 07:03:46 oerjan: I need ops so I can kick you 07:04:04 how old are y'all? 07:04:08 17 07:04:24 unfulfilled needs, the bane of 16-year olds everywhere 07:04:26 * elliott_ is actually a ghost. 07:04:28 4| 07:04:31 er 07:04:35 *41 07:04:42 oerjan: Wow you're 41 already? 07:04:44 So old. So dead. 07:04:52 *Brains...* 07:04:54 * copumpkin murders elliott_ 07:05:04 copumpkin: I'm a ghost you can't murder me that makes no sense. 07:05:12 yeah it does 07:05:21 I bought me a special ghost-murdering knife 07:05:24 it said so on the package 07:05:32 "works on ghosts or your money back" 07:05:43 "as seen on TV" 07:06:19 copumpkin: You might want to get your money back. Also ghosts can't appear on TV, they're ghosts. 07:06:24 Contractual stuff, you wouldn't understand. 07:06:27 * elliott_ dead lawyer 07:06:38 copumpkin: they're depending on you not being able to prove no ghosts were killed, since they're invisible 07:07:09 * copumpkin commits suicide to murder elliott_ in the afterlife 07:07:17 best plan. 07:07:22 god dammit 07:07:23 now we are on the same plane 07:07:31 I HAVE POWER OVER YOU ONCE MORE 07:07:35 copumpkin: You'd make a good nomic player. Well, if you didn't commit suicide. 07:07:46 (Has anyone ever committed suicide for a nomic scam? oerjan?) 07:07:59 no, not me. 07:09:12 OH REALLY :| 07:09:45 i should get some of that ethereal vision philter i just read about in yafgc 07:10:21 (btw it became swiftly clear during my current binge that it is not what you call nsfw) 07:10:27 fortunately i'm not working 07:10:35 not what you call nsfw 07:10:37 ok, so sfw then 07:10:43 oops 07:10:46 *-not 07:10:47 * elliott_ goes to read it at work! 07:10:57 NOOOOOooooooooo oerjan got me fired from dead lawyering. 07:11:03 oerjan: are you reading the IWC rerun :P 07:11:21 yes, especially when i realized he's adding new annotations 07:11:22 -!- Taneb has joined. 07:11:30 I'm terribly afraid I'm going to end up following the whole thing to its completion 07:11:50 elliott_: that will take > 10 years i think 07:11:59 oerjan: um IWC didn't run for ten years... 07:12:07 no, but... 07:12:07 It did 07:12:14 8 07:12:14 Well, just short of 07:12:17 that's not just short of :P 07:12:19 2001-2011 07:12:24 no? 07:12:24 > (7/6) * 3198 / 365.25 07:12:25 10.21492128678987 07:12:25 http://irregularwebcomic.net/archive.html 07:12:27 one comic in 2002 07:12:32 then regularly 2003 onwards 07:12:36 so 8 years 07:12:38 Memory is playing tricks on me 07:12:45 elliott_: it becomes just > 10 when you adjust for the 7 to 6 days per week shift 07:12:54 oerjan: oh, right. 07:12:58 oerjan: well, I gotta lot of time. 07:13:00 -!- Ngevd has quit (Ping timeout: 244 seconds). 07:13:11 oerjan: (does this mean he's going to be writing blog posts for /ten years/?0 07:13:13 s/0/)/ 07:13:20 heh 07:13:39 there will probably be readjustments. 07:14:13 but then, in 3-4 years d&d may end 07:15:47 oerjan: and then Mezzacotta :P 07:16:52 oerjan: omg today's mezzacotta :D 07:17:07 what was that again -> 07:17:40 mad sci guy always gets my vote 07:20:33 -!- ive has quit (Ping timeout: 245 seconds). 07:21:24 oerjan: hmm, I think Mezzacotta's random date thing is strongly biased against ridiculously old dates... 07:21:29 -!- SgeoN1 has quit (Quit: Bye). 07:21:47 elliott_: i think that's called "uniform distribution" 07:22:05 har har 07:22:13 oerjan: but seriously, the vast majority of results are before 10000 BC 07:22:16 -!- Taneb has quit (Ping timeout: 240 seconds). 07:22:20 * elliott_ suspects weighting 07:22:41 er, that's what you'd expect if there were _no_ weighting 07:23:24 oerjan: um... no? 07:23:28 there's more of the past than the present 07:23:32 oh 07:23:34 s/before/after/ 07:23:43 * elliott_ is not an idiot, but cannot type :P 07:23:53 ah yes. 07:24:06 yes, definitely 07:24:19 i read your "against" as "towards" 07:24:26 :) 07:24:27 (same word in norwegian) 07:24:44 http://www.mezzacotta.net/archive.php?date=random 07:24:45 um 07:24:46 augh 07:24:48 http://www.mezzacotta.net/archive.php?date=1614-12-27 07:24:50 ^^^ the best 07:25:21 http://www.mezzacotta.net/archive.php?date=1693-05-03 :D 07:25:54 http://www.mezzacotta.net/archive.php?date=1506-01-04 07:26:00 Clicking random makes me feel weird 07:26:05 http://www.mezzacotta.net/archive.php?date=193-08-23 is a random one I clicked on 07:26:58 Clicking random makes me feel weird 07:27:00 ????????????? 07:27:38 elliott_: if I don't bookmark it or something, in all likelihood, it will never be seen again 07:28:00 * Sgeo|web remembers when he was young, he wanted to record all die rolls etc. for Monopoly games 07:28:01 Sgeo|web: Other comics that will never be seen again: ones you don't see at all. 07:28:12 Thus, you must archive binge Mezzacotta to avoid the same weirdness. 07:28:57 * Sgeo|web will archive binge Mezzacotta, and won't eat or sleep until he's done 07:29:10 Well, that solves that problem. 07:29:18 Does being dead count as being done? 07:29:30 Wait, even then, I still won't eat or sleep, so it's all good 07:30:32 "Obayashi recalled that his producer told him that Toho was tired of losing money on comprehensible films and were ready to let Obayashi direct the House script, which they felt was incomprehensible." 07:31:15 Night all 07:35:18 -!- elliott_ has quit (Read error: Operation timed out). 08:15:06 -!- ive has joined. 09:05:30 I think I could make instance Alternative IO now, allowing you to use many, some, optional. empty = fail []; x <|> y = catch x $ \e -> modifyIOError (\z -> if z == userError [] then e else z) y; 09:22:30 -!- ive has quit (Quit: leaving). 09:38:45 I don't like the way of pure code exceptions in GHC. But I do have another idea: mkPure :: Q Exp -> Q Exp; instance Applicative Pure; runPure :: Pure t -> Either SomeException t; 09:40:27 runPureIO :: Pure t -> IO t; 09:43:48 -!- Sgeo|web has quit (Ping timeout: 265 seconds). 09:43:59 -!- zzo38 has quit (Remote host closed the connection). 09:55:38 coppro: true, but I thought it would give more hints as to how to make a XOR gate. 10:02:22 @tell elliott That's some gouda cheese! 10:02:22 Consider it noted. 10:02:39 -!- oerjan has quit (Quit: leaving). 10:27:34 -!- GreaseMonkey has quit (Quit: The Other Game). 11:18:50 -!- ais523 has joined. 11:22:29 -!- Jafet has joined. 11:31:21 so today I learned that when you have a red parent and a black uncle, you rotate right around your grandparent. 11:31:49 well left or right, depending on where you are. 11:34:26 makes perfect sense. 11:35:43 also your grandparent magically becomes red and your parent becomes black 11:48:29 And that's how communism propagates. 11:50:53 interestingly, in my data structures class we often devolved to race-related humor. 11:51:00 because, you know, we're Americans. 11:51:09 who knew colors could be so humorous! 11:52:11 for example, the professor said that the parent node "goes black" to which a student commented, "once you go black, you never go back." 11:52:16 priceless American humour 11:52:45 Did they play you the red-black tree song in class? 11:55:29 uh, no. 11:55:35 what is that. 11:55:36 They should have. 11:55:49 "I see a brand new node / I want to paint it black." 11:56:12 ...... 11:56:14 http://www.cs.washington.edu/orgs/student-affairs/cseband/ "Red Black Tree Song" 11:56:26 what the hell 11:56:28 (I am assuming it's the one I know of, didn't listen.) 11:57:08 (I mean, how many people have done songs about red-black trees?) 11:57:22 .....lol 11:57:37 wow. 11:57:45 rotating subtrees has never sounded so beautiful. 12:05:16 I find it sad that I know AT LEAST 4 CS majors in real life 12:05:24 and none of them would appreciate this song. 12:05:33 I am alone. ;_; 12:07:55 so, if you don't ignore constant factors, red-black is O(2log(n)) and AVL is O(log(n)) 12:08:11 so, technicall speaking, AVL trees /are/ more efficient, it's just that no one cares about constant factors. 12:09:14 AVL trees are often compared with red-black trees because they support the same set of operations and because red-black trees also take O(log n) time for the basic operations. Because AVL trees are more rigidly balanced, they are faster than red-black trees for lookup intensive applications.[3] However, red-black trees are faster for insertion and removal.[citation needed]. 12:09:32 good reliable information from wikipedia 12:21:16 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 12:46:43 -!- ais523 has quit (Ping timeout: 248 seconds). 12:56:48 -!- ais523 has joined. 13:01:29 -!- ais523_ has joined. 13:01:33 -!- ais523 has quit (Disconnected by services). 13:01:34 -!- ais523_ has changed nick to ais523. 13:30:57 -!- Ngevd has joined. 13:36:52 -!- Ngevd has quit (Ping timeout: 256 seconds). 13:37:04 -!- MSleep has quit (Read error: Connection reset by peer). 13:37:18 -!- MSleep has joined. 13:37:39 -!- Ngevd has joined. 13:37:55 "You can meet people over the Internet (oh God, can you), but something in our monkey brains makes in-the-flesh meeting a bigger thing." 13:38:05 http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ 13:38:15 I'll agree with that 13:38:35 alternative title: how to hate programming for a living but make a lot of money. 13:38:44 looks like useful advice so far. 13:39:59 granted the goal of this article seems to be not getting stuck in a dead-end job, but moving forward until you get to the interesting things. 13:41:41 the "focus on how you can make revenue or reduce costs" bit seems to make a lot of sense. But what if you the employer is more interested in the challenging technical problems you've solved? 13:44:26 Whoa, it's my birthday, isn't it? 13:44:36 must be. 13:44:44 so are there any like... 13:44:49 HTML "IDEs"? 13:44:55 that make HTML not a pain in the ass? 13:45:11 Yes, but they make bad HTML 13:45:23 no I want to write the HTML 13:45:26 but have things that make that easier. 13:45:28 Ooh 13:45:32 actually I want to write Django templates. 13:45:34 Bluefish? 13:45:35 but whatever. 13:46:07 looks like a normal text editor. Could I just use emacs with some bitchin' HTML mode instead. 13:47:27 I'm not all too familiar with emacs 13:47:27 http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html 13:47:29 this looks good. 13:48:07 actually emacs html-mode itself has some convenience things. 13:48:12 I tried one of them fancy text editors once, couldn't stay focused enough to get the hang of it 13:48:21 C-c C-a 13:48:22 Interactively insert attribute values for the current tag (sgml-attributes). 13:48:44 -!- DH____ has joined. 13:48:59 C-c C-f 13:49:00 Skip across a balanced tag group (which extends from an opening tag through its corresponding closing tag) (sgml-skip-tag-forward). A numeric argument acts as a repeat count. 13:49:07 looks good. 13:49:36 C-c C-d 13:49:36 Delete the tag at or after point, and delete the matching tag too (sgml-delete-tag). If the tag at or after point is an opening tag, delete the closing tag too; if it is a closing tag, delete the opening tag too. 13:49:41 also excellent. 13:50:22 I wonder what I did before I started using emacs.. 13:50:32 horrible terrible things. 13:51:15 oh dude it even has like docs. C-c ? tagname 13:51:22 like, radical. 13:51:33 Should I try to use Emacs? 13:51:38 Ngevd: I recommend it. 13:51:54 Aaah! 13:51:55 it's not terribly complicated. Though I'm sure I don't use every single feature available. 13:51:59 Which emacs package do I want! 13:52:05 * emacs23 13:52:05 * emacs23-nox 13:52:05 * e3 13:52:05 * emacs-snapshot 13:52:05 * emacs-snapshot-nox 13:52:06 * emacs23-lucid 13:52:08 * jove 13:52:11 emacs23 probably. 13:53:04 C-v for example is page down, M-v is page up. C-a is beginning of line, C-e is end of line. C-k deletes (actually cuts) everything on the after the cursor 13:53:17 A couple of months ago I realised that I could touchtype pretty accurately without looking at the keyboard 13:53:21 Pretty quickly too 13:53:35 C-y is paste, M-y after C-y starts going through old pastes. 13:53:52 so if you've got an out of place line. 13:54:13 you just go to it. then C-a, C-k, move to where you want it to go, C-y 13:54:39 Installing now 13:55:00 meanwhile your counterpart in another universe is reaching for the mouse or doing weird awkward key combinations. 13:55:11 Or using vi 13:55:19 oh right. yeah I don't know anything about vi. 13:55:27 I found it more confusing than emacs. 13:55:31 I think that was the one I tried...? 13:55:33 Maybe? 13:56:07 one thing that's been kind of awkward is that Django repeats a lot of file names in different directories 13:56:10 No wait, this emacs tutorial looks familiar 13:56:18 so switching around to other files has been somewhat more annoying than usual. 13:57:02 sometimes I even use C-x C-b which I normally don't use. 13:57:28 Ngevd: also you can play tetris. 13:57:39 while your "code compiles" (see: xkcd) 13:57:45 I think I have a friend who uses emacs 13:57:51 Primarily for that purpouse 13:58:03 to play tetris instead of doing actual work? 13:58:09 it has its advantages, certainly 13:58:10 Yes 13:58:42 also having multiple windows (what would normally be called panes or whatever) is awesome. 13:59:35 as usually you end wanting to browse two or three source files at a time, or two source files and some docs, etc, etc 13:59:44 s/end/\1 up/ 14:00:07 three source files, two docs, a shell, and tetris 14:02:49 C-c / 14:02:50 Insert a close tag for the innermost unterminated tag (sgml-close-tag). If called from within a tag or a comment, close this element instead of inserting a close tag. 14:02:53 holy crap that's awesome. 14:03:39 it's like 14:03:49 the guys who made html-mode hate the same things that I hate about HTML. 14:04:01 -!- copumpkin has quit (Ping timeout: 240 seconds). 14:04:11 Maybe you wrote it? 14:04:25 -!- copumpkin has joined. 14:04:28 FROM THE FUTURE 14:05:16 C-c C-n 14:05:17 Interactively specify a special character and insert the SGML ‘&’-command for that character (sgml-name-char). 14:05:19 yessssss 14:06:01 though < is fewer keys than C-c C-n < :P 14:06:19 -!- ais523 has quit (Read error: Connection reset by peer). 14:06:29 Harder to memorise, though 14:07:51 not if you know a modicum of HTML syntax. 14:08:33 I mean, it's easier to memorise C-c C-n [char] than a list of thingies 14:08:38 oh, right. 14:09:13 C-c C-n " is equivalent to " though honestly I tend to think of key combinations as the same amount of work as typing a single key. 14:09:34 as my left hand is pretty much always hovering over shift, ctrl, and alt. 14:10:11 I type weird. :P 14:10:22 though typing weird is beneficial when programming. 14:11:27 though I can't really touch type very well. It's very easy for me to start jioyy the weron ley 14:12:07 though I do say though a lot. 14:14:26 http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html 14:14:27 wow. 14:14:40 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:17:38 I fear for the state of the world's sanity 14:17:56 I could write a FizzBuzz thing in what... 30 seconds? 14:19:32 > map (\x -> if x `mod` 15 == 0 then "FizzBuzz" else (if x `mod` 3 == 0 then "Fizz" else (if x `mod` 5 == 0 then "Buzz" else show x))) [1..100] 14:19:34 ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","1... 14:19:40 Exactly 14:19:44 it is /slightly/ trickier than it sounds. 14:20:20 no wait, it's not. 14:20:24 I would have used guards personally, but that's because Haskell's if statement confuses me for some strange reason 14:20:48 And I wasn't writing it for IRC 14:21:31 it... confuses you? 14:21:38 I don't know how 14:21:40 It just does 14:21:53 -!- DH____ has quit (Ping timeout: 240 seconds). 14:21:54 Which is weird, because I get that Banach-Tarski thing 14:22:04 And that should be much more confusing 14:22:11 also I believe those parens are unecessary. 14:22:22 > map (\x -> if x `mod` 15 == 0 then "FizzBuzz" else if x `mod` 3 == 0 then "Fizz" else if x `mod` 5 == 0 then "Buzz" else show x) [1..100] 14:22:23 ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","1... 14:22:25 yep. 14:23:21 -!- tiffany has joined. 14:24:14 import System.IO; import Data.List; main = putStrLn . intercalate "\n" . map (\x -> if x `mod` 15 == 0 then "FizzBuzz" else if x `mod` 3 == 0 then "Fizz" else if x `mod` 5 == 0 then "Buzz" else show x) $ [1..100] 14:24:18 woooo 14:24:50 @pl map (\x -> if x `mod` 15 == 0 then "FizzBuzz" else if x `mod` 3 == 0 then "Fizz" else if x `mod` 5 == 0 then "Buzz" else show x) [1..100] 14:24:51 map (ap (flip if' "FizzBuzz" . (0 ==) . (`mod` 15)) (ap (flip if' "Fizz" . (0 ==) . (`mod` 3)) (ap (flip if' "Buzz" . (0 ==) . (`mod` 5)) show))) [1..100] 14:24:56 beautiful. 14:25:01 Who the hell calls themselves a programmer and struggles with this 14:25:26 Ngevd: note that the majority of enterprisey things require no knowledge of multiples or well anything... 14:25:39 BUT STILL 14:25:56 also in a job application situation no google, etc. People rely on google heavily when programming. 14:25:58 The article said Computer Science graduates!? 14:26:31 -!- tiffany has quit (Remote host closed the connection). 14:26:48 a CS graduate who's been out of school for several years may have forgotten that "multiple of x and y" means "multiple of x*y" 14:26:56 but that's not a big deal as you can just use && instead. 14:27:01 -!- tiffany has joined. 14:27:36 also I imagine people get thrown off by off-by-one errors or implementing the conditional in the wrong order so that the multiple of 15 case never occurs. This is just a simple mistake under time pressure. 14:29:17 I've got a new phone 14:29:46 cool. 14:31:11 > people get thrown off by off-by-one errors 14:31:13 Not in scope: `people'Not in scope: `thrown'Not in scope: `off'Not in scope... 14:31:17 *reminded of that scp* 14:31:59 http://www.scp-wiki.net/scp-866 14:35:11 Okay, my phone just guessed my postcode 14:35:57 !perl for (1..100) { $x=0; $x++,print "Fizz" unless ($_ % 3); $x++,print "Buzz" unless $_ % 5; print unless $x; print " " } 14:36:04 .... :( 14:36:17 I was trying out a horrible hack. 14:36:24 when it would be easier just to not do horrible hacks. 14:36:40 `runperl for (1..100) { $x=0; $x++,print "Fizz" unless ($_ % 3); $x++,print "Buzz" unless $_ % 5; print unless $x; print " " } 14:36:47 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz 14:36:55 bahahahahaha 14:37:09 look at that horrible hack. 14:37:47 Hehe 14:37:54 My phone is loading the wiki 14:38:07 `runperl for(1..100){my$x;$x++,print"Fizz"unless$_%3;$x++,print"Buzz"unless$_%5;print unless$x;print" "} 14:38:09 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz 14:38:13 now written with readability in mind. 14:42:52 -!- copumpkin has joined. 14:44:37 -!- Taneb has joined. 14:44:54 That's my phone 14:45:09 Hello 14:46:37 Now I don't need to lug around a Kindle to talk on the move 14:46:57 I don't think blackberries have much in the way of IRC clients. 14:47:37 This is an Android 14:48:12 -!- Taneb has quit (Client Quit). 14:48:38 Yeah, it's hard to type on that Galaxy Mini keyboard 14:49:08 And tomorrow I have to be out the house by 4:30 14:50:18 So, early night for me 14:54:57 ”What is your previous salary?” is employer-speak for “Please give me reasons to pay you less money.” Answer appropriately. 14:55:00 looool 15:16:20 -!- augur has quit (Remote host closed the connection). 15:20:24 html-mode is great. 15:20:29 never again will I write end tags... 15:40:37 -!- Vorpal has joined. 15:42:50 -!- augur has joined. 15:43:02 Hey, it's almost celebrate-that-time-when-somebody-messed-up-killing-the-king day! 15:44:14 Ngevd, tomorrow isn't it? 15:44:21 Day after 15:44:24 ah 15:44:48 Ngevd, why exactly is that celebrated? 15:45:05 Because we don't have anything cool to celebrate 15:45:34 brb, ipv6 tunnel is fucked up, I suspect I will lose connection 15:48:22 -!- Vorpal_ has joined. 15:49:07 Hey, I can listen to the radio on my phone 15:49:42 -!- Vorpal has quit (Disconnected by services). 15:49:44 -!- Vorpal_ has changed nick to Vorpal. 15:49:49 Ngevd, how is that surprising? 15:50:02 I've never been able to do that before 15:50:15 Ngevd, new phone? 15:50:20 Yup 15:55:37 -!- ais523 has joined. 15:59:22 -!- zzo38 has joined. 16:01:24 -!- copumpkin has quit (Ping timeout: 245 seconds). 16:03:31 -!- copumpkin has joined. 16:05:19 Americans don't understand humour, they only understand humor. 16:05:40 -!- MSleep has changed nick to MDude. 16:05:43 zzo38: what about Canadians? 16:06:12 Well, I am Canadian. 16:06:14 Humour, I believe 16:06:28 And Australians may use "humor"? 16:06:38 Yes that is the Canadian spelling "humour" but I don't know Australians 16:06:51 I know they use "labor" 16:09:02 I abhour strange spellings of things that should end with -our 16:09:17 Four 16:10:04 As my user page on the wiki probably doesn't say, I flick between -ize and -ise 16:10:21 Depending on the word, I think 16:10:24 Colourize 16:10:25 I think since both spellings are in use you can use whatever you want but when you type a command into a computer you have to use the spelling that the computer accepts (some programs might accept both ways) 16:10:26 American usage of -or and -our is totally consist-- oh wait 16:11:17 though maybe it's a bit more consistent...? no... 16:11:51 we have pour and not por. 16:12:36 I guess -our is etymologically correct for words with French origin, I think? 16:12:41 * CakeProphet doesn't actually know anything about French. 16:14:47 anyway AMERICA IS THE BEST etc 16:15:09 because all of our conventions are different from everyone elses. 16:15:18 but EVERYONE LIKES OUR MOVIES HAHAHAHAHA SUCKERS. 16:16:45 Bah, most of the actors in Star Wars were British 16:17:17 wow 16:17:29 The body of Darth Vader, for example 16:17:31 you've defeated me with your one specific example. 16:17:54 And the British version of the Italian Job was so much better than the remake 16:17:58 about actors and not movies. 16:18:08 Ngevd: well, that's true. 16:18:17 but that's true for many remakes regardless of nation. 16:18:28 And Shaun of the Dead was very good 16:18:42 As was Hot Fuzz 16:18:51 Ngevd: "hey, we make good movies too!" 16:19:10 Technically it should be Nge "hey, we make good movies too!" vd 16:19:25 no I was quoting you. 16:19:30 it wasn't an IRC ping thing 16:19:31 Which Discordian calendar do you prefer, the literal or standard? 16:19:34 Oh 16:20:05 zzo38: I was only familiar with one calendar. I presume the standard one 16:22:41 of course I always use THE OFFICIAL DISCORDIAN DOCUMENT NUMBERING SYSTEM. 16:26:31 -!- ais523_ has joined. 16:26:45 -!- ais523 has quit (Disconnected by services). 16:26:46 -!- ais523_ has changed nick to ais523. 16:27:08 With the standard calendar, 1 Chaos is always Jan 1 of the Gregorian calendar, while the literal calendar has 1 Chaos 3136 on Jan 1, 1970 and has St. Tib's day exactly once every four years (as the Julian calendar does), which is what the document says. This contradicts the heading but follows the instructions precisely. 16:31:06 -!- monqy has joined. 16:40:29 -!- Jafet has quit (Quit: Leaving.). 16:43:54 hmm, hilarious thing happening on the Internet: Nintendo are releasing a new Dream World Pokémon and asking people to vote on what it should be; the competitive community have found a loophole in the voting system allowing it to be manipulated, but their attempts to manipulate it are breaking down into arguments as to what exactly they should manipulate /for/ 16:44:15 :D 16:45:30 the argument is mostly between Pokémon-that-is-already-good-and-this-would-make-it-even-better, and Pokémon-that-currently-sucks-and-this-would-make-excellent 16:46:04 I would go for the latter 16:46:12 Luvdisc 16:46:22 it wouldn't make Luvdisc good 16:46:27 the latter Pokémon is Ditto 16:46:46 I don't really know what Dream World Pokemon are 16:47:16 I haven't really kept track of it since Platinum was released 16:47:34 the only competitive difference is that they have a different ability to usual, and that if they're male, you can't breed egg moves onto them 16:47:44 I really don't care. I don't like the Dream World mode anyways 16:48:11 but there are only finitely many possibilities for each ability (small finite, it caps out at 4), and Ditto is a choice of 1 of 2 16:48:26 Nintendo adds everything they keep mixing it up. No! They should only change it when releasing a new game. 16:48:28 people are assuming it'd get the ability currently unavailable on it, as otherwise it'd just be a normal Ditto 16:48:53 and Imposter Ditto is already known to be top-tier (if you aren't playing with banned Pokémon), and possibly even strong enough to ban 16:51:32 why ban? Wouldn't it make more sense to rebalance? 16:51:56 Vorpal: you can't, umm, modify the game's idea of what a Pokémon's stats are without hacking? 16:52:13 ais523, I meant for Nintendo to release a balance patch 16:52:21 Vorpal: on a DS cartridge game? 16:52:24 oh okay 16:52:25 -!- sllide has joined. 16:52:27 They should make the random game? Everyone start random during each match 16:52:35 zzo38: it's been made 16:52:46 it's not as fun as the intended way of playing, though 16:53:03 as it's mostly a case of hoping that you have an attacking move that actually does decent damage 16:53:51 -!- Guest63524 has joined. 16:54:20 interesting, Windows 7 fails to detect the PS/2 keyboard except after a warm reboot. 16:54:27 -!- oerjan has joined. 16:54:28 wtf could cause that 16:54:53 I mean, it works fine in linux. And it works fine after warm reboot from either windows login screen or from linux 16:54:59 -!- Slereah_ has quit (Ping timeout: 276 seconds). 16:55:27 how are you warm rebooting it without a working keyboard? 17:00:06 Vorpal: this is because Windows code relies on the magical properties of its reboot to function properly 17:00:21 the code itself is shit, but after a reboot everything works fine. always. 17:00:36 * CakeProphet sagenods 17:02:08 ITYM "* CakeProphet nods sagely." you lazy 'sagenodding' non-sage. 17:02:10 > map (\x -> if x `mod` 15 == 0 then "FizzBuzz" else (if x `mod` 3 == 0 then "Fizz" else (if x `mod` 5 == 0 then "Buzz" else show x))) [1..100] 17:03:28 > [case gcd x 15 of 1 -> show x; 3 -> "Fizz"; 5 -> "Buzz"; 15 -> "FizzBuzz" | x <- [1..100]] 17:03:29 ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","1... 17:05:54 -!- Siddiq has joined. 17:06:02 hi ais 17:06:11 hi bd 17:06:25 oerjan: ah much better. 17:06:29 though not as efficient I think? 17:06:33 doesn't matter really. 17:06:35 perhaps not. 17:06:58 I should try those list comprehension things, one of these days. 17:07:03 for efficiency, you could also do a case match on x `mod` 15 17:07:07 -!- Siddiq has left. 17:07:09 but that would be longer 17:07:25 -!- elliott has joined. 17:08:13 how are you warm rebooting it without a working keyboard? <-- by clicking "shutdown" with the mouse on the login screen and then selecting reboot from the menu that pops up 17:08:45 was siddiq someone you actually knew? 17:08:46 Vorpal: mouse? I am enthralled. Show me your ways. 17:08:51 Vorpal: how do you get past the press control-alt-delete thing? 17:08:58 ais523, windows 7 doesn't do that? 17:09:16 hmm, weird 17:09:28 as its purpose is to prevent people spoofing the login screen (the userland can't react to control-alt-delete) 17:09:33 ais523, the ctrl-alt-del thing is for domain logins only these days I think. Ever seen the XP welcome screen? 17:09:40 it didn't use that ctrl-alt-del either 17:09:42 ah, right 17:09:44 I know XP doesn't ask for CTRL+ALT+DEL by default but it can be configured to do so. 17:09:56 and xp didn't ask by default indeed 17:10:07 ais523, anyway what I see is the windows 7 take on the xp welcome screen. 17:10:08 Vorpal: how do you get past the press control-alt-delete thing? 17:10:08 elliott: You have 2 new messages. '/msg lambdabot @messages' to read them. 17:10:13 only networked machines do that 17:10:19 it's a non-default setting 17:10:34 elliott, or ones configured to it anyway. It was fairly easy to make an xp machine do it iirc. 17:10:35 I configured my computer to ask CTRL+ALT+DEL 17:10:51 select non-welcome screen mode, then a group policy or something 17:10:59 hmm, computers don't even /boot/ without a working keyboard, so presumably the BIOS recognised it 17:11:02 my computer devises tricky riddles 17:11:03 anyway the warm reboot issue is mysterious 17:11:09 And to forget the last username, requiring its entry every time. 17:11:11 ais523, certainly, it works fine in grub too 17:11:19 ais523, and under linux 17:12:07 ais523, and as I said, with warm reboot from either OS it works fine. 17:12:19 I can't think of a way to cause that sort of behaviour 17:12:37 13:37:55: "You can meet people over the Internet (oh God, can you), but something in our monkey brains makes in-the-flesh meeting a bigger thing." 17:12:37 meh @ this 17:12:47 ais523, btw did I mention the game on windows that only worked if 5 minutes or more passed since login and another XNA based game had already run? 17:12:55 ais523: I think they do boot nowadays 17:12:58 (very strange that one) 17:12:59 everyone emulates the controller 17:13:22 import System.IO; import Data.List; main = putStrLn . intercalate "\n" [...] <-- that's putStr . unlines 17:13:32 well, I have a single shared PS/2 port that can either take a keyboard or a mouse 17:13:40 so I use an usb mouse and a PS/2 keyboard 17:13:41 13:51:33: Should I try to use Emacs? 17:13:41 13:51:38: Ngevd: I recommend it. 17:13:42 Ngevd: no 17:13:50 i'm imagining an onscreen game controller, like an onscreen keyboard 17:13:51 there's also unwords 17:13:53 and now an onscreen mouse 17:14:12 oerjan: ah yes I always forget about those things. 17:14:28 drag the onscreen mouse around and click with it, and then it will move another cursor that clicks on things for you 17:14:42 (they're slightly different, unlines appends a final \n) 17:15:07 (well apart from one being \n's and the other being spaces) 17:15:20 elliott: for some reason I thought you used emacs as well. 17:15:29 Yep. 17:15:33 oh. 17:15:44 I also use vim for editing config files. 17:15:47 why would you use it and not recommend it then? 17:15:53 I use emacs, kate and nano 17:16:06 Because learning emacs is a waste of time for almost everyone. 17:16:22 CakeProphet: another option is mapM_ putStrLn 17:16:27 I'm just used to it, and it has a few things that the lack of bug me in other editors, so I use it. 17:17:02 elliott: it was not a waste of time for me to learn it. 17:17:12 i sometimes like to do mapM_ print in ghci, to not get as many nested brackets 17:17:17 * elliott does not expect continuing this conversation to be productive. 17:17:32 (as with plain print) 17:17:35 oerjan: I do that a lot too. Mostly I wish that GHCi reformatted prints by default. 17:17:58 -!- CakeProphet has set topic: productivity | EPL evening school assignments! http://tinyurl.com/5stnu5n | It's the end of an era | RIP John McCarthy) | TO SHREDS!) | http://codu.org/logs/_esoteric/. 17:19:02 I think the _ in mapM_ is quite ugly, surely there is a better way to tell it apart from mapM 17:19:28 Vorpal: it's standard 17:19:32 mapM' would be worse 17:19:36 well true 17:19:38 :t sequence_ 17:19:40 still 17:19:42 forall (m :: * -> *) a. (Monad m) => [m a] -> m () 17:19:49 elliott, you can't tell me it isn't ugly 17:19:49 Vorpal: and, therefore, not ugly. ;) 17:19:55 I don't find it ugly at all. 17:19:58 hm 17:21:27 that is strange, why does :t in ghci give a much more compact form than :t in lambdabot for sequence_? Or rather, why would lambdabot print that forall stuff that is implicit in ghci's :t 17:21:55 Vorpal: there's an option whether to include foralls 17:22:10 okay, why would lambdabot have that turned on then? 17:22:34 for pedagogical reasons? 17:22:38 hm, okay 17:23:34 oerjan: lolno 17:23:37 it's for caleskell 17:23:54 at least nobody ever does anything but tell newbies to ignore them 17:24:15 o kay 17:24:16 wtf is caleskell? 17:24:31 :t (.) -- this. is. caleskell. 17:24:32 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 17:24:47 :t flip 17:24:48 forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b 17:24:50 hm 17:25:07 yeah that is not the usual flip signature 17:25:16 but it is the usual (.) signature of course. 17:25:22 > (0$0$) -- hm i wonder... 17:25:23 The operator `GHC.Base.$' [infixr 0] of a section 17:25:23 must have lower prec... 17:25:29 elliott, not that either 17:25:39 for some reason he hasn't changed $ to infixl though :P 17:25:49 well to me that doesn't really explain what caleskell is 17:25:58 caleskell is caleskell 17:26:03 ah google was more helpful than DDG there 17:26:29 > func "caleskell is " (var "your mom") :: Expr 17:26:29 still no explanations as to what it is 17:26:30 Not in scope: `func' 17:26:32 :( 17:26:34 > fun "caleskell is " (var "your mom") :: Expr 17:26:36 caleskell is your mom 17:26:49 good job 17:26:50 oerjan: i like how siddiq stealthily avoided actually pinging anyone 17:26:54 monqy: thanks. 17:27:32 mhm 17:27:33 > var "siddiq more like siddick huh huh huh huh" 17:27:34 siddiq more like siddick huh huh huh huh 17:28:00 look guys, I can make lambdabot obnoxious. 17:28:13 ok 17:28:58 -!- naggg has joined. 17:29:16 also, in other news 17:29:18 https://www.google.com/search?gcx=w&sourceid=chrome&ie=UTF-8&q=do+a+barrel+roll 17:30:12 Vorpal: cale is a #haskell regular who added some of his haskell ideas to lambdabot. i think. 17:30:35 oerjan, ah 17:30:52 oerjan: he is the maintainer of lambdabot. 17:30:54 well 17:30:55 owner 17:30:58 it's unmaintained :) 17:31:01 hi naggg 17:31:03 `? welcome 17:31:05 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 17:31:17 `run type '?' 17:31:18 ​? is /hackenv/bin/? 17:31:21 i wasn't quite sure about that, thus "i think" 17:31:23 `run file '?' 17:31:25 ​?: ERROR: cannot open `?' (No such file or directory) 17:31:29 `run file 'bin/?' 17:31:30 bin/?: POSIX shell script text executable 17:31:36 hi elliott 17:31:38 `run pasteurl 'bin/?' 17:31:40 sh: pasteurl: not found 17:31:42 err 17:31:49 `pasteurl 'bin/?' 17:31:51 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pasteurl: not found 17:31:52 Vorpal: try not to fail horribly at the bots in front of the newbies 17:31:59 `paste 'bin/?' 17:31:59 :p 17:32:01 elliott, I forgot what the command was 17:32:01 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3471 \ cat: 'bin/?': No such file or directory 17:32:04 It's `url. 17:32:06 `url bin/? 17:32:07 ah 17:32:08 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/? 17:32:16 wait, that is going to break 17:32:18 Oh, that actually doesn't work because Gregor is lazy. 17:32:21 `paste bin/? 17:32:24 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.11685 17:32:49 `ls wisdom 17:32:52 ais523 \ augur \ c \ elliott \ everyone \ finland \ fizzie \ flower \ friendship \ gregor \ hackego \ haskell \ ievan \ intercal \ itidus20 \ monad \ monads \ monqy \ oerjan \ oklopol \ qdb \ qdbformat \ sgeo \ shachaf \ u \ vorpal \ welcome \ wiki 17:32:57 that is a lot 17:33:00 i wasn't quite sure about that, thus "i think" 17:33:08 oerjan: and i was giving you the gift of correction :P 17:33:12 Vorpal: that's barely any 17:34:00 `? monads 17:34:02 Monads are just monoids in the category of endofunctors. 17:34:03 Vorpal: crawl's learndb has a single entry with 3494 definitions 17:34:48 `? monad 17:34:50 Monads are just monoids in the category of endofunctors. 17:35:04 elliott: good thing that entry sucks 17:35:18 monqy: it's crawl, what did you expect 17:35:52 some crawl learndb entries are good in a bad way but most of them are awful 17:35:55 `? intercal 17:35:57 INTERCAL has excellent features for modular program for the enterprise market. 17:36:06 elliott, crawl being? 17:36:15 Vorpal: I refuse to believe you don't know what Crawl is. 17:36:25 elliott, oh, stone soup? 17:36:36 Yes. 17:36:38 right 17:36:59 elliott, would you believe me if I said I never actually played it? 17:37:05 -!- Ngevd has quit (Ping timeout: 252 seconds). 17:37:10 `? finland 17:37:12 Finland is a European country. There are two people in Finland, and at least five of them are in this channel. Corun drives the bus. 17:37:18 `cat wisdom/monad 17:37:20 Vorpal: No, I would die from shock. 17:37:20 Monads are just monoids in the category of endofunctors. 17:37:22 Rodney's learndb has 6653 definitions, but the entry with most definitions (stealing_from_shops) only has 17 of them. (Assuming I grepped right.) 17:37:41 `? elliott 17:37:43 elliott wrote this learn DB, and wrote or improved many of the other commands in this bot. He probably has done other things? 17:37:57 ? 17:38:12 -!- zzo38 has quit (Remote host closed the connection). 17:38:14 `? oerjan 17:38:16 Your future evil overlord oerjan is an expert in lazy computation. 17:38:23 `? monqy 17:38:25 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 17:38:38 `run echo '"Banach-Tarski" is an anagram of "Banach-Tarski Banach-Tarski".' >wisdom/banach-tarski 17:38:39 No output. 17:38:49 oerjan: i am not sure i approve of the hyphen 17:39:02 which one? 17:39:08 elliott, rougelikes I played: nethack, slashem, a bit of angband. Yeah I think that is it. 17:39:15 `? fizzie 17:39:16 oerjan: filename one :P 17:39:17 fizzie is rumoured to be written in Funge-98. 17:39:18 maybe I should play stone soup now 17:39:24 `? gregpr 17:39:26 gregpr? ¯\(°_o)/¯ 17:39:35 `? gregor 17:39:38 Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible. 17:39:38 Vorpal: don't, it sucks 17:39:43 elliott, how so? 17:39:48 monqy: ais523: back me up here 17:39:51 it sucks 17:39:53 `? friendship 17:39:55 elliott, does it suck because you are bad at it? Or some other reason? 17:39:55 friendship wisdom 17:40:03 it sucks because it's bad 17:40:08 it sucks because it's bad 17:40:11 elliott, in what way is it bad 17:40:12 you can trust monqy, he has like _three_ entries in that learndb. 17:40:18 i have way more than three 17:40:18 Maybe you should MAKE stone soup. 17:40:18 and stop echoing monqy 17:40:26 monqy echoed me you blithering moron. 17:40:32 and i've won a lot of games!! 17:40:37 so I have experience, am probably good 17:40:42 elliott, no that was "and stop echoing, monqy!" 17:40:42 elliott: it occurs to me that `? welcome is atypical: it's information is actually true. 17:40:44 monqy: how many games... is it 2 17:40:46 elliott: s/echoing/\1,/ 17:40:47 yes, that. 17:40:48 *its 17:40:52 oerjan: fix the ' so i can addquote that 17:41:03 elliott: it occurs to me that `? welcome is atypical: its information is actually true. 17:41:09 elliott: i think it's like 17 :( i used to play it a lot before i got really frustrated with how bad it was 17:41:11 `addquote elliott: it occurs to me that `? welcome is atypical: its information is actually true. 17:41:13 704) elliott: it occurs to me that `? welcome is atypical: its information is actually true. 17:41:29 `? haskell 17:41:31 Haskell is preferred by 9 out of 10 esoteric programmers. Ask your GP today! http://learnyouahaskell.com/ 17:41:34 Vorpal: anyway, the reasons are (a) it sucks (b) the balance is awful (c) the fact that you're always in the centre tile gives you a headache 17:41:37 Vorpal: ask ais523 if you want more detail :P 17:41:41 elliott, the only person I would trust about rougelikes would be ais523. You need him to back you up. 17:41:49 `? itidus20 17:41:51 itidus20 is horny 60 year olds having cybersex in minecraft 17:41:52 well, only person in this channel 17:42:00 `? ais523 17:42:02 ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented. 17:42:02 I don't care about (c) but I'd add (d) it's boring 17:42:14 elliott, err, I seen plenty of games like (c), they don't annoy me 17:42:29 `? sgeo 17:42:32 Sgeo invented Metaplace sex. 17:42:32 and (e) it's tedious 17:42:45 maybe other games are boring and tedious too; I prefer not to play them either 17:42:54 `? CakeProphet 17:42:57 CakeProphet? ¯\(°_o)/¯ 17:43:04 ? who owns lines starting with a ? again? 17:43:05 `? feather 17:43:07 feather? ¯\(°_o)/¯ 17:43:11 oh well 17:43:14 ?somebody owns lines starting with a ? 17:43:14 Unknown command, try @list 17:43:21 Yeah, lambdabot, that jerk. 17:43:24 `run echo 'Vorpal is a swede so normal that this information is actually true.' >wisdom/vorpal 17:43:26 No output. 17:43:38 oerjan, heh 17:43:42 `run echo 'Vorpal sucks.' >wisdom/vorpal 17:43:44 No output. 17:43:44 * elliott master of accuracy. 17:43:49 `rollback 17:43:50 `cat bin/learn 17:43:51 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rollback: not found 17:43:51 Gregor: BTW `quote modifies the FS on every invocation now is that ok. 17:43:52 ​#!/bin/sh \ topic=$(echo "$1" | sed 's/ .*//' | tr A-Z a-z) \ info=$(echo "$1" | sed 's/[^ ]* //') \ echo "$1" >"wisdom/$topic" \ echo "I knew that." \ 17:43:53 `help 17:43:54 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 17:43:57 `revert 17:43:58 Done. 17:44:02 elliott: wtf why 17:44:03 `quote 17:44:04 elliott: see what you did 17:44:05 620) in the past few minutes I tried remembering what my dream last night was, but instead remembered I didn't sleep 17:44:06 Gregor: `unquote 17:44:15 -!- naggg has quit (Quit: begone). 17:44:16 `url bin/unquote 17:44:19 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/unquote 17:44:27 `revert 6e3092881cc4 17:44:40 wtf? 17:44:41 `? vorpal 17:44:44 Vorpal sucks. 17:44:48 * elliott waits for Vorpal to break the bot with idiocy. 17:44:49 there was already a wisdom entry on vorpal... 17:44:50 -!- boily has joined. 17:44:53 elliott: OK, but why does `quote need to modify ... 17:45:00 Gregor: So that `unquote knows what to delete. 17:45:03 `quote 17:45:06 SHITTY QUOTE 17:45:06 OHHH 17:45:08 I gets it. 17:45:08 `unquote 17:45:12 K it's gone. 17:45:14 Sure, works for me. 17:45:27 i loved that quote 17:45:31 You should have it report which one it removed just in case of SYNCHRONIZATION. 17:45:33 Gregor, what does `revert take as parameter exactly? 17:45:36 Gregor: It does. 17:45:39 Gregor: `delquote does now. 17:45:42 Vorpal: The revision to revert to. 17:45:58 Gregor, for some reason I can't find the revision number on http://codu.org/projects/hackbot/fshg/ 17:46:30 I seem to remember seeing said revision number there before.... Strange 17:46:44 You must be at least this smart to ride the bot --> 17:46:51 `run echo ':>' > wisdom/cakeprophet 17:46:53 No output. 17:46:58 `? cakeprophet 17:46:58 `revert 828 17:47:00 Done. 17:47:02 Vorpal: There. 17:47:02 ... 17:47:04 Is everyone `learn-incompetent or what? 17:47:06 http://codu.org/projects/hackbot/fshg/index.cgi/rev/6fd8b41fdb37 17:47:12 Gregor: Yes. 17:47:14 ​:> 17:47:16 Gregor: how do I learn learn? 17:47:24 `run echo ':>' > wisdom/cakeprophet 17:47:26 No output. 17:47:28 `? cakeprophet 17:47:30 `rm wisdom/cakeprophet 17:47:30 ​:> 17:47:32 No output. 17:47:41 elliott: what the hell. 17:47:43 elliott, ah there, I tried the hash, but that didn't work 17:47:51 elliott "hackego despot" hird 17:47:58 elliott, it would make sense if the hash worked 17:47:59 CakeProphet: You must learn how to use `learn before I'll not be a dick about working around it :P 17:48:10 Vorpal: I'm the maintainer of HackEgo. That's why you should complain to me and not Gregor. 17:48:12 `learn learn 17:48:14 I knew that. 17:48:22 `? learn 17:48:24 learn 17:48:26 learn 17:48:27 ah. 17:48:32 elliott, you are? I thought it ran on codu 17:48:34 HackEgo has no maintainer, it is anarchy. 17:48:39 monqy: nice cascading effect. 17:48:43 `rm bin/learn 17:48:45 No output. 17:48:46 er 17:48:48 lol 17:48:54 rip 17:49:05 `revert 828 17:49:07 Done. 17:49:20 `run cat `which learn` 17:49:21 Gregor: P.S. You should make `revert rollback to the last revision :P 17:49:22 ​#!/bin/sh \ topic=$(echo "$1" | sed 's/ .*//' | tr A-Z a-z) \ info=$(echo "$1" | sed 's/[^ ]* //') \ echo "$1" >"wisdom/$topic" \ echo "I knew that." \ 17:49:26 Gregor: I'm 99% sure hg lets you specify that. 17:49:42 this sed scares me. 17:49:53 elliott: I'm 99% sure that I'm too lazy to implement that and also that I don't want it to be QUITE that easy to revert. 17:49:57 I'm afraid of learn. 17:50:12 Gregor: (a) But it's like one line since hg lets you specify it :'( (b) Point. 17:50:21 It's annoying for me though, how about you make it just work for me :P 17:50:31 also [^ ] is a bad way to say \S 17:50:35 I accept reasonable patches to HackBot. 17:50:41 `learn cakeprophet :> 17:50:43 I knew that. 17:50:44 CakeProphet: But it's a good way to say "not a space" 17:50:46 Gregor: Got a link again? :P 17:51:03 elliott, there are race conditions that way 17:51:04 elliott: hg for filesystem, minus "fs" 17:51:06 Gregor: therefore, "is" is not transitive. 17:51:11 Vorpal: HackEgo is one gigantic race condition. 17:51:22 well okay 17:51:23 `? cakeprophet 17:51:25 cakeprophet :> 17:51:28 :( 17:51:40 `run echo ':>' > wisdom/cakeprophet 17:51:42 No output. 17:51:59 much better. 17:52:21 `? cakeprophet 17:52:23 ​:> 17:52:24 :> 17:52:39 Gregor: Writing a patch now :P 17:52:49 elliott: Submit in bundle format kthx 17:53:04 (And/or export format) 17:53:33 Gregor: Y'know, I'm pretty sure you don't want "hg revert". 17:53:40 You want the revert to become a revision itself, after all. 17:54:04 `run echo ~ 17:54:06 ​/tmp 17:54:07 elliott: I commit post-hg-revert. hg backout would be similar but I didn't use it because this way the hg revert is just like any other command. 17:54:18 `run echo . 17:54:20 ​. 17:54:21 Gregor: Oh, okay. 17:54:24 CakeProphet: Impressive. 17:54:28 Gregor: Why /don;t/ hashes work, btw? 17:54:30 s/;/'/ 17:54:34 elliott: Don't ask me :) 17:54:37 `run pwd 17:54:39 ​/hackenv 17:54:44 elliott: I probably just only accept numerics. 17:55:04 revert should just be an alias for find . -delete 17:55:07 `cat wisdom/shachaf 17:55:08 shachaf mad 17:55:16 I shouldn't be in there. 17:55:19 * shachaf mad 17:55:26 shachaf: learn to ? 17:55:27 X-D 17:55:35 `learn ? is wisdom 17:55:38 I knew that. 17:55:42 `? ? 17:55:42 `? ? ? ? ? ? ? 17:55:44 ​? is wisdom 17:55:48 CakeProphet: lern2unix 17:55:53 Gregor, btw: 17:55:56 `url bin/? 17:55:56 ​? ? ? ? ? ?? ¯\(°_o)/¯ 17:55:58 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/? 17:56:00 Gregor, that url is broken 17:56:09 Vorpal: btw: 17:56:09 Gregor, I think you need to properly url encode stuff 17:56:13 `cat bin/url 17:56:15 ​#!/bin/bash \ if [ "$1" ] \ then \ echo 'http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/'"$1" \ else \ echo 'http://codu.org/projects/hackbot/fshg/' \ fi 17:56:19 Vorpal: That script is part of the FS, anybody can fix it. 17:56:25 ah okay 17:56:44 Only `fetch, `revert, and (maybe?) `help are privileged. 17:56:45 fuck url encoding in bash 17:56:45 `cat `which revert` 17:56:47 cat: `which revert`: No such file or directory 17:56:48 Oh, and `run 17:56:51 `run cat `which revert` 17:56:57 Gregor, ah 17:57:09 Gregor: It doesn't work because you explicitly require the revision to be a number... :P 17:57:11 * elliott just removes that constraint 17:57:14 Gregor, which protocols does `fetch support? 17:57:16 It'll fail harmlessly if you try and do something stupid. 17:57:23 No output. 17:57:28 Vorpal: Whatever wget supports *shrugs* 17:57:38 `run perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' 'blah/?' 17:57:41 Can't locate URI/Escape.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .). \ BEGIN failed--compilation aborted. 17:57:48 * shachaf hmphs. 17:57:49 `? wisdom 17:57:51 wisdom? ¯\(°_o)/¯ 17:57:57 elliott, Surely you want to check for it being [0-9a-f]+ 17:58:00 Why 17:58:07 You can say things like -3 17:58:10 To go two revisions back 17:58:12 ah 17:58:30 >& is like redirecting both 1 and 2, right? 17:58:36 elliott, just as long as you handle escaping and quoting properly (might be a non-issue, depending on which language it is written in) 17:58:56 `fetch file:///etc/passwd 17:58:57 file:///etc/passwd: Unsupported scheme `file'. 17:59:00 Dern :P 17:59:15 `which revert 17:59:16 Gregor, so no gopher 17:59:17 No output. 17:59:22 Vorpal: Tragic I know. 17:59:27 heh 17:59:38 Gregor: I don't understand. why is revert not part of the filesystem? :> 17:59:43 -!- Phantom_Hoover has joined. 17:59:53 it should be in ./bin 17:59:56 `ls .hg 17:59:58 ls: cannot access .hg: No such file or directory 18:00:46 `ls -a 18:00:48 ​. \ .. \ bin \ canary \ karma \ lastquote \ lib \ paste \ quotes \ share \ wisdom 18:01:11 `ls wisdom 18:01:13 ​? \ ais523 \ augur \ banach-tarski \ c \ cakeprophet \ elliott \ everyone \ finland \ fizzie \ flower \ friendship \ gregor \ hackego \ haskell \ ievan \ intercal \ itidus20 \ monad \ monads \ monqy \ oerjan \ oklopol \ qdb \ qdbformat \ sgeo \ shachaf \ u \ vorpal \ welcome \ wiki 18:01:20 `rm wisdom/shachaf 18:01:21 No output. 18:01:26 * shachaf unmad 18:01:28 `? everyone 18:01:30 Everyone in here is mad. 18:01:42 `echo No outut. 18:01:43 No outut. 18:01:52 `echo ?where ?where 18:01:54 ​?where ?where 18:01:59 `? flower 18:02:01 flower. what IS a flower? 18:02:08 `? ievan 18:02:11 ievan is basically http://www.youtube.com/watch?v=4om1rQKPijI 18:02:13 One might say the same thing about birds. 18:02:14 `? intercal 18:02:16 INTERCAL has excellent features for modular program for the enterprise market. 18:02:50 that video is awesome. 18:03:23 `? monads 18:03:25 Monads are just monoids in the category of endofunctors. 18:03:26 `? monad 18:03:28 Monads are just monoids in the category of endofunctors. 18:03:37 `? u 18:03:39 u monad? 18:04:03 Gregor: curl http://sprunge.us/jSEE | uudecode 18:05:27 `? c 18:05:29 C is the language of��V�>WIד�.��Segmentation fault 18:05:43 shachaf: It's "ask". 18:05:48 CakeProphet: Also, stop spamming. 18:06:00 what is spam? 18:07:48 ^celebrate 18:07:48 \o| |o| |o/ \m/ \m/ |o/ \o/ \o| \m/ \m/ \o| |o| |o/ 18:07:49 | | | `\o/´ | | | `\o/´ | | | 18:07:49 |\ |\ |\ | /´\ /< |\ | /< /´\ |\ 18:07:49 /`¯|_) /`\ 18:07:49 (_| (_| |_) 18:07:54 oh right. 18:08:35 but how can that be spam if it brings so much joy? 18:08:55 learning joy 18:09:42 > var "!help" 18:09:44 !help 18:09:48 aw. 18:10:52 I think we should all make bots. 18:10:58 -!- Ngevd has joined. 18:11:00 only if they're good bots 18:11:44 and have as many bots as regular spamm^H^H^H^H^Hhumans 18:14:24 I wouldn't like a channel full of bad bots...but good bots are good 18:16:21 I'm considering writing one in some esolang, but I don't know what purpose it would serve. 18:16:30 being good 18:17:08 it could hold arbitrary state and not ignore bot commands. 18:17:57 elliott: abort: no diffs found 18:18:00 fungot holds arbitrary state too 18:18:00 elliott: its been said that atlanta is better than bfbot!) :p. i think i get it completely now that i'm already there. 18:18:04 and also have a dice roller, or some kind of esolang interpreter. 18:18:05 elliott: What is? 18:18:06 Oh. 18:18:11 Gregor: Uhh, I did "hg bundle" and it said 1 changeset found. 18:18:17 Gregor: What'd I do wrong? 18:18:18 Hm 18:18:24 Nothing by the sounds of it :P 18:18:26 [elliott@dinky PRIVMSG]$ hg bundle bundle.hg 18:18:26 searching for changes 18:18:26 1 changesets found 18:18:30 I'll re-uuencode it. 18:18:48 Gregor: http://sprunge.us/jGde ;; well this doesn't look any longer. 18:18:53 Hmm 18:18:59 Uhh, hg export then? :P 18:19:10 Never seen bundle just lie >_> 18:19:31 Gregor: http://sprunge.us/fcjP 18:20:02 monqy: the problem is that every utility I can think of is pretty much made capable by hackego. :P 18:20:26 `echo this crap is useless lol > bullshitfile 18:20:28 this crap is useless lol > bullshitfile 18:20:33 ... I am el stupid 18:20:35 `run echo this crap is useless lol > bullshitfile 18:20:37 No output. 18:20:46 `revert -1 18:21:05 OK, none o' that :P 18:21:08 `cat bullshitfile 18:21:10 this crap is useless lol 18:21:13 `revert 18:22:26 `revert 18:22:28 abort: repository /tmp/hackenv.hg.19659 not found! 18:22:31 lolwut 18:24:13 Gregor, tell me what caused that when you find out 18:25:28 `revert 18:25:29 abort: repository /tmp/hackenv.hg.19878 not found! 18:25:42 `revert 18:25:43 Done. 18:25:47 Okidokie :P 18:25:51 `cat bullshitfile 18:25:53 cat: bullshitfile: No such file or directory 18:26:34 There's no semilogical reason why elliott should have failed, but it did >_> 18:26:44 ?? 18:26:51 Gregor: Yo, ping me when you apply my changes so I can test them :P 18:27:03 elliott: Err, done. 18:27:05 abort: repository /tmp/hackenv.hg.19878 not found! 18:27:06 Hmm 18:27:07 elliott: That's what I was just testing. 18:27:08 Then fixing. 18:27:13 Gregor: Why does mv blah .hg work 18:27:15 But not hg -R blah 18:27:20 elliott: Excellent question. 18:27:26 elliott: One I didn't bother to answer, I just mv'd :P 18:27:37 Gregor: Oh, did you have the same problem previously? 18:27:49 elliott: Yeah. 18:28:01 Gregor: Right, well, make the same modification to mine :P 18:28:04 elliott: what does hg blah do? 18:28:05 Or I can if you really want 18:28:07 olsner: Blahs 18:28:09 elliott: Already have. 18:28:13 Gregor: Oh :P 18:28:15 `hg blah 18:28:15 isn't -R supposed to point to foo as in foo/.hg 18:28:18 hg: unknown command 'blah' \ Mercurial Distributed SCM \ \ basic commands: \ \ add add the specified files on the next commit \ annotate show changeset information by line for each file \ clone make a copy of an existing repository \ commit commit the specified files or all outstanding changes \ diff 18:28:22 rather than to foo/.hg directly 18:28:30 Vorpal: I dunno, you can give it a bundle file 18:28:33 -R bundle.hg 18:28:35 `run echo shitfuck >fuckshit 18:28:35 hm okay 18:28:37 No output. 18:28:40 `revert 18:28:41 Done. 18:28:44 `cat fuckshit 18:28:46 cat: fuckshit: No such file or directory 18:28:48 `help 18:28:49 Yay 18:28:49 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:29:11 lololol there's clock sync issues, fshg reported that those happened "28 seconds from now" 18:29:21 heh 18:29:22 Nice 18:29:26 `revert !#$ 18:29:27 abort: unknown revision '!#$'! 18:29:30 8 seconds ago now! 18:29:33 `revert -- 18:29:39 ...hope that fails :P 18:29:47 Uhh.... HackEgo? :P 18:29:51 `type 18:29:52 hg revert: option -r requires argument hg revert [OPTION]... [-r REV] [NAME]... restore individual files or directories to an earlier state NOTE: This command is most likely not what you are looking for. revert will partially overwrite content in the working directory without changing the working directory parents. Use "hg update -r rev" to check out earlier revisions, or "hg update --clean ." to undo a merge which has added another parent. With no revision spec 18:29:56 Nice 18:29:58 elliott, ouch 18:30:08 elliott: lul 18:30:15 `revert --; cat /etc/passwd 18:30:16 abort: unknown revision '--; cat /etc/passwd'! 18:30:19 aww 18:30:27 `cat /etc/passwd 18:30:29 cat: /etc/passwd: No such file or directory 18:30:32 *snaps* 18:30:32 Vorpal doesn't know bash. 18:30:50 CakeProphet, ...? 18:30:57 Gregor: Except that the hg command is run on the host :P 18:31:01 inded 18:31:03 indeed* 18:31:05 Gregor: So `revert is TECHNICALLY the most viable exploit vector at this point :P 18:31:13 elliott: True, but /etc/passwd is still useless *shrugs* 18:31:19 Gregor: (Can't you run the hg stuff from inside the repo?) 18:31:29 I guess that's vulnerable to breakage unless you have some `restorerepo command. 18:31:32 `run find . -delete 18:31:34 No output. 18:31:37 `ls 18:31:38 bin \ canary \ karma \ lastquote \ lib \ paste \ quotes \ share \ wisdom 18:31:42 Gregor, yes I know, but it was more a proof of concept. If I had been evil I would have used rm -rf ~ instead 18:31:54 Gregor: (Can't you run the hg stuff from inside the repo?) // in principle, but I wanted to maintain the invariant that one command = one commit 18:31:59 Gregor: Right 18:32:06 Gregor: You don't have that invariant 18:32:09 `run find . -name '*' -delete 18:32:09 It's one command = zero or one commits :P 18:32:11 No output. 18:32:12 `ls 18:32:14 bin \ canary \ karma \ lastquote \ lib \ paste \ quotes \ share \ wisdom 18:32:18 `ls bin 18:32:19 CakeProphet: You're never gonna figure out how that works. 18:32:20 ​? \ addquote \ allquotes \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ marco \ paste \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ ping \ prefixes \ qc \ quote \ quotes \ roll \ runperl \ toutf8 18:32:22 I suggest giving up. 18:32:36 elliott: how does it work (or not work, actually) 18:33:16 Gregor: Yo, there's a hole in http://sprunge.us/fcjP 18:33:20 Wait, I thought the gmail UI changed? 18:33:33 elliott: There's a hole in my bucket, my bucket, my bucket. 18:33:39 Gregor: s{'PRIVMSG '$CHANNEL' :'$MSG}{"PRIVMSG $CHANNEL :$MSG"} pls 18:34:40 elliott: Done 18:34:46 Gregor: Thx 18:36:57 -!- Siddiq has joined. 18:37:15 hello Siddiq 18:37:17 `? welcome 18:37:19 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 18:37:53 -!- Zwaarddijk has quit (Ping timeout: 240 seconds). 18:38:22 hi elliot 18:38:39 hi augur 18:38:40 elliott: I never got a welcome like that! 18:38:57 hello Siddiq 18:39:29 how are you 18:39:47 shachaf: Blah blah blah welcome blah blah blah hub blah blah blah exoteric voodoo programming blah blah blah 18:40:05 shachaf: Blah blah blah matrix of solidity blah blah blah 18:40:14 what is this 18:40:15 exoteric! 18:40:42 i would like to reiterate and expound upon what gregor just said 18:40:52 but i am too locked into my matrix of solidity 18:40:57 "blah blah blah spoons blah blah blah swordfish blah blah blah" 18:41:01 and so i will go away instead 18:41:10 shachaf: nope nope nope, there is no spoon 18:41:21 chuck testa! 18:41:28 -!- Siddiq has left. 18:41:35 Well that was expected :P 18:41:46 olsner: I see that it goes unappreciated. :-( 18:45:32 -!- ais523 has changed nick to ais523\unfoog. 18:45:39 there should be an esolang based on the other sort of esotericness 18:46:07 wait, lets make a bf clone with renamed command, like [ = matrix of solidity 18:46:18 ais523\unfoog: unfoog? I heard one of those guys lost their game because they were too busy chatting on IRC! 18:46:20 how about an ... esoteric programming esolang? 18:46:33 olsner, that is what I suggested 18:46:46 was the matrix of solidity thing once said by a parting visitor to this channel? 18:46:51 ais523\unfoog, hi there, is crawl: stone soup any good? 18:46:51 `quote matrix of 18:46:53 303) enjoy being locked in your matrix of solidity 18:47:00 Vorpal: I have a personal intense dislike for it 18:47:06 ais523\unfoog: Oh yeah, me and monqy are trying to tell Vorpal not to play Crawl because it sucks; he won't listen 18:47:07 ais523\unfoog, ah okay, why? 18:47:12 to the extent that I've been kicked from ##crawl-dev for trolling at least twice 18:47:15 elliott, monqy was just echoing you 18:47:21 elliott: was it followed by a ragepart? 18:47:22 Vorpal: because on paper it sounds like the sort of roguelike I'd like, but in practice it's awful 18:47:23 Vorpal: No, he said a bunch of things of his own accord 18:47:27 and also, it's getting worse as tme goes on 18:47:28 And is actually an experienced Crawl player 18:47:33 I'm not a very good Crawl player 18:47:37 ais523\unfoog, ah 18:47:38 I keep getting killed by the interface 18:47:45 which the Crawl devs keep insisting is better than NetHack's 18:47:46 aha, that sort of issues 18:47:49 either that, or killed by boredom 18:47:53 (indirectly, but still) 18:48:20 the best strategy is, to, whenever you come across something you're not certain you can handle, run away and go somewhere else 18:49:00 ais523\unfoog, well I have to say that nethack's interface is not exactly perfect though. 18:49:11 Vorpal: so do I 18:49:32 did you not notice that I was making a NetHack variant specifically for the purpose of having a better interface? 18:49:33 ais523 "AceHack" \unfoog must surely think NetHack's interface is the best. 18:49:44 what if fungot could invent esolangs based on trawling the wiki or something 18:49:45 olsner: eek. ppt :( emacs as my windowing system... fresco/ berlin has some *really* nice ideas, but also quite a few haskell papers already 18:49:54 olsner: Oooh, that'd be a good grammar. 18:50:01 ais523\unfoog, I thought it fixed a number of other issues, as well as some interface issues 18:50:10 Vorpal: what, AceHack? 18:50:15 ais523\unfoog, yes 18:50:19 indeed, it has bugfixes 18:50:30 ais523\unfoog, quite a few bug fixes iir 18:50:31 iirc* 18:50:31 a few marginal balance changes, but only when the original is mad enough to count as a bug 18:50:39 ais523\unfoog: BTW, is there a way to make AceHack /not/ put everything in a single acehackdir? 18:50:39 yep, but I still haven't fixed all the bugs yet 18:50:54 ais523\unfoog, where was the acehack changelog now agai 18:50:56 again* 18:50:57 elliott: not a supported way yet; however, I acknowledge that what it does at the moment is obviously mad 18:51:12 ais523\unfoog: What's the unsupported way? 18:51:14 there is a define somewhere called VAR_PLAYGROUND or something like that 18:51:22 I don't know what it does, but believe it's relevant 18:51:29 I also suspect it doesn't work 18:51:37 with the build system 18:51:42 but if you can get it working, good for you 18:51:43 ais523\unfoog: If I write a patch to make it do something vaguely FHSy or Kitten, will you accept it? :p 18:51:55 s/or/for/ 18:52:15 " eek. ppt :(", looks like fungot didn't appreciate my idea though 18:52:15 olsner: my home network is down for me 18:52:16 elliott: I won't reject patches that are obvious improvements; you might have to clear it with the server admins and whatever insane method they're using to get it working on servers, though 18:52:26 olsner: why did you send it a powerpoint? 18:52:30 use odp instead 18:52:32 ais523\unfoog: I could provde a --disable-sanity option for them :) 18:52:37 ais523\unfoog, well, from the nethack wiki... "The vibrating square is visible from a distance.", I'm not sure that counts as a bug in the original. 18:52:55 ais523\unfoog, after all, unless it has quite a large amplitude you can't really spot it from far away 18:53:00 ais523\unfoog: (I realise --disable-bugfix is never a good option to add) 18:53:06 elliott: the AceHack server admins are kerio and rawrmage; kerio reminds me of you, except more annoying and with worse taste in languages 18:53:17 Vorpal: it's an interface improvement 18:53:19 ais523\unfoog: oh dear; I don't think I'll like kerio 18:53:26 probably not, I don't think you would 18:53:46 * elliott manages to /just/ narrowly avoid being too annoying to not hate himself 18:53:49 Vorpal: it's flavoured as the air above the vibrating square glowing 18:54:01 ah 18:54:02 ais523\unfoog: wait, what kind of language taste are we talking about here? 18:54:16 C++? PHP? VB? SpectateSwamp Desktop Search? 18:54:23 (I'm sure you could program /something/ with the last one) 18:54:27 fanboy-level Python support 18:54:31 ais523\unfoog: I sent it an IRC message, not a powerpoint... I think ppt is just fungot's way of saying pfft 18:54:32 olsner: can you handle it? generally :) unless it's boring enough to now allow writing to code area... 18:54:37 ais523\unfoog: It's worse than I ever could have imagined :'( 18:55:08 ais523\unfoog, "Swapping your wielded and readied weapons no longer costs a turn. (Readying a weapon directly, something not possible in vanilla NetHack but possible in AceHack, does.) " hm, why would switching weapon not take time? 18:55:10 ais523\unfoog: If I had vagrant's source I'd tell you to show em vagrant :P 18:55:16 hmm, the fun got is amazingly intelligible today, have you changed the mode or something? 18:55:22 elliott: to get an idea of kerio, you could check the QDB; it submits by POST so I can't link to it, but http://qdb.rawrnix.com/?search and search for "kerio" 18:55:23 ^style 18:55:23 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* jargon lovecraft nethack pa sms speeches ss wp youtube 18:55:25 ^style fungot 18:55:26 Selected style: fungot (What I've said myself) 18:55:41 ais523\unfoog: I think I already read all the quotes in that qdb :) I only vaguely remember anything to do with kerio, but maybe I'm forgetful 18:55:44 Vorpal: because you're just switching items from one hand to the other 18:56:01 ais523\unfoog: wow, it jumps you to the bottom of the page after you submit, too 18:56:02 pro design 18:56:08 ais523\unfoog, that still takes some time in real life 18:56:14 I am partial to "angband is checkers on a 6400x6400 board", though 18:56:40 ha 18:56:43 -!- quintopia has quit (Ping timeout: 244 seconds). 18:57:34 ais523\unfoog: do you have any experience with the wikidumps? 18:57:35 -!- Zuu_ has joined. 18:57:59 elliott: you mean, dumps of MediaWiki wikis? 18:57:59 * elliott is wondering if they might work with sqlite 18:58:05 yes, esolang's to be exact 18:58:08 the sql dumps 18:58:09 not really; I know that they're pretty much just a sequence of SQL commands 18:58:12 but not more than that 18:58:18 (1,'Gravity/w/','','Hi, you\'re scum',89,'Oerjan','20090727114914',1,'',14965,14942) 18:58:18 wat 18:58:25 ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 18:58:30 ais523\unfoog: a worryingly non-portable-looking sequence 18:58:48 yes 18:58:49 mysql dumps don't work out of the box with sqlite at least :) 18:59:06 yep, syntax errors 18:59:10 Error: near line 711: near "DELAYED": syntax error 18:59:10 Error: near line 719: near "unsigned": syntax error 18:59:10 Error: near line 743: near "DELAYED": syntax error 18:59:39 Shell script that converts a mysqldump file into Sqlite3 compatible SQL file. It uses awk for speed and portability. Runs on Windows with the Cygwin tool for Windows. 18:59:40 woot 18:59:45 https://gist.github.com/943776 18:59:46 I think I wrote a sed script to partially convert sql files one time, but noticed that other parts of that system used mysql features and couldn't use sqlite anyway 18:59:54 olsner: see above :P 19:00:07 mysqldump --compatible=ansi --skip-extended-insert --compact "$@" | \ 19:00:12 oh c'mon, let me specify my own file :) 19:00:36 ais523\unfoog, "A new "solo mode" prevents bones files from being loaded, and makes startscumming visible (normally, AceHack allows players to view and reroll their stats and inventory before starting the game). " <-- sure I can see the reason for all of these points, but why is the "don't load bone files" under the same option as "make startscumming visible"? 19:01:08 sigh, still a fuckton of syntax errors 19:01:21 elliott, why are you using mysql!? 19:01:31 Vorpal: read context or shut up 19:01:42 Vorpal: because they're both pretty much a case of showing that streaks are real 19:01:43 i'm trying /not/ to use mysql 19:02:06 Vorpal: he's got a mysql-specific DB dump, and is trying to convert it to something non-mysql, I guess by importing it into mysql and exporting it again 19:02:10 ah 19:02:16 ais523\unfoog: nope, by running an awk script over it 19:02:21 i'm trying to avoid installing mysql :) 19:03:07 ais523\unfoog, well, bone files are pretty much hit and miss, I wouldn't call it unreal just because you got a lucky bone. Same as I wouldn't call it unreal if the PRNG happened to favour you when fighting Rodney 19:03:08 -!- Zwaarddijk has joined. 19:03:30 Vorpal: bones files can be manipulated 19:03:40 and in fact, often /are/ in record-aiming play 19:04:00 * elliott runs a vi command over 100 megs of data 19:04:13 ais523\unfoog, how, unless you have write access to the files in question? 19:04:27 Vorpal: by playing a game on another account? 19:04:35 pudding farm for 20 hours, genocide P, suicide 19:04:38 well sure, but anyone could get that bone 19:04:41 you might not 19:04:48 do it with your other character waiting on the level above 19:05:05 if you don't get it, do it all again on the level below 19:05:10 then the level below that if it still doesn't work 19:05:12 etc 19:05:21 quite a lot of work, but sure 19:05:27 Vorpal: it's been done 19:05:31 what are the chances for bones? 19:05:31 more than once, in fact 19:05:49 leaving it's depth-dependent; loading is a fixed probability IIRC, although I don't remember whether it's 1/3 or 1/2 19:06:10 that much, hm 19:06:11 -!- quintopia has joined. 19:06:11 -!- quintopia has quit (Changing host). 19:06:11 -!- quintopia has joined. 19:06:25 Vorpal: well, normally a bones file doesn't exist for any given level 19:06:39 hm? 19:06:46 ais523\unfoog: wiki spam 19:06:54 ais523\unfoog: quick, what table are all the /newest/ revisions of articles stored in, in MW? 19:06:58 Vorpal: because levels are visited much more often than they are died in 19:07:06 elliott: gah, I can't remember 19:07:11 it may be "page" or "pages" or something like that 19:07:11 ais523\unfoog: wiki spam <-- what 19:07:23 ais523\unfoog: i'll grep :P 19:07:25 ais523\unfoog, ah right 19:07:28 I ask other people to report it 19:07:34 so it'd be hypocritical not to do it myself? 19:07:54 ais523\unfoog: why the hell does MW prefix fields with a shortened version of the table name?,.. 19:07:56 ais523\unfoog, you could just fix it without reporting 19:07:58 s/fields/columns/ 19:08:05 -!- Zuu_ has quit (Ping timeout: 244 seconds). 19:08:17 elliott: presumably so it doesn't need to alias them in joins? 19:08:22 elliott, I guess it might make joins easier, avoiding some ... 19:08:23 snap 19:08:23 ais523\unfoog: :( 19:08:31 nasty 19:08:36 it does that everywhere, btw, even in the API 19:08:39 :( 19:08:40 nasty 19:11:23 ais523\unfoog: hmm, mw_page seems to contain everything /but/ the text 19:11:37 what about "revisions"? 19:11:39 `page_latest` int(8) unsigned NOT NULL default '0', 19:11:39 worryingly, no foreign key here... 19:11:52 ais523\unfoog: there's an mw_archive 19:11:58 but the name of that seems to suggest it's all /old/ revisions 19:12:00 that's deleted pages IIRC 19:12:08 oh 19:12:11 those are included in the dump?? 19:12:14 cooool 19:12:15 perhaps not, why would they be in the dump? 19:12:27 ais523\unfoog: well, they are 19:12:29 I'm really not an expert on MediaWiki's internals 19:12:31 INSERT DELAYED INTO `mw_archive` (`ar_namespace`, `ar_title`, `ar_text`, `ar_comment`, `ar_user`, `ar_user_text`, `ar_timestamp`, `ar_minor_edit`, `ar_flags`, `ar_rev_id`, `ar_text_id`) VALUES (1,'Turing_tarpit','','wDMfMOGCFBaes',0,'202.99.29.27','20090721214654',0,'',14920,14897),(1,'Fractran_plus_plus/','','Bad Credit Debt Consolidation Personal Loan',0,'218.23.143.125','20090724082501',0,'',14937,14914),(1,'W/','','Hi, I`m new',0,'212.235.107 19:12:31 .87','20090724154130',0,'',14940,14917),(2,'508_buy_zyvox','','New page: [http://www.mcgillcorp.industrialguard.com/invboard/index.php?showuser=910 Metformin] He send somebody instead of going hisself? Bad for business all that noise. Well sport have you figure...',422,'508 buy zyvox','20090725145129',0,'',14948,14925),(2,'508_buy_zyvox','','rm spam',139,'Smjg','20090725150733',0,'',14949,14926),(1,'Gravity/w/','','Hi, I`m new',0,'212.235.107.87', 19:12:31 '20090727090915',0,'',14964,14941),(1,'Gravity/w/','','Hi, you\'re scum',89,'Oerjan','20090727114914',1,'',14965,14942),(1,'W/','','Hi! New member here :)',0,'91.121.12.73','20090727235547',0,'',14977,14954),(1,'Gravity/w/','','Hi! New member here :)',0,'91.121.12.73','20090801083818',0,'',15004,14981),(1,'W/','','Hi! New member here :)',0,'91.121.12.73','20090815065357',0,'',15154,15131),(1,'Gravity/w/','','Hi! New member here :)',0,'91.121.12.73 19:12:36 ','20090816162120',0,'',15178,15155),(1,'Befunge/index.php','','NYC Photo Studio 917 484 6430',0,'212.235.107.27','20090820031732',0,'',15318,15293),(2,'5k63ded6ttcyf67','','New page: easf57ase7fske99898ffhhfh So. \'D\' -- that should be a guide. \" \"The man was a Spaniard. I suggest that \'D\' stands for Dolores a common female name in Spain. \" \"Good Watson very good -- b...',436,'5k63ded6ttcyf67','20090824085757',0,'',15364,15339),(1,'Befu 19:12:39 spam 19:12:41 nge/index.php','','Registration and Hosting Godaddy Promo Codes',0,'212.235.107.215','20090828053353',0,'',15451,15425),(1,'Main_Page/index.php','','Анекдоты',0,'82.193.114.92','20090627120826',0,'',14747,14723),(1,'Main_Page/index.php','',' yep, that looks like deleted pages to me 19:12:44 elliott, try a pastebin 19:13:09 Vorpal: it was a mistake 19:13:12 okay 19:13:16 and it was only five lines :) 19:13:22 elliott, five huge lines 19:13:27 (0,'AAAAAAAAAAAAAA','','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',0,'66.210.7.66','20091008222055',0,'',16169,16139) 19:13:31 a page too beautiful for this world 19:13:37 elliott, I have this thing we call line wrapping. 19:13:40 ais523\unfoog: aha, there's mw_revision 19:13:52 sounds like the right one 19:13:57 oh, also mw_text 19:14:07 mw_text is... confusing 19:14:10 ah, that one might be for current revisions only 19:14:12 all the columns but one start with "old_" 19:14:19 the one that doesn't is "inverse_timestamp" 19:14:34 it /does/ contain text though 19:14:40 elliott: "oldid" is actually the name for a revision's ID number, for historical reasons 19:14:43 elliott: what, inverse_timestamp? 19:14:55 ais523\unfoog: no, mw_text :P 19:15:05 ais523\unfoog: and ok, but there's even like 19:15:09 `old_comment` tinyblob NOT NULL, 19:15:09 `old_user` int(5) unsigned NOT NULL default '0', 19:15:16 what is an inverse time stamp? 19:15:26 does the concept of the inverse of the timestamp even make sense 19:16:40 INSERT DELAYED INTO `mw_text` (`old_id`, `old_namespace`, `old_title`, `old_text`, `old_comment`, `old_user`, `old_user_text`, `old_timestamp`, `old_minor_edit`, `old_flags`, `inverse_timestamp`) VALUES (1,0,'Main_Page','Wiki software successfully installed.\n\nPlease see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]\nand the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User\'s Guide] for u 19:16:41 sage and configuration help.','',0,'MediaWiki default','20050406083246',0,'utf-8','79949593916753'),(15,0,'PATH','\'\'\'PATH\'\'\', invented by Francis Rogers in August 2003, is a two-dimensional language inspired by [[Brainfuck]] and [[Befunge]]. PATH\'s environment, like Brainfuck\'s, consists of an array of memory cells all initialized to zero and character-based standard input and output. PATH understands the following commands:\n\n $ - Start 19:16:41 the program here, heading right.\n # - End the program.\n + - Increment the current memory cell.\n - - Decrement the current memory cell.\n } - Move to the next memory cell.\n 19:16:49 ais523\unfoog: ah, mw_text looks like the text of /all/ revisions 19:16:53 going by that main page thing 19:17:10 [[PATH]] is our earliest non-deleted page, looks like 19:17:17 elliott, but what is an inverse time stamp 19:17:23 Vorpal: I DON'T KNOW 19:18:19 http://www.mediawiki.org/wiki/Help:Tables 19:18:21 that's not what I want, MW 19:18:30 I want help on the /other/ kind of table 19:18:40 http://www.mediawiki.org/wiki/Manual:Database_layout yay 19:19:11 http://esolangs.org/wiki/Special:Version <-- seriously? 19:19:11 http://www.mediawiki.org/wiki/Manual:Text_table ;; gah, it must have changed since Esolang's version 19:19:19 1.9.3? 19:19:30 Vorpal: hey, we're on PHP 5, that's impressively modern for Esolang 19:19:43 what is the current php version? 19:19:46 I have no idea 19:19:54 5.3.8, looks like 19:20:12 mysql 4? 19:20:14 oh come on 19:20:31 I've used MySQL 3 19:20:35 so have I 19:21:24 "Version 5.1 contained 20 known crashing and wrong result bugs in addition to the 35 present in version 5.0 (almost all fixed as of release 5.1.51)." 19:21:33 "Version 5.0: beta from March 2005, production release October 2005 (cursors, stored procedures, triggers, views, XA transactions) 19:21:33 The developer of the Federated Storage Engine states that "The Federated Storage Engine is a proof-of-concept storage engine",[31] but the main distributions of MySQL version 5.0 included it and turned it on by default. Documentation of some of the short-comings appears in "MySQL Federated Tables: The Missing Manual".[32]" 19:21:38 Vorpal: can't say i'm unhappy we're on mysql 4! 19:22:11 heh 19:22:49 [elliott@dinky tmp]$ grep 'INSERT DELAYED INTO `mw_text`' latest.sql | wc -l 19:22:49 150 19:22:56 oh great, I have to parse multiple records per line 19:22:59 what is an delayed insert ? 19:23:11 [elliott@dinky tmp]$ grep 'INSERT DELAYED INTO `mw_text`' latest.sql | head -n 1 | wc -c 19:23:11 1041590 19:23:15 oh wait, related to foreign keys I guess? 19:23:16 LINES SHOULD NOT BE THAT LONG 19:23:21 why just not do it in a transaction 19:23:29 does mysql even have transactions :) 19:23:37 elliott, only with innodb iirc? 19:23:45 there you go then 19:23:49 hm 19:24:00 mysql is a joke 19:24:04 sql is a joke 19:24:18 elliott, not for all tasks 19:24:22 for all tasks :) 19:24:27 not really 19:24:32 yup! 19:24:41 ok, at least this format looks relatively simple 19:24:43 the relational model isn't always wrong 19:24:49 time to bust out the ghci guns 19:24:54 Vorpal: sql violates the relational model's fundamental principles 19:25:00 i repeat: for all tasks 19:25:08 elliott, oh? which principles ? 19:25:42 Vorpal: http://en.wikipedia.org/wiki/Codd's_12_rules 19:25:53 there's a list of the ones that SQL breaks somewhere 19:25:56 tl;dr "almost all of them" 19:26:28 ISTR SQL has problems with ACID too, like by default the I part is relaxed or something 19:26:54 hm 19:27:22 well rule 3 is implemented at least 19:27:59 http://en.wikipedia.org/wiki/Relational_model#SQL_and_the_relational_model 19:28:06 rule 4 too, at least for postgre 19:28:17 "SQL's NULL construct was intended to be part of a three-valued logic system, but fell short of that due to logical errors in the standard and in its implementations." 19:28:22 so it doesn't do rule 3 19:28:48 hm 19:31:50 hm 19:31:53 hm 19:31:54 oh well 19:33:12 Huh, reddit went down. 19:33:34 it does that a lot 19:33:53 oh, recently discovered; part of Amazon's load balancing stuff relies on ISPs respecting the DNS standard 19:34:02 they don't, and as a result it often sends loads of data to the wrong person 19:36:05 [elliott@dinky mw-text]$ ./extract latest.sql 19:36:05 Killed 19:36:05 wow, what? 19:36:29 check the syslog in case it's the OOM killer 19:36:40 it's got to be that or a self-kill, surely 19:38:00 syslog is just syslog-ng bragging about it starting up and shutting down 19:38:08 [ 8960.559879] Out of memory: Kill process 3630 (extract) score 692 or sacrifice child 19:38:08 [ 8960.559885] Killed process 3630 (extract) total-vm:2712256kB, anon-rss:2691632kB, file-rss:0kB 19:38:09 -- dmesg 19:38:10 -!- Zuu_ has joined. 19:38:16 elliott, impressive 19:38:27 not really, it just used too much memory :P 19:38:30 I have no swap 19:38:34 ah 19:38:39 elliott, you need more ram then 19:38:48 elliott, or not read the whole file at once 19:38:49 no, I need a program that isn't broken 19:38:56 the file is 100 megs 19:38:58 the file is not the problem 19:38:59 heh 19:39:14 elliott: "(extract)"? 19:39:20 ais523\unfoog: that's the name of the process 19:39:22 also, I bet the "sacrifice child" is deliberate 19:39:24 ah, I see 19:39:50 I got an actual out of memory error a while back, I think because I turned the OOM killer off 19:39:59 Hello! 19:40:03 Am I here? 19:40:05 no 19:40:06 ais523\unfoog, what happened then? oops? 19:40:09 but it hit the right process (I was trying to do a brute-force A* search on a variant of the travelling salesman problem) 19:40:18 Vorpal: no, malloc failed 19:40:21 ah 19:40:28 and the process in question reacted by exiting 19:40:31 so all was well 19:40:41 monqy, oh, cool 19:40:50 come to think of it, though, the malloc failure's going to hit a process at random based on how often they request memory 19:41:01 really, we need a non-overcommit OOM mallocfailer 19:41:12 good idea 19:41:18 which is like an OOM killer, except it decides just before memory gets actually maxed which process/processes are going to get malloc failures first 19:41:37 very good idea that 19:41:50 presumably each process has a memory full percentage 19:42:06 which might be 95% for a really greedy killable process, 98% for something more normal, and 100% for init 19:42:29 maybe I'm just confused as to what breakSubstring does... 19:42:52 Vorpal: it's actually doable in glibc, I think 19:42:53 ais523\unfoog, oh btw, oom killer is going to introduce some non-determinism in secret project. Example: fork() a few times, and start mallocing in all child processes, then from the parent process report which child is killed first 19:43:00 /proc can say what the OOM score of a process is 19:43:04 it might even be that the parent is killed first 19:43:11 ais523\unfoog: we just need a system that has ~a hundred times the heap, and performs gracefully under conditions usually referred to as "swapping" 19:43:21 Vorpal: right, indeed; one of the assumptions I make on processes is that they don't cap the memory, just like another is no infinite busyloops 19:43:22 ais523\unfoog: you could call it... orthogonal persistence! 19:43:29 ais523\unfoog, ah 19:43:34 -!- GreaseMonkey has joined. 19:43:38 elliott, the answer to all things. 19:43:40 (the Secret Project rewrites processes to use cooperative multitasking, effectively, to make them deterministic) 19:43:42 ais523\unfoog: btw, I wrote a proof-of-concept of my busyloop exploiter 19:43:48 ais523\unfoog: and thought of a way to partially fix the problem in doing so 19:44:11 elliott: nanosleep(1) in the loop? 19:44:19 so you're seeding on the scheduler? 19:44:19 no, I mean fix the problem in the Secret Project 19:44:23 ah, what? 19:44:28 ais523\unfoog: Implement alarm/ualarm in term of context switches 19:44:31 rather than real time or whatever 19:44:40 but that would change the timings 19:44:45 ais523\unfoog: huh? 19:44:56 the program can't observe how much time passes 19:44:58 if you set alarm(1) to 100 context switches not 1 second, say 19:45:08 like i said, the program can't observe how much time passes 19:45:09 elliott: sure it can, it can use gettimeofday or whatever 19:45:11 so what does it matter? 19:45:17 ais523\unfoog: that gives nondeterminism... 19:45:22 surely you're overriding the clock 19:45:23 elliott: it doesn't return the actual time 19:45:34 but secret project's calculation of what the time should be 19:45:35 ais523\unfoog: why not just set the time at 0 always? 19:45:45 elliott: loads of programs break if you do that 19:45:50 ais523\unfoog: like what? 19:45:52 elliott, that would break something like cfunge running mycology 19:46:03 here, have a clue: setting the time at 0 always is fundamentally incompatible with the Secret Project's purpose 19:46:12 elliott, since it checks what granularity HRTI provides 19:46:17 that's a clue as to what it's for that hasn't been given before, I think 19:46:25 hmm, okay 19:46:33 as a bonus clue, the [CENSORED]s in the scheduling description were all related to simulated real time 19:46:34 ais523\unfoog: btw, will there be a way to override the scheduler stuff? 19:46:44 and do what instead? 19:46:46 I'd like to avoid it, as I don't need that level of nondeterminism, and I'd like to be able to use -j3 19:46:49 ais523\unfoog: just use the normal scheduler 19:47:20 that again is defeating the point of reproducibility; actually, you'd have to comment out large swathes of the Secret Project to do that 19:47:29 because most of the complicated stuff is the scheduler 19:47:40 ais523\unfoog: oh, stop it, you /don't/ get perfect reproducibility 19:47:51 so you can't act like wanting "as much reproducibility as possible without sacrificing X" is an insane desire 19:48:05 elliott: I want perfect reproducibility on a subset of programs 19:48:20 as large as is reasonable, but it's more important for a single program to be reproducible, than it is for all programs to be mostly reproducible 19:48:21 int main(){exec(argv)} # secret project 19:48:21 ais523\unfoog, oh I know of the use now. 19:48:25 Vorpal: really? 19:48:38 ais523\unfoog, well, a possible one that would fit rather well at least 19:48:41 go for it 19:48:42 Vorpal: go on 19:48:48 ais523\unfoog, it involves TAS. 19:48:56 I already proposed that, methinks 19:48:59 oh okay 19:48:59 also, this is meant to be for work, isn't it? 19:49:03 hm okay 19:49:04 elliott: no, haha 19:49:05 I doubt ais523\unfoog is paid to do TASes 19:49:08 I have something for work which is vaguely similar 19:49:13 but that's entirely a coincidence 19:49:17 ais523\unfoog: oh, okay. /is/ it TASes, then? 19:49:20 ais523\unfoog, well, is it related to doing TAS? 19:49:24 elliott: it is related to those, yes 19:49:26 but keep it secret 19:49:31 haha 19:49:33 ais523\unfoog: Is it related to the NetHack TAS? 19:49:38 aha 19:49:42 * elliott will keep a sekrit. 19:49:46 I have been trying to test it on NetHack, indeed 19:49:49 yay! 19:49:50 like the whole channel knows it now 19:49:58 secret enough :) 19:50:01 whatever 19:50:12 it took like a year for everyone to get the knowledge of my age 19:50:18 and then we all forgot again 19:50:19 even after it was repeatedly publicly stated 19:50:20 ais523\unfoog, well, no need to hide anything now. Unless there is more to it 19:50:23 ais523\unfoog: you did? 19:50:34 elliott: I'm really bad at remembering ages, they change too much 19:50:43 approximately half the time, I'm not even sure what my own is 19:50:48 elliott, I believe you would be 14 or 15 now? 19:50:50 although I know my birthdate and the formula 19:50:50 ais523\unfoog: don't worry, mine won't change for approx. another year 19:50:52 Vorpal: 16 19:51:09 * elliott legal :/ 19:51:09 elliott, oh really, well, retroactive happy bday then 19:51:13 soon, they'll be letting me drive cars :( 19:51:22 or, well, letting me attempt to prove I can drive a car 19:51:22 elliott, isn't that at 18? 19:51:28 17 I think 19:51:28 it is here 19:51:31 hm okay 19:51:32 you become legal to do different things at different ages 19:51:35 it's 17 for driving in the UK 19:51:50 surprising EU hasn't standardised that 19:52:07 it is definitely 18 in Sweden 19:52:10 Vorpal: the EU has standardised tons of things, doesn't mean the UK listens :) 19:52:15 FOR EXAMPLE 19:52:16 KRONOR 19:52:16 fair enough 19:52:17 COUGH COUGH 19:52:29 elliott, yeah £ too 19:52:39 anyway, our way of opting out is more amusing 19:53:01 Vorpal: Don't you guys just claim your economy is smaller on the inside? 19:53:05 Like a reverse TARDIS. 19:53:18 elliott, I think something like that yes. I don't have any reliable source on it though 19:53:21 Is the inside of Globen the size of a cupboard? 19:53:26 Is that your Fort Knox. 19:53:30 heh 19:54:06 ais523\unfoog: anyway, re: having to comment out huge parts of the secret project, I'll probably just turn everything into an option when I get my grubby paws on it 19:54:32 I'm just annoyed at having to implement BSD sockets 19:54:44 ais523\unfoog: anyway, if you're already doing alarm/ualarm with simulated time, my program /might/ not work 19:54:46 and I don't even know how socketcall(2) works, as it's not properly documented 19:54:53 ais523\unfoog: I can send a copy if you want to try it out, it's trivial to tset 19:54:54 test 19:54:57 may as well 19:55:22 ais523\unfoog: wget http://sprunge.us/FfMA -O nondet.c; gcc nondet.c 19:55:38 err, I'm going to read the file first ;) 19:55:53 ais523\unfoog: I doubt I could crash your system with a gcc call 19:55:58 you could run gcc in the secret project to be sure :) 19:56:06 ais523\unfoog: anyway, testing: 19:56:12 $ ./a.out | head -c 100 >a 19:56:13 elliott: the secret project is not designed for security, and in particular, doesn't sandbox several syscalls yet 19:56:13 ais523\unfoog, anyway, no need for secretness around the secret project any more now that we know what it is for. So what is the actual name of it (if it has any?) 19:56:14 $ ./a.out | head -c 100 >b 19:56:16 $ diff a b 19:56:18 Vorpal: Web of Lies 19:56:37 I think I'm going to keep calling it the Secret Project 19:56:45 but Web of Lies is a great name 19:56:50 ais523\unfoog, okay, that would definitely not have told us anything really beyond what we know, I assume it is a reference to that it lies to the program? 19:56:59 yes 19:57:05 and then invents more lies to cover its old ones 19:57:15 ais523\unfoog, what would the executable name be? wol? 19:57:20 ais523\unfoog: yeah, but I can sound credible if I call it the TSP Isolation System 19:57:22 elliott: I'm not even convinced I've implemented ualarm yet 19:57:23 Vorpal: weboflies 19:57:31 I'm not in the 8.3 era any more 19:57:34 heh 19:57:34 ais523\unfoog: you can use alarm(1) instead, and put alarm(1) at the end of handle 19:57:39 and it's not like it's the sort of thing you run constantly 19:57:43 ais523\unfoog: use head -c 10 if you do, it'll be much slower 19:58:04 Vorpal: congrats on getting it, btw 19:58:12 elliott, it was obvious 19:58:24 Vorpal: that's not what you said all the previous times 19:58:31 ais523\unfoog: you can use alarm(1) instead, and put alarm(1) at the end of handle 19:58:34 elliott, because it wasn't obvious in those cases 19:58:34 I wonder if this is actually allowed :) 19:58:36 it'll probably work though 19:58:50 elliott, man 7 signal says it is allowed 19:58:53 yay 19:58:54 ah, seems ualarm gets translated to setitimer(2) 19:59:05 -!- Ngevd has quit (Ping timeout: 240 seconds). 19:59:12 which I haven't implemented 19:59:25 * ais523\unfoog replaces with alarm 19:59:39 oh, there's clearly no point 19:59:49 "for (;;) i++;" always wedges the Secret Project, the way it works 19:59:50 implemented the same way? 20:00:05 Vorpal: I'd probably implement it the same way I implemented alarm, indeed 20:00:15 ais523\unfoog, oh you implement alarm 20:00:16 okay 20:00:29 Vorpal: well, what else can I do? I can't pass through the syscall 20:00:54 for obvious reasons 20:01:01 and returning ENOSYS would break too many programs 20:01:08 "for (;;) i++;" always wedges the Secret Project, the way it works 20:01:11 ais523\unfoog, so what do you implement alarm() as? 20:01:12 ais523\unfoog: do you support pthreads? 20:01:15 (getting random ENOSYSes is an occupational hazard of running under the Secret Project) 20:01:25 elliott: sort-of; it seems to work but I don't know why 20:01:29 heh 20:01:37 ais523\unfoog, and I thought alarm would be implemented with setitimer as well 20:01:48 ais523\unfoog: but yeah, afaict certain parts of the secret project are useful to me and the rest aren't 20:01:49 I /have/ special-cased futex(2), which is involved 20:01:55 so I'll probably just hack up my own thing based on it :P 20:02:59 wow, it's hard to get this ualarm-free version working 20:03:04 the increment loops keep syncing up 20:03:10 * elliott tries a division loop 20:03:10 ais523\unfoog, any plans for TAS other than of nethack? 20:03:15 Vorpal: perhaps 20:03:15 or acehack of course 20:03:25 in fact, I can TAS NetHack even without this, so it would be fun to use it on other games 20:03:51 ais523\unfoog: Will SDL work in it? :P 20:03:58 elliott: SDL already does work in it 20:04:01 ais523\unfoog: wow 20:04:05 ais523\unfoog, against what? X? 20:04:06 ais523\unfoog: how fast do SDL games go? 20:04:08 however, without sound 20:04:17 ais523\unfoog: what about opengl? 20:04:26 now that would be hard 20:04:30 and many programs (e.g. Battle for Wesnoth) don't handle SDL framebuffer properly 20:04:39 ais523\unfoog, report bugs? 20:04:47 elliott: remember when I was in here asking questions about Mesa's software emulation? 20:04:48 Vorpal: you are so naive 20:04:53 ais523\unfoog: ah 20:04:58 ais523\unfoog, so... it works? 20:04:58 ais523\unfoog: I'm, umm, not sure Minecraft will run at acceptable speeds 20:05:07 it's not meant for interactive use 20:05:19 as in, playing games full-speed 20:05:23 I'm trying to think of what a Minecraft TAS would look like now 20:05:24 there is noticeable slowdown, mostly 20:05:30 also, sometimes noticeable speedup 20:05:34 speedup? :D 20:05:39 when a program's just waiting 20:05:44 it can fast-forward 20:05:45 ais523\unfoog, how much of a FPS drop do you get from weboflies typically with opengl stuff? 20:05:56 -!- nooga has joined. 20:06:02 Vorpal: I don't have OpenGL working yet 20:06:06 but I imagine it'd be quite a large one 20:06:06 oh okay 20:06:16 the joyous thing is, that weboflies only has a performance penalty on syscalls 20:06:30 so heavy computation – like, say, emulating a GPU in software – isn't slowed down at all 20:06:35 heh 20:07:01 and is counted as zero emulated time 20:07:02 anyone experienced in Cocoa? 20:07:09 I wish SQLite used something other than SQL 20:07:12 nooga: I assume at least one person is, but possibly nobody here 20:07:27 too bad 20:07:37 I have a design problem 20:08:13 ais523\unfoog, so, when are we going to be able to get our hands on it? When it is complete? Or before that? 20:08:57 I suppose there's no real reason not to PM you/elliott the source now; although note that a) it needs to run as root, and b) it /will/ do insane things, so run it at your own risk 20:09:03 yay 20:09:07 I'm pretty sure it's triggered multiple kernel bugs so far 20:09:13 ais523\unfoog: what license is it going to be under when it's "done", btw? 20:09:24 let me see if there's a license on there atm 20:09:28 ais523\unfoog, btw thanks for using that nick. Otherwise I wouldn't have thought of nethack at the point crucial to making the discovery 20:09:46 currently unlicensed, it seems 20:09:49 most likely GPLv3 20:09:50 -!- augur has quit (Remote host closed the connection). 20:10:01 :( okay 20:10:14 fair enough, I don't have any actual use of it right away, unlike elliott 20:10:15 do you have a good argument for using something else? 20:10:30 nah, GPLv3 is fine with me. 20:10:35 i doubt he was asking you :P 20:10:40 I was asking elliott, I knew /you/ wouldn't mind GPLv3 20:10:42 ais523\unfoog: no, I just don't like modifying GPLv3 software :) 20:10:44 right 20:10:51 ais523\unfoog: (or GPLv2 software) 20:10:54 or GPLv1 software, for that matter 20:10:56 but I'll cope :p 20:11:00 elliott: some odious legal requirement that makes it hard to do correctly? 20:11:01 I only do BSD or MIT when a significant part of the program I'm writing already consists of such code 20:11:11 ais523\unfoog: yes, it's called not liking the GPL 20:11:16 modifying GPLv0 is a real pain, as it requires you to keep last-modified dates in the files itself 20:11:21 which really messes up the repos 20:11:22 haha 20:11:28 that bug has been fixed since, I believe 20:11:29 ais523\unfoog, heh 20:11:44 I don't think anyone actually /enforces/ that requirement, but you know me… 20:12:49 ais523\unfoog: if you don't have anywhere to put the tarball I can get you an nc port 20:12:57 heh 20:13:11 elliott: PMed 20:13:16 I pastebinned it, as it's a single C file 20:13:18 ais523\unfoog: oh no, it's all in one file? 20:13:21 yes 20:13:30 ais523\unfoog: are you sure that maintained the ^Ls? 20:13:42 it probably didn't, but they're not all that important 20:13:59 ^L? 20:14:03 what's so bad about having it as a single C file? 20:14:08 ais523\unfoog: tell that to the person wading through an almost whitespaceless block of source :) 20:14:12 (the person is me) 20:14:21 elliott, please explain modules to ais523\unfoog 20:14:29 I don't think I can face it 20:14:35 I doubt something like this can be made truly modular 20:14:36 ewarn(mkdir("/tmp/home/ais523", 0755)); 20:14:58 ais523\unfoog: Could I convince you to sprunge a uuencoded version? :p 20:15:20 Vorpal: around half the program is just one long switch statement 20:15:26 you can't split a switch statement across files 20:15:35 * elliott . o O ( yes you can ) 20:15:37 ais523\unfoog, #include is done at a text level 20:15:40 ais523\unfoog, so yes 20:15:45 that's not being modular 20:15:47 that's just #include 20:15:57 each syscall in its own implementation file is certainly modular 20:16:00 ais523\unfoog, well okay you can do like switch 5123: foo(); break; 20:16:01 or such 20:16:05 modules are allowed to have outside dependencies 20:16:23 elliott: I'm feeling evil, so I just PMed you a cat -v version 20:16:31 lol 20:16:41 ais523\unfoog: cat -v isn't even reversible, dude 20:16:48 I know 20:16:59 [look of disapproval] 20:17:05 ais523\unfoog: oh, yikes, I forgot this thing is x86-specific :( 20:17:06 however, the two versions should be enough /between/ them to recover the original 20:17:21 and yes; luckily, adding x86_64 support wouldn't be all that insanely hard 20:17:23 elliott, 32-bit? 20:17:26 ah 20:17:31 Vorpal: it contains hardcoded register names 20:17:33 ais523\unfoog: I care about other architectures than just that :) but x86-64 is a must for me 20:17:41 (well, fsvo care) 20:17:51 ais523\unfoog: would incrementing the kernel version break anything? 20:17:57 (in all likelihood) 20:18:08 elliott: you mean, what real kernel is being used? or what kernel it claims to be? 20:18:11 I don't think either would break anything 20:18:13 latter 20:18:29 I'd like to pin it to the real kernel version, for compiling things like modules that might care 20:18:40 [look of disapproval] 20:18:48 yes I can see parts of this would be extremely useful to elliott, but merging improvements from either side is going to be a pain due to the one-file system 20:18:51 note that it will /run/ on x86_64, just it runs 32-bit apps 20:19:02 ais523\unfoog: why disapproval at that? 20:19:07 i was talking about kernel modules 20:19:16 sounds like you're insecure about your bad code organisation :) 20:19:23 elliott: of changing the version 20:19:23 ais523\unfoog: bug report: 20:19:23 if (ar0.esi) 20:19:23 { 20:19:30 indentation bug? 20:19:35 I don't really care 20:19:42 elliott, modules shouldn't care, they should take their kernel module version from the kernel source tree they are building against 20:19:49 Vorpal: fair enough 20:19:58 maybe I'll just split this into multiple files myself 20:20:05 elliott, have fun merging updates then 20:20:32 elliott, you obviously just need to throw in a few #ifdef 20:20:43 if (!read_write_state && 20:20:44 (S_ISREG(fdstats.st_mode) || 20:20:44 S_ISDIR(fdstats.st_mode) || 20:20:44 S_ISBLK(fdstats.st_mode) || 20:20:44 (((fdstats.st_rdev == 20:20:44 makedev(136, shared_memory->pty_number)) || 20:20:46 (fdstats.st_rdev == makedev(5, 0))) && 20:20:48 ((ar0.orig_eax == SYS_write || 20:20:50 ar0.orig_eax == SYS_writev || 20:20:51 spam 20:20:52 ar0.orig_eax == SYS_pwritev))))) { 20:20:54 ais523\unfoog: [look of disapproval] 20:21:00 Vorpal: everyone needs to see what ais has done :) 20:21:11 elliott, well, be happy it wasn't all on one line 20:21:16 it could have been worse 20:21:27 elliott, anyway you should have done it in PM 20:21:31 elliott: what would you /want/ me to do? split the condition? 20:21:47 hmm, I think a comment is needed to explain the 136, at least 20:21:48 ais523\unfoog: that thing has /multiple side-effects/! 20:21:58 no it doesn't 20:22:04 makedev is pure? 20:22:06 yes 20:22:10 it's a bitfield packer 20:22:16 wow 20:22:17 huh 20:22:23 ais523\unfoog, what does the 136 mean? 20:22:23 fuck life :P 20:22:56 ais523\unfoog: whatever RSTATBW is, you should have a version specialised to an empty fisrt argument 20:23:00 first 20:23:06 /* 5,0 = /dev/tty; 136,n = /dev/pts/n. */ 20:23:09 #define RSTATBW(x,y) (is32bit ? (x rstat y) : (x rstat64 y)) 20:23:09 ouch 20:23:10 ah 20:23:11 at least there's a comment explaining it /somewhere/ 20:23:28 elliott, is that about large file support? 20:23:29 bug report: /* We need to turn off ASLR even if a proces explicitly 20:23:30 elliott: OK, that's quite an abuse of the preproc, I admit 20:23:31 :p 20:23:31 Vorpal: yes 20:23:33 ("proces") 20:23:48 ais523\unfoog, you can turn off ASLR? 20:23:55 without changing kernel config I mean 20:24:01 yes 20:24:02 Vorpal: yes 20:24:04 how? 20:24:09 personality(2) 20:24:13 aha 20:24:21 is that the thing used for linux32 and so on? 20:24:23 hm seems sop 20:24:24 so* 20:24:26 it only works for the one exec, unless you debug-hook the process you create with the exec and inject calls to personality in it 20:24:29 which I, umm, may have done 20:24:33 :D 20:24:40 ais523\unfoog: Do you accept file-splitting patches? :p 20:24:54 ais523\unfoog, so how does that linux32 command work then, it seems to work recursively 20:25:03 Vorpal: I don't know of linux32 20:25:09 ais523\unfoog: also, what compile command? 20:25:13 it is a symlink to setarch 20:25:19 which is: setarch - change reported architecture in new program environment and set personality flags 20:25:20 hm 20:25:25 gcc -o weboflies -O2 -g --std=gnu99 -Wall -Wextra -Wno-missing-field-initializers -Wno-missing-braces weboflies.c ktt.c -lrt -lpng 20:25:28 oh, seems I'm missing ktt.c 20:25:28 looks like reported arch is NOT a personality thingy 20:25:45 it's just a hardcoded table of keyboard scancodes 20:25:50 which was determined by experiment 20:25:54 because SDL asks for them 20:25:59 so I need to know 20:26:01 ais523\unfoog, wait, you mean this won't work on anything but the US keyboard layout? 20:26:07 or UK rather 20:26:28 Vorpal: I don't know, I don't understand the numbers 20:26:35 but the keyboard isn't connected to the program under test anyway 20:26:40 weboflies has a command line 20:26:40 ais523\unfoog, well, link ktt.c please :) 20:27:04 http://sprunge.us/XJKU 20:27:28 ais523\unfoog, you know, this would be really useful for automated test benches for that nethack bot too 20:28:03 nethack-tas-tools would be good enough for that, I think 20:28:22 this isn't /really/ about NetHack, as I can TAS that anyway 20:28:33 ais523\unfoog: doesn't build on x86-64 20:28:38 elliott: missing headers? 20:28:39 right 20:28:44 elliott, -m32 20:28:46 it works 20:28:53 ais523\unfoog: no: 20:28:55 elliott, at least on ubuntu 20:28:56 weboflies.c:1910:70: error: ‘struct user_regs_struct’ has no member named ‘ebx’ 20:28:56 weboflies.c:1913:70: error: ‘struct user_regs_struct’ has no member named ‘ebx’ 20:28:56 weboflies.c:1928:21: error: ‘struct user_regs_struct’ has no member named ‘ecx’ 20:28:56 weboflies.c:1931:22: error: ‘struct user_regs_struct’ has no member named ‘esi’ 20:28:56 weboflies.c:1932:44: error: ‘struct user_regs_struct’ has no member named ‘esi’ 20:28:56 weboflies.c:1934:22: error: ‘struct user_regs_struct’ has no member named ‘orig_eax’ 20:28:58 weboflies.c:1940:22: error: ‘struct user_regs_struct’ has no member named ‘esi’ 20:29:00 weboflies.c:1944:70: error: ‘struct user_regs_struct’ has no member named ‘esi’ 20:29:02 weboflies.c:1950:20: error: ‘struct user_regs_struct’ has no member named ‘esi’ 20:29:04 weboflies.c:1978:16: error: ‘struct user_regs_struct’ has no member named ‘orig_eax’ 20:29:06 elliott: yep, missing headers, or rather the wrong header 20:29:06 weboflies.c:2002:20: error: ‘struct user_regs_struct’ has no member named ‘orig_eax’ 20:29:07 elliott, works with -m32 on my ubuntu laptop 20:29:08 [...] 20:29:10 oops 20:29:12 more than i intended 20:29:14 but anyway, no missing header errors 20:29:15 it's clearly looking at the 64-bit version of user.h 20:29:16 right 20:29:18 you said it would work on 64-bit though :) 20:29:29 it would if it had the correct headers 20:29:37 ais523\unfoog: is this png stuff really necessary? 20:29:52 what is the png stuff for? 20:30:06 that's the graphics card emulation 20:30:14 or rather, it emulates a framebuffer 20:30:19 and produces screenshots of it on request 20:30:38 if (mount("tmpfs", "/tmp", "tmpfs", 0, 0)) { 20:30:39 what 20:30:44 is that before or after chroot? 20:30:54 before, obviously 20:30:57 you missed the clone call 20:31:02 hm 20:31:03 ais523\unfoog: do you accept patches that turn it into something useful for more than just TASing a game on ais523's computer? :p 20:31:11 CLONE_NEWNS|CLONE_NEWPID|CLONE_NEWUTS 20:31:13 ais523\unfoog, so you replace the system /tmp, possibly breaking lots of stuff? 20:31:19 Vorpal: no 20:31:24 ais523\unfoog, then how? 20:31:24 see that CLONE_NEWNS? 20:31:26 look up what it does 20:31:45 (hint: it affects the meaning of the mount syscall) 20:31:48 wow, this reminds me of plan9 20:31:56 it's like plan 9 but stupid 20:32:19 heh 20:32:25 but basically, it changes /tmp for one process 20:32:40 this is how weboflies has genuinely caused filesystem leaks in the past 20:33:00 unfortunately, it turns out that the emulated filesystem is slightly visible from the outside; you can access it via /proc 20:33:05 as root 20:33:21 ais523\unfoog, uh... wait, wouldn't they be unmounted if no longer mounted by any process? 20:33:38 Vorpal: yes, indeed 20:33:48 but weboflies' processes are often quite hard to get rid of 20:33:53 I've seen instances where kill -9 failed 20:34:10 because init (the real init, AFAICT) was catching the SIGKILL 20:34:12 -!- boily has quit (Ping timeout: 260 seconds). 20:34:13 ais523\unfoog, D state? 20:34:21 huh 20:34:22 no, T (ptrace) state 20:34:33 ais523\unfoog, how did you manage init to catch the SIGKILL for you? 20:34:40 I have no idea, I guess a kernel bug 20:34:43 heh 20:34:46 investigation showed that init was currently ptracing the process in question, though 20:34:59 init doesn't do that.... 20:35:02 indeed 20:35:09 that's why the process had stuck 20:35:12 heh 20:35:15 because init didn't tell it to just continue with the sigkill 20:35:23 ais523\unfoog, did you manage to reproduce it? 20:35:26 no 20:35:29 oh well 20:35:41 I /did/ manage to reproduce the bug where a process had two stack segments simultaneously 20:35:50 but haven't submitted a bug as the situation is reasonably insane 20:36:01 -!- pumpkin has joined. 20:36:09 -!- pumpkin has quit (Changing host). 20:36:09 -!- pumpkin has joined. 20:36:11 well, how does that happen. Isn't there a single segment selector? 20:36:41 it's a bug? 20:36:50 you did cat /proc/pid/maps 20:36:54 and you got two stack segments reported 20:36:56 ah 20:36:58 which overlapped, but were different sizes 20:37:01 heh 20:37:42 conclusion: Linux doesn't like it when you mmap the stack guard page with MAP_FIXED 20:38:07 right 20:38:08 the bug occurred after doing it exactly twice, IIRC 20:38:09 -!- copumpkin has quit (Ping timeout: 260 seconds). 20:38:14 * Phantom_Hoover humble bundles. 20:38:14 heh 20:38:17 (it shrinks the stack to make room for a new guard page in response) 20:39:34 -!- pumpkin has changed nick to copumpkin. 20:39:35 ais523\unfoog, btw why did you want to keep it secret, before you said that the reason for being secret was also a secret 20:39:43 (or something to that effect) 20:40:33 ais523\unfoog, oh and there are some debian specific things in there. 20:40:47 ais523\unfoog, the whole /lib/i686/cmov thing and so on 20:41:08 (never mind that it is lib32 for me on ubuntu, and just /lib32 on arch) 20:41:29 Vorpal: that's temporary to get it running 20:41:30 ais523\unfoog doesn';t use debian 20:41:36 so i doubt it 20:41:38 elliott, ubuntu iirc? 20:41:41 it'll use its own ideas of the libraries eventually 20:41:42 which is debian based 20:41:44 yes, I use Ubuntu 20:41:53 elliott, so same thing when it comes to this 20:41:58 you said it was different on ubuntu 20:42:03 very next line 20:42:11 elliott, because I'm on 64-bit yet 20:42:12 yes* 20:43:04 elliott, you might need to change around line 488-499 if you want to get it running on a x86-64 distro, so it searches /lib32 and /usr/lib32 instead 20:43:17 I haven't tried, I'm kind of scared of running it 20:43:48 ais523\unfoog, how do you deal with CPUID? 20:44:03 can't find anything on that 20:44:07 I don't, yet 20:44:12 right 20:44:23 do you have any plans for how to deal with it? 20:44:31 not yet 20:44:40 ais523\unfoog, anyway: why was it secret before? 20:45:12 i suspect he's doing a secret tas of a game 20:45:25 hm 20:45:46 elliott, could be, not sure what game apart from nethack ais523 would play though... 20:45:55 seriously? 20:46:03 eh, probably just tired 20:46:07 which one did I miss 20:46:08 he's talked about many games in here 20:46:24 none that stood out really 20:46:30 including e.g. the humble bundle 3 ones 20:46:31 and that was for linux 20:46:33 oh okay 20:46:49 ais523\unfoog, did you get the current humble bundle btw? 20:46:53 no 20:47:07 ais523\unfoog, and you are avoiding answering the question about why it was secret :P 20:47:09 Vorpal: enigma, for one 20:47:11 I paid £5 for bundle 3, and that's about what it was worth 20:47:14 elliott, oh yes, true 20:47:25 Vorpal: oh, because I have plans to submit a run on a secret emulator 20:47:32 ais523\unfoog, ah okay 20:47:38 and if the emulator isn't secret, I'll have to write another one which is 20:47:44 heh? 20:47:46 weird 20:47:51 to be able to submit a run on a secret emulator 20:48:27 oh no... is this the kind of "highlight yourself about wiki spam" madness? 20:48:52 ais523\unfoog, anyway I presume you didn't develop the emulator in question? 20:49:09 elliott: can you trap Vorpal in a recursive facepalm for me please? 20:49:11 because then you could just have added the code to support doing a TAS right into it 20:49:21 hey 20:49:49 ais523\unfoog, oh you mean SP is the secret emulator. Right. We will keep quiet about it. 20:50:16 how was that not obvious? 20:50:22 I didn't think of it as a emulator really. Really not an emulator in the same sense that wine isn't to my mind. 20:50:26 ais523\unfoog: because vorpal is dumb 20:50:26 actually, before I make a TAS I want to see what games are supported 20:50:44 So the Secret Project is an emulator? 20:50:48 Vorpal: it isn't an emulator, but it has all the required requirements to be a TAS emulator apart from being an emulator 20:51:03 Phantom_Hoover, read the log, I figured out what it was and confronted ais523\unfoog with it 20:51:09 Phantom_Hoover: we've known what it was for ages 20:51:17 just not what ais523\unfoog wanted it for 20:51:27 yeah 20:51:40 I found that out. So yeah 20:51:48 should have done it in /msg to annoy elliott a bit though 20:51:51 oh well 20:52:39 childish as always :) 20:53:02 elliott, I would have told you after a few minutes anyway :P 20:53:41 ais523\unfoog, well yeah 20:53:43 hmm, have either of you dared to run it yet? 20:53:50 I know /I/'m a bit queasy about running it 20:53:55 so I wouldn't be surprised if you hadn't 20:54:06 not yet, busy 20:54:08 ais523\unfoog, not me. I looked at the code and.... well I would need to find a suitable system that I didn't mind if it exploded 20:54:10 will soon 20:54:12 none come to mind 20:54:17 after ripping out libpng 20:54:20 Vorpal: vm 20:54:26 elliott, why rip out libpng 20:54:27 elliott: without libpng you can't see what's happening at all 20:54:35 elliott, oh come on, this is like inception then 20:54:37 or something 20:54:38 as it's the only way to get at the contents of the graphics buffer, currently 20:54:56 I think making the framebuffer a regular file was inspired 20:55:04 ais523\unfoog, what about terminal only programs? 20:55:10 (hmm, I wonder if I could put a PNG header/footer around it, and not even have to transmit the bytes in it) 20:55:26 Vorpal: those work without the PNG stuff, if you're happy with processing the VT100 codes yourself 20:55:33 although atm simulated vblank happens anyway 20:55:41 heh 20:55:42 regardless of whether it does anything useful or not 20:56:05 ais523\unfoog, so you render nethack to a png? 20:56:20 which terminal font do you use then 20:56:24 not NetHack, unless I use tiles version 20:56:30 that just outputs VT100 20:56:52 right 20:56:55 the weboflies core, which I'm writing at the moment, would need to be connected to some sort of interface to actually read it 20:58:03 hm 20:58:15 ais523\unfoog, the core being what part of it? 20:58:22 the whole emulator? 20:58:26 or whatever you call it 20:58:33 what the part that's been written will be when it's finished 20:58:42 I'm planning on a sort of gdb/ddd-like setup 20:58:58 where you have a command-line core, and a GUI that communicates with it 20:59:04 ah 20:59:08 makes sense 21:00:28 ais523\unfoog, so what is the point of doing a TAS with a secret emulator. I don't quite get it. Some sort of bragging rights? But I don't quite see how that would work 21:01:06 Vorpal: because it's always hilarious when people submit runs on emulators that people don't realise the submission system supports 21:01:18 submitting a run on an emulator that people don't even know exists is the obvious next step up 21:01:23 heh 21:02:04 ais523\unfoog, well, wouldn't the submission system support pretty much any emulator that could output some sort of format that could be handled by the submission system? 21:02:22 $ pacman -Qo /lib/libmemusage.so 21:02:22 /lib/libmemusage.so is owned by glibc 2.14.1-1 21:02:26 huh, what? 21:02:30 what is that for I wonder 21:02:40 Vorpal: it links to glibc malloc hooks, I think 21:02:45 so it's not surprising that they're in the same package 21:02:57 oh is it some debugging tool? 21:03:02 for LD_PRELOAD 21:03:04 or such 21:03:05 probably 21:03:24 -!- oerjan has quit (Quit: Good night). 21:03:30 but yeah it exports mmap, calloc and so on 21:03:40 so probably something that is meant to be LD_PRELOADed 21:08:11 Voxatron is a bit too easy. 21:08:16 Erm, *hard. 21:12:51 It wouldn't be so bad if the controls weren't clumsy. 21:13:33 Phantom_Hoover, I agree 21:14:00 Phantom_Hoover, blocks that matter is fun and reasonably hard though. Though the plot feels a bit... meh 21:14:14 not that the plot really matters much in a game like that 21:17:10 -!- nask has joined. 21:17:14 hi nask 21:17:16 `? welcom 21:17:17 `? welcome 21:17:17 welcom? ¯\(°_o)/¯ 21:17:18 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 21:17:37 hi elliott 21:17:51 ais523\unfoog, hm, you bind mount /lib and such, but not /usr/share? 21:17:55 ais523\unfoog: grr, i need 32-bit libgcc too 21:18:07 Vorpal: that's temporary; eventually, none of that will be bind-mounted 21:18:16 /* Timestamps. This stores the initial timestamp, in Web of Lies' 21:18:16 internal format: a 64-bit number giving nanoseconds since the 21:18:16 epoch (i.e. date +%s%N format). The value given here is 21:18:16 1 September 1993, the start of the Eternal September. */ 21:18:17 heh. 21:18:20 elliott, that is the one major downside of arch... multilib failure 21:18:36 Vorpal: have I mentioned Kitten gets multilib for free??? 21:18:43 elliott, yes 21:18:47 elliott, and so does nixos 21:19:07 i'm not sure it actually works with nixos 21:19:17 oh? 21:19:41 you can't have bin/foo and bin/foo 21:19:45 there's no segregation in the profile 21:19:52 i guess libraries are more common than executables, but still 21:20:04 and i don't know if they do automatic cross-compilation stuff at all 21:20:45 not much point of having multilib executables. Compilers that can't be built as cross-compilers maybe? 21:21:22 there's no such thing as "multilib executables" 21:21:26 just executables of a different arch 21:21:33 think qemu-system 21:21:59 it's just that the magic prefix for executing a x86 executable on x86-64 happens to be the null string 21:22:05 elliott, yeah what I meant was "there is not much point in having more than one version of a given program installed at the same time" 21:22:23 elliott, you don't need both 32-bit and 64-bit ls 21:22:29 that is what I'm trying to say 21:22:54 well, I could think of uses. but yes, I believe nixos cheats by not having /lib 21:23:09 hm 21:23:25 ais523\unfoog: btw, I'm unconvinced qemu wouldn't work for your tas needs... 21:23:33 ais523\unfoog: you just need a slightly faster system :P 21:23:46 it works for NetHack 21:23:51 elliott, okay I can think of one case, valgrind, but that is covered already for valgrind (except arch breaks that) 21:23:57 but it doesn't do stable enough input determinising 21:24:27 ais523\unfoog: you could layer that on top 21:24:34 by feeding input events through a wrapper 21:26:25 ais523\unfoog: anyway, I think for Kitten I'll just steal the calls to turn things off 21:26:33 like the clock thing Vorpal mentioned 21:26:51 I suppose it's mostly complete enough for Kitten 21:26:53 and then do with a chroot + clock fixed at @0 + fixed hostname 21:26:55 even if it isn't for its intended purpose 21:27:06 ais523\unfoog: well, like I said I'll probably just take parts of it 21:27:10 elliott, clock fixed at @0 will break stuff, trust me 21:27:12 note that /all/ SDL programs get stuck in an infinite loop with a stuck clock 21:27:22 ais523\unfoog: since I want something portable, and I don't care about the scheduler 21:27:23 as their main loop is basically gettimeofday and nanosleep 21:27:28 (and want -j to work) 21:27:30 and heh 21:27:36 Vorpal: it won't break a C compiler 21:27:40 elliott, you know that uname -a will end up fucked btw 21:27:44 a C compiler shouldn't even require a clock 21:27:50 and why? 21:28:01 disabling any syscall requires hooking the registers directly (orig_eax in the case of x86) 21:28:04 elliott, your kernel, it was compiled in 1970 21:28:09 elliott, oh and make, timestamps 21:28:16 right, a nonworking clock /would/ break make 21:28:20 elliott, if you don't backdate the timestamps on files make will go crazy 21:28:20 Vorpal: I don't have to say the kernel was compiled in 1970... 21:28:27 and yes, I will backdate the timestamps 21:28:30 although, the secret project breaks make atm anyway 21:28:36 unless there are explicit sleeps in the build process 21:28:43 maybe I should make all syscalls cost 1ns 21:28:43 doesn't matter if make won't handle updates 21:28:48 since it'll be run from scratch 21:29:57 elliott, I doubt much user space code uses RDTSC. It isn't useful given multi-core and changing clock frequency (except some modern CPUs compensate for that one, like core 2 or newer iirc)... 21:30:07 I used it once, on an embedded x86 system 21:30:09 I suspect uname -a to look something like: Linux kitten 3.0 #1 x86_64 unknown unknown GNU/Linux 21:30:12 s/to/will/ 21:30:26 the version is just a string, so making it #1 should be fine 21:30:29 nothing should try and /parse/ that 21:30:44 elliott, don't be so sure of that heh 21:30:53 Vorpal: I'd rather patch anything that tries to parse it 21:31:02 elliott, binary packages ? 21:31:11 Vorpal: those won't run inside the build jail... 21:31:18 hm true 21:31:22 elliott, their installers might? 21:31:23 Vorpal: unless you mean a binary package with, like, a closed-source install script 21:31:31 but, like... fuck that 21:31:35 right 21:31:38 I'd either LD_PRELOAD in a fake uname just for it 21:31:43 or just tell everybody not to use it :) 21:32:01 oh, wow 21:32:06 ? 21:32:11 I think GNU coreutils adds the "GNU/Linux" bit to uname 21:32:16 the uname syscall doesn't have a field for that 21:32:23 ... lol 21:32:27 so the gnu people must have added the --operating-system field just so they could get GNU in there 21:33:09 does anyone know /how/ to override uname without doing ais523\unfoog's crazy stuff? 21:33:24 I mean, the kernel can't just return a string constant, can it :p 21:33:25 elliott: actually, my uname override is mostly sane 21:33:29 elliott, setarch does it 21:33:32 to some degree 21:33:40 Vorpal: it does exactly one field of it 21:33:45 wait, no it isn't 21:33:47 elliott, I think personality stuff is related 21:33:49 not sure 21:33:50 oh, hmm 21:33:51 --uname-2.6 21:33:51 Causes the program to see a kernel version number beginning with 21:33:51 2.6. 21:33:55 nice :) 21:34:08 elliott, I think parts of these things are special cased, not general solutions 21:34:11 I suspect setarch does it the same way as me, anyway 21:34:11 ais523\unfoog: how's it done? 21:34:29 wow, man 2 personality is totally unhelpful 21:34:29 elliott, the one you pasted does 2.6.40 + the .x component in 3.x iirc 21:34:33 elliott: debugger hooks, like everything else; if the process calls uname, it lets the call happen, then overwrites its return value in the process's memory 21:34:41 ais523\unfoog: :( 21:34:51 ais523\unfoog, I don't think setarch does all that 21:35:12 I doubt anything in util-linux-ng does that 21:35:16 elliott: that's how it handles pretty much every syscall that can't be translated directly, except that sometimes it translates the arguments not returns, and sometimes it doesn't make a syscall at all (it does, but with an invalid syscall number then it changes the ENOSYS) 21:35:17 they have common decency, I would expect 21:35:22 well, they use a lot of glibc-only apis 21:35:22 ais523\unfoog, it doesn't even use ptrace says nm -D 21:35:23 but apart from that 21:35:28 ais523\unfoog: heh 21:35:47 http://sprunge.us/dMVA 21:36:07 there is NO way that can invoke ptrace, I refuse to believe it would avoid going through libc for it 21:36:19 https://raw.github.com/gist/701791/4c6ebe0ee052575d49464b6f5d56730d5f48a471/setarch.c 21:36:20 Vorpal: sure there is, see "syscall" in that list? 21:36:27 found by googling 21:36:28 hm true 21:36:30 ouch 21:36:36 ah, it's being used for personality, though 21:36:36 #define set_pers(pers) syscall(SYS_personality, pers) 21:36:36 ais523\unfoog, but for ptrace? nah 21:36:39 Vorpal: ^ 21:36:44 right 21:36:50 so wait, where are the personalities /defined/? 21:36:52 -_- 21:36:52 linux/personality.h? 21:36:54 where do i get a list ofthem 21:36:57 s/ofthem/of them/ 21:37:02 kernel sources? 21:37:09 Vorpal: actually, this setarch isn't the one I have 21:37:11 it has fewer options 21:37:19 elliott, maybe a different version? 21:37:22 try aur 21:37:24 err 21:37:24 abs 21:37:31 https://github.com/karelzak/util-linux/blob/master/sys-utils/setarch.c 21:37:34 there 21:37:39 that's the official util-linux-ng source 21:37:40 elliott: quite a lot of the Secret Project is based on header files, or failing that kernel source 21:37:49 and failing even /that/, a bunch of experimentation with strace 21:38:08 ais523\unfoog: you know, I don't like people who say this, but you have way too much time on your hands 21:38:11 ais523\unfoog, which kernel versions have you tested it on? 21:38:21 I mean that quite literally; ask someone to give you more work so you don't have time for this crap 21:38:31 elliott: I /don't/ have time for that atm 21:38:34 -!- derdon has joined. 21:38:35 that's why I haven't been working on it 21:38:44 heh 21:38:48 keep it up!! 21:38:55 I think it is awesome 21:39:49 oh god 21:39:53 ? 21:39:55 Vorpal: don't look at /usr/include/linux/personality.h 21:39:59 why not 21:40:03 don't 21:40:25 elliott, mine looks quite okay, just a lot of bitmasks as is usually done in these sort of headers 21:40:26 http://esolangs.org/wiki/JumpFuck 21:40:30 heh, I love the way that one of the flags I use is marked as "bug emulatino" 21:40:33 "bug emulation" 21:40:34 Vorpal: :'( 21:40:45 elliott, GIVE ME ONE GOOD REASON NOT TO THROW AN ICBB AT HEXHAM THIS MINUTE 21:40:47 elliott, what did you expect 21:40:54 ais523\unfoog: Sounds like Drepperish newspeak. 21:40:57 Phantom_Hoover: Hey, that was for a /purpose/. 21:41:05 Namely? 21:41:18 Phantom_Hoover: I forget. 21:41:26 ais523\unfoog, I think that support for turning of ASLR might be an option in the kernel. At least I saw something related. 21:41:27 elliott: it isn't a glibc header, though, is it? 21:41:33 elliott, NOT GOOD ENOUGH 21:41:36 ais523\unfoog, btw did you use cgroups? I don't remember 21:41:42 what's cgroups? 21:41:42 ais523\unfoog: How should I know? :) 21:41:48 never mind then 21:41:53 elliott: it's in .../linux 21:42:06 ais523\unfoog: you never mentioned any header 21:42:40 ais523\unfoog, it's an implementation of group theory in C, duh. 21:43:23 ais523\unfoog: I'm talking about personality.h, which you mentioned 21:43:42 oh, I see the bug emulation comment now; and stop talking to yourself 21:43:59 err, elliott: 21:46:44 ais523\unfoog: anyway, yeah, the Secret Project is cool but I only need about 5% of it, so I'll just take that 5% :P 21:47:14 I might want to ask you to license me the calls I use under something more lenient if I can convince you making me GPL3 the entirety of my package manager for ten lines is unreasonable :P 21:48:15 case SYS_sigreturn: 21:48:15 case -1: /* return half of a sigreturn */ 21:48:18 ais523\unfoog, what? 21:48:39 When the Linux kernel creates the stack frame for a signal handler, a call to sigreturn() is inserted into 21:48:39 the stack frame so that upon return from the signal handler, sigreturn() will be called. 21:48:42 oh my god 21:48:46 that is one ugly solution 21:48:47 beautiful 21:48:56 `addquote oh my god that is one ugly solution beautiful 21:48:58 705) oh my god that is one ugly solution beautiful 21:49:09 and the syscall number ends up as -1 on the return half, for whatever reason 21:49:26 anyway, I doubt make breaks with the clock set to 0 21:49:37 elliott, do you even know how make works 21:49:46 Vorpal: yes, but you're using a stupid definition of "break" 21:49:47 elliott, object files must be newer than source files 21:49:59 I unpack all the source with *time=0 on every file 21:50:03 the clock is fixed at 0 21:50:04 I run make 21:50:05 elliott, it is impossible to have a date before t=0 21:50:13 Vorpal: t=-1? 21:50:14 thus you get the "equals" case 21:50:17 (time_t is signed?) 21:50:20 ais523\unfoog, oh right, it is signed 21:50:21 true 21:50:24 -!- nask has quit (Quit: begone). 21:50:27 Vorpal: let me get this straight: you think make will create the files, check their mtime, and then retroactively fail to build them? 21:50:28 does it work properly for negative values 21:50:47 elliott, no but I think there are many cases where the build system will end up checking the same file twice 21:51:04 because of automess and so on 21:51:11 elliott: a case like "check if the file is newer than its source, if not rebuild it" could easily lead to a loop 21:51:20 Vorpal: I could get make to print all the commands it /would/ execute, then execute them all myself :) 21:51:23 actually, IIRC configure errors on timestamps making no sense 21:51:43 sensible of it 21:51:46 sigh; if I can't fix the clock at 0, I'll have to use the Secret Project 21:52:00 why the fuck do timestamps end up in object files, anyway? 21:52:09 elliott, only really for the kernel 21:52:22 don't remember that happening elsewhere 21:52:31 the nix guys say it's their #1 cause of impurity 21:52:52 well, the other ones must be even more uncommon 21:52:53 elliott: quite a lot of files have a "last build" date sohwn 21:52:55 *shown 21:53:03 Vorpal: no, it's very common 21:53:06 e.g. you can press some key in NetHack (probably v) to see the date at which it was compiled 21:53:47 elliott, hm 21:54:58 elliott: wouldn't it be more plausible to set the timestamps to values increasing in the order that the files are actually created (complete with scheduler determinism), starting on the date that that version of the software was released? 21:55:13 ais523\unfoog: I'm trying to /avoid/ having to rip out the entire scheduler 21:55:15 -j3 would be nice... 21:55:28 elliott, not -j8? 21:55:29 (portability is also nice) 21:56:34 elliott: actually, the scheduling stuff in Secret Project would be portable, if only it knew which syscalls were blocking and which were nonblocking 21:56:43 inspecting orig_eax is the only nonportable bit 21:56:55 ais523\unfoog: so, it's portable except not being portable 21:57:00 s/except/except for/ 21:57:01 oh, and injecting calls to fcntl in cases like read which might be blocking and might be nonblocking depending on what it's reading from 21:57:28 ais523\unfoog, and various other 32-bit x86 assumptions in the init code and so on 21:57:36 sure, not in the scheduler 21:57:53 -!- Patashu has joined. 21:58:40 elliott, anyway it is pure with real timestmaps, the current time is part of the input you see 21:58:48 just change the system clock to reproduce it 21:58:49 ;) 21:59:09 Vorpal: that's bullshit even if you're stupid enough to believe that 21:59:13 repeat after me: scheduler nondeterminism 21:59:18 elliott, ... I was joking 21:59:41 it wasn't (a) interesting (b) funny or (c) accurate in any sense 21:59:59 elliott, what about using a counter and incrementing for each file touched, in the current process? 22:00:11 hm nah 22:00:15 that runs into other issuesx 22:00:18 issues* 22:01:10 elliott, oh btw I can imagine nondeterminism might be introduced by order of iterating through files. What order does readdir return entries in? 22:01:22 is that even well defined? 22:01:54 i doubt it'll depend on an rng or the clock or anything. 22:02:34 elliott, no but probably on the inode, which file system is used, where in the btree the inodes ended up and so on 22:03:11 does anyone actually copy out readdir results without sorting 22:03:21 if it's just a mapM_ doSomething dirContents then it doesn't matter 22:03:26 since doSomething is probably not order-dependent. 22:03:32 elliott, why would find for example need to do it 22:03:35 it doesn't need to sort 22:03:41 it just needs to check if it matches or not 22:03:46 and/or recurse 22:03:49 [elliott@dinky weboflies]$ find . 22:03:49 . 22:03:49 ./build.sh 22:03:49 ./ktt.c 22:03:49 ./weboflies.c 22:03:53 coincidence? you decide 22:03:58 find ~ is also sorted 22:04:04 eh 22:04:09 $ find . 22:04:09 . 22:04:09 ./weboflies.c 22:04:09 ./ktt.c 22:04:09 ./build.sh 22:04:10 ./weboflies 22:04:11 mpt sprted 22:04:13 not* 22:04:20 sprted 22:04:23 sorted* 22:04:28 elliott, maybe it depends on fs then 22:04:31 which one are you using 22:04:34 elliott, ext4 here 22:04:37 jfs 22:04:40 well then 22:04:51 elliott, you see, it isn't deterministic across file systems 22:04:52 anyway, what kind of build process does find . >foo 22:05:03 Vorpal: pedantic complaints about determinism should be directed at ais523\unfoog 22:05:08 he's the one trying to do that 22:05:41 elliott: did you see sort_dents? 22:05:46 elliott, well a build system might enumerate files in a directory if you do a wild card on sources, as might be done in cmake. 22:05:48 ais523\unfoog, haha 22:05:58 Vorpal: so? 22:06:03 build rules should be independent of one another 22:06:08 directories get sorted into alphabetical order before returning them 22:06:10 any build that depends on ordering is broken 22:06:12 elliott, should. 22:06:14 and won't work with -j 22:06:25 elliott, I meant for an incrementing timestamp 22:06:27 Vorpal: what you're saying is, "I bet people use build rules that only work if you use the right filesystem" 22:06:29 elliott, there it would matter 22:06:47 ais523\unfoog: Nix does something similar, incidentally 22:06:49 ais523\unfoog: at package-creation time 22:06:55 it has its own archiving format 22:06:58 elliott, anyway something that *might* work: unpack files and date them 0. Then use a later date for actually running at 22:07:03 I'm not entirely sure what happens if a process asks for half a directory 22:07:20 Vorpal: I could run it at @1, I suppose, even if that's ugly 22:07:27 I think it might fail if the buffer given isn't large enough to hold the whole directory 22:07:27 can you unpack files as @-1? :) 22:07:31 as it'll get an arbitrary part of it 22:07:37 elliott, I don't think that is going to be reliable 22:07:55 quick, how do I set an mtime? 22:07:58 elliott: @1? 22:08:07 elliott: touch -m 22:08:20 ais523\unfoog: http://www.gnu.org/s/automake/manual/tar/Date-input-formats.html 22:08:30 it also changes the ctime, though, because you can't change a file's timestamps without changing the ctime 22:08:37 elliott: ah, right; epoch + 1 22:08:37 elliott, anyway, you have a lot of syscall stuff to do for 64-bit. some syscalls differ substantially in number and order of arguments, and even if they exist or not 22:08:48 + 1 second, that is 22:08:51 [elliott@dinky ~]$ touch -m @-1 foo 22:08:51 [elliott@dinky ~]$ ls -lh foo 22:08:51 -rw-r--r-- 1 elliott users 0 Nov 3 22:08 foo 22:08:52 :( 22:08:59 [elliott@dinky ~]$ touch -m @0 foo 22:08:59 [elliott@dinky ~]$ ls -lh foo 22:08:59 -rw-r--r-- 1 elliott users 0 Nov 3 22:08 foo 22:08:59 err... 22:09:07 elliott, anyway, you have a lot of syscall stuff to do for 64-bit. some syscalls differ substantially in number and order of arguments, and even if they exist or not 22:09:13 elliott: same minute, as they differ by a second? 22:09:16 Vorpal: you're deliberately trying to annoy me by pretending I'm ais523\unfoog, right? 22:09:26 ais523\unfoog: I'm trying to set the absolute timestamp 22:09:33 Vorpal: this is why I'm focusing on x86 first 22:09:34 elliott, no, you are the one interested in this on 64-bit? 22:09:45 ais523\unfoog, hm 22:09:51 Vorpal: elliott isn't interested in doing the syscall manipulation, even though that's the whole /point/ 22:10:07 he needs to if he wants the time to work as advertised 22:10:11 ais523\unfoog: stop acting offended like I'm misunderstanding some magic point of the secret project :) 22:10:20 some parts of it are helpful, some aren't 22:10:25 well, OK 22:10:34 I'm just trying to figure out which part you think is helpful 22:10:42 given that you don't want the scheduler, or the syscall rewrite 22:10:47 ais523\unfoog, btw I think you might possibly run into issues with gettimeofday on 64-bit linux. IIRC that doesn't actually go to kernel there, but just reads a page with a timer mapped into the process by the kernel 22:10:53 I'm surprised this isn't done on 32-bit 22:11:08 ais523\unfoog, it is in the vdso iirc 22:11:11 ais523\unfoog: disabling some nasty easy sources of nondeterminism, and overriding the clock/uname/some other things 22:11:15 Vorpal: ouch 22:11:30 the clock/uname overrides are processor-specific 22:11:43 I think clock_whatever is done the same way btw 22:11:53 * ais523\unfoog wonders why touch has a -f flag that's documented to do nothing 22:12:08 compat 22:12:09 hm it isn't even in 1p 22:12:14 so not POSIX compat 22:12:29 ais523\unfoog: sigh, what made you think touch -m let me specify a timestamp? 22:12:37 I have two files called @0 and @-1 now 22:12:49 elliott: oh, -d specifies the timestamp; -m tells it to change just the modificatoin time 22:12:56 thx :p 22:13:07 ais523\unfoog, http://sprunge.us/SBHU 22:13:13 you didn't quite ask the right question 22:13:22 ais523\unfoog, that is how it is done. glibc call those 22:13:32 or they are weak symbols in there, not sure which 22:13:35 Vorpal: hmm, and I can't unmap just part of the vdso 22:13:36 [elliott@dinky ~]$ touch -d @-1 foo 22:13:36 [elliott@dinky ~]$ ls -lh foo 22:13:37 -rw-r--r-- 1 elliott users 0 Jan 1 1970 foo 22:13:41 I bet it's special-casing that 22:13:46 as in 22:13:48 ignoring negative values 22:13:56 [elliott@dinky ~]$ touch -d @-9999 foo 22:13:56 [elliott@dinky ~]$ ls -lh foo 22:13:56 -rw-r--r-- 1 elliott users 0 Dec 31 1969 foo 22:13:58 ais523\unfoog: wow 22:14:06 heh 22:14:18 that is just absurd 22:14:26 elliott: something to do with timezones, perhaps? 22:14:31 yes, obviously 22:14:33 [elliott@dinky ~]$ touch -d @-9223372036854775808 foo 22:14:33 [elliott@dinky ~]$ ls -lh foo 22:14:33 -rw-r--r-- 1 elliott users 0 -9223372036854775808 foo 22:14:36 YESSSSS 22:14:38 what 22:14:40 UNPACKED AT THE BEGINNING OF TIME 22:14:43 heh 22:14:50 elliott, what date is that technically? 22:14:55 why is ls outputing the timestamp like that? 22:14:55 [elliott@dinky ~]$ touch -d @-9223372036854775 foo 22:14:55 [elliott@dinky ~]$ ls -lh foo 22:14:55 -rw-r--r-- 1 elliott users 0 May 16 -292275055 foo 22:15:06 ais523\unfoog: I must have confused it :) 22:15:08 elliott: quick, get a date in year 0 22:15:15 I, errr, help? 22:15:30 [elliott@dinky ~]$ date -d"Jan 1 0" +%s 22:15:30 1293840000 22:15:35 that, er, seems wrong 22:15:36 ais523@desert:~/taeb/TAEB$ sdate ls -l 22:15:37 total 123212 22:15:38 drwxr-xr-x 2 ais523 ais523 4096 1993-09-6547 18:24 bin 22:15:40 ah, 0000 does it 22:15:51 wait was there a year zero IN REAL LIFE? 22:15:53 [elliott@dinky ~]$ touch -d @-62167219125 foo 22:15:53 [elliott@dinky ~]$ ls -lh foo 22:15:53 -rw-r--r-- 1 elliott users 0 Jan 1 0000 foo 22:15:54 I don't think there was 22:15:55 ais523\unfoog: tada 22:15:55 CakeProphet: no 22:15:59 elliott: yay 22:16:01 I think it went 1 BCE -> 1 CE 22:16:08 ais523\unfoog, x86-64 has another even stranger thing than the vdso, called vsyscall 22:16:08 none of that zero shit. 22:16:12 in other news, why did I never think of doing sdate ls before now? 22:16:13 ais523\unfoog: year 0 is 1 BC, I think 22:16:18 ais523\unfoog: since it's just using negative numebrs 22:16:24 ais523\unfoog, that is not even a full dynamic object, just a weird page 22:16:30 7fff8b1ff000-7fff8b200000 r-xp 00000000 00:00 0 [vdso] 22:16:30 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] 22:16:36 that is used for some stuff 22:16:45 that's a lot of fs 22:17:02 ais523\unfoog, it is in the kernel half of the address space (the negative half) 22:17:09 *the top half 22:17:17 you can't insist to me that addresses are signed, I won't believe you 22:17:29 ais523\unfoog, well, the ISA manuals claims they are signed 22:18:18 but they're addresses, not numbers 22:19:04 yeah I live at -4224 Hood Rd. Anywhere, USA 22:19:18 ais523\unfoog, anyway vsyscall contains gettimeofday, time, getcpu and possibly set_cpu, I'm not quite sure, it is confusing 22:19:24 and iirc the mechanism predates vdso 22:19:26 Vorpal: so, wait, how do I fix the clock on x86-64? 22:19:30 and is deprecated, but can't be removed 22:19:31 remap that area of ram? 22:19:38 Vorpal: I guess vdso and vsyscall will have to be made unreadable 22:19:40 elliott, I'm not sure the kernel will allow that 22:19:43 and the sigsegvs caught 22:19:51 Vorpal: what am I meant to do, then? 22:19:56 * elliott considers asking #linux 22:20:00 elliott, Why do you think I will know 22:20:04 and good luck with THAT 22:20:07 :) 22:20:33 * elliott considers trolling them with it 22:20:37 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:20:40 ais523\unfoog, doesn't 32-bit linux have vdso? 22:20:46 there's a reason I ask secret project questions here 22:20:51 Vorpal: yes, but so far I haven't caught anything using it 22:21:02 nm -D vdso32-syscall.so 22:21:02 00000000 A LINUX_2.5 22:21:02 00000410 T __kernel_rt_sigreturn 22:21:02 00000400 T __kernel_sigreturn 22:21:02 00000420 T __kernel_vsyscall 22:21:06 it seems safe 22:21:06 ais523\unfoog: I'm doing something perfectly respectable! 22:21:24 ais523\unfoog, there is an int80 and a sysenter version too 22:21:25 yep, rt_sigreturn, sigreturn and vsyscall are all handlable 22:21:32 ais523\unfoog: tbh, what I need is basically chroot + unprivileged user + forced clock + empty environment + forced hostname 22:21:40 ais523\unfoog: the rest is just feelgood :) 22:21:43 empty environment is trivial 22:21:49 yes 22:21:52 ais523\unfoog: no shit 22:21:52 the host/name/ can easily be set, too; it's namespaced 22:21:52 ais523\unfoog: you're bad at secret projects because I FIGURED OUT YOUR SECRET PROJECT HAHAHAHA 22:22:01 CakeProphet: by reading other people discussing it? 22:22:05 no 22:22:09 CakeProphet, yes 22:22:11 by using my magical powers. 22:22:16 ais523\unfoog: hmm, do I really need namespace support to do that? 22:22:30 elliott, pretty sure yes 22:22:36 Gross! But okay. 22:22:56 elliott: no, but you don't want to set the hostname for every other process on the system too, do you? 22:23:07 What Nix does is: Unprivileged user (nixbld[1-9] usually), empty environment 22:23:13 and only one build runs as one of the users at a time 22:23:16 that's for a multi-user thing 22:23:17 ais523\unfoog, anyway it might happen that ptrace catches those system calls, but I would suspect it won't 22:23:18 it's a stupid hole they have 22:23:22 and that fixes it 22:23:26 ais523\unfoog: no :) 22:23:37 but yes, any ideas wrt me overriding the clock would be helpful 22:23:38 hmm 22:23:39 ais523\unfoog: your secret is to bother people with questions about a secret project. The reason secrecy is integral to the project is that if people knew why you were asking questions they'd just stop caring. 22:23:43 muahahahahaha 22:23:45 couldn't I just increment it by one second every time it's called? 22:23:49 CakeProphet: we already know, you moron 22:23:49 CakeProphet: nope, they still care 22:24:08 elliott, sure, but what about scheduling then 22:24:24 Vorpal: fair enough, I guess make might race-condition it 22:24:33 elliott, lets say you are building the kernel at -j3, when is the actual "embed for uname" done 22:24:35 it will vary 22:24:37 I still don't think unpacking files at -1 and running the build at 0 will break anything unfixably. 22:24:42 elliott: is that some kind of subatomic particle? 22:24:53 elliott, I think if you add 2 to those then you will be safe 22:25:00 unless configure errors out 22:25:11 Vorpal: no thanks, I'd prefer the file-embedded timestamps to be the epoch 22:25:13 it's an aesthetic thing 22:25:17 elliott, anyway the date ais523\unfoog selected is a good one 22:25:26 it is, but it's not as elegant as all-zeroes 22:25:34 elliott, all 1? 22:25:41 that sounds... unwise 22:25:45 wait, that's just -1 22:25:46 Vorpal: not ereghant 22:25:51 which i'm already using 22:25:51 so ha 22:25:57 elliott, well all 1 except signbit 22:26:17 CakeProphet, did you mean: not elephant 22:26:20 Vorpal: that'll break in a couple of decades. maybe. :p 22:26:30 Vorpal: I'll let you puzzle on that one. 22:26:33 elliott, 64-bit linux uses 64-bit time_t 22:26:41 CakeProphet, elephant definitely 22:27:05 Vorpal: what about dwarf fortress??? 22:27:31 elliott, will it still be 32-bit in a couple of decades? 22:27:40 elliott, I bet it will need more than 4 GB RAM by then 22:28:35 $ ldd ./vdso.so 22:28:36 ldd: exited with unknown exit code (139) 22:28:36 lol 22:28:40 that is quite impressive 22:28:44 ldd is a massive security hole 22:28:48 I know 22:28:51 it just runs the binary with an environment var :P 22:28:53 right 22:28:57 elliott, that is why I was wondering what it would do 22:29:04 on something not using glibc even 22:29:19 Vorpal: something that doesn't support it would just run normally 22:29:32 consider the sysadmin who runs as root and a malicious statically-linked program that a user is complaining about... :) 22:29:34 elliott: is ldd restricted to running executables? 22:29:51 as in, does it refuse to run -x things? 22:29:53 perhaps it should 22:30:05 elliott, indeed 22:30:06 -!- augur has joined. 22:30:14 [elliott@dinky ~]$ ldd ./2011-10-30.txt 22:30:14 ldd: ./2011-10-30.txt: No such file or directory 22:30:15 [elliott@dinky ~]$ ldd ~/Code/weboflies/build.sh 22:30:15 not a dynamic executable 22:30:17 yes, including the tab 22:30:19 that's what it printed 22:30:36 -xing it does: 22:30:39 [elliott@dinky ~]$ ldd ~/Code/weboflies/build.sh 22:30:39 ldd: warning: you do not have execution permission for `/home/elliott/Code/weboflies/build.sh' 22:30:39 not a dynamic executable 22:30:52 heh, it doesn't mention any ld.so 22:30:53 at all 22:30:55 "warning:" 22:31:10 "error:" 22:31:30 I think it will continue if you have mulitple files on the line 22:31:44 does anyone use calibre on linux? if so, uninstall it 22:31:50 what is calibre? 22:31:57 a popular ebook manager thing 22:32:03 and why is it bad? 22:32:07 https://bugs.launchpad.net/calibre/+bug/885027 22:32:11 severely buggy suid helper 22:32:22 binary package? 22:32:31 it's open-source 22:32:35 ah well 22:32:41 "Ability to execute any program as root." 22:32:44 it's that bad 22:32:45 ouch 22:32:59 why does it have a suid bit at all 22:33:00 "I dont see how 1-3 are security vulnerabilities. 4 is a vulnerability only if 22:33:00 mount itself is vulnerable to command line injection. 5 is indeed a 22:33:00 vulnerability, but is neccesitated by the non uniformity of linux filesystems 22:33:00 (mount, eject can be located anywhere). 5 can be mitigated by first checking 22:33:00 for mount and eject in "standard" locations and only then trying all of PATH, 22:33:01 changes for that will be in the next release." 22:33:07 ^^ criminally irresponsible maintainer 22:33:12 (ok, not criminally) 22:33:18 Vorpal: mounting ebook devices, presumably 22:33:22 without root 22:33:24 ... hal? 22:33:30 or dbus or whatever 22:33:34 i think that's what policykit is for nowadays... 22:33:35 3 is a bug if you put a symlink there, isn't it? 22:33:44 ais523\unfoog: all of them are serious bugs 22:33:52 right 22:33:58 I'm trying to work out what the exploit would be 22:34:06 "6. An unprivileged user an mount/unmount/eject whatever he wants, with 22:34:06 root permissions. Danger." 22:34:08 creating empty dirs as root isn't obviously exploitable, for instance 22:34:10 ok, this is the worst setuid executable in history 22:34:23 ais523\unfoog: e.g. if something looks for a lock there 22:34:23 except for annoying people 22:34:29 elliott: right 22:34:52 "You mean that a program designed to let an unprivileged user 22:34:52 mount/unmount/eject anything he wants has a security flaw because it allows 22:34:52 him to mount/unmount/eject anything he wants? I'm shocked. 22:34:52 Implement a system that allows an appilcation to mount/unmount/eject USB 22:34:52 devices connected to the system securely, then make sure that system is 22:34:53 universally adopted on every linux install in the universe. Once you've done that, feel free to 22:34:55 re-open this ticket." 22:35:00 wow, remind me to avoid this person's code, forever 22:35:39 the reply is funny; "Unfortunately, sarcasm does not make you right." 22:35:41 ouch yeah 22:36:03 ais523\unfoog: more people need to listen to that advice, I think... 22:36:23 he replied "Sarcasm doesn't make me right, being right makes me right." 22:36:34 heh, they generate a linker script for the vdso. As in, you aren't supposed to edit the .lds, but rather edit the generator 22:36:37 "Shocking as that 22:36:37 may seem, I am actually aware of the dangers" 22:36:40 then he submitted a fix, and someone broke that one too 22:36:41 just not competent enough to avoid them 22:37:11 /* 22:37:11 * Align the actual code well away from the non-instruction data. 22:37:11 * This is the best thing for the I-cache. 22:37:11 */ 22:37:22 heh, by creating a filesystem file with some suid executables on it and loopback-mounting it with calibre 22:37:23 ais523\unfoog, from the vdso *linker script* 22:37:33 the alignment is 0x100 22:37:53 I guess it is because it will end up updating the data page a lot from the kernel 22:38:31 ais523\unfoog, wait, what is the point of that? 22:38:38 then he fixed it again, to only mount files in /dev 22:38:43 what 22:38:47 which is of course vulnerable to race conditions 22:38:48 ais523\unfoog, this can't be real? 22:38:53 Vorpal: this is an exploit 22:38:55 not the fix 22:38:58 oh okay 22:39:03 the suid part, that is 22:39:05 not the dev part 22:39:15 I meant the dev part 22:39:30 exploits exploit incorrect assumptions, so typically involve doing something crazy 22:39:39 right 22:39:43 you should have to pass some kind of exam to ship setuid executables to users 22:39:51 probably that exam should be "you can convince a package maintainer to package it"... 22:40:25 heh, it's just been pointed out that unprivileged users /can/ create symlinks in /dev 22:40:31 I'd missed that myself 22:40:41 anyone here know how? or shall I just give the solution? 22:40:43 you can? 22:40:46 * elliott doesn't know how 22:40:49 wow gregor. i'm pretty impressed. opus 13 is a nice piece of art. 22:40:53 ais523\unfoog, /dev/shm 22:40:56 that would do it 22:40:57 ais523\unfoog: good god, this guy just keeps patching his piece of shit 22:41:02 Vorpal: right 22:41:11 Vorpal: heh 22:41:12 elliott: and Dan Rosenberg comes up with a new exploit every time 22:41:17 this is a great thread 22:41:23 is it on relevant-part-of-reddit yet? 22:41:25 ais523\unfoog: isn't it Jason A. Donenfield doing the exploits? 22:41:27 it probably fits on proggit 22:41:28 and yep 22:41:30 that's where I found it 22:41:35 How not to respond to vulnerabilities in your code (bugs.launchpad.net) 22:41:40 (http://www.reddit.com/r/programming/comments/lzb5h/how_not_to_respond_to_vulnerabilities_in_your_code/) 22:41:43 oh, multiple people 22:42:05 "2) It may not even be installed on some distros, for example, it isn't installed by default on gentoo." 22:42:12 he can't depend on pmount, gentoo doesn't install it by default :DDD 22:42:22 ais523\unfoog, this code is quite pretty btw: http://sprunge.us/cHgf (from the vdso) 22:42:27 THE MEME THAT TIME FORGOT: "BRB I can be doll" 22:42:51 that's a pointless meme 22:42:51 ais523\unfoog, it uses a sequence counter to ensure a consistent reading of the time 22:42:55 "@Rosenberg: Yes, I have. And you were warned, this is the last response you 22:42:56 will get from me." 22:43:06 WHAT WILL YOU DO ABOUT MY SECURITY HOLES NOW THAT I CANNOT HEAR YOU??? MWAHAHAHAHA 22:43:31 ais523\unfoog: It's actually what the receipt from Mattel says if you order a Barbie I Can Be™ Doll 22:43:39 elliott, did they open a CVE? 22:43:44 hmm, he's a Gentoo user... I'm going to try really hard to be shocked 22:44:16 haha, someone pointed out a security hole in the exploit 22:44:21 I'm trying to figure out if that's clever or missing the point 22:44:27 ais523\unfoog, heh? 22:44:34 ais523\unfoog, which comment 22:44:44 Vorpal: running the exploit code lets arbitrary people run executables with your perms 22:44:50 #37 22:45:05 heh 22:45:30 "I'm not sure this is actually exploitable...the posted exploit fails on my GNU/kFreeBSD box: 22:45:30 $ gcc 70calibrerassaultmount.sh -o full-nelson" 22:45:34 ais523\unfoog, I do think it is clever, rather than missing the point 22:45:34 ais523\unfoog: facepalm with me 22:45:46 "Is there different compiler (icc?) or architecture (maybe needs a RISC arch?) requirement?" 22:45:49 elliott: oh dear 22:45:56 ouch 22:46:05 "Until this comment, I was on the side of fixing with the exploits. Now, as far as I am concerned you should go play frisbee on a freeway." ;; that was a different person you moron 22:46:13 * elliott replies to people where they can hear it, in #esoteric 22:46:21 #41 is a reasonably sane comment 22:46:35 yes 22:46:46 "I would like ubuntu for not including this obviously exploitable test case in the face of an arrogant security researcher." 22:46:53 ais523\unfoog: I think missing the point, for sure 22:47:14 elliott, I'm pretty sure someone is trying to be cleaver there. 22:47:25 it's from the same comment that points out the "exploit" 22:47:33 elliott, indeed 22:47:35 (in the exploit) 22:47:38 anyway, *clever 22:47:46 whatever 22:47:56 spelling is for amateurs 22:48:03 http://www.reddit.com/r/programming/comments/lzb5h/how_not_to_respond_to_vulnerabilities_in_your_code/c2wuix0 22:48:26 programmers are way too touchy :P 22:49:11 Vorpal, speling iz foar amacherz 22:51:05 "The thing is, there's not much out there that supports so many formats. It's incredibly extensive. The devs have just put tons of time into adding feature after feature after feature. They even do their own IPC and lots of other little things that remind me of my first gigantic project where I crammed everything I could think of into one program to learn about everything." 22:51:06 spelling is for linguists 22:51:06 yikes 22:51:14 hagb4rd: that's not what a linguist is 22:51:36 what exactly do you mean elliott? 22:51:37 elliott is correct 22:51:47 augur is correct. 22:51:48 :P 22:51:51 hagb4rd: a linguist is not someone who likes languages/knows a lot of languages/enjoys using language 22:52:04 (well, they might do any or all of those, but that's not what a linguist /is/) 22:52:11 ais523\unfoog: reddit wisdom: http://www.reddit.com/r/programming/comments/lzb5h/how_not_to_respond_to_vulnerabilities_in_your_code/c2wu5qx 22:52:19 i never said that 22:52:43 I don't see the relevance of being a linguist to spelling properly :P 22:53:10 Linguistics is the formal study of language. That's all. 22:53:24 okay 22:53:45 however didnt mean to insult our linguists here :P 22:54:28 you're lucky so few of us like languages.- 22:54:33 *-- 22:54:37 i think augur is the only linguist here :P 22:54:55 I think augur's the only linguist here. Though if you include dilettantes you can make that plural. 22:58:01 i'm pretty sure most of the regulars have some sort of language fetish here 22:58:12 perhaps not a very regular one 22:59:42 But what man cannot say he has not fallen to the subtle allure of Swedish? 22:59:50 (The answer is all of them. Even the Swedes.) 22:59:52 Phantom_Hoover: Bork bork bork. 23:00:13 Does anyone actually use /sys nowadays? ais523\unfoog? Vorpal? 23:00:14 pikhq_, please don't, this is polite company. 23:00:21 elliott: I can't remember what it's for 23:00:35 even the swedes have learned swedish 23:00:38 It's like /proc but with syssy stuff. 23:00:49 ais523\unfoog: /proc/sys, except for when you're in the past 23:01:16 /proc/sys/dev is my new favourite path. 23:01:27 elliott: it exists in this system, and is not identical to /proc/sys 23:01:30 I wonder if I can set it to ~. 23:01:37 ais523\unfoog: I know that. 23:01:45 I don't know if anything's using it 23:01:47 Phantom_Hoover: Huh? 23:01:54 ".'s home directory"? 23:02:01 I seem to recall it being essential for udev. 23:02:02 ah, that was a full stop 23:02:13 Punctuation is an evil from which we may never be free. 23:02:14 none on /sys/fs/fuse/connections type fusectl (rw) 23:05:58 -!- copumpkin has joined. 23:07:51 -!- GreaseMonkey has quit (Quit: The Other Game). 23:17:48 Does anyone actually use /sys nowadays? ais523\unfoog? Vorpal? <-- uh yes? 23:17:50 udev 23:17:51 a lot more 23:17:56 Why 23:18:06 elliott, it provides info about devices and so on 23:18:17 What is the semantic difference between /proc and /sys 23:18:31 * Phantom_Hoover → sleep 23:18:33 -!- Phantom_Hoover has quit (Quit: Leaving). 23:18:37 elliott, /proc is for pids + some other stuff 23:18:52 elliott, some stuff is being moved or has been moved from /proc to /sys I know 23:18:53 [elliott@dinky ~]$ ls /proc/sys 23:18:53 abi debug dev fs kernel net vm 23:18:53 [elliott@dinky ~]$ ls /sys 23:18:53 block bus class dev devices firmware fs hypervisor kernel module power 23:18:53 What is the semantic distinction between these two 23:18:55 during 2.6.x 23:19:07 elliott, /proc/sys is basically sysctl 23:19:10 nothing else 23:19:17 I thought sysfs was basically sysctl too. 23:19:21 elliott, /sys is for device discovery and so on 23:19:23 elliott, far from it 23:19:34 "It is similar to the sysctl mechanism found in BSD systems" --wp 23:19:50 *shrug* 23:19:53 well, it is used to discover things, like what devices exist 23:19:56 It sucks to have two directories for "misc. kernel shit". 23:20:17 /proc is really over-populated 23:20:32 elliott: On the contrary, we should have more. 23:20:43 $ ls -l /sys/block/ 23:20:43 totalt 0 23:20:43 lrwxrwxrwx 1 root root 0 2011-11-04 00:19 dm-0 -> ../devices/virtual/block/dm-0 23:20:43 Directories galore. 23:20:54 totalt 23:20:57 well a lot more 23:21:04 elliott, sv_SE I think 23:21:48 elliott, anyway a few files in /sys are for setting stuff, mostly stuff related to a particular instance of a driver for a specific hardware 23:21:54 rather than system-global settings 23:22:33 elliott: /proc started as a "information about processes" filesystem, became a "generic kernel shit" filesystem. Now they're trying to make /sys the generic kernel shit filesystem, and /proc the information about processes filesystem. 23:22:35 elliott, say, if you want to add a foo-switch to every block device, chances is it goes into /sys, if you want a global foo-switch for the entire system, it becomes a sysctl and goes into /proc/sys 23:22:59 If they could do things from scratch they'd probably make it /sys/proc 23:23:04 yes 23:23:07 that would make sense 23:24:30 anyway I think udev mainly uses /sys/{block,bus,dev,devices} 23:24:34 maybe some more 23:24:58 Shouldn't proc be ... yeah, /sys/proc. 23:25:12 Can you tell stuff proc is in a different place? :p 23:25:22 pikhq_, where is /sys documented btw? Like /sys/firmware/memmap/0/{end,start,type}, I have no idea what that is for 23:25:31 elliott, probably not 23:25:43 Vorpal: Probably somewhere in linux-x.y.z/Documentation/ 23:25:46 elliott, anyway I doubt mkdir /sys/proc would work 23:26:09 $ ldd ./vdso.so 23:26:09 ldd: exited with unknown exit code (139) 23:26:10 gah 23:26:16 Vorpal: I guess so :P 23:26:16 fuck you synergy 23:26:17 Didn't work for me 23:26:30 $ ls /sys/firmware/memmap/ 23:26:30 0 1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 23 24 25 26 27 28 3 4 5 6 7 8 9 23:26:39 someone needs to fix the copy-paste bug for synergy btw 23:26:55 have you tried the maintained fork 23:27:05 elliott, that is what I'm using 23:27:26 elliott, anyway only some programs exhibit it, and it starts randomly a while after connecting 23:32:10 -!- sllide has quit (Read error: Connection reset by peer). 23:34:38 私のホバークラフトはうなぎでいっぱいです! <- The only phrase in Japanese anyone ever needs to know. 23:35:04 pikhq_, what does it mean? 23:35:42 (watashi no hobākurafuto wa unagi de ippai desu!) [watasi no hohầkurahuto ha unagì tè i'håi tèsu] 23:35:49 Vorpal: "My hovercraft is full of eels." 23:35:51 ah 23:36:45 s/gì/kì/ 23:42:55 -!- kwertii has joined. 23:45:03 `ls /sys/firmware/memmap 23:45:05 ls: cannot access /sys/firmware/memmap: No such file or directory 23:45:36 `ls /sys 23:45:38 block \ bus \ class \ dev \ devices \ firmware \ fs \ kernel \ module 23:55:33 -!- Vorpal has quit (Ping timeout: 276 seconds).