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