←2011-11-06 2011-11-07 2011-11-08→ ↑2011 ↑all
00:04:18 -!- BlueProtoman has quit (Ping timeout: 252 seconds).
00:14:46 -!- nooga has quit (Ping timeout: 240 seconds).
00:19:47 <zzo38> Change the game to low score. * In boss levels, you have to catch the apples/bombs/whatever to throw at them. Now, when you catch the object, you earn points. Which means, it is a good idea not to miss! (Becuase of low score game! It doesn't work at all with high score game)
00:20:34 <zzo38> It is: gopher://zzo38computer.cjb.net:70/0phlog*c_game.game-design-i
00:23:34 -!- ais523 has quit (Ping timeout: 240 seconds).
00:25:17 -!- BlueProtoman has joined.
00:26:31 <BlueProtoman> test
00:26:50 <monqy> hi
00:27:11 <BlueProtoman> Hi.
00:27:14 <BlueProtoman> Can anyone here help me with my Brainfuck interpreter? I've got most of it down except for loops, which are not so much looped as they are ran once. http://codepad.org/eznPVPyy
00:30:05 -!- tiffany has quit (Quit: nyu~).
00:32:57 <monqy> not exactly sure what you're doing, but it looks like instead of jumping back to the position in the file where you were, you're setting the character value to the character at that position, and then overwriting it anyway
00:33:14 <monqy> I'd suggest not interpreting as you read the file, for one
00:33:25 <monqy> also not using c++, but that's even further beside the point
00:35:22 <BlueProtoman> Hm...let me look into that.
00:35:33 <BlueProtoman> Also, this interpreter is meant to be a learning exercise for me.
00:35:47 <BlueProtoman> If you suggest not interpreting as I read the file, then what should I do instead?
00:36:23 <BlueProtoman> Answer quickly, I'm at my bus stop.]
00:36:28 <monqy> you could parse it in some way. the easiest thing to do would be to store the contents in an array or something.
00:36:40 <BlueProtoman> Like a string?
00:36:41 <monqy> or you could do some more structured thing
00:36:46 <BlueProtoman> How?
00:36:59 <monqy> structures for loops etc.
00:37:04 <BlueProtoman> I know how to use stringstream, so putting the program in a string would be easy...
00:37:12 <BlueProtoman> Structures for loops. Don't follow, sorry
00:37:15 <monqy> uhhhhh
00:37:29 <monqy> do you know what an abstract syntax tree is? it would be good if you could parse to one of those
00:37:31 <BlueProtoman> (I'm fairly new to C++)
00:37:34 <BlueProtoman> No, sorry.
00:37:41 <BlueProtoman> Gotta go!
00:37:46 <monqy> this isn't a c++ matter; it's a programming language implementation matter
00:37:47 <monqy> oh, bye
00:38:22 <monqy> if you're still around, I'd suggest learning some compiler theory or whatever it's called
00:38:35 <monqy> you could use your brainfuck interpreter as an exercise
00:39:39 <Vorpal> monqy, doubtful he know what an AST is. I said "tree" before and that lost him.-
00:39:41 <Vorpal> s/-//
00:39:43 <Vorpal> so eh...
00:39:55 <monqy> oh
00:40:42 <monqy> well then learning some data structures or whatever first would also be a good idea. if he's new enough we might be able to drag him to a better language too?? who knows. is anyone here experienced with this
00:41:02 <Vorpal> I suck at pedagogics
00:41:07 <Vorpal> anyway I need to sleep
00:41:09 <Vorpal> night →
00:41:58 -!- BlueProtoman has quit (Ping timeout: 240 seconds).
00:48:27 <CakeProphet> data structures are useful for learning how to structure data I've found.
00:49:04 <CakeProphet> monqy: wait, AST for a brainfuck program?
00:49:06 <CakeProphet> uh......
00:49:10 <monqy> CakeProphet: yes!!!!
00:49:10 <CakeProphet> I think that's called a linked list.
00:49:16 <monqy> uhhh
00:49:19 <monqy> are you sure
00:49:23 <monqy> because
00:49:25 <CakeProphet> well, I guess for the loops actually...
00:49:28 <monqy> yes
00:49:28 <CakeProphet> that would not be a bad idea.
00:49:33 <monqy> it's for the looops
00:49:39 <CakeProphet> but I would just use a stack. which is... equivalent
00:49:41 <CakeProphet> so, okay.
00:49:55 <monqy> pfft, stacks are for uncool people
00:50:03 <CakeProphet> stacks are the best data structure.
00:51:50 <monqy> another good way to do things is compile the brainfuck to C (really easy) and JIT it up (yes!!!)
00:53:11 <monqy> really easy because you don't have to worry about structure; the C parsing handles all of that
00:53:44 <CakeProphet> serialize the AST as JSON and offload it to a brainfuck server that converts the JSON to a C# structure which is then used to JIT to Python that outputs Perl which is then compressed and sent back to the client.
00:54:31 <monqy> good but that requires getting an ast
00:54:43 <monqy> for brainfuck, I mean
00:54:50 <monqy> assumign that's what you meant
00:58:59 <CakeProphet> yes.
00:59:30 <CakeProphet> oh and the server uses ASP.NET to generate the XHTML response
00:59:34 <CakeProphet> which is
00:59:49 <CakeProphet> a single script tag whose javascript outputs the Perl
01:06:22 -!- CakeProphet has changed nick to Alissy.
01:06:36 -!- Alissy has changed nick to Alissy_.
01:07:03 -!- Alissy_ has changed nick to Kallisti.
01:07:06 -!- Kallisti has changed nick to CakeProphet.
01:29:17 -!- derrik has quit (Quit: fried brain, anyone?).
01:53:58 -!- Vorpal has quit (Ping timeout: 240 seconds).
02:15:01 <zzo38> I made a Prelude.Golf module for Haskell.
02:16:12 <zzo38> It includes many instances which do not follow the laws at all.
02:17:42 <zzo38> I also want to include a regular expression parser in instance IsString (String -> [String])
02:20:26 -!- BlueProtoman has joined.
02:21:23 -!- BlueProtoman has left.
02:21:45 <zzo38> Actually I meant instance IsString (String -> [[String]])
02:26:39 <CakeProphet> zzo38: I think this is a beautiful addition to the language.
02:27:29 <zzo38> CakeProphet: It is designed for use with code golf. But a regular expression parser would still be a good idea in general, I think.
03:00:42 <Gregor> elliott (not online; or anyone else who remembers): What was that Cygwin installer that doesn't suck like the Cygwin setup.exe?
03:15:56 <pikhq> Don't recall, but I can guess it's called tar.
03:18:43 <Madoka-Kaname> @src IsString
03:18:43 <lambdabot> Source not found. My pet ferret can type better than you!
03:55:20 <zzo38> Madoka-Kaname: class IsString t where { fromString :: String -> t; }
03:55:29 <zzo38> It is used with OverloadedStrings extension
04:03:35 -!- MDude has joined.
04:31:19 -!- olsner has quit (Read error: Operation timed out).
04:33:18 -!- olsner has joined.
05:08:45 -!- oerjan has joined.
05:23:43 -!- GreaseMonkey has joined.
06:03:37 -!- MDude has changed nick to MSleep.
06:11:11 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.).
06:14:31 <zzo38> Too bad, Wikipedia does not have article about "Yomi (card game)"
06:15:27 <zzo38> EBook readers are not at all about "green". Nor are they about convenience.
06:21:18 <pikhq> Ebook readers may have some of those properties. But, to be sure, the primary draw for publishers is taking away niceties that real books have, like actual ownership.
06:23:26 <quintopia> in the future, authors will be able to kill off characters they didnt like long after the book was published
06:23:32 <quintopia> whoa
06:23:50 <quintopia> people might actually pay more for a book that constantly changes...
06:24:11 <pikhq> George Lucas is a pioneer in the field.
06:25:06 <quintopia> true. like that time he edited dinosaur pictures into all my masturbation memories. all my special memories are special editions!
06:26:02 <quintopia> on a related note, three new smbcs tonight
06:27:20 <zzo38> For more notes about ebook readers not about "green", these are comments some people have posted about it: "tax on books, amazon censorship" "Why would I want 600 books to read during a week's holiday, a glorified calculator to lug around, a power supply, a continental adaptor and an air of superiority, when I can select one piddlin' book to pack for my ultimate "travel light" experience"
06:28:30 <pikhq> *Three*?
06:29:10 <quintopia> paper books are better for the environment. you dont have to keep putting energy in them and they are completely biodegradable
06:32:12 <zzo38> quintopia: Yes, that too.
06:37:12 <zzo38> But I still don't like to waste paper; I avoid wasting paper by reusing the paper that someone has thrown into the recycling for writing a note by hand, reducing the margins/font size when printing by computer, using double-sided, etc
06:37:57 -!- nooga has joined.
06:39:12 <zzo38> Even reducing margins or font sizes a little bit can reduce the number of pages of a book.
06:52:14 <zzo38> And a traditional point is slightly smaller than a DTP point (in TeX, DTP points are called "big points").
07:29:28 -!- derrik has joined.
07:47:05 -!- CakeProphet has quit (Ping timeout: 248 seconds).
07:49:00 -!- CakeProphet has joined.
07:49:00 -!- CakeProphet has quit (Changing host).
07:49:00 -!- CakeProphet has joined.
09:05:16 -!- oerjan has quit (Quit: leaving).
09:25:59 <zzo38> I invented a chess variant called "Three Universes Chess" where you need three colors of ink to write the move notations.
09:33:42 <zzo38> My name (Black) comes near first of alphabetical order; and that is actually the reason why my father did that!!
09:33:46 -!- zzo38 has quit (Remote host closed the connection).
09:55:16 -!- ais523 has joined.
09:59:15 -!- Vorpal has joined.
10:08:57 -!- derrik has quit (Quit: i hear you).
10:13:25 -!- monqy has quit (Quit: hello).
10:23:21 -!- ais523_ has joined.
10:25:14 -!- ais523 has quit (Disconnected by services).
10:25:15 -!- ais523_ has changed nick to ais523.
10:26:02 -!- copumpkin has quit (Ping timeout: 256 seconds).
10:26:27 -!- copumpkin has joined.
10:41:10 <CakeProphet> @let morse_table=M.fromList[('a',".-"),('b',"-..."),('c',"-.-."),('d',"-.."),('e',"."),('f',"..-."),('g',"--."),('h',"...."),('i',".."),('j',".---"),('k',"-.-"),('l',".-.."),('m',"--"),('n',"-."),('o',"---"),('p',".--."),('q',"--.-"),('r',".-."),('s',"..."),('t',"-"),('u',"..-"),('v',"...-"),('w',".--"),('x',"-..-"),('y',"-.--"),('z',"--..")]
10:41:11 <lambdabot> Defined.
10:41:41 <CakeProphet> @let morse = unwords . concatMap (maybeToList.(`M.lookup` m).toLower)
10:41:41 <lambdabot> <local>:8:53:
10:41:42 <lambdabot> Couldn't match expected type `M.Map k String'
10:41:42 <lambdabot> ...
10:41:55 <CakeProphet> @let morse = unwords . concatMap (maybeToList.(`M.lookup` morse_table).toLower)
10:41:56 <lambdabot> Defined.
10:42:05 <CakeProphet> > morse "Hello, World!"
10:42:07 <lambdabot> ".... . .-.. .-.. --- .-- --- .-. .-.. -.."
10:43:38 <fizzie> I've seen people "transliterate" morse by using / for the (longer) interword gaps.
10:45:05 <fizzie> (So you could consider having a (' ', "/") in there.)
10:46:46 <CakeProphet> I think space conveys spaces effectively. >_>
10:48:52 <fizzie> But you're not differentiating between the gaps between letters and gaps between words there.
10:49:01 <fizzie> Which have a different length.
10:51:05 <fizzie> From ".... . .-.. .-.. --- .-- --- .-. .-.. -.." it's impossible to say whether you were saying "Hello, World!" or "Hell, ow... or ld?"
10:53:29 <fizzie> (It's a three-unit -- dash-length -- gap between letters, but a seven-unit gap between words.)
10:57:00 -!- ais523 has quit (Remote host closed the connection).
11:04:48 -!- ecntrk has joined.
11:04:50 -!- GreaseMonkey has quit (Quit: The Other Game).
11:12:07 -!- ecntrk has quit (Quit: Page closed).
11:19:44 -!- ais523 has joined.
11:33:59 -!- Zuu has quit (*.net *.split).
11:34:01 -!- augur has quit (*.net *.split).
11:34:02 -!- atehwa has quit (*.net *.split).
11:34:04 -!- EgoBot has quit (*.net *.split).
11:34:04 -!- shachaf has quit (*.net *.split).
11:34:05 -!- Deewiant has quit (*.net *.split).
11:34:05 -!- fungot has quit (*.net *.split).
11:34:05 -!- fizzie has quit (*.net *.split).
11:34:37 -!- EgoBot has joined.
11:35:13 -!- nooga has quit (Quit: Lost terminal).
11:37:52 -!- atehwa has joined.
11:38:39 -!- Deewiant has joined.
11:40:21 -!- ais523 has quit (Ping timeout: 255 seconds).
11:40:43 -!- augur has joined.
11:40:57 -!- ais523 has joined.
11:41:51 -!- Zuu has joined.
11:41:52 -!- Zuu has quit (Changing host).
11:41:52 -!- Zuu has joined.
11:43:30 -!- shachaf has joined.
11:43:54 -!- fizzie has joined.
11:57:53 -!- ais523_ has joined.
11:58:04 -!- ais523 has quit (Disconnected by services).
11:58:05 -!- ais523_ has changed nick to ais523.
12:08:57 -!- ais523 has quit (Ping timeout: 248 seconds).
12:10:26 -!- ais523 has joined.
12:28:41 -!- kmc has quit (Ping timeout: 248 seconds).
12:31:01 -!- ais523 has quit (Read error: Operation timed out).
12:33:55 -!- ais523 has joined.
12:38:21 -!- kmc has joined.
12:38:49 -!- derrik has joined.
12:46:16 -!- augur has quit (Remote host closed the connection).
12:58:36 -!- sllide has joined.
13:05:25 -!- boily has joined.
13:06:06 -!- ais523 has quit (Ping timeout: 240 seconds).
13:15:20 -!- augur has joined.
13:17:17 -!- ais523 has joined.
13:45:38 -!- derrik has quit (Ping timeout: 252 seconds).
13:46:15 -!- ais523_ has joined.
13:49:31 -!- derrik has joined.
13:50:56 -!- tiffany has joined.
13:53:20 -!- derrik_ has joined.
13:53:27 -!- derrik has quit (Read error: Connection reset by peer).
13:53:31 -!- derrik_ has left.
13:53:59 -!- derrik has joined.
13:54:07 -!- derrik has left.
13:54:44 -!- derrik has joined.
13:57:22 -!- ais523 has quit (Ping timeout: 260 seconds).
14:04:28 -!- sebbu2 has joined.
14:04:29 -!- sebbu2 has quit (Changing host).
14:04:29 -!- sebbu2 has joined.
14:06:39 -!- sebbu has quit (Ping timeout: 258 seconds).
14:11:23 -!- MDude has joined.
14:11:43 -!- sebbu2 has quit (*.net *.split).
14:11:45 -!- fizzie has quit (*.net *.split).
14:11:46 -!- olsner has quit (*.net *.split).
14:11:47 -!- variable has quit (*.net *.split).
14:11:48 -!- mycroftiv has quit (*.net *.split).
14:11:53 -!- sebbu2 has joined.
14:11:53 -!- sebbu2 has quit (Changing host).
14:11:54 -!- sebbu2 has joined.
14:13:05 -!- shachaf has quit (Read error: Connection reset by peer).
14:14:05 -!- derrik_ has joined.
14:14:06 -!- derrik has quit (Read error: Connection reset by peer).
14:14:24 -!- kmc has quit (Ping timeout: 240 seconds).
14:14:25 -!- MSleep has quit (Ping timeout: 240 seconds).
14:14:25 -!- Nisstyre has quit (Ping timeout: 240 seconds).
14:14:27 -!- shachaf_ has joined.
14:14:43 -!- atehwa has quit (Ping timeout: 255 seconds).
14:14:48 -!- olsner has joined.
14:14:49 -!- boily has quit (Ping timeout: 248 seconds).
14:15:04 -!- fizzie has joined.
14:15:12 -!- boily has joined.
14:16:31 -!- Nisstyre has joined.
14:18:13 -!- variable has joined.
14:18:13 -!- mycroftiv has joined.
14:18:16 -!- kmc has joined.
14:19:50 -!- atehwa has joined.
14:20:27 -!- derrik_ has quit (Quit: Reconnecting…).
14:20:44 -!- derrik has joined.
14:27:14 -!- pumpkin has joined.
14:31:12 -!- copumpkin has quit (Ping timeout: 260 seconds).
14:58:11 -!- yorick has quit (Remote host closed the connection).
14:58:33 -!- Vorpal has quit (Ping timeout: 248 seconds).
14:58:55 -!- yorick has joined.
15:12:15 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
15:12:50 -!- elliott has joined.
15:16:09 <elliott> `addquote <Phantom_Hoover> No you can't fight crime in Glasgow. <Phantom_Hoover> It's like trying to get rid of the space-time continuum.
15:16:15 <HackEgo> 710) <Phantom_Hoover> No you can't fight crime in Glasgow. <Phantom_Hoover> It's like trying to get rid of the space-time continuum.
15:18:14 <elliott> 22:06:17: <Vorpal> arch has two major issues for me: multilib support is crappy. No split debug info. Still. There is work being done on the latter though.
15:18:29 <elliott> Don't Arch's libs include the debug info
15:19:05 <elliott> 22:06:48: <Deewiant> What's wrong with the multilib support
15:19:06 <elliott> Deewiant: It's an ugly special-case hack solution and only covers a small percentage of all the library packages in the repo?
15:19:52 <elliott> 22:11:32: <zzo38> Do any of the BayHac2011 Haskell programs exist?
15:19:56 <elliott> No, they're all fake
15:20:23 <elliott> 22:43:28: <Vorpal> hm based on http://www.etalabs.net/compare_libcs.html it still looks like eglibc is a better bet for most desktop systems. It is only worse than musl in a few cases, but has so much better support for lots of features.
15:20:44 <elliott> @tell Vorpal Nobody uses any of the stuff musl doesn't have except for C++ crap
15:20:44 <lambdabot> Consider it noted.
15:21:50 <elliott> @tell Vorpal Once it works with C++ and has configurable locale support it'll work with the vast majority of programs (it has locale support, just not configurable locales yet)
15:21:50 <lambdabot> Consider it noted.
15:23:34 <elliott> 23:56:38: <Vorpal> personally I would parse it into a tree then exeute the tree.
15:23:41 <elliott> Preparsing is probably slower for BF
15:24:03 <elliott> You have to load all the code in first though of course
15:25:09 <elliott> 03:00:42: <Gregor> elliott (not online; or anyone else who remembers): What was that Cygwin installer that doesn't suck like the Cygwin setup.exe?
15:25:14 <elliott> Gregor: Don't recall, try `pastelogs
15:25:23 <elliott> Gregor: I suggest using a non-Cygwin solution :P
15:28:40 <ais523_> thing I just discovered and am worried at: the internals of Sun's implementations for listeners work by using an Object[], which stores, alternately, Class objects representing what type the listeners were supposed to have when they were added (e.g. ActionListener.class), and the listeners themselves
15:29:00 <ais523_> that's just making a mockery of the type system, really
15:29:16 <ais523_> presumably, they /should/ have created an class ListenerWithClass, and made an array of those
15:30:08 <elliott> :D
15:30:17 <elliott> ais523_: java's typesystem makes a mockery of itself
15:30:22 <elliott> ais523_: at least ever since generics
15:30:40 <ais523_> the generics impl isn't blatantly stupid, though
15:30:47 <ais523_> it has many faults, but it's not indefensible
15:31:18 <elliott> ais523_: "what are covariance and contravariance" --Java's generics system
15:31:42 <ais523_> it, umm, sort-of handles those
15:31:46 <ais523_> at least, it has syntax to do so
15:31:54 <ais523_> Collection<? extends Foo>
15:31:57 <elliott> ais523_: which is why you can cast a list of cats to a list of animals and then add an element?
15:32:00 <ais523_> Collection<? super Foo>
15:32:11 <elliott> /without/ any unsafe casts?
15:32:16 <ais523_> elliott: it doesn't enforce it across casts
15:32:35 <ais523_> arguably it should; I don't think it trusts its developers to declare the variances correctly so it ignores them
15:32:46 <elliott> ais523_: I think it actually /runtime errors/ when you add that element
15:32:48 <ais523_> but at least it has syntactic support for them!
15:32:59 <elliott> and no, I'm not talking about anything with ?s
15:33:02 <elliott> I'm talking about a plain List<Cat>
15:33:11 <elliott> you can pass it, without casting, to a method expecting List<Animal>
15:33:18 <elliott> and that method can, as it should rightfully be able to, add a tortoise to it
15:33:25 <elliott> java's type system is completely broken
15:35:42 -!- copumpkin has joined.
15:39:27 -!- aloril has quit (Ping timeout: 252 seconds).
15:42:24 <ais523_> well, it's not as broken as, say, Dart's
15:42:46 <elliott> hmm, what's wrong with Dart's, I thought it was basically Java's
15:42:48 <elliott> I mean
15:42:52 <elliott> what's additionally wrong
15:43:20 <ais523_> it's checked only at runtime
15:43:32 <elliott> ais523_: that's an implementation detail
15:43:44 <ais523_> no it isn't, it's detectable from within code
15:43:58 <ais523_> e.g. you can pass objects round as variants a bunch, and then eventually use them
15:44:09 <elliott> ais523_: only if that's defined behaviour
15:44:09 <ais523_> in a way that's unsafe a small percentage of the time based on an RNG
15:44:17 <elliott> show me where the language is defined to be runtime-checked?
15:44:21 <ais523_> elliott: it is; Dart's typing is explicitly optional
15:44:28 <elliott> hmm, alright then
15:45:17 <ais523_> what's your opinion on instanceof (the operator)?
15:45:29 <elliott> breaks parametricity
15:45:46 <elliott> possibly an unhelpful statement as iirc you didn't know what that was last time i mentioned it :P
15:46:58 <elliott> ais523_: so, "I don't like it"
15:47:03 <ais523_> I'm not very good with words that are the same as other words except for the endings
15:47:15 <ais523_> I'm trying to figure out if it's inherently broken, and suspect it is, but am unsure why
15:48:39 <ais523_> meanwhile, I'm busy pondering whether I should try to translate Anarchy to OCaml more or less directly, or try to be cleverer
15:48:52 <ais523_> the thing about Anarchy is that it isn't pure, but doesn't seem fully impure either
15:48:58 <ais523_> and I'm having trouble trying to work out what exactly it is
15:48:59 <elliott> ais523_: it's broken because
15:49:03 <elliott> id :: a -> a
15:49:29 <elliott> isn't necessarily _|_, the identity function, or const _|_, or `seq` _|_
15:49:36 <elliott> (bottoms sure do mess with a language)
15:50:04 <elliott> but seriously though, it completely breaks parametricity, and that's all you need to know to realise it's completely broken
15:50:18 <ais523_> heh, that reminds me of how awkward it is to write an infinite loop in Anarchy
15:50:25 <ais523_> you can only do it by creating a data structure while you're iterating over it, in such a way that the iteration never finishes
15:51:25 <elliott> actually, wait
15:51:30 <elliott> `seq` _|_ is just const _|_
15:51:31 -!- aloril has joined.
15:51:32 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: seq`: not found
15:51:33 <elliott> so that simplifies things
15:51:50 <ais523_> hmm, that probably means that Anarchy always terminates on a real computer, as it'd run out of memory if an infinite loop ran long enough
15:52:13 <elliott> ais523_: not if you have GC
15:52:21 <elliott> you can iterate through [0..] in constant space
15:52:36 <ais523_> right; but the structure so far, AFAICT, would always be referenced
15:52:53 <ais523_> hmm, although a replacement of _ would probably be optimized out to not remember the original
15:53:50 <ais523_> (that is, if I write what would be "a = f(List.tl (a@[1]))" in OCaml, the compiler should be sensible enough to discard the old value of a meanwhile)
15:54:12 <elliott> mutable references generally don't reference values they're not currently set to
15:54:35 <ais523_> well, this isn't a :=, just an =
15:54:54 <ais523_> it's inventing a new variable called a, driving the old one out of scope in the process
15:55:16 <elliott> ais523_: oh, let as opposed to letrec + shadowing
15:55:29 <ais523_> pretty much
15:55:32 <elliott> let me be the first to say, ew
15:55:37 <ais523_> letrec gets involved eventually, which is where the loop comes from
15:55:54 <ais523_> I think you're ew-ing at the wrong thing, there
15:55:59 <ais523_> as I was trying to come up with an analogy
15:56:02 <elliott> ais523_: but I bet you couldn't letrec a = f(List.tl (a@[1])) :-)
15:56:26 <ais523_> elliott: don't you mean letrec f a = f(List.tl (a@[1]))?
15:56:36 <ais523_> actually, I'm trying to figure out what that does mentally atm
15:56:43 <ais523_> I think it's just an infinite loop
15:56:46 <elliott> ais523_: nope, I don't
15:56:50 <elliott> that's the point :)
15:57:01 <ais523_> right
15:57:09 <ais523_> oh, I see
15:57:36 <ais523_> incidentally, is it usual to write mutual recursions in OCaml that span many pages?
15:57:51 <ais523_> it feels a bit weird having to go and...and...and in order to keep the mutual recursion going
15:57:59 <elliott> ais523_: actually, I'm not sure my letrec a would work, assuming @[n] is an array access operator
15:58:08 <ais523_> @ is list append
15:58:10 <ais523_> like ++ in Haskell
15:58:10 <elliott> arrays are generally not lazy in their structure...
15:58:14 <elliott> ais523_: oh, that'd work fine then
15:58:23 <ais523_> array access is .(n)
15:58:26 <elliott> in a language which supported it, I mean
15:59:33 -!- pumpkin has joined.
15:59:33 <ais523_> > :t \a f -> f(tail ((a+f)++[1]))
15:59:34 <lambdabot> <no location info>: parse error on input `:'
15:59:37 <ais523_> :t \a f -> f(tail ((a+f)++[1]))
15:59:38 <lambdabot> Couldn't match expected type `[t1] -> t'
15:59:38 <lambdabot> against inferred type `[t1]'
15:59:38 <lambdabot> In the expression: f (tail ((a + f) ++ [1]))
15:59:48 <ais523_> :t \a f -> f(tail ((a f)++[1]))
15:59:49 <lambdabot> forall t t1. (Num t) => (([t] -> t1) -> [t]) -> ([t] -> t1) -> t1
15:59:52 <ais523_> that's what I meant
16:00:05 <ais523_> I'm not convinced it's a /useful/ expression, though ;)
16:00:16 <elliott> that's definitely wrong
16:00:17 <elliott> (a f)?
16:00:30 <elliott> :t let a = f (tail (a ++ [1])) in a
16:00:31 <lambdabot> forall t. (SimpleReflect.FromExpr [t], Num t) => [t]
16:00:35 <elliott> :t let a = ?f (tail (a ++ [1])) in a
16:00:36 <lambdabot> forall t. (Num t, ?f::[t] -> [t]) => [t]
16:00:49 -!- copumpkin has quit (Ping timeout: 258 seconds).
16:01:00 <elliott> > let f = (0:); a = f (tail (a ++ [1])) in a
16:01:03 <lambdabot> mueval-core: Time limit exceeded
16:01:09 <elliott> hmm
16:01:16 <elliott> oh
16:01:23 <elliott> > let f xs = 0 : 2 : xs; a = f (tail (a ++ [1])) in a
16:01:24 <lambdabot> [0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,...
16:01:28 <elliott> ais523_: useful!
16:02:01 <ais523_> elliott: I was parametrizing a on f
16:02:05 <ais523_> because I didn't know what f was
16:02:19 <ais523_> and, hmm, is there any way to make the 1 come up at all?
16:02:24 <elliott> ais523_: it was definitely wrong, sorry
16:02:29 <elliott> (a f) was completely wrong
16:02:34 <elliott> a doesn't even end up a list there
16:02:39 <ais523_> elliott: but (a f) does
16:02:42 <ais523_> I was defining (a f)
16:02:47 <elliott> no you weren't
16:02:47 <ais523_> not a
16:02:52 <ais523_> to be what I called a earlier
16:02:55 <elliott> oh
16:02:58 <elliott> you should learn to use fix...
16:03:19 <elliott> <ais523_> and, hmm, is there any way to make the 1 come up at all?
16:03:20 <elliott> possibly
16:03:25 <elliott> > let f xs = 0 : 2 : init xs; a = f (tail (a ++ [1])) in a
16:03:28 <lambdabot> mueval-core: Time limit exceeded
16:03:37 <elliott> > let f = const [1]; a = f (tail (a ++ [1])) in a
16:03:38 <lambdabot> [1]
16:03:39 <elliott> ais523_: there we go
16:03:45 <ais523_> that's not the same [1]
16:03:52 <ais523_> I mean, the one in the definition of a
16:04:06 <elliott> hmm, the trick is to make a a finite list
16:04:24 <elliott> which is quite hard
16:04:33 <elliott> because it needs to have a certain number of elements added by f
16:04:39 <elliott> and f is fixed
16:05:19 <ais523_> what's Haskell's equivalent of OCaml's "match", and the syntax?
16:05:23 <ais523_> my Haskell is really rusty
16:05:35 <ais523_> (I know how to do it with a sequence of definitions, but not in a let)
16:05:54 -!- Phantom_Hoover has joined.
16:06:05 <elliott> ais523_: let Just x = y
16:06:10 <elliott> but the equivalent of match is case
16:06:18 <elliott> also, was your Haskell /ever/ not rusty? :P
16:06:27 <ais523_> sometimes it's rustier than other times
16:06:55 <elliott> s|/ever/ not|ever /not|
16:06:56 <elliott> argh
16:07:00 <elliott> s|/not|/not/|
16:07:16 <ais523_> > let f xs = case xs of _:_:_ -> [0] : _ -> xs; a = f (tail (a ++ [1])) in a
16:07:17 <lambdabot> <no location info>: parse error on input `->'
16:07:31 <ais523_> > let f xs = case xs of _:_:_ = [0] | _ = xs; a = f (tail (a ++ [1])) in a
16:07:32 <lambdabot> <no location info>: parse error on input `='
16:07:43 <ais523_> err, can you fix my syntax?
16:07:45 <ais523_> I don't think it works anyway
16:07:47 <elliott> yes, give me a minute
16:08:03 <elliott> hmm, I was trying to think of a way to stop people using a piece of software posted on reddit without having to respond to its author/submitter
16:08:08 <elliott> then I realised that's what downvotes are for!
16:08:26 <elliott> > let f xs = case xs of _:_:_ -> [0]; _ -> xs; a = f (tail (a ++ [1])) in a
16:08:27 <lambdabot> <no location info>: parse error on input `='
16:08:31 <ais523_> I'm not certain I've downvoted anything ever
16:08:33 <elliott> wtf?
16:08:45 <elliott> ais523_: wait, why are you even using case there?
16:08:46 <ais523_> that's a weird place for the parse error
16:08:48 <elliott> just use pattern matching
16:08:56 <ais523_> elliott: giving two different definitions for f?
16:08:58 <elliott> > let f (_:_:_) = [0]; f _ = xs; a = f (tail (a ++ [1])) in a
16:08:59 <lambdabot> Not in scope: `xs'
16:09:03 <elliott> ais523_: no, giving two clauses for f
16:09:08 <elliott> > let f (_:_:_) = [0]; f xs = xs; a = f (tail (a ++ [1])) in a
16:09:09 <ais523_> > let f (_:_:_) = [0]; f xs = xs; a = f (tail (a ++ [1])) in a
16:09:11 <lambdabot> mueval-core: Time limit exceeded
16:09:13 <elliott> I know that'll fail
16:09:13 <lambdabot> mueval-core: Time limit exceeded
16:09:17 <ais523_> right
16:09:18 <elliott> because f pattern-matches on it before adding anything to it
16:11:35 <ais523_> gah, why does the terminal here need an explicit kill -WINCH $$ in order to wrap properly after resizing it?
16:11:53 <elliott> ais523_: ssh?
16:11:56 <elliott> or similar?
16:17:33 <ais523_> local
16:17:42 <elliott> ais523_: which terminal?
16:17:57 <ais523_> gnome-terminal on Scientific Linux
16:18:19 <ais523_> it's not sending bash SIGWINCH properly, for whatever reason
16:18:50 -!- ais523_ has quit (Quit: Page closed).
16:18:57 <elliott> first question, why are you us-
16:18:59 <elliott> okay
16:20:11 <Gregor> elliott: I'm not a huge fan of Cygwin, but I must admit it made it super-easy to turn Windows into an SSH-able server that only very slightly has the bitter taste of Windows.
16:20:46 <elliott> Gregor: The POSIX subsystem is sooo much nicer and has none of the bitter taste of Windows at all, but unfortunately they're dropping support in Windows 8
16:21:04 <elliott> Gregor: And admittedly only Gentoo offer a viable distribution for it... but it's really polished :P
16:21:26 <Gregor> Sux2b Gentoo, since it'll vanish in Windows 8 :P
16:22:21 <elliott> Gregor: I'm not sure Windows 8 will get much adoption from the kind of people who use the POSIX subsystem
16:23:45 -!- ais523 has joined.
16:23:55 <elliott> ais523: first question, why are you using Scientific Linux :P
16:24:01 <ais523> not through choice
16:24:11 <ais523> it's the Linux distro installed in the computer labs where we do marking
16:25:18 <Gregor> elliott: Soooooooo in other words, Cygwin is it.
16:25:20 <Gregor> Got it.
16:25:35 <elliott> Gregor: I'd just use the Gentoo installer *shrugs*
16:25:44 <elliott> Gregor: One advantage is that the resulting environment is thousands of times faster than Cygwin :P
16:25:50 <Phantom_Hoover> Scientific Linux reminds me of the Scientific People in The Stars My Destination.
16:26:04 <elliott> Gregor: Also for all the things I don't like about Emerge, being worse than Cygwin's installer isn't one of them :P
16:27:06 <Gregor> 's hard to argue with that ... and it's a good environment for compiling things w/ MingW?
16:27:13 <Gregor> Oh, and it comes with an SSH server?
16:27:21 <Gregor> (That works)
16:27:56 <elliott> Gregor: Well, it can run Windows programs, but there's not as much integration as Cygwin; I'm pretty sure you could get Makefiles working; and I'm pretty sure it does, but you could just install OpenSSH from the repos if not
16:28:07 <elliott> http://distfiles.gentoo.org/experimental/prefix/x86-interix/current/, FWIW, since it's impossible to find
16:28:09 <elliott> The PDF is very helpful
16:28:40 <elliott> The installer installs the subsystem etc. for you; it's a pretty big iso, but *shrug*
16:28:44 <elliott> Yeah, it does SSH
16:28:47 <Gregor> Hm
16:28:53 <elliott> 3.1 SSH Daemon
16:28:54 <elliott> Gentoo Prex
16:28:54 <elliott> comes with an SSH daemon, which automatically starts at boot
16:28:54 <elliott> time. If you don't want the SSH daemon to start automatically, remove the les
16:28:54 <elliott> /etc/rc2.d/S32sshd and /etc/rc2.d/K68sshd.
16:28:54 <elliott> To manually start the SSH
16:28:56 <elliott> daemon, run /etc/init.d/sshd start.
16:28:58 <elliott> Wow, pro copying
16:29:32 -!- pumpkin has changed nick to copumpkin.
16:29:52 <elliott> The tradeoff is pretty much: POSIX subsystem: Actually feels like proper UNIX, ten times faster, toolchain isn't godawful; Cygwin: Bit better integration for running Windows stuff with it, not as large a download
16:29:59 -!- Ngevd has joined.
16:30:31 <elliott> "In the current Release, an experimental build of XFCE4 is included with the
16:30:31 <elliott> DVD image."
16:30:36 <elliott> Gregor: I guess that explains why it's 3 gigs :P
16:30:42 <Gregor> lolwut
16:31:10 <Gregor> But I really need "integration for running Windows stuff with it", I really just use the environment as a shell for building things with MingW.
16:31:27 <elliott> Gregor: I didn't say it can't run Windows stuff.
16:31:32 <elliott> I'm just saying there's no cygpath or anything.
16:32:21 * Gregor starts the download.
16:32:26 <Gregor> Speed is important :P
16:32:26 <elliott> Gregor: You could install a MinGW cross-compiler from inside it :P ... but seriously, it will probably run MinGW just fine.
16:32:53 <Gregor> Having a cross-compiler is fine, even preferable, the question is just when I make foo.exe, can I run that and have its output go to the right place.
16:32:58 <elliott> Gregor: Yeah, the main advantage is that ./configure doesn't take minutes to run.
16:33:11 <ais523> elliott: it does sometimes!
16:33:14 <elliott> Because the fork() is implemented at the NT layer, not on top of Win32 :P
16:33:25 <elliott> ais523: Do you have any idea what the context is...?
16:33:29 <ais523> oh, you're talking about optimisations to make configure run faster
16:33:29 <elliott> ./configure /always/ takes minutes on Cygwin
16:33:33 <elliott> No.
16:33:33 <ais523> not the general speed of configure itself
16:33:39 <elliott> That is not what we are talking about at all.
16:33:44 <ais523> I was about to say that configure always takes minutes on cygwin as an example
16:33:48 <ais523> then I noticed it was the context
16:33:49 <elliott> heh
16:33:55 <ais523> so you're talking about making configure run faster on Windows
16:33:58 <ais523> by not using cygwin
16:34:10 <elliott> Well, I'm naming a reason the POSIX subsystem is much nicer :P
16:34:56 -!- Zuu has quit (Ping timeout: 258 seconds).
16:34:58 <elliott> Gregor: You should see the "stock" POSIX subsystem tools, the ones Microsoft ships... they're completely awful
16:35:05 <elliott> Gregor: It uses some ancient version of ksh
16:35:19 <Deewiant> Wait, Interix has an efficient fork?
16:35:26 <elliott> Deewiant: More efficient than Cygwin's
16:35:40 <elliott> I think NT can perfectly support a fork()y process model, just Win32 can't
16:35:56 <Deewiant> Why not
16:36:04 <elliott> Because it doesn't offer fork()
16:36:12 <elliott> Cygwin just spawns the process and fucks around to make it jmp to the right place
16:36:17 <Deewiant> Exactly, why doesn't it
16:36:21 <elliott> s/the process/a new process running the same stuff/
16:36:24 <Gregor> Because Windows.
16:36:26 <Deewiant> If it can be done well in Interix
16:36:26 <elliott> Deewiant: Because Microsoft don't care about fork()?
16:36:30 <Deewiant> Firk ding blast
16:36:34 <elliott> Firk ding blast
16:36:42 <elliott> (What?)
16:37:10 <elliott> Oh.
16:37:13 <elliott> That took ages to parse :P
16:37:30 <elliott> Deewiant: But yeah, Windows has been all about the threads since approximately forever.
16:37:38 <Deewiant> I'm well aware of that
16:37:51 <elliott> Deewiant: Well, Win32 was basically /ported/ to NT
16:38:03 <elliott> So whatever limitations its process model has will exist in the NT port too
16:38:18 <Deewiant> Hmm, that's true I suppose
16:39:33 <elliott> Deewiant: I mean, obviously the bits that NT replaces might make things more flexible, but I doubt the actual process model changed much beyond getting more layers, because WIn32's API is based around it
16:40:11 <elliott> Deewiant: OR, efficient COW fork() would be totally possible for Microsoft to offer, and they just don't care. It might even be a lock-in thing to stop people writing overly-portable programs.
16:41:50 <elliott> Gregor: Man, why isn't all open source documentation this good...
16:41:56 <elliott> (Reading the Gentoo Prefix/Win32 PDF :P)
16:42:02 <Gregor> Because of people like me.
16:42:03 <Gregor> That's why.
16:42:39 <elliott> Ah.
16:47:33 <elliott> Gregor: BTW, ISTR that the subsystem in Vista onwards is better than the one in XP, but I used Gentoo Prefix fine on XP so YMMV
16:56:01 -!- monqy has joined.
16:58:33 -!- ais523 has quit (Remote host closed the connection).
17:07:51 -!- ive has joined.
17:17:03 <tswett> Gregor: say, is hackiki.org supposed to be broken?
17:20:17 <elliott> First release of Kansas Lava (ittc.ku.edu)
17:20:18 <elliott> NOT MORE OF THEM
17:27:07 <Gregor> tswett: FFFFFFFFFFFFFFFUUUUUUUUUUUUU
17:27:43 -!- shachaf_ has changed nick to shachaf.
17:27:51 <Phantom_Hoover> I was into Kansas Lava before it was cool.
17:28:19 <Gregor> # ls -l bin/su
17:28:19 <Gregor> -rw------- 1 root root 33112 Dec 6 2009 bin/su dafuq
17:28:42 <Phantom_Hoover> What does the 'dafuq' mean?
17:28:43 <Gregor> Did hackiki get pwned?
17:29:46 <elliott> Gregor: Hahahahahahahaahaha
17:29:47 <Phantom_Hoover> We should never have let newsham stay.
17:31:04 <elliott> Gregor: So what's in bin/su
17:31:23 <Gregor> elliott: Idonno, but its modes are wrong and I don't think I have a canonical to compare it against.
17:31:35 <elliott> Gregor: Surely you can just get a canonical one from Debian
17:31:41 <elliott> Gregor: I'd check logfiles :P
17:31:43 <Gregor> Oh duh :P
17:32:15 <tswett> Check the audit tables!
17:34:33 <Gregor> Not pwned, just the wrong modes.
17:34:34 <Gregor> wtf.
17:34:46 <elliott> Gregor: They pwned HackEgo JUST to fuck with the modes.
17:35:00 <Gregor> # ls -l bin | grep -v '^...x'
17:35:00 <Gregor> total 4420
17:35:00 <Gregor> -rw------- 1 root root 66152 Apr 29 2008 mount
17:35:00 <Gregor> -rw------- 1 root root 33528 Jul 25 2010 ping
17:35:00 <Gregor> -rw------- 1 root root 28944 Jul 25 2010 ping6
17:35:00 <Gregor> -rw------- 1 root root 33112 Dec 6 2009 su
17:35:01 <elliott> Gregor: But srsly, if things are wrong then it could have just been mode-changed as part of a greater pwnering :P
17:35:02 <Gregor> -rw------- 1 root root 46040 Apr 29 2008 umount
17:35:05 <Gregor> elliott: *Hackiki
17:35:08 <elliott> ...yeaaaaaaah.
17:35:10 <Ngevd> Is Whenever Turing-complete?
17:35:24 <elliott> Ngevd: I think so
17:35:30 <elliott> you basically emulate serial execution
17:35:37 <tswett> Are HackEgo and Hackiki connected?
17:35:41 <Ngevd> That means nothing to me
17:35:56 <tswett> [BDarn this connection that makes me ask questions thirty seconds after they've been answered.
17:36:45 <tswett> How does irssi even *suspect* that I've typed in an escape character followed by [B?
17:37:16 <elliott> <tswett> How does irssi even *suspect* that I've typed in an escape character followed by [B?
17:37:18 <elliott> tswett: cursor chars
17:37:22 <elliott> the connection is too laggy
17:37:27 <elliott> and the timeout happened before the [ came in after the esc
17:37:49 <tswett> So the esc came in and then it was a long time before the [ came in?
17:38:22 <elliott> tswett: Where a long term means more than like 50 ms
17:38:26 <elliott> s/term/time/
17:38:53 <tswett> Surely if I press the escape key, wait a moment, and type [B, the same thing out to happen.
17:38:59 <elliott> Yes.
17:39:21 <tswett> But it doesn't.
17:39:27 <tswett> s/out/ought/
17:39:56 <elliott> *shrug*
17:40:11 <tswett> Perhaps my terminal is holding the escape character in escrow before sending it out.
17:40:47 <Gregor> My logging is insufficient to figure out how this happened :P
17:41:23 <elliott> Gregor: I'm so glad I never used Hackiki right now :P
17:41:31 <Gregor> elliott: Nothing is lost *shrugs*
17:45:30 <tswett> Whelp. I now have a database. I'm so proud.
17:46:00 <Gregor> LOLOLOLDISCOVERY
17:46:04 <Gregor> fdupes effs up modes.
17:46:14 -!- Vorpal has joined.
17:46:15 -!- Vorpal has quit (Changing host).
17:46:15 -!- Vorpal has joined.
17:46:26 <tswett> It has three tables in it, each with one row! Granted, two of the tables have only dummy data in them...
17:47:16 <elliott> tswett: Enjoy your pain
17:47:22 <elliott> Gregor: Nice
17:47:27 <tswett> elliott: the pain of... having a database?
17:47:33 <elliott> tswett: The pain of using one
17:47:36 <tswett> Ah.
17:48:01 <tswett> How does the pain of using a SQL database compare to the pain of using Perl?
17:49:55 <Gregor> GOD that's lame.
17:49:57 <Gregor> DAMNED FDUPES
17:50:21 <tswett> Gregor: I wish I could swear like you.
17:50:40 <Ngevd> But tswett lacks the ability to speak
17:51:01 <Gregor> Tragic, really.
17:51:15 <Gregor> Ohwell, luckily I have backups of everything so this won't take TOO long to fix I hope.
17:51:33 <tswett> ...
17:51:35 <tswett> }:(
17:52:44 -!- ais523 has joined.
17:53:05 <elliott> Gregor discovers not to run untrusted code on / :P
17:53:18 <Gregor> elliott: No, I discovered not to trust fdupes :P
17:53:23 <elliott> Or that
17:53:29 <elliott> Gregor discovers not to trust by default :P
17:53:34 <Gregor> I needed that disk space! :(
17:53:44 <elliott> Gregor: Doesn't fdupes use hard links
17:53:45 <ais523> what happened?
17:53:53 <Gregor> elliott: Yeah.
17:53:53 <elliott> Gregor: Hard links for anything mutable are an awful terrible idea
17:53:58 <Gregor> elliott: I don't run it over /
17:54:04 <Gregor> elliott: I run it over /bin, /lib and /usr
17:54:06 <elliott> Gregor: Since tools are completely inconsistent about breaking or not breaking the link :P
17:54:07 <elliott> Fair enough
17:54:11 <elliott> But I bet dpkg can break it
17:54:24 <Gregor> Obviously this plan did not fully work out as I had hoped :P
17:54:34 * elliott wouldn't touch anything dpkg manages, anyway.
17:54:42 <elliott> ais523: Hackiki broke
17:54:46 <tswett> With hard links, can you have a file with two different sets of permissions and everything?
17:55:04 <elliott> tswett: Uhh... no.
17:55:06 <ais523> I think the permissions are hardlinked too
17:55:16 <ais523> as in, they're on the inode not the directory
17:55:17 <tswett> Two different paths and nothing else?
17:55:25 <ais523> two different paths on the same fs
17:55:32 <elliott> Hard links point to inodes, which contain everything but the name in this context.
17:55:43 -!- derrik has quit (Quit: quitter).
17:55:54 * tswett nods.
17:56:07 -!- CakeProphet has quit (Read error: Operation timed out).
17:58:57 -!- Ngevd has quit (Ping timeout: 258 seconds).
17:59:59 <Gregor> tswett: To answer your original question, HACKIKI WAS NEVER DOWN EVER.
18:00:56 <tswett> Gregor: YES SIR.
18:01:12 <Gregor> elliott: My backups are so great, looka how fast I fixed that shiiii!
18:01:21 <elliott> That shiiii is so fixed.
18:01:43 <Gregor> I fixed the shit out of that shit!
18:02:18 <tswett> Gregor: wait, what happened?
18:02:44 <Gregor> tswett: I ran fdupes, that effed up some modes, but because Hackiki caches I didn't notice until those caches expired.
18:02:44 <Phantom_Hoover> He fixed a horse race.
18:03:05 <tswett> Gregor: I see. So what was the problem that this caused?
18:03:24 <Gregor> tswett: Hackiki's chroot couldn't run anything :P
18:03:35 <Gregor> tswett: Oh, the problem fdupes solved?
18:03:38 <Gregor> tswett: Lack of disk space.
18:03:42 <tswett> Gregor: huh. How was it able to continue running when the chroot couldn't run anything?
18:03:53 <tswett> I mean, I would expect that to cause Hackiki to go down.
18:03:55 <elliott> Because the httpd is from outside.
18:03:57 <Gregor> tswett: It already was running, and didn't need to run anything new to read a cache.
18:04:02 <elliott> And/or still running.
18:04:25 <tswett> Gregor: I see. So this was mostly a theoretical problem; it didn't cause any actual trouble.
18:04:52 <Gregor> tswett: ... <tswett> Gregor: say, is hackiki.org supposed to be broken?
18:05:17 <tswett> Gregor: well, yes. I said that because I noticed that Hackiki was running perfectly fine, and I suspected that maybe it was supposed to be broken.
18:05:54 <Gregor> ... I've erased history too well.
18:06:40 <elliott> Gregor discovers the wonders of communicating with tswett :P
18:06:57 * tswett preens.
18:08:17 <tswett> Gregor: so, how does this grinworthy software work? There's a repository, and a sandbox with a copy of the head revision, and programs run in the sandbox, and, if they have write permissions, the sandbox is then committed back to the repository?
18:08:28 <elliott> Grinworthy is so not a word.
18:08:36 <tswett> It is extremely a word.
18:08:39 <Gregor> tswett: More or less.
18:09:01 <elliott> Gregor: Does it use UMLBox yet?
18:09:03 <tswett> Gregor: truly you have a dizzying intellect.
18:09:09 <Gregor> elliott: Nope :P
18:09:25 <Gregor> elliott: It will ... sooooooooooooooooooooooooooooooooon
18:09:27 <elliott> Gregor: How does Hackiki prevent injecting arbitrary badHTML, anyway
18:09:34 <Gregor> elliott: It doesn't.
18:09:37 <elliott> Neat
18:09:39 <Gregor> elliott: Welllllllllll
18:09:44 <Gregor> elliott: To be fair, that's not quite true.
18:09:49 <elliott> I have heard quite enough :P ...but go on
18:10:06 <Gregor> elliott: Hackiki ITSELF doesn't, however the template Hackiki filesystem only lets you write scripts for the Wiki formatter, which only allows wikisyntax.
18:10:32 <elliott> But custom formatters is like twenty to ninety percent of the appeal.
18:10:37 <Gregor> elliott: Why is Gentoo Prefix Interix Wtferix 3 giggerixes >_<
18:10:49 <elliott> Gregor: Doesn't take long to download in a civilised country
18:10:52 <Phantom_Hoover> Oh god, I was just slightly puzzled by the idea of a function which doesn't map numbers to numbers.
18:10:55 <Phantom_Hoover> WHAT HAVE I BECOME
18:10:56 <elliott> Gregor: I think there might be better mirrors you could get it from
18:10:59 <Gregor> elliott: It's downloading at 800KB/s
18:11:05 <elliott> Shrug
18:11:10 <Gregor> NOT - FAST - ENOUGH
18:11:17 <elliott> Gregor: It should come in source form :)
18:11:35 <Gregor> Welp, I'm tired of downloading, I'm going with Cygwin cuz it's better lol.
18:11:42 -!- Darth_Cliche has joined.
18:11:49 <elliott> Gregor: For some values of better lol
18:11:59 <elliott> (Equal to not)
18:12:42 <Phantom_Hoover> "1) The idea that any subject is inherently more rigorous/challenging than another is bollocks."
18:12:52 <Phantom_Hoover> — person in a Guardian comment thread.
18:13:01 <elliott> Gregor: Anyway, it's probably that big because it also contains the installers for the subsystem itself that it runs automatically *shrug*
18:13:08 <elliott> That's the price of convenience
18:13:09 <Phantom_Hoover> I... guess it's not particularly surprising that it's a hotbed of idiocy.
18:13:17 <Gregor> Ohhhh yeah
18:14:26 <tswett> Hackiki would probably be rather simpler if pages were Lua files rather than arbitrary executables.
18:14:49 <elliott> Also more terrible
18:14:54 <tswett> Yep.
18:15:05 <elliott> Especially since you'd have to use Lua
18:15:20 <tswett> Speaking of terrible, I'm working on another terrible codenomic.
18:15:23 -!- Ngevd has joined.
18:15:33 <Phantom_Hoover> Codenomic?
18:15:35 <Ngevd> Hello!
18:16:23 <tswett> I've installed Apache and Postgres and, you know, done stuff. Next is the actual *stuff* part of the nomic.
18:16:47 <tswett> Phantom_Hoover: yeah. Essentially, a computer game whose source code can be changed by the players at runtime.
18:16:56 <Phantom_Hoover> Ah.
18:17:03 <elliott> tswett: Two bad software choices!
18:17:07 <elliott> Good start.
18:17:12 <Phantom_Hoover> Sounds exceptionally tricky to get right.
18:17:33 <Ngevd> I seem to remember someone discussing something like this much earlier....?
18:17:36 <elliott> Phantom_Hoover: Codenomics have worked perfectly well in the past; PerlNomic was the most prominent and lasted for years and with high activity.
18:17:52 -!- zzo38 has joined.
18:18:31 <tswett> elliott: thank you.
18:18:34 <Phantom_Hoover> Oh, it's a wiki-style thing with accessible code?
18:18:41 <tswett> Phantom_Hoover: more or less, yeah.
18:18:42 <elliott> Phantom_Hoover: No, it's a game.
18:18:50 <elliott> Unless you mean Hackiki.
18:19:01 <Ngevd> It's like single player Hackiki in a way(?)
18:19:10 <tswett> elliott: what would you advocate instead of Postgres? The brilliant DBMS known as "files"?
18:19:10 <Phantom_Hoover> ???
18:19:15 <tswett> Ngevd: yes, but with multiple players.
18:19:24 <elliott> tswett: I'd question why you think you need one, or what you're doing, or anything
18:19:32 <tswett> Ngevd: also, there's a superuser, and the players can, with consensus, run stuff as the superuser.
18:19:33 <Phantom_Hoover> It's like multiplayer single-player Hackiki.
18:19:33 <elliott> Postgres is the best SQL DB though
18:20:09 <ais523> elliott: I don't believe "lasted for years and with high activity" on PerlNomic
18:20:13 <ais523> it lasted for years but with very low activity
18:20:17 <elliott> ais523: Those were separate statements
18:20:20 <zzo38> I have used SQLite but you can use whatever works best for your situation
18:20:24 <ais523> hmm…
18:20:24 <elliott> ais523: It had high activity when it was an Agoran officer
18:20:27 <elliott> That sort of period
18:20:27 <Ngevd> `addquote <Ngevd> It's like single player Hackiki in a way(?) <tswett> Ngevd: yes, but with multiple players.
18:20:34 <HackEgo> 711) <Ngevd> It's like single player Hackiki in a way(?) <tswett> Ngevd: yes, but with multiple players.
18:20:36 <ais523> elliott: even higher when it was Slashdotted
18:20:38 <elliott> ais523: And PerlNomic-related proposals were regularly passing
18:20:41 <Phantom_Hoover> How did PerlNomic work, normally?
18:20:44 <elliott> ais523: and yes, but I wasn't around then
18:20:46 <Vorpal> elliott, hm, if you want ACID (to disk) but don't particularly want SQL, what options do you have, apart from writing it yourself, which can be rather tricky.
18:20:46 <lambdabot> Vorpal: You have 2 new messages. '/msg lambdabot @messages' to read them.
18:20:57 <elliott> Phantom_Hoover: it was a bunch of cgi scripts, one of which let you add a proposal (a piece of perl code)
18:21:03 <elliott> Phantom_Hoover: another one let players vote on those proposals
18:21:04 <ais523> Phantom_Hoover: basically, proposals were Perl scripts, enough votes and it'd be run on the server as root
18:21:06 <elliott> when one passed, it was executed
18:21:19 <elliott> and other cgi scripts added through this mechanism added various subgame mechanisms that added to a player's score, etc.
18:21:21 <ais523> or at least, with enough perms to affect the whole of the nomic
18:21:30 <ais523> and there were scripts to help write proposals too
18:21:31 <elliott> ais523: not root :P
18:21:39 <ais523> root was Normish
18:21:49 <Vorpal> <lambdabot> elliott said 3h 8s ago: Nobody uses any of the stuff musl doesn't have except for C++ crap <-- cfunge wants some of the C99 math functions, far from all required. Whatever FIXP, FPDP and FPSP requires.
18:22:03 <elliott> cfunge also wants _posix_poopadvise and uses inline asm
18:22:03 <ais523> which had similar activity to PerlNomic while it was a player of Agora, but didn't last as long
18:22:05 <Vorpal> hm TURT might use sin/cos too
18:22:10 <ais523> it doesn't have sin/cos?
18:22:17 <tswett> I think Normish got onto a couple of spam blacklists. }:P
18:22:18 <elliott> sin is not C99.
18:22:19 <Vorpal> ais523, sinl
18:22:20 <Vorpal> long
18:22:27 <Vorpal> err long double*
18:22:41 <Vorpal> elliott, no longer inline asm, modern gcc actually compiles the intrinsic for it sanely
18:22:46 <ais523> elliott: I interpreted Vorpal as "C99 functions, also sin and cos"
18:22:52 <elliott> Vorpal: http://git.etalabs.net/cgi-bin/gitweb.cgi?p=musl;a=blob;f=include/math.h;h=677248287ae99470346db96e5d64926ed12b7645;hb=HEAD
18:23:09 <Phantom_Hoover> musl?
18:23:15 <elliott> musl just doesn't have complete C99 math support.
18:23:25 <elliott> Phantom_Hoover: jfgi
18:23:27 <Vorpal> elliott, the only reason I used inline asm was that using the gcc intrinsic produced terrible code in then modern gcc versions
18:23:34 <Phantom_Hoover> Also wait, people have used GCC inline assembly and come out sane?
18:23:47 <elliott> gcc inline assembly is easy
18:23:47 <Vorpal> Phantom_Hoover, well, people claim I'm sane
18:24:02 <Phantom_Hoover> Vorpal, no, you're so Vorpid it hurts.
18:24:04 <Gregor> elliott: Why does Windows have to be so terrible?
18:24:11 <elliott> Gregor: Why are you using Windows
18:24:17 <elliott> Anyway, it's because you're not using the POSIX subsystem
18:24:37 <Gregor> elliott: I just wanted a "real" Windows machine to not cross-compile on and not test with WINE :P
18:24:38 <Vorpal> elliott, I just played the Trine 2 beta. Quite promising I have to say. I look forward to the full version of the game being released.
18:24:41 <tswett> So, yeah. What I need to toss into the nomic blender now is... pages. Stuff that you see when you go to zbasu.net, and which interacts with the database and stuff.
18:24:54 <Vorpal> elliott, did you play the first Trine? I forgot
18:24:55 <elliott> Lemme know when you give up :P
18:25:04 <elliott> Vorpal: I haven't played any of the Bundle games yet
18:25:05 <tswett> elliott: on the codenomic thing?
18:25:08 <elliott> Well
18:25:12 <elliott> Apart from the ones I have played
18:25:14 <elliott> tswett: Yep!
18:25:22 <elliott> Vorpal: Oh, I didn't even get that bundle
18:25:24 <Phantom_Hoover> elliott, i.e. Voxatron which isn't terribly good.
18:25:24 <tswett> elliott: I haven't given up on it in the last two years. }:P
18:25:25 <Vorpal> oh
18:25:27 <Phantom_Hoover> wait dude
18:25:28 <Phantom_Hoover> you
18:25:29 <Vorpal> elliott, okay.
18:25:29 <Phantom_Hoover> didn't get
18:25:31 <Phantom_Hoover> spacechem
18:25:46 <elliott> tswett: It's made this little progress in the last two years?
18:25:50 <elliott> tswett: Let me know when you give up in fifteen
18:25:53 <Vorpal> elliott, Trine is really fun. Don't even bother trying it on intel graphics though
18:26:28 <Gregor> <eboyjr> I'm sure robots will become good conversationalists <inimino> probably not before they become good barbers, though
18:26:31 <tswett> Perl has a trusted mode, right? And it ought to be easy to write web scripts in Perl, and for Perl to access the database... right?
18:27:01 <elliott> Perl has taints, which are useless.
18:27:04 <elliott> If that's what you mean.
18:27:07 <Vorpal> I have to say I never seen a game with so much bloom as Trine 2 though. Trine 1 had a lot of it too, but even more in Trine 2. Works within the setting though.
18:27:27 <Vorpal> hm may be HDR rather than bloom, not sure
18:27:41 <Phantom_Hoover> <elliott> tswett: It's made this little progress in the last two years?
18:27:41 <Phantom_Hoover> <elliott> tswett: Let me know when you give up in fifteen
18:28:05 <Phantom_Hoover> Also let me tell you about this amazing ElliottCraft thing, also how it will run on a new thing called @.
18:28:41 <elliott> Phantom_Hoover: I have never once claimed @ is an actively developed project, and I've already pointed people to the various bugs in other packages Elliottcraft is blocked on *shrugs*
18:28:48 <elliott> Fix those bugs or quit complaining
18:29:09 <Phantom_Hoover> <elliott> What is a good-natured jibe I have not heard of this?
18:29:50 <elliott> Usually good-natured jibes aren't things you've actively whined about
18:30:06 <Phantom_Hoover> When have I ever whined about EC or @ development?
18:30:34 <elliott> lol
18:30:43 <Gregor> elliott: OMG I'm only at 22% downloaded
18:30:47 <Gregor> elliott: WHY ARE YOU DOING THIS TO ME
18:30:59 <elliott> Gregor: America sux
18:31:21 <Gregor> elliott: GODDDDDDDDDD BLESS AMERRRRRRICAAAAAAAAAAAAAAAAAAAA, LAAAAAAAAAAAAAAND OF PEOPLE WHO PRONOUNCE THEIR ARRRRRRRRRRRRRRRRS!
18:31:31 <Phantom_Hoover> *cough*
18:32:00 <Ngevd> Phantom_Hoover wishes to remind you that Canadians pronounce their r's too
18:34:49 <Ngevd> :P
18:34:56 <Phantom_Hoover> *:R
18:35:19 <Ngevd> Touch
18:35:32 <Phantom_Hoover> *Tourché.
18:36:41 <elliott> Deewiant: omg great news! I gotta write my own lib, ansi-terminal won't work for the output end of things and I need input support too
18:36:47 <elliott> ~fuck~yes~
18:38:45 <Ngevd> Wow, someone on the IWC forum likes my MSPAFA
18:39:26 <Gregor> Canadians pronounce their R's so hard they pronounce them even when there are no R's!
18:39:35 <elliott> Vorpal: And sigh, you were right about moving above the top of the screen
18:39:43 <Ngevd> Grergror
18:41:26 <Ngevd> elliott, is curses at all relevant?
18:41:40 <elliott> Ngevd: Yes, and unusable for my purposes
18:41:45 <Ngevd> Okay
18:42:05 <Ngevd> I only pretend to be an even half-way decent programmer
18:42:31 <Gregor> I didn't realize you even pretended BA-DUM TISH
18:44:13 <Ngevd> :R
18:48:11 <elliott> How can I get the width and height of the current X screen from the terminal?
18:52:19 <Gregor> elliott: xrandr I suppose?
18:52:24 <Gregor> Probably a better way.
18:52:26 <elliott> Gregor: Ahh, thanks
18:52:32 <elliott> Gregor: Hey, guess what I don't have installed :P
18:52:37 <Gregor> Hyuk
18:52:49 <Gregor> xdpyinfo?
18:53:18 <Ngevd> Python 3.2?
18:53:19 <Ngevd> Fortran?
18:53:19 <Ngevd> Windows Vista?
18:53:29 <Gregor> AT&T Unix System V?
18:53:36 <Gregor> But actually xdpyinfo was a suggestion.
18:55:45 <Gregor> Speaking of xdpyinfo, when I did a fresh install of Debian on my shiny new machine for some reason it thought my DPI was 350, resulting in lolfontsize.
18:56:59 <elliott> Gregor: Open an rxvt or xterm (xfce terminal won't work, probably not gnome terminal either) and run this Haskell program (no dependencies): http://sprunge.us/WeDa
18:57:02 <elliott> Trust me, it's worth it :P
18:57:08 <Gregor> Uhh
18:57:13 <elliott> Warning: Not for epileptics
18:57:19 <Gregor> *whew*, don't have Haskell at work.
18:57:36 <elliott> Dammit!
18:57:45 <elliott> You're on x86-64 Linux right? ;D
18:58:06 <Gregor> ... yessssssssssss
18:58:55 <elliott> Gregor: Dammit, I can't statically link this :P
18:59:07 <Gregor> Muahahahaha
18:59:49 <elliott> Gregor: But I _CAN_ rewrite it as a Python script!
19:01:34 -!- oerjan has joined.
19:01:52 <Ngevd> Hello oerjan
19:02:10 <oerjan> evening all
19:02:13 <twice11> elliott: On gnome-terminal, the windows gets small, then it grows, shrinks again, and then a lot of strange character sequences (meant as escape codes) appear on the screen, with the window still small.
19:02:20 <elliott> twice11: Yep :P
19:02:33 <elliott> That's what happens in Xfce too
19:02:41 <twice11> It seems to dislike negative numbers.
19:03:50 <Gregor> elliott: Hahaha, I'm making you write Python.
19:04:24 <twice11> Throw in an abs application on the "let j" line and no escape-spam appears in the window.
19:05:07 <elliott> twice11: I think negative numbers might be what make it go so haywire on rxvt
19:05:56 <elliott> Gregor: Python seems to ruin the effect... maybe it's not fast enough :P
19:06:05 <Gregor> Teehee
19:07:21 <twice11> elliott: On rxvt, the effect does not change with/without abs.
19:07:27 <twice11> It seems to ignore the sign.
19:07:40 <elliott> Hmm, weird.
19:08:03 <elliott> Does it work on your machine too? Dunno if it's just my WM or whatever. i.e. the pseudo-duplicated window effect and the like
19:08:04 <twice11> And my xterm does nothing.
19:08:26 <twice11> I get no duplicate window effect.
19:09:08 <twice11> I get a periodically shrinking/growing and oscillating window with rxvt, no effect with xterm, just grow/shrink with gnome terminal.
19:09:13 <elliott> Huh
19:09:18 <elliott> I'm using the xterm codes, so it's weird that it does nothing
19:09:27 <twice11> Probably a security feature.
19:10:37 <elliott> Or a non-annoyance feature :P
19:10:37 <twice11> Yes, security, indeed.
19:10:50 <twice11> "Allow window ops" in Ctrl-Rightclick.
19:11:06 <elliott> Can't say I can think of a valid use for them :P
19:11:27 <twice11> elliott: There is a valid use.
19:11:39 <elliott> Ooh, I could even spawn more xterms; I'm thinking of something that spews audio to /dev/dsp or whatever, while bar-visualising it using an array of resizing xterms :-D
19:11:53 <twice11> In the times where "gui, noun: 10 xterms and a background image" was true,
19:11:57 <elliott> You could combine that with colour codes!
19:12:06 <twice11> You could position pop-up windows where they belong.
19:12:13 <elliott> Ha, wow.
19:12:15 <elliott> Did people actually do that?
19:12:26 <twice11> i.e. you could make a multi-window application without linking X11.
19:12:26 <elliott> I thought xmessage was ancient.
19:12:34 <elliott> Oh, pre-X terminal multiplexing
19:12:49 <twice11> No, X terminal multiplexing,
19:12:55 <elliott> Oh, without linking in, right
19:12:56 <twice11> but without depending on libX11 yourself.
19:13:08 <elliott> You could just speak the X wire protocol :P
19:13:17 <twice11> I'm too young to know whether someone used it.
19:13:30 <twice11> GNOME ignores the position, it just uses the size.
19:15:02 <twice11> And the reason I get no duplicate window effects or other strange things is most likely that I am using a compositing system.
19:15:48 <elliott> twice11: Me too (xfwm4 with compositing enabled)
19:15:51 <elliott> Although no fancy effects.
19:15:54 <elliott> That's why it was surprising.
19:16:01 <elliott> I guess my LCD refresh rate is just too low.
19:16:16 <twice11> I run gnome-shell (gnome 3.0), and the stuff looks really smooth here.
19:16:53 <twice11> btw: gnome terminal interprets size 0 as "default/original size"
19:17:22 <elliott> twice11: My condolences re: gnome-shell
19:17:29 <elliott> Although it's actually Mutter doing the window management duties there.
19:18:55 <twice11> Is mutter a module of gnome-shell? I don't see a separate window manager process here.
19:19:45 <elliott> Hmm
19:20:04 <twice11> In gnome fallback mode, I think there is mutter. And if mutter crashes, you get metacity.
19:20:15 <elliott> twice11: Maybe you're running COmpiz instead or something, or the executable is called something else
19:20:18 <elliott> The Mutter window manager can function as standalone window manager application for GNOME-like desktops, and serves as the primary window manager for the GNOME Shell desktop,[4] which is an integral part of the GNOME 3.0 release. Mutter is extensible with plugins and supports numerous visual effects.
19:20:20 <twice11> You might call that a "cheat code"...
19:20:36 <elliott> If only the fallback mode had a usable panel :P
19:20:48 <twice11> The standard mode has neither.
19:21:47 <elliott> Neither what?
19:21:55 <twice11> Bad grammar.
19:22:06 <twice11> I meant "The standard mode doesn't have one, too".
19:22:06 <elliott> Oh, hasn't either
19:22:31 <twice11> Yeah, hasn't either would have been correct.
19:23:42 <Phantom_Hoover> Is Gnome 3.0 all that terrible?
19:23:46 <twice11> Looks like mutter runs as dynamic library inside gnome-shell.
19:24:08 <elliott> Phantom_Hoover: Yes.
19:24:26 <twice11> Gnome 3.0 looks nice, and is quite usable - but it abandons some concepts we get really used to.
19:24:37 <twice11> One of them being a customizable panel with applets.
19:24:40 <elliott> Well, I haven't run gnome-shell for quite a long while, but I used it for about a day a few months ago and it was intolerable; reviews don't appear to imply it's improved at all
19:24:45 <Phantom_Hoover> Are we talking "the buttons are all precisely the wrong shade of blue" terrible or "help where are the buttons" terrible?
19:25:05 <elliott> Phantom_Hoover: We're talking "unusable application starting/window management interface"
19:25:26 <elliott> Honestly, I'm not even tied to the panel + windows model, I just don't want to replace it with something /worse/. If GNOME 3 came out with a tiling WM I'd give it a long while before deciding it sucked :P
19:26:06 <Phantom_Hoover> What are the later reasons for it sucking?
19:26:13 <twice11> Alt+F1 i-c-e-w-Enter is not really that bad to start an application (yeah, I'm using debian)
19:26:34 <elliott> Phantom_Hoover: What?
19:26:49 <elliott> twice11: That's what dmenu is for :P
19:26:54 <Phantom_Hoover> If you'd give it a long while, there are other reasons for it sucking which are more subtle.
19:27:17 <twice11> elliott: I had configured the quick-launch bar in GNOME 2.x, but never got used to using it.
19:27:39 <elliott> Phantom_Hoover: Your last two lines have been uninterpretable, sorry
19:27:59 <Phantom_Hoover> "If GNOME 3 came out with a tiling WM I'd give it a long while before deciding it sucked :P"
19:28:48 <elliott> As in "a tiling WM could possibly be a major improvement on the previous GNOME 2 model, so I would give it a fair chance before making any judgement".
19:29:05 <elliott> Whereas I could tell gnome-shell was fundamentally broken in a day.
19:29:21 <Phantom_Hoover> Yeah, but why would your judgement still be that it sucked?
19:30:22 <elliott> I didn't imply that.
19:30:34 <Phantom_Hoover> Oh, right, ambiguity.
19:30:57 <elliott> Neat, GNOME 3.4 is dropping Linux support
19:31:04 <elliott> Very smart of them
19:31:14 <elliott> Because Poettering told them to!
19:31:15 <twice11> BSD only?
19:31:30 <twice11> Sounds like news from the onion, if you ask me.
19:31:40 <Phantom_Hoover> Zwuh?
19:31:42 <elliott> Erm
19:31:44 <elliott> X-D
19:31:46 <elliott> Dropping non-Linux support
19:31:58 <elliott> The other way around would be particularly amazing news :P
19:32:10 <Phantom_Hoover> So they're not spiting everyone because Ubuntu switched to Unity?
19:32:39 <elliott> X-D
19:32:47 <elliott> "Fuck you, we're leaving! ANNOUNCING: GNOME 3.4 for Windows!"
19:33:35 <Ngevd> Who the hell bothers with cheating at the International Maths Olympiad?
19:34:11 <Ngevd> By which I mean North Korea
19:34:18 <Ngevd> But why!?
19:35:38 <Ngevd> It's pointless!
19:35:43 <Ngevd> And rather sad!Q
19:35:55 <Ngevd> That 'Q' is symbolic of my pity.
19:35:59 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
19:36:24 <Phantom_Hoover> WTF, John McCarthy was the Lisp guy???????????????
19:36:36 -!- Vorpal has joined.
19:36:49 <Ngevd> It wasn't Joe
19:37:03 <Phantom_Hoover> All this time I've been wondering why we were mourning the inventor of McCarthyism.
19:37:18 <Ngevd> He died in '57
19:37:32 <elliott> Phantom_Hoover: .........
19:37:52 <Phantom_Hoover> I... have to go and... do... things...
19:37:52 -!- Phantom_Hoover has quit (Quit: Leaving).
19:38:20 <elliott> For reference, Joseph McCarthy would have been 103 had he died this year.
19:38:43 <Ngevd> Ironically, he was killed by Fascists
19:38:46 <Ngevd> ;)
19:39:58 -!- Phantom_Hoover has joined.
19:39:59 <Ngevd> For the benefit of future civilizations: he died probably due to alcoholism.
19:40:00 <elliott> "Reactions to GNOME Shell have also not been universally negative." --Wikipedia
19:40:02 <elliott> Well that's good then!
19:40:19 <Phantom_Hoover> Please tell me it just leaves off there.
19:40:25 <elliott> For the benefit of future civilizations: Ngevd is making a quaint 21st century joke; Joseph McCarthy is the President of Europe.
19:40:37 <elliott> Phantom_Hoover: No :P
19:40:50 <elliott> Ngevd: We really have to destroy these logs before civilisation falls.
19:40:58 <elliott> For the benefit of future civilizations: So that you don't discover our horrible secret.
19:41:29 <Phantom_Hoover> The Terrible Secret of #esoteric.
19:42:05 <Phantom_Hoover> For the benefit of future civilisations (shame on you, elliott and Ngevd): that was a reference to Shakespeare.
19:42:08 <elliott> I am the /kicker robot. Kicking is the answer. Kicking will protect you from the Terrible Secret of #esoteric.
19:42:13 <Ngevd> The #esoteric Secret of Terrible
19:42:24 <Ngevd> I look forward to GNOME 4
19:42:26 -!- ive has quit (Ping timeout: 276 seconds).
19:42:39 <twice11> I don't. I look forward to GNOME 3.6 or so.
19:42:52 <twice11> GNOME with a new major version is known to be major breakage.
19:43:07 <Ngevd> Meh, I use Unity
19:43:15 <Ngevd> Because I am masochist.
19:43:30 <olsner> #esoteric has a terrible secret?
19:43:36 <elliott> twice11: Known for all two versions it's happened? :P
19:43:41 <Ngevd> olsner, shh
19:43:47 <elliott> OK, I suppose GNOME 1.0 happened, but I'm pretty sure GNOME 1 was never not awful.
19:43:52 <olsner> I think it's a Terrific Secret!
19:44:10 <twice11> Yeah, statistics with 2 data points is science. Statistics with one data point is crap.
19:44:27 <Ngevd> Statistics with three data points is overkill.
19:44:38 <olsner> statistics with data is overkill
19:44:40 <elliott> `addquote <twice11> Yeah, statistics with 2 data points is science. Statistics with one data point is crap.
19:44:42 <HackEgo> 712) <twice11> Yeah, statistics with 2 data points is science. Statistics with one data point is crap.
19:44:46 <twice11> You measure a third point if you need an error estimate.
19:44:50 <elliott> Darn, Ngevd and olsner made it better before I added it.
19:44:55 <elliott> `delquote 712
19:44:58 <HackEgo> ​*poof* <twice11> Yeah, statistics with 2 data points is science. Statistics with one data point is crap.
19:45:03 <elliott> `addquote <twice11> Yeah, statistics with 2 data points is science. Statistics with one data point is crap. <twice11> You measure a third point if you need an error estimate.
19:45:04 <elliott> There we go :P
19:45:05 <HackEgo> 712) <twice11> Yeah, statistics with 2 data points is science. Statistics with one data point is crap. <twice11> You measure a third point if you need an error estimate.
19:45:47 <elliott> twice11: So is your name 22 and you just have to mangle it everywhere because of the leading digit? :P
19:46:12 <twice11> No, my name covers a terrible secret ;)
19:46:35 <twice11> Or a terrific secret, perhaps.
19:46:36 <Ngevd> But not THE Terrible Secret
19:46:54 <Ngevd> (it's 1111)
19:47:00 <elliott> Did you... have two 11th birthdays?
19:47:17 <Ngevd> Possible, if he's 47
19:47:34 <Ngevd> Or older
19:47:36 <olsner> today, as every day, is his elevenhundredeleventieth birthday
19:47:49 <twice11> Ngevd: Don't tell everyone the number combination of my suitcase!
19:47:53 <elliott> Like, maybe twice11 was born at exactly midnight and blah blah blah DST.
19:48:07 <Ngevd> Or maybe he was born on February the 30th
19:48:17 <olsner> he will be born in 4 days, on 11/11 -11
19:49:18 <twice11> That nick has been chosen 13 years ago, when freaks still knew CP437 with graphic symbols for control characters and is correctly spelled twice#11
19:49:29 <Ngevd> Hey, there's a new esolang
19:49:40 <twice11> On the other hand, probably today I would use a different nick, if I didn't get used to this one.
19:50:01 <Ngevd> I use Taneb in most places except for this channel.
19:50:16 <Vorpal> <Ngevd> Hey, there's a new esolang <-- any good?
19:50:21 <elliott> I can only conclude that twice11 is actually Mars.
19:50:27 <Ngevd> It doesn't appear to be a brainfuck derivative
19:50:35 <Vorpal> well, that is a start
19:50:41 * Phantom_Hoover sets down the brick.
19:51:04 <Ngevd> Hold on, Phantom_Hoover
19:51:09 <Ngevd> Keep a hold of that brick
19:51:17 * twice11 congratulates elliot for looking up CP437
19:51:20 * Phantom_Hoover picks the brick up again.
19:51:35 <elliott> twice11: I know what CP437 is :P
19:51:40 <olsner> Phantom_Hoover: what are you doing with that brick?
19:51:41 <Phantom_Hoover> twice11, we all know CP437.
19:51:48 <elliott> I don't know it off by heart, though
19:51:52 <Phantom_Hoover> olsner, readying it for some brickbrainin'.
19:51:56 <twice11> heart is #3
19:52:05 <Ngevd> I'd like a second opinion
19:52:08 <Ngevd> http://esoteric.voxelperfect.net/wiki/Lenta
19:52:13 <olsner> Phantom_Hoover: do a brickroll
19:52:30 <olsner> or some brickabrack
19:52:48 <Ngevd> Hmm...
19:52:59 <Phantom_Hoover> Oh FFS, when I look at ¬ my first thought is "better expand the food stockpile again".
19:53:03 <Vorpal> twice11: hm, which base should it be interpreted in?
19:53:04 <elliott> olsner: Looks vaguely interesting
19:53:14 <elliott> Erm
19:53:15 <elliott> Ngevd:
19:53:44 <twice11> Vorpal: I'm only commenting as much as that elliott already looked up the right character.
19:53:48 <olsner> hmm, that's a bit of a typo there
19:53:48 <Phantom_Hoover> Doesn't look much like a Brainfuck derivative.
19:53:51 <Ngevd> Oh god, he's either writing something big or died.
19:54:07 <elliott> Who's he
19:54:17 <Phantom_Hoover> boily.
19:54:27 <Ngevd> Sir Terry Pratchett?
19:54:38 <olsner> boily boils?
19:54:39 <Vorpal> twice11: you mean "<elliott> I can only conclude that twice11 is actually Mars."? That doesn't mean anything to me
19:54:43 <Phantom_Hoover> You know that he released a book like 3 days ago?
19:54:45 <elliott> Ngevd: How was I supposed to know that from the context
19:54:58 <Ngevd> Mind reading
19:55:04 <twice11> Vorpal: Yeah, that's the quote I meant.
19:55:06 <elliott> Ngevd: Anyway, you'll know when he dies since he's committed to suicide *shrugs* :P
19:55:16 <quintopia> boily wont ever talk it seems
19:55:17 <Vorpal> twice11: so what is the symbol for Mars?
19:55:24 <quintopia> i want to talk to boily
19:55:25 <elliott> Vorpal: You have access to Google
19:56:14 <twice11> Vorpal: ^K in the display RAM of some ancient IBM graphic cards.
19:56:16 <Vorpal> so 11 in base 10, meh. I was looking at the hexdecimal 0x11
19:56:25 <elliott> quintopia: The lurkers are usually lurkers because they're boring people.
19:56:37 <twice11> Vorpal: Get some Turbo(?) Pascal!
19:56:47 <Vorpal> twice11: ugh nop
19:56:48 <Vorpal> no*
19:56:55 * Vorpal forces twice11 to use Delphi.NET
19:57:10 <Vorpal> I seem to have a vague memory of hearing about that
19:57:13 <Vorpal> sounds horrible
19:57:25 <twice11> Last Delphi I had contact with is Delphi 5.
19:57:28 <elliott> Haha, ConsoleKit is dying
19:57:33 <elliott> Being replaced with systemd
19:57:37 <Vorpal> ouch
19:57:45 <Vorpal> elliott: what will happen to distros not using systemd
19:57:53 <elliott> They'll switch to systemd :)
19:57:59 <olsner> of course, nothing named CamelKit can remain in Linux, it needs to be a somethingd
19:58:01 <twice11> It's actually no worse than Visual Basic, but I don't think this means anything...
19:58:02 <Vorpal> elliott: you think ubuntu will?
19:58:11 <elliott> Vorpal: Debian are, IIRC
19:58:15 <Vorpal> hm
19:58:24 <elliott> I doubt Canonical are so attached to upstart that they won't in the face of pressure like that, but we'll see
19:58:26 <Vorpal> elliott: but did debian ever use upstart?
19:58:26 <twice11> PolicyKit gets what then? permissiond?
19:58:41 <elliott> Does PolicyKit depend on ConsoleKit?
19:58:52 <elliott> Don't see anything about it being unmaintained on freedesktop.org
19:58:55 <Vorpal> what do consolekit and policykit actually do btw?
19:59:09 <Vorpal> elliott: also what will you do for Kitten then? I assume you won't use systemd...
19:59:11 <twice11> No, but olsner suggested all *Kits are dying.
19:59:19 <elliott> policykit is what allows you to do things like modify net connection/users/packages from the GUI
19:59:21 <Vorpal> hm I guess you could just implement the relevant interfaces
19:59:25 <elliott> (for stuff that doesn't use gksudo or w/e)
19:59:31 <olsner> twice11: they could change names too, I guess
19:59:33 <Vorpal> and consolekit?
19:59:34 <elliott> finer-grained stuff
19:59:38 <Phantom_Hoover> My cat had some dtens.
19:59:44 <olsner> but people like to rewrite stuff because they can
19:59:46 <elliott> "ConsoleKit is a framework for defining and tracking users, login sessions, and seats."
19:59:47 <elliott> "ConsoleKit is a framework for managing user sessions and permissions. Some of the most common usages of consolekit is allowing non-root users to mount removable media and suspending/shutting down the computer through common desktop applications (ie: thunar, nautilus, the gnome shutdown menu, etc)."
19:59:56 <Vorpal> seats?
20:00:03 <elliott> *shrug*
20:00:04 <olsner> also because the existing stuff sucks, but so will their replacements :D
20:00:04 <quintopia> elliott: huh, i just figured since the active people are so boring, the lurkers must be the interesting ones
20:00:30 <elliott> Oh, I see what twice11 meant
20:00:35 <elliott> Pretty sure olsner was not being serious :P
20:00:47 <olsner> quintopia: yep, they're too interesting to dilute their interestingness with banter
20:00:52 <twice11> Vorpal: seats: If your computer has two keyboards and two seperately controlled monitors, you can have two independent sessions at the consoles.
20:00:52 <Vorpal> sounds like I could do without consolekit. Since none of those things actually work on my desktop anyway. Probably because I use startx rather than a login manager
20:00:56 <twice11> These are two seats.
20:01:10 <Vorpal> twice11: ... that sounds extremely rare
20:01:11 <elliott> Vorpal: You're meant to have ck-launch-session in ~/.xinitrc.
20:01:24 <Vorpal> elliott: hm I do have that
20:01:26 <elliott> Vorpal: That's not incredibly rare. Any thin client is probably a seat.
20:01:28 <Vorpal> exec ck-launch-session dbus-launch --exit-with-session startxfce4
20:01:47 <Vorpal> so... why doesn't those things work
20:01:50 <elliott> Shrug
20:02:09 <twice11> Most of this new-fangled Linux stuff looks like overdesigned crap.
20:02:17 <twice11> But maybe I just don't understand it.
20:02:36 <Vorpal> I guess removable media is nice. Hm
20:02:43 <Ngevd> Wait a second...
20:02:56 <Ngevd> Lenta seems awfully similar to my old Ook!++
20:03:01 <olsner> elliott: well... yes and no, names like ConsoleKit do look awfully out of place among the rest of the stuff
20:03:04 <Ngevd> Except further from brainfuck
20:03:09 <Vorpal> hm
20:03:31 <elliott> olsner: freedesktop people do not care much about fitting in to the "old" ecosystem
20:03:32 <Vorpal> olsner: is there actually any /etc/init.d/consolekit though?
20:03:33 <olsner> though the process is actually just called console-kit-something, I thought it was called ConsoleKit
20:03:49 <Vorpal> or /etc/rc.d or whatever
20:04:06 <elliott> http://www.freedesktop.org/wiki/Software/eventuality guess this took out
20:04:07 <elliott> erm
20:04:08 <elliott> s/out/off/
20:04:09 <Vorpal> I have no such init script
20:04:11 <elliott> (from http://www.freedesktop.org/wiki/Software)
20:04:20 <olsner> but isn't mac or next where they started calling things FooKit etc?
20:04:44 <elliott> olsner: WebKit is the only thing I can think of
20:04:48 <elliott> and is unrelated to all these
20:04:59 <elliott> olsner: OS X is more about Core Blah
20:05:10 <elliott> image, garphics, animation, video
20:05:14 <elliott> s/garphics/graphics/
20:05:16 <Vorpal> core quartz?
20:05:22 <elliott> cowartz
20:05:24 <Vorpal> or what was quartz now again
20:05:25 <twice11> Core Dump
20:05:28 <Vorpal> what did it do?
20:05:47 <twice11> Quartz == The display engine based on PDF data.
20:05:50 <Vorpal> ah
20:06:09 <twice11> Maybe replaced by Core Graphics now.
20:06:13 <twice11> No idea.
20:06:13 <Vorpal> hm
20:06:26 <elliott> "Quartz specifically refers to a pair of Mac OS X technologies, each part of the Core Graphics framework: Quartz 2D and Quartz Compositor. It includes both a 2D renderer in Core Graphics and the composition engine that sends instructions to the graphics card. Because of this vertical nature, Quartz is often interchanged synonymously with Core Graphics.[1]"
20:06:35 <Gregor> elliott: Where the heck was I downloading Gentoo Prefix? >_<
20:06:41 <elliott> Gregor: ?
20:06:45 <Vorpal> Gregor: you mean "why the heck"
20:06:47 <Gregor> elliott: I can't find it :P
20:06:53 <elliott> Gregor: The URL or file
20:06:55 <Ngevd> What's conceptually inbetween Haskell and Perl?
20:07:00 <elliott> Vorpal: Because the alternative is Cygwin
20:07:05 <Vorpal> elliott: why windows...
20:07:06 <Gregor> elliott: The file. You can't help me, but that doesn't stop me from blarping at you.
20:07:10 <elliott> Ngevd: What's in-between a banana and a pile of dirt
20:07:14 <elliott> Gregor: Right :P
20:07:18 <elliott> Gregor: Try the Windows file-finding feature?
20:07:25 <elliott> It OCCASIONALLY works.
20:07:25 <Ngevd> elliott, a rotting banana.
20:07:28 <Gregor> elliott: I don't think I was downloading it on Windows.
20:07:30 <Ngevd> I don't like bananas
20:07:31 <Gregor> In fact I know I wasn't.
20:07:33 <Vorpal> elliott: also, modern internix requires win 7 ultimate, win 7 enterprise, or win server 2008 iirc
20:07:36 <Vorpal> hm
20:07:43 <elliott> Gregor: find . -name \*gentoo\*
20:07:46 <Ngevd> So, what's the rotting banana of programming languages?
20:07:49 <Gregor> elliott: That's what I'm doing :P
20:07:51 <elliott> Vorpal: Gentoo Prefix supports XP onwards
20:07:55 <Vorpal> hm
20:07:58 <elliott> Ngevd: Perl
20:08:09 <Ngevd> I thought that was the Banana!
20:08:09 <Vorpal> well I can't do it on my win 7 pro install.
20:08:11 <Vorpal> oh well
20:08:15 <Vorpal> not like I need it
20:08:21 <Vorpal> Gregor: so... why are you using windows?
20:08:29 <Gregor> elliott: If this doesn't work on my Windows 7 Pro ... KILL KILL KILL KILL DIE DIE DIE
20:08:35 <elliott> Gregor: It will.
20:08:35 <Gregor> Vorpal: I wanted a VM to not cross compile on.
20:08:37 <elliott> Gregor: Vorpal is just an idiot.
20:08:49 <Gregor> Of course, if I can't find the damned thing X-D
20:08:56 <elliott> Gregor: BTW, make sure you have the Administrator account enabled; see the manual for why
20:08:58 <Vorpal> elliott: well, microsoft said it wasn't supported.
20:09:07 <elliott> Microsoft don't support XP, indeed.
20:09:14 <elliott> I'm not sure how this is surprising.
20:09:17 <elliott> Or, hmm
20:09:20 <elliott> Has it actually reached its EOL yet
20:09:23 <Vorpal> "Version 6.1 is included in Windows 7 (Enterprise and Ultimate) and Windows Server 2008 R2 (all editions)."
20:09:24 <Gregor> Seriously, where the HELL did I download this >_<
20:09:33 <elliott> Vorpal: Yes, OS components only get upgraded with the OS
20:09:37 <elliott> Similarly, NT 7 or whatever isn't available for XP
20:09:49 <elliott> Gregor: /tmp?
20:09:51 <elliott> Did you reboot? :P
20:10:05 <Vorpal> elliott: I'm just saying that version 6.1 of interix is not supported on win 7 pro.
20:10:10 <Gregor> elliott: I had to reboot the machine that was SSH'd in to download.
20:10:11 <Vorpal> maybe you can use an older version
20:10:13 <Vorpal> I don't know
20:10:13 <Gregor> elliott: Hence why I lost it.
20:10:16 <elliott> Vorpal: You could use... the version for XP?
20:10:24 <Vorpal> elliott: would that run under win 7?
20:10:30 <elliott> Gregor: So was it in /tmp
20:10:41 <Gregor> elliott: No, why would I download in tmp :P
20:10:46 <elliott> Vorpal: Why the fuck would you use the version for XP on Windows 7
20:10:55 <Gregor> FOUND IT
20:11:06 <Ngevd> HURRAH!
20:11:08 <Vorpal> elliott: my point exactly. I'm just saying if you use win 7 you will need win 7 ultimate or win 7 enterprise
20:11:17 <Vorpal> and who would still use xp?
20:11:33 <elliott> Vorpal: "Version 6.1 is included in Windows 7 (Enterprise and Ultimate)"
20:11:37 <elliott> Note: INCLUDED
20:11:47 <elliott> Turns out smaller versions of Windows don't include all components which is why you might have to download them.
20:11:59 <Vorpal> elliott: I did check recently, it is NOT available for windows 7 pro according to microsoft.
20:12:00 <elliott> This is also irrelevant since the Gentoo Prefix ISO contains the SUA files.
20:12:08 <Vorpal> elliott: if I'm wrong, please tell me where you found it
20:12:12 <Vorpal> as I would very much like it
20:12:28 <elliott> Try looking on the Gentoo Prefix ISO :)
20:12:32 <Vorpal> hm okay
20:12:52 <olsner> OMG, Quark is dying :(
20:13:03 <Vorpal> olsner: quark?
20:13:05 <Gregor> Vorpal: Although Microsoft is killing SUA as of Windows 9.
20:13:11 <Vorpal> right
20:13:13 <elliott> Gregor: 8, I think.
20:13:25 <Vorpal> "It is set to be deprecated after the release of Windows 8. [4]"
20:13:29 <elliott> olsner: :'(
20:13:30 <Vorpal> sounds like 8 will still have it
20:13:31 <elliott> Meh, fair enough
20:13:45 <elliott> Who cares, Windows 9 will probably suck :P
20:13:52 <Vorpal> Gregor: tell me if it works on win 7 pro though if that is what you have
20:13:58 <Vorpal> elliott: won't windows 8 suck too?
20:14:10 <Ngevd> I think the Piet pi calculation is the most interesting
20:14:14 <elliott> Vorpal: Did I say otherwise?
20:14:19 <elliott> Windows 8 will support SUA, so it's irrelevant
20:14:21 <Vorpal> elliott: nope
20:14:26 <Gregor> Vorpal: That's what I have.
20:14:26 <olsner> elliott: I can only assume he'll survive though, haven't seen any mention of quark leaving the show in all the spoilers I've read
20:14:30 <Gregor> Haven't gotten OS X working in a VM yet :(
20:14:36 <elliott> olsner: Don't read spoilers :P
20:14:37 <Gregor> (I have 16GB of RAM now, so I'm VM'ing EVERYTHING)
20:15:02 <elliott> Gregor: There are tutorials for things like OS X in VirtualBox
20:15:05 <elliott> It's a pain but doable
20:15:08 <Gregor> elliott: I know, I've tried.
20:15:09 <Gregor> And failed.
20:15:13 <elliott> Less of a pain now that Apple support it on OS X hosts
20:15:14 <Gregor> elliott: I think it doesn't like my CPU or something.
20:15:15 <Vorpal> Gregor: do you have a copy of xp pro 64-bit? Quite lightweight for being windows. More so than the 32-bit xp
20:15:19 <Gregor> I knew I shouldn't have gone with AMD >(
20:15:21 <Gregor> *>:(
20:15:34 <Gregor> Vorpal: I don't need lightweight :P
20:15:50 <olsner> elliott: I actually like reading spoilers so I know something of what I have to look forward to
20:15:50 <Gregor> elliott: It gets through most of the installer, then freezes and dies horribly at 11% remaining and won't boot.
20:15:55 <Vorpal> Gregor: come on, aero is never going to be fast in a VM
20:15:59 <elliott> Gregor: Heh
20:16:02 <Vorpal> (sure you can turn that off)
20:16:07 <Gregor> Vorpal: Me using a GUI? Ha ha ha no
20:16:19 <elliott> olsner: That ruins DS9 a lot since the plot goes through major changes *shrug*
20:16:20 <Vorpal> Gregor: :P
20:16:33 <elliott> Vorpal: Aero runs just fine in a VM, and Aero can also be turned off.
20:16:53 <Vorpal> elliott: did I say anything that indicated the opposite of the latter+
20:16:55 <Gregor> So anyway, what's all this about Quark dying which now I assume is Star Trek Quark?
20:16:56 <Vorpal> s/+/?/
20:17:07 <elliott> Vorpal: Well, I'm assuming you're not just throwing bullshit statements unrelated to what the topic is at Gregor
20:17:18 <Vorpal> elliott: I even said you could turn it off
20:17:21 <Vorpal> <Vorpal> (sure you can turn that off)
20:17:36 <olsner> Gregor: I'm just occasionally dumping the plot of whatever DS9 episode I happen to be watching
20:17:46 <Gregor> olsner: Oh :P
20:17:57 <Vorpal> ...
20:17:59 <olsner> or just the opening gambit, since I sometimes stop reading IRC while watching
20:18:34 <elliott> Anyway, if anyone wants to avoid systemd in the future, Kitten is their best bet :P
20:19:05 <Vorpal> https://en.wikipedia.org/wiki/Windows_To_Go <-- now that is interesting. How do they think that will work with activation? Or did they drop activation and locking to hardware?
20:20:02 -!- GreaseMonkey has joined.
20:20:02 -!- GreaseMonkey has quit (Changing host).
20:20:02 -!- GreaseMonkey has joined.
20:23:57 <olsner> oh! this is the episode where *that* happens... this is about as hilarious as when the guy in Enterprise got pregnant and grew nipples on his arms
20:24:41 <elliott> olsner: Which episode
20:24:52 <elliott> Vorpal: So anyway, you were right about ANSI codes and scrollbars and I hate you for it
20:25:14 <Vorpal> elliott: what did I say about scrollbars? I don't remember
20:25:20 <olsner> elliott: 4x25, Body Parts
20:25:33 <elliott> Vorpal: That you couldn't just move the cursor up beyond the top of the terminal screen to poke lines that have scrolled out of view
20:25:37 <elliott> You're right, which is really annoying
20:26:14 <Vorpal> ah
20:26:47 <Vorpal> elliott: yes cursor movement doesn't really fit well into the concept of scrollback
20:27:00 <Vorpal> so I'm not surprised
20:27:28 <elliott> Vorpal: I have no idea what I can do, other than... well, I know you can hook into mouse scrollwheel because vim does it, so I could do that, wait for a repaint, and then adjust the now-visible lines appropriately??
20:27:29 <elliott> Euurgh
20:27:46 <Vorpal> wow
20:27:47 <elliott> It's unlikely that you'll have more than 24 tasks pending at a time but it's still possible, so this is annoying
20:27:56 <Gregor> elliott: INSTALLIN' DAT GENTOO
20:27:57 <Vorpal> elliott: I don't know if that will work
20:28:05 <elliott> Gregor: Awww yeah
20:28:15 <elliott> Gregor: Is the Administrator account activated :P
20:28:18 * elliott HELPFUL REMINDER
20:28:26 <elliott> Vorpal: I don't see why not
20:28:38 <elliott> Vorpal: Hmm, I guess because maybe only the last 24 lines are actually active
20:28:41 <Vorpal> elliott: anyway I think it might send some terminal code to get scroll wheel as character input, and it might only work with alt screen
20:28:42 <Gregor> elliott: INSTALLING SUA FAILED
20:28:44 <Gregor> elliott: I BLAME YOU
20:28:45 <elliott> After all, printf goes to the end of the scrollbar not before
20:28:47 <Vorpal> not sure
20:29:00 <Vorpal> Gregor: failed with what error?
20:29:07 <elliott> Gregor: Weird, I guess it's specifically checking for the right version of 7?
20:29:11 <elliott> Gregor: Just get Ultimate, man :P
20:29:19 <elliott> Or... downgrade to XP, I suppose :P
20:29:21 <Vorpal> elliott: I told you so...
20:29:25 <Gregor> Vorpal: None, just "Installing SUA failed!"
20:29:36 <Gregor> elliott: This Pro is actually /legal/
20:29:49 <Vorpal> Gregor: did it do it at the start of the install, or did it happen a bit into the install?
20:29:52 <Vorpal> hm
20:29:59 <elliott> Gregor: Wooooow! I care so much :P
20:30:04 <Gregor> Vorpal: Beginning of install.
20:30:09 <olsner> Gregor: you mean to imply that your Ultimate wouldn't be? :)
20:30:16 * Gregor installs cygwin.
20:30:24 <Gregor> olsner: I'm sure as hell not going to PAY for Windows.
20:30:30 <olsner> haha, cygwin, welcome to hell
20:30:31 <Gregor> I can sort of tolerate having it if I don't pay for it.
20:30:32 <elliott> Gregor: You will regret your decision of Cygwin over piracy very rapidly
20:30:34 <Vorpal> Gregor: was it gentoo's installer or microsoft's installer that did that?
20:30:44 <elliott> Gentoo's installer is the only installer involved.
20:30:49 <Gregor> Vorpal: I don't have a clue, Gentoo's just called SUA's installer.
20:30:51 <Vorpal> hm
20:31:01 <olsner> if you're lucky you'll have a 64-bit windows where cygwin doesn't work at all
20:31:07 <Vorpal> it doesn't?
20:31:08 <Vorpal> ugh
20:31:16 <elliott> Wow, it doesn't?
20:31:20 <elliott> Gregor: SO AWESOME
20:31:21 <olsner> what cygwin does to emulate fork() is ... horrible
20:31:27 <Vorpal> olsner: why would it not work on 64-bit linux as a 32-bit program...
20:31:33 <olsner> it *might* work
20:31:41 <elliott> 64-bit Linux?
20:31:41 <boily> quintopia: hello!
20:31:42 <olsner> but sometimes it just doesn't, apparently
20:31:43 <elliott> Cygwin for Linux!
20:31:47 <Vorpal> elliott: windows...
20:31:47 <Gregor> olsner: Uhhh, I have 64-bit Windows, but I assure you Cygwin works ...
20:31:49 <elliott> boily: Holy fucking
20:31:59 <elliott> boily: Your long reign as lurker is over
20:32:17 <boily> I'm at work, so my activity on IRC isn't quite stellar.
20:32:19 <olsner> and on some 64-bit systems, cygwin *sometimes* works :)
20:32:58 <elliott> boily: You're at work 24/7? :P
20:32:59 <Vorpal> olsner: really? How does it fail then?
20:33:01 <elliott> `pastelogs <boily>
20:33:27 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.10997
20:33:33 <olsner> Vorpal: fork() fails because cygwin can't manage to find a way to load all DLL's at the same address as in the parent
20:33:39 <Vorpal> heh
20:33:41 <boily> elliott: Sometimes I forget that my computer's open.
20:34:07 <elliott> boily: OK, you've technically talked 10 times this year before today :P
20:34:13 <elliott> But there was a two year gap before that.
20:34:24 <Vorpal> was he in the channel then
20:34:29 <Gregor> INSTALLIN' DAT CYGWIN
20:34:30 <Vorpal> that is kind of important
20:34:31 <elliott> Dunno
20:34:48 <elliott> Gregor: This is going to be more painful than downloading Ultimate :P
20:34:51 <olsner> well that's *one* of the failure modes anyway, and apparently the workarounds for it don't always work at all
20:34:53 <boily> woooah, history from 4 years ago!
20:34:56 <Gregor> elliott: INSTALLIN' DAT CYGWIN
20:35:12 <Vorpal> olsner: hm...
20:35:27 <twice11> I never really was a fan of cygwin. If you just need to get GNU programs run, use MinGW. If you need a shell, use msys. If you need more, use unix.
20:35:37 <elliott> twice11: MSYS is just an ancient version of Cygwin.
20:35:44 <Gregor> twice11: MSYS is sooooo painfully obsolete.
20:35:47 <Vorpal> yeah why does Gregor need windows, he never answered.
20:35:49 <elliott> It's literally just Cygwin.
20:35:51 <elliott> But ancient.
20:35:52 <Gregor> Vorpal: Yes I did.
20:35:53 <elliott> And with no Unicode support.
20:36:10 <Vorpal> Gregor: not really, I saw no sufficient important reason :P
20:36:10 <Gregor> "Vorpal: I wanted a VM to not cross compile on."
20:36:22 <elliott> twice11: And MinGW doesn't let you use compile anything that uses such esoteric POSIX APIs as fork() :P
20:36:24 <Vorpal> Gregor: cross compiling is kind of less work than cygwin
20:36:35 <elliott> Vorpal: If it compiles it works, right?
20:36:37 <Gregor> Vorpal: Until shit doesn't work and you can't test why.
20:36:43 <Vorpal> elliott: exactly!
20:36:49 <twice11> Well, there is no fork on Windows. Too bad.
20:36:51 <Vorpal> elliott: no need to test or anything. Especially if C code
20:37:04 <elliott> twice11: Which is why Cygwin and the POSIX subsystem provide one :P
20:37:10 <twice11> And cygwin is just kudging around it and failing on x64 sometimes.
20:37:19 <Gregor> I only want MingW for compiling, I just want a shell that doesn't suck foot, and an SSH server so I never have to look at the UI.
20:37:22 <Gregor> That screams Cygwin.
20:37:30 <elliott> twice11: Yep, but the POSIX subsystem isn't, it just implements POSIX APIs at the NT layer.
20:37:40 <Vorpal> Gregor: fork is slow there though
20:37:50 <twice11> So why does cygwin not use the POSIX system then?
20:37:51 <Gregor> Vorpal: No shit
20:37:54 <elliott> Gregor: (a) Stop typoing it already it's MinGW (b) Cygwin's shell sucks foot because it's built on top of Cygwin
20:38:05 <elliott> twice11: Cygwin is older than the POSIX subsystem.
20:38:12 <elliott> It dates to the 95 days.
20:38:26 <Gregor> Also, Cygwin will live after the POSIX system is dropped in Windows 9 :P
20:38:35 <Vorpal> FSVO live
20:38:53 <twice11> That does not mean you can not have a Cygwin replacement using the POSIX personality on NT-derivatives that provide it.
20:39:08 <elliott> twice11: That's why Gentoo Prefix exists.
20:39:12 <elliott> (for Windows)
20:39:21 <elliott> It's a full environment on top of SFU/SUA.
20:39:30 <elliott> It just doesn't like Gregor's specific release of Windows for licensing reasons.
20:39:32 <Vorpal> how does interix do fork()?
20:39:39 <Vorpal> Can't cygwin just switch to do the same?
20:39:42 <elliott> Vorpal: How does Linux do fork()
20:39:49 <elliott> It's a subsystem, it's implemented at the NT layer
20:39:54 <elliott> It's at the same level as the implementation of Win32
20:39:58 <Vorpal> hm
20:40:08 <olsner> how is babby forked?
20:40:09 <Vorpal> elliott: so why can't cygwin directly call ntdll?
20:40:13 <elliott> For Cygwin to use it would involve first throwing out all of Cygwin's code and second becoming SFU/SUA
20:40:32 <Vorpal> are there any third party NT sub systems at all?
20:40:34 <elliott> Vorpal: Because it runs on top of Win32?
20:40:45 <elliott> And yes, SFU/SUA is based on an acquisition of Interix.
20:41:03 <Vorpal> microsoft didn't make it originally?
20:41:04 <Gregor> Cygwin and SSH installed!
20:41:04 <Vorpal> heh
20:41:08 <elliott> Hmm, I think
20:41:21 <elliott> Yeah:
20:41:24 <elliott> This product began to be developed in 1996 under the product name OpenNT by Softway Systems, Inc. before the name was changed to Interix in 1998. The last release by Softway Systems was release 2.2. Softway Systems had virtually completed the next release code-named Firebrand in 1999 which became the basis of Interix 3.0.
20:41:24 <elliott> Interix was acquired by Microsoft in 1999. Microsoft continued to distribute Interix 2.2 as a standalone product until 2002.
20:41:24 <elliott> Interix release 3.0 was released as component of Services for Unix (SFU) 3.0 in 2002. Interix release 3.5 was released as component of SFU 3.5 in January, 2004.
20:41:24 <elliott> Interix became integrated as component of the regular Windows OS distribution[5] as a component of Windows Server 2003 R2 in December, 2005 at release 5.2 and is a component of the Windows Vista release as release 6.0 (RTM November, 2006). Windows Server 2008 has release 6.0. Windows 7 and Windows Server 2008 R2 include SUA 6.1.
20:41:46 <Vorpal> heh
20:41:57 <elliott> Gregor: Don't put ! after statements about your slow descent into hell :)
20:42:34 <Gregor> elliott: What is it I can say to make you /ignore me? Trololololol?
20:42:45 <elliott> Gregor: Good luck
20:42:59 <Gregor> I'm SSH'd in and installing shit :P
20:43:02 <Gregor> Seems to work great to me.
20:43:13 -!- Zuu has joined.
20:43:27 <Vorpal> Gregor: I thought you had to use the original setup program to install components in cygwin?
20:43:38 <Vorpal> what command line program do you use then
20:43:44 <elliott> The setup program supports GUIless operation.
20:43:46 <elliott> It's just painful.
20:43:49 <Vorpal> I see
20:44:01 <elliott> Gregor: Anyway, yeah, it works great until you run any shell script ever, or run into one of its numerous integration problems, or it just plain breaks.
20:44:05 <Gregor> I'm not using setup.exe
20:44:10 <elliott> Gregor: Or you realise how absolutely friggin' ANCIENT every piece of software it comes with is.
20:44:21 <Gregor> elliott: GCC 4.5 is good enough *shrugs*
20:44:37 <Vorpal> gcc 4.5 is fairly new
20:44:38 <elliott> Okay, that's one piece of software. (It was gcc 3 not long ago, btw.)
20:46:07 <elliott> Aww shit, SLIM is unmaintained
20:46:09 <Gregor> elliott: It's a hell of a lot more up to date than MSYS :P
20:46:28 <elliott> Gregor: So relevant :P
20:47:29 <Gregor> Now time to run a configure script huzzah :P
20:48:51 <Vorpal> night →
20:49:14 <elliott> Gregor: Have fun waiting
20:49:18 <Gregor> Let's time GMP's configure :P
20:49:23 <Gregor> I'm betting ... 20 minutes.
20:51:26 <elliott> Gregor: Have I mentioned that the POSIX subsystem makes the shell run only very slightly slower than Linux? :)
20:51:27 <olsner> minutes, hours, days, years, who knows... I doubt anyone's watched it to the end yet :P
20:52:42 <Gregor> elliott: Do I HAVE the POSIX subsystem? Doesn't seem so!
20:53:06 <elliott> Gregor: You could download Ultimate quicker than waiting for Cygwin to run a configure script :)
20:53:41 <Gregor> elliott: My Windows. It is legal.
20:53:52 <elliott> Gregor: Legally shitty
20:54:00 <Gregor> All legal Windows is legally shitty.
20:54:08 <olsner> you could convince Gates to give you a copy for free quicker than waiting for Cygwin
20:54:29 <Gregor> Still configurin'!
20:54:33 <Gregor> It's chuggin' away!
20:54:40 <olsner> or maybe you could meet Jobs and have *him* buy you a copy even quicker
20:55:13 <Gregor> Necromancy: Faster than Cygwin™
20:55:18 <Gregor> DONE
20:55:26 <Gregor> 5:25
20:55:31 <olsner> you're just saying that to make us stop goading
20:55:56 -!- oerjan has quit (Quit: Good night).
20:56:00 <olsner> in two weeks/months/years/something we'll see a "<Gregor> DONE" and have no idea what you're talking about
20:56:16 <Gregor> Please hold while I install make :P
20:58:41 <elliott> I'm trying to compute a lot of SHA-1 hashes with sha1sum; I'm running 4 sha1sum processes in parallel, what number of args should I pass to each sha1sum to overcome the fork/etc. overhead?
20:58:51 <elliott> Considering that passing too many to one is a waste of time because it'll compute them sequentially
20:59:58 <olsner> how quickly does each item finish?
21:00:09 <elliott> sha1sum is pretty much instant :P
21:00:10 <ais523> <YouTube commentor> how do u make uploader comments
21:00:25 <ais523> that's… somehow impressively worse than the normal YouTube standard
21:00:44 <elliott> [elliott@dinky ~]$ time sha1sum $(find /usr -type f -print | head -n 1) >/dev/null
21:00:45 <elliott> real0m0.008s
21:00:45 <elliott> [elliott@dinky ~]$ time sha1sum $(find /usr -type f -print | head -n 16) >/dev/null
21:00:45 <elliott> real0m0.030s
21:00:45 <elliott> [elliott@dinky ~]$ time sha1sum $(find /usr -type f -print | head -n 64) >/dev/null
21:00:46 <elliott> real0m0.047s
21:00:48 <elliott> [elliott@dinky ~]$ time sha1sum $(find /usr -type f -print | head -n 128) >/dev/null
21:00:50 <elliott> real0m0.118s
21:00:52 <elliott> olsner: Does that help
21:01:12 <elliott> I'm thinking maybe 16 to each process?
21:01:26 <elliott> Except that seems too low, maybe 32
21:01:31 <elliott> Which adds a really tiny amount to the runtime
21:01:36 <elliott> (0.003s)
21:01:43 <elliott> Actually, even 64 only takes 0.047s
21:02:01 <elliott> Wait, there's an easy way to measure
21:02:02 <olsner> I think fork/exec overhead is much less than a millisecond
21:02:20 <elliott> olsner: Oh yeah, but the scheduler isn't gonna like millions of new processes a second :P
21:02:37 <olsner> I did a simple test run (once :P) with starting thousands of gcc processes on an empty file (which actually also does something), got about 1ms per execution then iirc
21:03:12 <olsner> ehm, not all at the same time of course, started them sequentially
21:04:47 <tswett> Now, by default, Apache runs everything as the same user, right? I seem to remember that it's usually a bad idea to change this.
21:06:07 <elliott> real0m35.221s
21:06:07 <elliott> That's for n=64
21:06:22 <elliott> tswett: You're writing things as an Apache module...?
21:06:46 <tswett> elliott: no, but I might want to run CGI scripts as different users.
21:07:14 <elliott> tswett: Have them communicate with daemons.
21:07:33 <tswett> That sounds like it might be a good idea.
21:08:11 <olsner> elliott: 35s? :) that's like ... half the time you spent explaining the problem to me and I spent thinking about it?
21:08:18 <elliott> real0m20.968s
21:08:18 <elliott> n=64 again
21:08:21 <elliott> olsner: Oh, this is on a subset of the data
21:08:25 <olsner> oh, ok
21:08:28 * elliott tries with n=1.
21:08:54 <elliott> The same time
21:09:00 <elliott> My CPU isn't getting pegged at all, I think I need more processes than CPUs
21:09:25 <elliott> Trying n=1, j=128.
21:09:27 <elliott> 18s.
21:09:40 <elliott> Trying n=1, j=8192 :P
21:09:45 <tswett> elliott: do you currently have fewer processes than CPUs?
21:09:51 <elliott> Finally my CPU's going at 50%.
21:09:54 <elliott> tswett: For this job, yes.
21:10:03 <elliott> OK, that's slightly worse... so more processes aren't helping here.
21:10:09 * elliott tries n=32, j=8192.
21:10:10 <olsner> if you're not pegging the cpu, how about a larger n? maybe you're just not seeing wasted time on your cpu meter
21:10:26 <elliott> Sweet, n=32 j=8192 gets me 6 seconds
21:11:15 <elliott> n=128, j=8192 gets me 5 seconds.
21:11:33 <elliott> n=512, j=8192 gets me 6 seconds. OK, I think I want to lower j now...
21:12:34 <elliott> Sweet, n=128, j=128 gets me 4 seconds.
21:13:02 <elliott> n=64 j=128 gets me 3 seconds 8D
21:13:12 <olsner> hmm, annoyingly trivial problem made hard to get right/fast for the wrong reasons
21:13:12 <elliott> n=32 j=128 is slightly worse.
21:13:22 <elliott> olsner: What, this one?
21:13:32 <Ngevd> 2,7,11,42,231
21:13:46 <olsner> just hindered by sha1sum not wanting to implement the whole making a workqueue for its arguments and parallelizing over cpus to distribute work evenly
21:13:59 <elliott> n=64, j=64 is slightly worse than n=64, j=128...
21:14:01 <elliott> olsner: Right :P
21:14:04 <Gregor> Configurin' PCRE!
21:14:34 <elliott> olsner: I think 2.6-2.8 seconds to calculate the sha1sums for 16384 files ain't bad.
21:14:52 <olsner> and xargs -P (or whatever you're using) can't do the fair distribution without requiring a fork/exec for each file - because it obviously doesn't want to integrate any closer with the things it starts
21:14:54 <twice11> Gregor: Is there no ready-made pcre package for cygwin?
21:15:03 <Gregor> twice11: I need a MinGW one.
21:15:38 <twice11> Yeah, supply of MinGW libraries is quite bad :(
21:15:38 <elliott> olsner: find ... -type f | wc -l is the fastest it can be, right?
21:16:04 <Gregor> GMP and PCRE are all I need (for now), so hopefully I'm not in hell just yet :P
21:16:11 <elliott> Gregor: Wow, I just realised that Kitten could actually help you there X-D
21:16:18 <elliott> Its package manager, that is.
21:16:25 <olsner> you mean something like wc --files0-from=- -l?
21:16:33 <elliott> There's no inherent reason individual packages couldn't support architectures that Kitten itself can't run on.
21:16:43 <elliott> So you could install packages with the MinGW cross compiler.
21:16:50 <elliott> olsner: X-D
21:17:02 <elliott> olsner: I don't care about that :P
21:17:24 <olsner> elliott: oh, you mean just counting the number of files?
21:17:47 <elliott> olsner: Yeah. It completed fast enough, though.
21:17:56 <elliott> OK, if my incredibly rough calculations are correct, it'll take 30 seconds to do this.
21:18:00 <olsner> obviously, there is some overhead involved in printing the whole file names and just counting the newlines... but you'd need a lot of files to notice :)
21:18:04 <elliott> So... yay.
21:18:25 <Gregor> 2:46! That's ... within 5 minutes :P
21:18:28 <olsner> you want inter-process deforestation
21:18:41 <elliott> find: `/home/elliott/.gvfs': Permission denied
21:18:41 <elliott> Oh come on find, you're /root/
21:18:43 <elliott> You can access /anything
21:18:44 <elliott> /
21:18:53 <twice11> root_squash?
21:19:34 <elliott> twice11: ?
21:19:58 <tswett> So, I've got Apache, and I want to code in Perl. That probably means using mod_perl, right?
21:20:43 <twice11> elliott: If /home is on nfs, and the nfs export has root_squash enabled,
21:20:43 <olsner> obviously not, write a perl interpreter in mod_rewrite instead
21:20:50 <Gregor> Oh here we go, I'll time autoreconf :P
21:20:59 <twice11> the nfs server interprets a client saying "I am root" as "I am nobody".
21:21:21 <twice11> That is supposed to be a security feature.
21:21:46 <twice11> OTOH, a client that can claim "I am root" could also claim "I am elliott".
21:21:48 -!- elliott has quit (Read error: Connection reset by peer).
21:21:54 -!- elliott has joined.
21:21:57 <elliott> tswett: No.
21:22:15 <elliott> olsner: Advantage of this pegging my CPU: It finishes quickly. Disadvantage of this peggnig my CPU: It freezes my system.
21:22:31 <Gregor> autoreconf: 1:40
21:22:34 <tswett> elliott: got any better ideas?
21:22:49 <olsner> elliott: freezing the rest of your system is its way of telling you it's doing its job
21:22:56 <elliott> tswett: You mentioned CGIs earlier, what happened to those, anyway?
21:23:09 <tswett> I figured mod_perl might be just as easy, or easier, and slightly faster.
21:23:19 <tswett> If CGI is easier, I probably should go with CGI.
21:24:44 <olsner> yes! use computer-generated imagery to make it *look* like you're running perl without you actually doing it
21:24:52 <twice11> elliott: Did you receive my explanation of what I meant saying "root_squash"?
21:24:56 <olsner> genius :P
21:24:59 <elliott> twice11: Nope.
21:25:21 <twice11> elliott: If /home is on nfs, and the nfs export has root_squash enabled,the nfs server interprets a client saying "I am root" as "I am nobody".
21:25:39 <twice11> That is supposed to be a security feature. OTOH, a client that can claim "I am root" could also claim "I am elliott".
21:26:03 <elliott> tswett: FastCGI is what's popular nowadays in most ecosystems, either that or proxying a full HTTP server written in the language; consult your framework's documentation for the recommended deployment scenario
21:26:03 <elliott> t
21:26:26 <tswett> Framework... am I supposed to have one of those?
21:26:28 <elliott> Hmm, looks like the freezes come in waves :P
21:27:13 <elliott> tswett: If not, then you should already know what your deployment scenario looks like. Frankly I think you should learn more before jumping into something this complex, since you don't appear to have much experience with web stuff.
21:28:13 <elliott> olsner: sha1sum: /proc/804/task/817/ns/ipc: Invalid argument
21:28:26 <olsner> elliott: your argument is invalid
21:28:27 <elliott> It's, uh, always safe to read files in /proc, right? :P
21:28:41 <tswett> I guess I'm not familiar with the term "deployment scenario", and I also just know "framework" as meaning "a bunch of software that helps you do something", so... conclude what you will.
21:28:55 <Gregor> elliott: /proc/sys/read_this_to_poweroff :P
21:29:10 <olsner> reading should be safe... I guess :)
21:29:25 <elliott> tswett: I gather Catalyst is the most popular thing around Perl parts.
21:29:34 <elliott> But don't quote me on that.
21:29:42 <tswett> elliott: is there... a similarly popular thing around Python parts?
21:29:53 <elliott> tswett: I believe you said you were using Perl?
21:30:03 <olsner> but reading can definitely have side effects: had a system where you had to read the temperature sensor (from /proc/acpi/) to make the bios update the fan speed based on the current temperature
21:30:04 <tswett> I haven't actually started writing any P code.
21:30:21 <tswett> (Which, of course, means "language for a programming language whose name starts with P".)
21:30:39 <elliott> olsner: OK, I'm terminating this and excluding /proc, /sys, /dev and /tmp :P
21:32:14 <tswett> Anyway, maybe I can read some CGI tutorial.
21:32:15 <olsner> I guess the same thing could trigger a bug that goes boom if you try to read from the wrong widget
21:32:20 <olsner> let's say something mixes up "poke this to read the temperature" and "poke this to reboot" :P
21:33:08 <olsner> anyway, I think the primary reason to skip /proc would be that it has annoying special files, like pipes and links into the rest of the file system
21:33:09 <elliott> OK, let's try this again :P
21:34:31 <tswett> Is there something like ScriptAlias except not bothering to alias anything?
21:34:33 <elliott> Why does uniq have an option to ignore the first N fields, but not all fields beyond the first N?
21:34:43 <elliott> tswett: Have I mentioned you shouldn't use Apache yet?
21:34:46 <olsner> also e.g. sha1sum on /dev/sda might be a bit annoying :)
21:35:20 <tswett> elliott: you may have, but at this point, I don't know how easy it would be to switch.
21:35:25 <olsner> just use cut/awk before uniq?
21:35:33 <elliott> tswett: You've written 0 lines of code.
21:35:34 <tswett> I guess it would probably be... really easy, since the only thing I've actually put work into is the Postgres database.
21:35:35 <olsner> arguably, uniq should not have the option at all
21:35:52 <elliott> olsner: Except I need the field data after, duh
21:36:07 <elliott> I want to /uniquify/ based on only the first field, but I need the data after that too
21:36:22 <olsner> oh, right, annoying
21:36:31 <tswett> I'd just remove Apache, and possibly also remove phpPgAdmin, since phpPgAdmin has nearly outlived its usefulness.
21:37:20 <elliott> Why on earth are you using a web interface to the DB
21:37:34 <tswett> Because it's pretty.
21:37:35 <elliott> Just write a few INSERT statements, that way you're not fucked if you have to recreate it too
21:37:49 <tswett> How many rows do you think this database contains?
21:37:55 <elliott> Erm
21:37:57 <elliott> s/INSERT/CREATE TABLE/
21:38:05 <tswett> That's more like it.
21:38:19 <elliott> I mean, you're going to have to learn SQL anyway to interface with it.
21:38:31 <elliott> Which is a large time investment in itself, of course...
21:38:35 <elliott> Seeing as it's practically a profession unto its own.
21:38:41 <tswett> Right. And I *am* using psql every so often.
21:38:47 <tswett> And I *am* already more or less familiar with SQL.
21:39:45 <elliott> tswett: I can write SELECT and INSERT queries =/= I am familiar with the relational model, how NULL works, how to do complex joins, how to get foreign keys right, how to use stored procedures, ...
21:40:07 <elliott> I hope you at least know how to parameterise queries without string concatenation and escaping functions.
21:42:38 <tswett> I *am* familiar with the relational model. I think. And joins seem easy enough, though I've forgotten how outer joins work.
21:42:44 <elliott> olsner: Woo, eight and a half minutes later it finishes
21:42:54 <elliott> tswett: Consider me fully reassured...
21:43:14 <olsner> elliott: congratulations
21:44:20 <tswett> And then foreign keys, those seem simple enough. Use a foreign key whenever a row needs to refer to another entity. Use CASCADE when CASCADE is appropriate, use DELETE when DELETE is appropriate, use SET DEFAULT when SET DEFAULT is appropriate, use NO ACTION when you don't know what's appropriate.
21:44:52 <tswett> Then stored procedures... those aren't the same as functions, are they. Though I (re-)learned how to create triggers today.
21:45:18 <elliott> olsner: Oh great, xargs doesn't actually synchronise the output, so there's a bunch of incomplete lines and shit
21:46:30 <olsner> ooh... I've seen that too, I could've told you before letting it churn for 10 minutes if I'd thought of it :P
21:47:01 <tswett> (A mathematician's relational model: A table is a set of tuples. Given two tables, you can take their union or Cartesian product. Given one table, you can take subsets and projections. Done.)
21:47:38 <elliott> tswett: Of course there's also the very high probability you don't even want a relational database, but whatever
21:47:58 <tswett> But relational databases are nature's solution! God gave them to us!
21:47:59 <elliott> olsner: I wonder if GNU parallel does the same
21:48:33 <twice11> OTOH, there is also a high probability you don't really want a NoSQL data dumpbin, too.
21:48:37 <olsner> hmm, maybe it's something else that jinxes it, tee?
21:49:38 <elliott> twice11: Naturally.
21:49:52 <twice11> elliott: How did you get xargs to run jobs in parallel? Special xargs edition?
21:49:54 <tswett> What I'm about to mention is probably such a common problem that everyone but me has a solution to it. }:)
21:50:00 <elliott> twice11: Yes, the fancy-pants GNU edition.
21:50:02 <olsner> I mean, the clever folks that have built this should have made it work, right? because they're clever (right?)
21:50:27 <elliott> olsner: xargs is the last element of my pipeline.
21:50:47 <twice11> elliott: My manpage doesn't document -j for xargs, or yield any hits for parallel and background...
21:50:48 <tswett> I have a .vimrc file on one machine. I want it to be on every machine. Ideally, I could just edit one copy of it and everything else would change to match.
21:50:51 <elliott> twice11: -P
21:51:06 <twice11> Thanks.
21:51:08 <elliott> twice11: Re SQL vs. NoSQL vs. ...: I would suspect tswett would be best off with simple object persistence; likely his data set is much smaller than memory, too.
21:51:31 <Ngevd> (*):S(~(*)*:S(
21:51:31 <Ngevd> )S~:^):^
21:51:41 <elliott> At least most people generally want object persistence when they think they want an SQL database.
21:51:57 <elliott> tswett: Keep it in a VCS repository, put it on GitHub/whatever, pull from each machine.
21:52:06 <Gregor> Heyyyyyoooooo got me some OS X.
21:52:26 <twice11> SQL databases are a way to implement object persistence, although most likely not the one associated with least pain when implementing.
21:52:34 <elliott> tswett: Or if you want something less fancy, rsync, but you'll need your own server and you'll have to be careful about modifying it from two places at once.
21:53:08 <twice11> And that's something SQL people already invented transactions for.
21:53:30 <elliott> twice11: Sure, they work as a backend, but "using an SQL database" through an automatic persistence facility where you don't even see the SQL isn't what most people think of when they say "using an SQL database". Also, the impedance mismatch makes it a pain. But you do get some nice advantages; a well-optimised and robust implementation, transactions, ...
21:53:49 <elliott> People want all the guarantees SQL databases offer without the actual "relational SQL database" part :P
21:53:53 <elliott> <twice11> And that's something SQL people already invented transactions for.
21:53:56 <elliott> What's this in response to?
21:54:17 <Phantom_Hoover> Are you still on SQL or did you go back to it?
21:54:29 <elliott> When were we previously on SQL?
21:54:49 <Phantom_Hoover> Postgres. I guess you went back to it.
21:54:50 <twice11> elliott: Reponse to "you'll need your own server and you'll have to be careful about modifying it from two places at once."
21:55:10 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/m3jns/on_the_most_fundamental_level_what_is_a_computer/
21:55:14 <olsner> elliott: so the less fancy way is more work? :)
21:55:18 <Phantom_Hoover> What *are* computers? We just don't know.
21:55:32 <elliott> twice11: Merging > locking
21:55:32 <olsner> but I guess it's less fancy as in uglier...
21:55:35 <twice11> But I can feel the pain of auto-generated SQL queries for complex object models...
21:55:39 <elliott> twice11: You're not a CVS person, are you? :-)
21:55:54 <twice11> I know cvs, subversion and git.
21:55:55 <elliott> olsner: Less fancy what?
21:55:55 <Phantom_Hoover> OK this is right up our alley and half the answers are misleading.
21:56:05 <Phantom_Hoover> "To add to this, it is an open problem (known as the Church-Turing thesis)"
21:56:17 <twice11> And transactions don't necessarily mean locking the whole table.
21:56:17 <olsner> elliott: reply to "Or if you want something less fancy, rsync, ..."
21:56:34 <tswett> On the *most* fundamental level? I guess a computer is one of the components of the universe's wavefunction or something...
21:56:34 <elliott> olsner: Yep
21:56:42 <twice11> If queries are independent on the same table, they are still run in parallel, even updates.
21:56:49 <elliott> twice11: Well, how do you propose to implement transactional config file modification??
21:57:00 <twice11> Merging already done by the SQL system.
21:57:03 <elliott> Unless you're saying every config file should be an SQL database running on a server or something.
21:57:32 <twice11> Well, config file, sounds like something you usually don't update in day-to-day operation.
21:57:47 <tswett> "static" is probably an excellent name for a directory containing CGI scripts.
21:57:50 <twice11> So you don't really need transactions on it, or a database...
21:58:09 <elliott> twice11: ...that's good, because nobody said config files should be databases...
21:58:17 <elliott> I was telling tswett how to synchronise config files across multiple machines sanely.
21:58:26 <Phantom_Hoover> "This is wrong. The Church-Turing thesis is just that, a thesis, not a problem: it *states* that computation simply means "what Turing machines and equivalents do"."
21:58:29 <Phantom_Hoover> Someone nitpick.
21:58:30 <elliott> i.e. a VCS or rsync, and then I said why the former is preferable (multiple independent modifications, for one).
21:58:34 <twice11> Well, use a blob in a singleton table...
21:58:47 <elliott> twice11: ...why do you think a database is assumed here?
21:58:50 <elliott> We're talking about ~/.vimrc!
21:58:51 <tswett> Any statement can be thought of as a question.
21:59:25 <twice11> Seems I missed the context then.
21:59:56 <elliott> That's interleaved discussions for you.
22:00:00 <twice11> I just jumped on it when you claimed that SQL is likely not the solution and then talked about concurrent updates.
22:00:30 <twice11> .vimrc sounds like a fine thing to put into $VCS_OF_YOUR_CHOICE
22:00:51 <elliott> Yeah, I was talking about SQL likely not being suited for a different thing :P
22:01:41 <olsner> CREATE TABLE vimrc ...
22:01:55 <tswett> I probably should lop off one of this server's domain names. Is there an easy way to tell Apache that if the client is asking for remy.s.zbasu.net, just give them a 404?
22:02:10 * Phantom_Hoover → sleep
22:02:11 -!- Phantom_Hoover has quit (Quit: Leaving).
22:02:39 <twice11> tswett: Map that virtual host to a non-existing path, maybe?
22:03:25 <tswett> I'll map it to /dev/null, thereby making some people a little bit angry.
22:03:47 <tswett> "You're not supposed to use /dev/null! It's the empty file, not the invalid directory!"
22:03:57 <elliott> That probably won't work.
22:03:58 <tswett> "But it *is* an invalid directory."
22:04:11 <elliott> I guess I should email my hosting company telling them I lost my ssh key again.
22:04:28 <tswett> elliott: you should have kept it in a SQL database so this wouldn't happen!
22:04:36 <elliott> tswett: The computer died.
22:04:40 <elliott> I hadn't yet backed up.
22:05:05 <twice11> SQL servers make it easy to have a replicated server in sync...
22:06:17 <tswett> Yeah. You should have done that.
22:06:18 <elliott> Hmm, I ought to see if I can do that higher-order query thing with acid-state; I've had a vague idea for it for a while and now that object persistence has been brought up...
22:06:38 <elliott> tswett: ?
22:07:04 <elliott> Actually I really just want something as nice as Durus is for Python; distributed persistent STM...
22:07:10 -!- boily has quit (Ping timeout: 260 seconds).
22:07:14 <tswett> elliott: you should have kept it on a replicated synchronous SQL server farmy thing.
22:11:14 <tswett> Gee. So far, my CGI scripts work on the server if and only if they do not work on the command line.
22:11:32 <ais523> tswett: just write ) or something
22:11:36 <tswett> I suddenly feel a little bit like Karkat trying to write a ~ATH program.
22:11:37 <ais523> run it on the command line, observe it failing
22:11:43 <ais523> now you have a brilliantly working CGI script
22:11:44 -!- Ngevd has quit (Ping timeout: 252 seconds).
22:13:44 <tswett> It seems like system(foo) doesn't work in CGI.
22:19:19 <tswett> Perhaps the script doesn't have access to any executables...
22:19:53 <tswett> Aha! cd . works on the server.
22:20:34 <tswett> But /bin/echo doesn't, even though that file exists...
22:22:11 <tswett> This behavior doesn't seem to make sense. If I run system('/bin/echo albatross'), I get an internal server error. If I run system('/bin/echo'), my browser attempts to download the page.
22:22:34 <tswett> If I comment the line out, it works as expected: I see text.
22:23:37 <tswett> There goes the no-access-to-executables hypothesis. system('set') doesn't work.
22:25:09 <tswett> New hypothesis: it works if and only if the command has no output.
22:25:20 <tswett> uaaaaaaaai
22:25:46 <elliott> tswett: send headers first
22:25:47 <elliott> duh
22:25:55 <tswett> That's what I'm doing.
22:26:15 <tswett> This works: http://pastebin.com/TQBvdTNs
22:26:22 <tswett> Change "false" to "echo albatross", and it fails.
22:26:46 <elliott> can't open that now. will look in ~5m
22:27:12 <olsner> argh! that was some crappety-crap quality, rm -fr Season.5
22:27:13 -!- sebbu2 has changed nick to sebbu.
22:27:28 -!- augur has quit (Remote host closed the connection).
22:30:18 <olsner> and seasons 6 and 7 too... so it goes
22:31:46 * tswett pats elliott on the head repeatedly.
22:35:03 <elliott> what
22:39:51 <elliott> tswett: yep, i was right.
22:39:57 <elliott> tswett: you're not sending headers correctly
22:40:03 <elliott> they must be terminated with two newlines
22:40:47 <tswett> elliott: print sends a newline implicitly, doesn't it?
22:41:14 <tswett> This program *does* output two newlines, so the only potential problem there would seem to be that it's outputting them wrong.
22:41:26 <elliott> tswett: I'm pretty sure Python's print omits a newline if the string ends with one.
22:41:43 <elliott> Anyway, try \r\n\r\n.
22:41:45 <elliott> Rather than \n\n.
22:41:55 <elliott> So sys.stdout.write('blah\r\n\r\n')
22:43:02 <tswett> elliott: yeah, it doesn't work.
22:43:19 <elliott> Shrug
22:43:23 <elliott> Catch exceptions, print them
22:43:24 <tswett> http://pastebin.com/nUVk8zg8
22:43:28 <elliott> Catch exceptions, print them
22:43:36 <tswett> It doesn't throw any exceptions when I run it on the command line.
22:43:37 <tswett> But okay.
22:43:59 <elliott> the command line is a different environment.
22:45:37 -!- ais523 has quit (Remote host closed the connection).
22:47:53 <tswett> elliott: http://pastebin.com/NZQFH8UA
22:47:59 <tswett> Still a server error.
22:48:18 <elliott> Check server log filse
22:48:20 <elliott> files
22:48:21 <tswett> Oh, but now the system line isn't causing it.
22:49:00 <tswett> ...I didn't import sys.
22:49:06 <elliott> smart.
22:49:19 * elliott meant an except block around the whole thing, anyway
22:49:25 <elliott> I think the cgi module has an exception handler thing you can activate.
22:49:39 <elliott> Prints a pretty HTML page.
22:50:44 <elliott> tswett: Yeah, put
22:50:44 <elliott> import cgitb
22:50:44 <elliott> cgitb.enable()
22:50:45 <elliott> at the top.
22:51:22 <tswett> "malformed header from script. Bad header=www-data: test.py"
22:51:25 <tswett> That's not part of the header...
22:51:53 <elliott> Yes, it is.
22:52:01 <elliott> You print the header with sys.stdout.write.
22:52:07 <elliott> Which prints an exception in the header block.
22:52:14 <elliott> Exception traces make bad HTTP headers.
22:52:53 <tswett> But printing the header isn't causing an error, is it?
22:53:04 <tswett> But yeah, cgitb's probably a really good idea.
22:53:25 <elliott> <tswett> But printing the header isn't causing an error, is it?
22:53:27 <elliott> you didn't import sys
22:53:34 <elliott> you print the header with sys
22:53:35 <elliott> ???????
22:53:37 <tswett> Yes, but *now* I've imported sys.
22:54:08 <tswett> And I'm still getting a plain ol' regular error.
22:54:11 <elliott> does it work from the commandline
22:54:19 -!- Patashu has joined.
22:54:32 <tswett> Yes.
22:54:39 <elliott> what is the actual script at this point
22:54:43 <elliott> also, why are you using CGI again
22:55:08 <tswett> Because it seems easier than mod_perl or mod_python.
22:55:30 <elliott> why would you use either of those
22:55:44 <elliott> mod_python is unmaintained and I think deprecated, and I don't think many people use mod_perl any more
22:55:56 <elliott> I don't want to use RISC OS or QNX, so I guess I'll go for Windows
22:56:33 <elliott> just use django or bottle or something
22:56:46 <tswett> Oh... right. Django exists.
22:57:20 <elliott> this project is going very well, I see.
22:57:34 <elliott> just use mod_wsgi
22:57:43 <elliott> that's what everyone does
22:57:49 <tswett> Anyway, here's my code right now: http://pastebin.com/8zenkdpF
22:57:49 <elliott> + Django or Bottle or <favourite framework>
22:57:55 <tswett> It gives a plain internal server error.
22:58:03 <tswett> The log file says, "malformed header from script. Bad header=www-data: test.py".
22:58:10 <elliott> what does python test.py produce
22:58:28 <tswett> Content-type: text/plain
22:58:28 <tswett> > whoami
22:58:29 <tswett> tswett
22:58:29 <lambdabot> Not in scope: `whoami'
22:58:36 <tswett> Plus a line break after the Content-type line.
22:58:45 <tswett> You know, a blank one. irssi eats those.
22:58:47 <elliott> dunno
22:58:49 <elliott> anyway https://docs.djangoproject.com/en/1.3/howto/deployment/modwsgi/ here you go
22:58:56 <tswett> Thank you infinitely much.
22:59:14 <elliott> I think the same applies to Bottle too
23:00:20 <tswett> Yeah, Django is probably better.
23:01:34 <elliott> tswett: oh, and see http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide /Delegation to Daemon Processes/
23:01:39 <elliott> you probably want to do that (probably=definitely)
23:01:44 -!- ive has joined.
23:04:43 <tswett> What's this mod_wsgi thing?
23:05:18 <elliott> The Apache module to run WSGI apps.
23:06:06 <elliott> Wow, Durus is <6000 lines...
23:06:56 <tswett> What's WSGI?
23:07:17 <elliott> http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface
23:08:34 -!- sllide has quit (Read error: Connection reset by peer).
23:09:31 <tswett> I see. Is that the sort of thing I would use instead of Django, or alongside it, or qué?
23:10:20 <elliott> tswett: Upon reading https://docs.djangoproject.com/en/1.3/howto/deployment/modwsgi/, did you get the idea that Django was hosting documentation for a competitor to it, and saying that's the recommended way to deploy Django...?
23:10:31 <elliott> It's an API that both Django and Apache support.
23:11:11 <tswett> Your sarcasm is praiseworthy. I praise it.
23:11:12 -!- Sgeo|web has joined.
23:12:56 <elliott> Hey, who knows Latin
23:13:13 <olsner> ancient romans
23:13:17 <elliott> Thanks
23:13:30 <Sgeo|web> I know Latin-1
23:13:41 <Sgeo|web> (Well, erm, hmm)
23:14:03 <tswett> elliott: I can read some Latin and I can kind of dechiper some other Latin.
23:14:24 <tswett> I can give you a decent guess what the plural of "lusus naturae" is, for example.
23:14:47 <tswett> (Namely, "lusus naturae".)
23:14:58 <elliott> tswett: Great! Wiktionary tells me that "durus" is a Latin adjective meaning "hard, rough (of a touch)"/"harsh (of a taste)"/"hardy, vigorous"/"unyielding, unfeeling, stern"/"oppressive, severe"; what's the opposite.
23:15:06 <elliott> (In Latin, naturally.)
23:15:11 * elliott HAS A LIBRARY TO NAME.
23:15:47 <olsner> elliott: name it bob
23:15:54 <tswett> elliott: what do you want the opposite word to *mean*? Soft to the touch? Gentle? Weak? Pliable?
23:15:59 <elliott> Hmm, mollis looks close: "soft, delicare to the touch"/"pliant, flexible"/"mild"/"tender, weak"
23:16:19 <elliott> tswett: ALL OF THE ABOVE!
23:16:25 <elliott> Problem: "mollis" is sort of an ugly word?
23:16:30 <tswett> Yeah, that looks like a pretty darn good word.
23:16:39 <elliott> Okay fine I'll call it mollis.
23:16:44 <elliott> s/delicare/delicate/
23:16:45 <tswett> elliott: well, what do you think of "lentus"?
23:16:59 <elliott> "sticky, tenacious"/"slow, sluggish"
23:17:04 <elliott> "indifferent, phlegmatic"
23:17:07 <elliott> MY LIBRARY IS NONE OF THESE THINGS
23:17:26 <olsner> what's wrong with 'bob'?
23:17:34 <elliott> olsner: What's Bob in Latin
23:17:36 <tswett> elliott: use a different language, perhaps. Mol, mole, muelle, mou...
23:17:43 <elliott> tswett: Oh, mollis even names durus as an antonym on the page.
23:17:45 <tswett> elliott: we're both looking at exactly the same documents, aren't we.
23:17:54 <elliott> I find that quite thoroughly likely.
23:18:09 <elliott> Have to say I won't be going with the Portugese translation.
23:18:13 <elliott> s/gese/guese/
23:21:00 <tswett> Go with the Lojban translation!
23:21:13 <tswett> ranti
23:22:38 <elliott> Yeaaah.
23:23:56 <elliott> tswett: Hmm, "molli" is a bit nicer. But then it'd be a dative or ablative singular!!!!!
23:24:16 <elliott> And that would RUIN the PURITY.
23:24:39 <tswett> weich
23:25:18 <tswett> mola pehmeä morbido svak blando
23:25:29 <elliott> Totally.
23:25:38 <tswett> SVAK
23:45:17 <tswett> Ooh, Django has apps. It comes with authentication and stuff.
23:47:20 -!- ive has quit (Ping timeout: 245 seconds).
23:47:26 -!- tswett has quit (Changing host).
23:47:26 -!- tswett has joined.
23:49:00 <elliott> tswett: Hi tswett Warrigal ihope.
23:50:44 <tswett> I see you're referring to me by--wait, how old are you now? Are you an adult now?
23:50:54 <tswett> No, you're not.
23:50:57 <tswett> You're at most 16.
23:51:27 <pikhq> I'm afraid that elliott suffers from a rare form of dyslexia.
23:51:35 <pikhq> He is, in fact, swapping the digits in his age.
23:51:46 <elliott> * tswett (~Warrigal@unaffiliated/ihope) has joined #esoteric
23:52:04 <elliott> You evidently have three names. It is the only thing I can conclude.
23:52:21 <tswett> Ooh.
23:52:35 <Sgeo|web> His preferred name is one of those pieces of uncertainty that surround him
23:52:41 <tswett> pikhq: so he's actually St Atom 61?
23:52:44 <elliott> tswett: And I believe I'm a legal adult in Scotland, but not here.
23:52:53 <elliott> Which is relevant only because I googled it and Scotland came up.
23:53:06 <tswett> Yeah, I guess depending on the place, I go by tswett, Warrigal, or both adiosToreador and Tavros Nitram.
23:54:18 <pikhq> elliott: Neat trick. You can become a legal adult without leaving whatever-the-fuck-you-call-the-UK.
23:54:29 <elliott> I call the UK the UK.
23:54:57 <elliott> pikhq: I somewhat suspect it's about where you live, not your location.
23:54:59 <tswett> And I guess those are just the online handles I've been using recently. There's also uorygl, which I stopped using recently, and Tanner, the name I use when looking at something...
23:54:59 <pikhq> I mean, it's a bit hard to call it a country... Seeing as that would be England, Scotland, Wales, and Northern Ireland.
23:55:07 <tswett> Er. Someone.
23:56:32 <Sgeo|web> tswett: there's another online handle you're recently using
23:57:27 <tswett> Ooh, right. conduitController.
23:57:55 <tswett> elliott: call me whatever the fuck you want, as long as people know who you're referring to.
23:58:05 <elliott> tswett: Okay, whatever the fuck you want.
23:58:31 <tswett> elliott: I am ninety-nine point nine nine nine percent sure you will stop referring to me by that name within the week.
23:58:36 <tswett> But yeah.
23:58:57 <tswett> For example, don't call me "Mister Snuggles". People won't know who you're talking about. Don't call me "Ed Murphy" either.
23:59:07 <elliott> Deewiant: What does list-tries have over TrieMap... oh, it predates it by several months.
23:59:20 <elliott> tswett: Okay, Ed Murphy.
23:59:33 <Sgeo|web> I should attempt to understand finger trees, I think
23:59:42 -!- augur has joined.
←2011-11-06 2011-11-07 2011-11-08→ ↑2011 ↑all