←2011-10-13 2011-10-14 2011-10-15→ ↑2011 ↑all
00:00:00 <elliott> OK, so I eliminated the years.
00:00:02 <elliott> But come on.
00:00:10 <elliott> Who needs years; I need downloads that are a hundredth the size.
00:00:52 <CakeProphet> yeah my solution was going to involve splits and stuff as I didn't realize you wanted to read a file.
00:01:42 <CakeProphet> you could use pos, assuming the regex consumed all the way to the end of the line.
00:05:00 -!- derdon has quit (Remote host closed the connection).
00:06:24 <CakeProphet> `perl -e '$_ = "a\nb\nc\nd\n"; /b\n/; print ((split /\n/, substr $_, pos)[0])'
00:06:26 <HackEgo> No output.
00:06:29 <CakeProphet> :(
00:06:54 <CakeProphet> `perl -e '$_ = "a\nb\nc\nd\n"; /b\n/; print ((split /\n/, (substr $_, pos))[0])'
00:06:56 <HackEgo> No output.
00:07:01 <CakeProphet> :(:(
00:07:16 <CakeProphet> nevermind I don't know perl. :P
00:08:13 <CakeProphet> ah
00:08:21 <CakeProphet> `perl -e '$_ = "a\nb\nc\nd\n"; /b\n/g; print ((split /\n/, (substr $_, pos))[0])'
00:08:22 <HackEgo> No output.
00:08:24 <CakeProphet> ...
00:09:43 <CakeProphet> but yeah pos SCALAR gives you the offset where the last match ended on that scalar.
00:10:07 <CakeProphet> for /.../g matches only I think. But you can also use it inside of the regex itself to grab indexes
00:11:48 -!- DH____ has joined.
00:12:00 <elliott> elliott@katia:~/Code/ngrams$ ./degrade googlebooks-eng-all-5gram-20090715-478.csv | wc -l
00:12:00 <elliott> 114446
00:12:00 <elliott> elliott@katia:~/Code/ngrams$ wc -l foo
00:12:00 <elliott> 622074 foo
00:12:00 <CakeProphet> `run perl -e '$_="abcdef"; /?{print pos}a?{print pos}b?{print pos}c?{print pos}d?{print pos}e?{print pos}f?{print pos}/;'
00:12:02 <HackEgo> Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE {print pos}a?{print pos}b?{print pos}c?{print pos}d?{print pos}e?{print pos}f?{print pos}/ at -e line 1.
00:12:19 <elliott> fizzie: Degrade was hooked up, there, to print only n-grams that aren't five long. 114446 out of 622074 is very surprising. Do you have any idea why this might be the case?
00:12:43 <CakeProphet> `run perl -e '$_="abcdef"; /(?{print pos})a(?{print pos})b(?{print pos})c(?{print pos})d(?{print pos})e(?{print pos})f(?{print pos})/;'
00:12:45 <HackEgo> 0123456
00:14:34 <CakeProphet> `run perl -e '$_="abcdef"; /abc(?{pos})def/; print $^R;'
00:14:36 <HackEgo> 3
00:18:13 <CakeProphet> `run perl -e '$_="abcdef"; /b/; print ${^POSTMATCH};'
00:18:15 <HackEgo> No output.
00:18:54 <CakeProphet> `run perl -e '$_="abcdef"; /b/p; print ${^POSTMATCH};'
00:18:56 <HackEgo> cdef
00:20:13 <CakeProphet> `run perl -e '$_="abcdef"; /b/p; $_ = ${^POSTMATCH}; /\n/p; print ${^PREMATCH};'
00:20:15 <HackEgo> a
00:20:18 <CakeProphet> er no
00:21:12 <CakeProphet> `run perl -e '$_="a\nb\nc\nd\ne\nf\n"; /b\n/p; $_ = ${^POSTMATCH}; /\n/p; print ${^PREMATCH};'
00:21:14 <HackEgo> c
00:21:32 <CakeProphet> obviously the best solution.
00:25:53 -!- DH____ has quit (Read error: Connection reset by peer).
00:26:03 -!- DH____ has joined.
00:29:59 <elliott> elliott@katia:~/Code/ngrams$ ./degrade googlebooks-eng-all-5gram-20090715-478.csv | wc -l
00:29:59 <elliott> 77362
00:29:59 <elliott> elliott@katia:~/Code/ngrams$ wc -l foo
00:29:59 <elliott> 622074 foo
00:30:02 <elliott> OK, that's slightly better...
00:30:23 -!- DH____ has quit (Read error: Connection reset by peer).
00:41:54 <CakeProphet> `run perl -e 'sub partition($$) { ($r, $_) = @_; /$r/p; (${^PREMATCH}, ${^POSTMATCH})} print scalar (partition qr/\n/, (partition(qr/b\n/, "a\nb\nc\nd\ne\nf\n")[0]));
00:41:56 <HackEgo> sh: -c: line 0: unexpected EOF while looking for matching `'' \ sh: -c: line 1: syntax error: unexpected end of file
00:42:01 <CakeProphet> `run perl -e 'sub partition($$) { ($r, $_) = @_; /$r/p; (${^PREMATCH}, ${^POSTMATCH})} print scalar (partition qr/\n/, (partition(qr/b\n/, "a\nb\nc\nd\ne\nf\n")[0]));'
00:42:03 <HackEgo> syntax error at -e line 1, near ")[" \ Execution of -e aborted due to compilation errors.
00:42:07 <CakeProphet> eh
00:42:08 <CakeProphet> oh well
00:43:12 <CakeProphet> `run perl -e 'sub partition($$) { ($r, $_) = @_; /$r/p; (${^PREMATCH}, ${^POSTMATCH})} print scalar (partition qr/\n/, ((partition qr/b\n/, "a\nb\nc\nd\ne\nf\n")[0]));'
00:43:14 <HackEgo> No output.
00:43:33 <elliott> elliott@katia:~/Code/ngrams$ grep ' ' googlebooks-eng-all-5gram-20090715-478.csv
00:43:34 <elliott> elliott@katia:~/Code/ngrams$
00:43:34 <elliott> Aha -- I can just pad it out.
00:43:43 <CakeProphet> elliott: what are you trying to do, sir?
00:43:55 <elliott> Write degrade/intern/gentry.
00:44:39 <Jafet> Write degrade sounds like what's happening to your data drive
00:52:16 -!- Jafet has quit (Quit: Leaving.).
00:53:34 <elliott> Aw fuck, I missed the Atlas Shrugged film
00:53:39 <elliott> I bet it was comedy of the year :(
01:18:20 <elliott> http://www.brainyquote.com/quotes/authors/d/dennis_ritchie.html
01:18:22 <elliott> Best automated quote database
01:18:25 <elliott> A new release of Plan 9 happened in June, and at about the same time a new release of the Inferno system, which began here, was announced by Vita Nuova.
01:18:25 <elliott> Dennis Ritchie
01:18:28 <elliott> Inspiring words.
01:25:55 -!- augur_ has joined.
01:26:49 -!- augur has quit (Read error: Connection reset by peer).
01:29:40 <elliott> Dammit that fizzie bastard needs to wake up to help.
01:35:07 <elliott> splitTab Ngram 107 93448818 21.4 28.3 21.4 28.3
01:35:09 <elliott> WHY IS THIS MY BOTTLENECK
01:41:44 <elliott> WHAT THE FUCK HOW CAN MAKING IT USE THE UNSAFE VARIANTS SLOW IT DOWN
01:42:37 -!- ive has joined.
01:50:58 <Sgeo|web> The mathematics department at my school has a problem solving competition
01:51:08 <Sgeo|web> The problem here in front of me is laughably trivial.
01:51:22 <Sgeo|web> However, I don't want to state it here at this point
01:58:23 <elliott> WHY WOULD YOU RECOMPILE THE LIBRARY
01:58:32 <elliott> SKJGLKFGHKSDGH
02:01:28 * Sgeo|web recompiles elliott.
02:03:18 <monqy> sgeo.........
02:04:58 <Sgeo|web> monquy.........
02:06:37 <elliott> hi monqy
02:06:41 <elliott> Sgeo|web: his name is monqy
02:07:49 <Sgeo|web> elliott: I am aware of this, and still thing calling him "monquy" is marginally humorous
02:07:55 <elliott> no
02:07:56 <elliott> that is
02:07:58 <elliott> impolite
02:08:03 <elliott> you are a Bad Person
02:10:59 <CakeProphet> whutev elriolttl
02:11:39 <shachaf> elliott: Am I a Bad Person?
02:11:46 <elliott> Yes.
02:12:54 <CakeProphet> elliott: am I a Bad Person?
02:13:00 <CakeProphet> CakeProphet: am I a Bad Person?
02:13:15 <CakeProphet> fungot: am I a Bad PErson?
02:13:15 <fungot> CakeProphet: ( c) a player who makes further play impossible by eir actions or lack thereof, or
02:13:30 <CakeProphet> fungot: am I a ( c) player?
02:13:30 <fungot> CakeProphet: " so that the text box in a post a while it was frustrating. they have no parents ( awwww)
02:13:49 <CakeProphet> fungot: am I a orphan ( awwww)
02:13:49 <fungot> CakeProphet: " and this is a new game. there is no longer the wand the better part made mercie, i should think at least, that is expressions which have not been able, to assume responsibilities. he went on, " the conclusion is, then thou, the greatest soldier, de. she wanna be friends, his state vsurp'd, his realme a slaughter-house, his subjects, the european council decided at its meeting on 30 april, or even this very diffic
02:14:18 -!- tiffany has quit (Quit: Leaving).
02:15:53 <Sgeo|web> hi eliot
02:16:25 -!- TeruFSX has quit (Read error: Connection reset by peer).
02:20:59 <monqy> hi
02:21:08 <CakeProphet> yqnom
02:21:22 <CakeProphet> mqnoy
02:21:33 <CakeProphet> yonqm
02:21:51 <monqy> hi
02:23:23 <CakeProphet> learning Django.
02:23:25 <CakeProphet> fun times.
02:23:42 <monqy> why are you learning django
02:23:54 <monqy> whatever the reason: bad
02:23:57 <CakeProphet> monqy: work
02:23:59 <monqy> oh
02:24:16 <monqy> well work's bad then ;_;
02:24:24 <monqy> nobody should have to do web stuff
02:24:33 <monqy> because im bias against it
02:25:33 <CakeProphet> lol
02:25:34 <CakeProphet> okay.
02:25:54 <elliott> Now THIS is annoying.
02:26:07 <CakeProphet> hmmm I wonder where my word generator is infinitely looping and consuming lots of memory.
02:26:18 <CakeProphet> TO THE DEBUGER
02:28:11 -!- pikhq_ has joined.
02:29:41 <CakeProphet> what perls debugger makes no sense
02:30:12 <monqy> what did you expect
02:31:01 -!- pikhq has quit (Ping timeout: 252 seconds).
02:31:22 <CakeProphet> I mean I can't give it commands.
02:31:39 <monqy> perl takes no orders
02:33:52 <elliott> X-D
02:37:55 -!- Sgeo|web has quit (Ping timeout: 252 seconds).
02:42:27 <CakeProphet> oh it just takes a long time to start.
02:45:56 <CakeProphet> uh... what
02:46:15 <CakeProphet> help I'm afraid of mutable state now.
02:47:29 <Gregor> OK folks, I'm updating the Debian under HackEgo. Watch for falling rocks.
02:48:26 <CakeProphet> so $default_dataset equals "eng-1M"
02:48:31 <CakeProphet> until suddenly, I get to this line
02:48:40 <CakeProphet> %grams = %{$data->{$default_dataset}} unless %datasets;
02:49:06 <CakeProphet> and then I get an undefined hashref error and $default_dataset is suddenly undef...
02:49:51 <CakeProphet> makes no sense...
02:52:13 <elliott> ?hoogle appPrec
02:52:13 <lambdabot> Language.Haskell.TH.Ppr appPrec :: Precedence
02:53:25 -!- MichaelBurge has joined.
02:56:01 <CakeProphet> http://pastebin.com/w4QHZ0gt
02:56:03 <CakeProphet> look at this nonsense.
02:57:13 <CakeProphet> DB<15> print $data->{"eng-1M"}
02:57:13 <CakeProphet> HASH(0x7f080ca75720)
02:57:53 -!- SgeoN1 has joined.
02:58:19 <SgeoN1> sudo apt-get install haskell-platform
02:58:49 <elliott> SgeoN1: No.
02:58:57 <elliott> SgeoN1: You absolutely do not want your distro's Haskell Platform.
02:59:12 <SgeoN1> o.O
02:59:39 <elliott> See http://www.vex.net/~trebla/haskell/sicp.xhtml for why.
02:59:44 <SgeoN1> Not even for a stupid simple palindrome counter?
02:59:49 <elliott> Most likely, you don't even want your distro GHC; but you definitely don't want your distro's Haskell Platform.
02:59:57 <elliott> [asterisk]distro's
03:02:59 <elliott> SgeoN1: What are you doing with a palindrome counter, anyway?
03:04:23 <SgeoN1> Checking that my solution to my school's math problem is correct.
03:04:44 <elliott> a math problem involving counting palindromes?
03:04:50 <elliott> are you _sure_ you're not in pre-school?
03:04:53 <SgeoN1> Article says starting off installing from district, then permanently switching to cabal should be safe...
03:05:13 <SgeoN1> Distro
03:05:30 <elliott> Just install the ghc package.
03:05:36 <elliott> You are unlikely to need anything from the platform for a palindrome checker.
03:06:03 <Gregor> `ls
03:06:13 <SgeoN1> I do want to play with yasod at some point
03:06:18 <Gregor> Oh nice -n10. Why you gotta.
03:06:23 <SgeoN1> >.>
03:06:41 <monqy> haskell platform, a yasod necessity
03:06:44 <elliott> SgeoN1: Yesod. And when you do that, you will download a GHC binary package, install it, and then a Haskell Platform source tarball, and tell it to bootstrap.
03:07:42 -!- HackEgo has quit (Remote host closed the connection).
03:07:42 <SgeoN1> This Linux system isn't long for this world anyway.
03:07:53 -!- HackEgo has joined.
03:08:04 <elliott> `ls
03:08:07 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ share \ wisdom
03:08:08 <HackEgo> Failed to record changes.
03:08:11 <elliott> Gregor: Nice
03:08:30 -!- Jafet has joined.
03:08:35 <Gregor> elliott: I'm aware, gimme a sec here.
03:08:52 * elliott should really get to actually writing his transactional HackEgo system.
03:08:57 <elliott> It would be far superior :P
03:09:45 <SgeoN1> Elliott, it's lightning so scary hexadecimal numbers
03:09:57 <SgeoN1> And by lightning I mean oohh
03:10:10 <elliott> SgeoN1: What the fuck.
03:10:13 <SgeoN1> And this thing insists on capsing you
03:10:22 <elliott> shachaf: I've already tried to convert desaiu to LYAH, don't bother, he's determined to waste his time with YAHT :P
03:10:41 <Gregor> Hm, looks like hg commit with no changes used to return 0, now it returns 1.
03:10:42 <shachaf> elliott: I know, so have I.
03:10:49 <shachaf> he comes to #haskell every day and asks about YAHT, and keeps being told not to use it.
03:10:53 <shachaf> s/./H/
03:11:17 <Gregor> There we go, Debian upgrade complete.
03:11:23 <elliott> shachaf: He seems to find it patronising. (I find his questions that demonstrate a lack of even basic knowledge in the language thanks to his use of a bad tutorial patronising.)
03:11:44 <elliott> `ls
03:11:46 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ share \ wisdom
03:11:53 <shachaf> elliott: Yep.
03:12:07 <elliott> shachaf: Oh well, it's not like #haskell isn't always clogged.
03:12:09 <shachaf> We need LYAH-without-pretty-pictures.
03:12:11 <elliott> clog: Sup.
03:12:19 <SgeoN1> Why is libstdc++ stuff being installed?
03:12:21 <elliott> shachaf: Learn Serious Haskell
03:12:28 <elliott> SgeoN1: Probably build-essential.
03:12:42 <elliott> shachaf: Cause Yourself To Learn Haskell, Yielding Great Advantages
03:12:51 <shachaf> Learn Haskell Without Cutesy Grammatical Errors
03:13:19 <elliott> Real World Haskell-- wait.
03:14:08 <elliott> ?hoogle catEithers
03:14:09 <lambdabot> No results found
03:14:10 <elliott> ?hoogle catRights
03:14:11 <lambdabot> No results found
03:14:12 <shachaf> @karma Haskell
03:14:12 <lambdabot> Haskell has a karma of 62
03:14:14 <shachaf> Haskell++
03:14:16 <elliott> ?hoogle [Either a b] -> [b]
03:14:17 <lambdabot> Data.Either rights :: [Either a b] -> [b]
03:14:17 <lambdabot> Data.Either lefts :: [Either a b] -> [a]
03:14:17 <lambdabot> Data.Graph.Inductive.Graph nodes :: Graph gr => gr a b -> [Node]
03:14:19 <elliott> Ah, rights.
03:14:27 * shachaf catches elliott red-handed.
03:14:28 <elliott> ?hoogle fromRight
03:14:28 <lambdabot> No results found
03:14:30 <elliott> Awww.
03:14:35 <elliott> ?hoogle Either a b -> b
03:14:35 <lambdabot> Data.Either rights :: [Either a b] -> [b]
03:14:35 <lambdabot> Data.Typeable typeOf2 :: Typeable2 t => t a b -> TypeRep
03:14:35 <lambdabot> Prelude either :: (a -> c) -> (b -> c) -> Either a b -> c
03:14:38 <elliott> Hmph.
03:14:50 <shachaf> evilFromRight
03:15:31 -!- Slereah_ has quit (Ping timeout: 240 seconds).
03:16:20 -!- Slereah_ has joined.
03:16:45 <elliott> shachaf: It's not my fault all these functions can fail.
03:16:54 <elliott> Don't they know that the data-set is perfect?
03:17:22 <shachaf> elliott: let Right x = blahBlahReturnsEither
03:18:09 <shachaf> elliott: As a bonus, that gives you an actual semi-helpful error if the pattern-match fails.
03:18:20 <elliott> shachaf: Yeah yeah but I need to map it.
03:18:23 <elliott> (\(Right x) -> x) is ugly.
03:19:21 <CakeProphet> wow perl debugger is bad
03:19:21 <shachaf> @let wrong (Right x) = x
03:19:22 <lambdabot> Defined.
03:19:26 <shachaf> elliott: Use that.
03:19:30 <elliott> Heh.
03:19:32 <shachaf> At least it's appropriately named.
03:19:43 <elliott> CakeProphet: Perl's debugger makes a half-decent REPL.
03:19:51 <shachaf> Much like Spolsky's Wrong.html.
03:20:51 <SgeoN1> I already Google's this, but didn't find it
03:20:52 <elliott> shachaf: Isn't that the pro-Hungarian-notation-but-/actually/-he-wants-a-strong-type-system one?
03:20:54 <elliott> (Okay, I googled.)
03:20:58 <shachaf> elliott: Yep.
03:21:23 <shachaf> «Somebody, somewhere, read Simonyi’s paper, where he used the word “type,” and thought he meant type, like class, like in a type system, like the type checking that the compiler does. He did not. He explained very carefully exactly what he meant by the word “type,” but it didn’t help. The damage was done.»
03:22:18 <SgeoN1> @hoogle (f->a->a->b)->a->b
03:22:19 <lambdabot> Data.Map foldWithKey :: (k -> a -> b -> b) -> b -> Map k a -> b
03:22:19 <lambdabot> Data.IntMap foldWithKey :: (Key -> a -> b -> b) -> b -> IntMap a -> b
03:22:19 <lambdabot> Control.Applicative liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
03:22:50 <SgeoN1> I probably won't actually use it, but still
03:23:36 <Gregor> elliott: So now that Debian is pseudo-semi-up-to-date, what should I install?
03:24:18 <Jafet> Gregor: sid?
03:24:58 <Gregor> Jafet: Naw, using stable under HackEgo, but it was lenny before for historical/hysterical reasons.
03:25:39 <Jafet> Isn't lenny stable?
03:25:48 <Gregor> squeeze. lenny is oldstable.
03:26:02 <elliott> Gregor: Does ghc still work?
03:26:03 <Jafet> I always use sid, so I'm behind on old technology.
03:26:09 <Gregor> `ghc
03:26:16 <elliott> Jafet: You would run sid on a server?
03:26:21 <HackEgo> ghc: no input files \ Usage: For basic information, try the `--help' option.
03:26:29 <Jafet> Uh, probably.
03:26:35 <elliott> Jafet: Responsible.
03:26:39 <elliott> (testing I could understand.)
03:26:55 <Gregor> Jafet: I always use sid locally, testing for servers, stable for places where it's unimportant or I have reason to want long-term consistency *shrugs*
03:26:55 <Jafet> I've never run an important server.
03:27:14 <Jafet> Even sid is fairly consistent these days.
03:27:36 <elliott> When are Debian gonna transition to rolling-release as their main release already?
03:27:47 <Jafet> It's called sid!
03:27:52 <Gregor> Yup :P
03:27:53 <elliott> FSVO main.
03:28:05 <pikhq_> elliott: Same day they switch to Portage.
03:28:06 <pikhq_> :P
03:28:11 <Jafet> And I'll just suppose it's their main release.
03:28:15 <elliott> pikhq_: I thought you said there were possible plans.
03:28:23 <pikhq_> elliott: Yes, yes, I'm just joking.
03:28:26 <elliott> :p
03:28:30 <shachaf> The Potato Has Landed.
03:28:48 <Gregor> shachaf: And here I thought Jafet was out of date :P
03:28:50 <pikhq_> There's a few prominent developers who *really* want a rolling release, and nobody is really against it.
03:29:01 <Gregor> I had an m68k mac that ran potato ...
03:29:03 <shachaf> Gregor: You have a problem with potatoes?
03:29:12 * shachaf never ran Potato.
03:29:18 <shachaf> I ran RedHat 5.2, though.
03:29:43 <pikhq_> I was 10 when Potato came out.
03:29:57 <Gregor> I was a potato when the number 10 was invented.
03:30:01 <pikhq_> I did use woody, though.
03:30:21 <shachaf> Sure, everyone ran Woody.
03:30:32 <pikhq_> When it was still vaguely current.
03:30:43 <shachaf> Right.
03:30:54 <elliott> When was woody again?
03:30:57 * shachaf recalls Linux 2.4.20 with fondness.
03:31:03 <pikhq_> elliott: 2002-2005
03:31:13 <elliott> Strange that they took so long to get to such a main name. :p
03:31:15 * Gregor recalls Linux 2 with nostalgia :P
03:31:18 <elliott> When was buzz again? X-D
03:31:27 <elliott> Gregor: .0?
03:31:27 <pikhq_> 1996.
03:31:35 <elliott> Gregor: The one Raymond Chen wrote the config script for? :-)
03:31:42 * elliott will never get over that.
03:31:46 <Gregor> elliott: No, 2.*
03:31:49 <elliott> Pah :P
03:32:19 <Gregor> I should update Hackiki to use UMLBox ...
03:33:00 <CakeProphet> okay yeah so my word data module takes a very long time to load.
03:33:03 * shachaf looks for "The Potato Has Landed" images and fails to find any.
03:33:37 <CakeProphet> elliott: #perl is saying that gdb does not let you poke around in the symbol table after program termination.
03:33:41 <CakeProphet> but.... I'm pretty sure it can.
03:33:44 <CakeProphet> since I've used that feature of it.
03:33:46 <CakeProphet> many times.
03:34:18 <elliott> I think it can too, but probably they're using some pedantic interpretation by which it is not true.
03:34:27 <CakeProphet> okay so then perl -d is just bad
03:34:33 <CakeProphet> and that's why I got in an argument with these people
03:34:38 <CakeProphet> because I was assuming perl -d was quality software.
03:34:41 <CakeProphet> my mistake.
03:35:10 <elliott> Why are you trying to use a debugger on a language that isn't C?
03:35:42 <CakeProphet> dunno I should just be breadcrumbing.
03:35:55 <CakeProphet> and not asking #perl questions because they're rude.
03:38:47 <elliott> Breadcrumbing?
03:38:59 <monqy> breadcrumbing
03:39:34 <CakeProphet> ....you've never heard that used before?
03:40:04 <CakeProphet> a breadcrumb is a print statement thrown in somewhere to print out the value of some datum
03:40:21 <CakeProphet> the most ancient and sophsticated form of debugging.
03:40:41 <elliott> that's called printf debugging.
03:40:44 <elliott> nobody calls it that.
03:41:41 <shachaf> I'm pretty sure the name "printf debugging" was independently invented dozens of times.
03:42:23 <elliott> And the name "breadcrumbing" once, by CakeProphet :P
03:42:46 <shachaf> It's called printf debugging even in languages that don't have printf.
03:43:29 <CakeProphet> dude I totally got breadcrumb from a different source
03:47:06 <Jafet> Every language that doesn't already have printf is doomed to reinvent printf.
03:48:19 <elliott> Jafet: Even OCaml; even though they had to add special support to the compiler for it.
03:49:28 <SgeoN1> Haskell has trace for that exact reason
03:49:49 <SgeoN1> Using Haskell printf for printf debugging is stupid
03:50:43 <SgeoN1> HTTP://hpaste.org/52603
03:52:11 <Jafet> You can use printf and trace!
03:54:24 <elliott> SgeoN1: Unnecessary parenthesisation of RHS of (==); missing spaces around (->).
03:54:32 <elliott> "Show a" constraint on palindrome is redundant.
03:54:43 <elliott> You are not experienced enough to have a moral objection to length; remove import, use of genericLength.
03:55:04 <elliott> Also, palindrome should be of type (Eq a) => [a] -> Bool, and composed with hex at filter-time.
03:55:06 <shachaf> There needs to be a genericLength' that uses foldl'
03:55:38 <elliott> Also, s/num/n/.
03:55:51 * elliott also doubts you need hat Data.Char import.
03:55:53 <shachaf> elliott: Oh, come on!
03:55:54 <elliott> s/hat/that/
03:56:07 <shachaf> elliott: Not everyone needs to use one-letter identifiers for everything.
03:56:17 <elliott> shachaf: "num" is ridiculous.
03:56:23 <shachaf> number
03:56:35 <elliott> Acceptable, but I'll point and laugh at you like a three year-old.
03:56:40 -!- Jafet has quit (Quit: Leaving.).
03:56:46 <elliott> SgeoN1: Also, do not use chains of ($); use (.) instead.
03:57:05 <elliott> SgeoN1: In conclusion: http://hpaste.org/52603
03:57:18 <elliott> SgeoN1: Also, dude, use showHex.
03:57:39 <SgeoN1> If I was aware there was a showHex function...
03:57:43 <elliott> http://hpaste.org/52605
03:57:49 <elliott> SgeoN1: It's in the SO post you linked, for chrissakes.
03:58:24 <shachaf> genericLength is horrible if you just want an Int.
03:58:36 <elliott> That defaults to Integer, but his list is manifestly within Int bounds.
03:58:41 <shachaf> > length [1..1000000]
03:58:42 <lambdabot> 1000000
03:58:43 <shachaf> > genericLength [1..1000000]
03:58:44 <lambdabot> *Exception: stack overflow
03:59:12 <elliott> SgeoN1: So, since you're anti-length: Let's assume a language without all the nasty historical warts; length returns any Num or Integral or whatever, no monomorphism restriction like most people want, etc.
03:59:20 <elliott> SgeoN1: let n = genericLength xs in (n,n)
03:59:31 <elliott> SgeoN1: How many times can forcing the result of this expression traverse xs?
03:59:33 <SgeoN1> I only looked at the accepted answer... admittedly, that can be really stupid for SO
03:59:37 <elliott> It was not accepted.
03:59:39 <elliott> There was no accepted answer.
03:59:45 <elliott> Now, get on that riddle. :p
03:59:52 <shachaf> elliott: -XYesMonomorphismRestriction
04:00:20 <elliott> SgeoN1: And no googling.
04:00:25 <shachaf> -XMoreMonomorphismRestriction
04:00:32 <shachaf> -XMonoMorephismRestriction
04:00:40 <SgeoN1> One, assuming that the compiler can optimize one of the more well known facts of Haskell...
04:00:47 <elliott> SgeoN1: You get NOTHING! You LOSE! Good DAY sir
04:00:52 <elliott> SgeoN1: It can traverse xs up to TWO times.
04:01:02 <elliott> SgeoN1: Now remove that import and s/genericLength/length/ until you know what you're doing.
04:01:02 <shachaf> elliott: Huh? No.
04:01:05 <SgeoN1> ...why?
04:01:06 <elliott> shachaf: Yes, it can.
04:01:08 <shachaf> It can traverse xs as many times as it wants.
04:01:10 <elliott> Well, yes.
04:01:18 <elliott> But you know what I mean.
04:01:20 <elliott> SgeoN1: :: (Int, Integer)
04:01:21 <shachaf> Good DAY, sir.
04:01:30 <elliott> shachaf: Shut up, it's my /job/ to be a jerk to SgeoN1.
04:01:37 * shachaf was being a jerk to you.
04:01:42 <elliott> True.
04:01:45 <elliott> I'll allow it.
04:02:03 <shachaf> Oh, wait. I read that as "/my/ job", not "my /job/".
04:02:11 <elliott> I like Timwi's big red notice: http://esolangs.org/wiki/Programming_Languages_Glossary
04:02:25 <SgeoN1> I mean, I already have my answer, which agrees with what I did by math
04:03:52 <CakeProphet> elliott: help fast way to prepend something to a file.
04:03:53 <elliott> :t foldM
04:03:54 <lambdabot> forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a
04:04:39 <elliott> CakeProphet: Uhh... fopen r+?
04:04:56 <shachaf> elliott: The foldr/foldl issue is at least as big as the recomputation issue.
04:05:19 <elliott> shachaf: Yes, that too. But I'm not sure SgeoN1 actually knows why a stack overflow would happen, and it's easier to shock with the recomputation problem.
04:05:21 <monqy> CakeProphet: append reversed something to reversed file, reverse file
04:05:37 <shachaf> elliott: Right, but it's easier to demonstrate.
04:05:38 <elliott> shachaf: I still can't get over conal's length xs /= length (map f xs) thing.
04:05:40 <shachaf> As I did above.
04:05:47 <shachaf> elliott: What's conal's thing?
04:05:52 <CakeProphet> monqy: help quick way to reverse a file.
04:05:57 <elliott> shachaf: Lemme check.
04:06:01 <elliott> CakeProphet: I told you how.
04:06:03 <monqy> read entire file, reverse it like so
04:06:10 <shachaf> I trust that you would know, being conal.
04:06:29 <elliott> @let foo = [1,3..10]
04:06:30 <lambdabot> Defined.
04:06:31 <elliott> > (length foo, length (map (/10) foo))
04:06:33 <lambdabot> (5,6)
04:06:34 <elliott> shachaf: Behold.
04:06:46 <shachaf> :-(
04:06:59 * shachaf sad
04:07:06 <shachaf> That's a level below mad, just so you know.
04:07:12 <elliott> ??? -> sad -> mad -> ???
04:07:25 <shachaf> I mean "below" as in "worse".
04:07:32 <monqy> ... -> sad -> mad -> sad -> mad -> sad -> mad -> sad -> mad -> ...
04:07:34 <elliott> Oh. Yikes.
04:07:48 <monqy> shachaf cycle
04:07:53 <shachaf> > map (/10) foo
04:07:55 <lambdabot> [0.1,0.3,0.5,0.7,0.9,1.1]
04:07:59 <shachaf> > foo
04:08:01 <lambdabot> [1,3,5,7,9]
04:08:02 <elliott> > foo :: [Double]
04:08:03 <lambdabot> [1.0,3.0,5.0,7.0,9.0,11.0]
04:08:06 <elliott> :t (/)
04:08:07 <lambdabot> forall a. (Fractional a) => a -> a -> a
04:08:12 * shachaf sighs.
04:08:26 <elliott> shachaf: It's the "let's be ridiculous and allow going over half the step because of floating-point inaccuracy issues" thing.
04:08:34 <elliott> I like how that list doesn't actually contain ten-point-anything.
04:08:39 <elliott> Well, it contains ten point nine recurring.
04:08:49 <shachaf> Stupid floating points.
04:08:52 <shachaf> Stupid computers.
04:08:56 * shachaf gives up on computers.
04:08:59 <elliott> > foo :: [Rational]
04:09:00 <lambdabot> [1 % 1,3 % 1,5 % 1,7 % 1,9 % 1,11 % 1]
04:09:05 <shachaf> What?
04:09:07 <elliott> ...oh, wait.
04:09:10 <elliott> What?
04:09:17 * shachaf concurs with elliott.
04:09:18 <elliott> shachaf: I was wrong in that it shouldn't include ten.
04:09:24 <elliott> It's [1,3..10], not [1..10].
04:09:26 <elliott> But...
04:09:30 <elliott> Why is it applying that rule for Rational?
04:09:33 <elliott> It should stop at 9.
04:09:35 <elliott> Gaaah.
04:10:08 <shachaf> elliott: u sad?
04:10:12 <elliott> I sad.
04:10:27 <CakeProphet> wow these guys are huge assholes.
04:10:34 <elliott> CakeProphet: quotes plz
04:10:38 <CakeProphet> no.
04:10:50 <elliott> CakeProphet: Yes.
04:10:52 <CakeProphet> you will agree with them.
04:12:18 <elliott> CakeProphet: Probably; quotes plz.
04:12:32 <elliott> :t foldM
04:12:33 <lambdabot> forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a
04:12:35 <elliott> Ah.
04:12:52 <elliott> shachaf: Can you download eighty gigabytes of zips for me?
04:13:08 <shachaf> elliott: Sure.
04:13:15 <shachaf> What do you want me to do with them?
04:13:31 <elliott> shachaf: Get them to me faster than my internet connection.
04:13:36 <shachaf> Oh.
04:13:56 * shachaf will do it... For the right price.
04:14:06 <shachaf> That didn't sound as evil as I'd hoped.
04:14:13 <elliott> If the price is a hundred dollars or more, I'll just buy the CDs :P
04:14:21 <shachaf> What are you downloading?
04:14:31 <elliott> shachaf: The Google Books five-grams for English.
04:14:37 <elliott> They come in eight hundred little one-hundred-megabyte zips.
04:14:55 -!- Jafet has joined.
04:15:01 <elliott> intern: user error (Pattern match failure in do expression at intern.hs:21:11-18)
04:15:02 <elliott> Wait, what?
04:15:10 <elliott> My parser is... WRONG???
04:16:00 <CakeProphet> 00:15 < mauke> just like gdb
04:16:00 <CakeProphet> 00:15 < mauke> after the program has terminated, all local variables are gone
04:16:01 <CakeProphet> 00:15 < mauke> all that remains is the global symbol table
04:16:03 <CakeProphet> is this correct?
04:16:14 <shachaf> elliott: What are you going to do with them?
04:16:26 <CakeProphet> I'm pretty sure I've looked up local variables in gdb after termination
04:17:01 -!- ive has quit (Quit: leaving).
04:17:15 <elliott> CakeProphet: Couldn't you just try it?
04:17:31 <CakeProphet> elliott: not as quickly as I can ask, and someone say "yes"
04:17:37 <elliott> CakeProphet: No, I would have to try too.
04:18:00 <elliott> shachaf: Run them through a lot of code I'm writing right now, producing a ~terabyte model file, which I will then use to feed through even more code to produce the most advanced Markov bot this channel has ever seen.
04:18:01 <CakeProphet> our total cumulative effort is smaller than me making a test C program or finding an existing C program that terminates in an error
04:18:05 <elliott> shachaf: It's kind of a tradition.
04:18:10 <CakeProphet> ah okay.
04:18:14 <elliott> CakeProphet: int main(){int x = 99; return 99;}
04:18:50 <elliott> fungot: Demonstrate the tradition to shachaf.
04:18:50 <fungot> elliott: if ( sense ahead foe?) x" to give you a hint:) is already woven, which will face us, i heard, oh, hear, or speak, or for iphicrates in the field is called " robotron"
04:18:56 <elliott> shachaf: Except mine will be way more coherent.
04:19:00 <elliott> Also: slower.
04:19:01 <shachaf> elliott: Would it possibly be cheaper to process on AWS?
04:19:33 <elliott> shachaf: I dunno about that. I'm projecting like ten hours of fully-used CPU to do this thing from scratch, at least.
04:19:53 <elliott> shachaf: That sounds quite expensive, and I suspect storing a one terabyte file on AWS would be ludicrously expensive.
04:20:02 <elliott> Even if not, downloading it would take a very, very long time.
04:20:17 <shachaf> elliott: I meant http://aws.amazon.com/datasets/8172056142375670
04:20:34 <shachaf> That was the first result I found -- I guess the regular download place would be elsewhere.
04:20:46 <elliott> Hmm.
04:21:16 <elliott> Well it might work. I'm sceptical of their compressed size though (221.5? It should be eighty -- or is that in the encoded format?)
04:21:23 <elliott> shachaf: But anyway, the output files from it all would still be a terabyte, no matter what.
04:21:30 <elliott> And I need those on my disk to run a bot on.
04:21:34 <shachaf> Oh.
04:22:01 <pikhq_> elliott: You, sir, are mad.
04:22:06 <pikhq_> Awesome, but mad.
04:22:29 * elliott times how long it takes to download one of the zips, so he can estimate the time to download the whole thing.
04:22:30 <shachaf> Where do you download them?
04:22:36 <CakeProphet> uh....
04:22:41 <elliott> shachaf: http://books.google.com/ngrams/datasets; it's the first set of 5-grams on that page.
04:22:46 <CakeProphet> I have a file named --eng-1M in my current directory
04:22:51 <CakeProphet> how do I delete it?
04:22:53 <elliott> rm -- --eng-1M
04:23:06 <CakeProphet> ah. excellent.
04:23:10 <CakeProphet> forgot about the -- thing
04:23:58 <Gregor> More generally (for e.g. cat that's a jerk and doesn't like --), you can of course use ./--eng-1M
04:24:44 <CakeProphet> ah yes.
04:24:55 * shachaf has access to a server that can download each 100MB file in ~10 seconds.
04:25:00 <shachaf> I guess that doesn't do you much good.
04:25:31 <elliott> Yeah, there's no way that downloading the output file could possibly be quicker than downloading all the sources :P
04:25:42 <elliott> Especially since I likely have more RAM than whatever ~cloud~ substrate I could afford.
04:25:56 <elliott> OK, it took 3m34.263s to download that one.
04:26:06 <elliott> So that's...
04:26:16 <elliott> 46.67 hours to download the entire thing.
04:26:23 <elliott> That's a lot of time.
04:26:32 <elliott> Especially considering it'd peg my connection :P
04:26:53 <shachaf> elliott: You can ship a hard drive to Amazon and have them put data on it.
04:26:59 <shachaf> I don't know if that comes out cheaper/faster.
04:27:08 <elliott> You can?
04:27:26 <shachaf> http://aws.amazon.com/importexport/
04:27:54 <elliott> shachaf: That would just be in the special format you linked to, wouldn't it?
04:28:07 <elliott> I'd prefer the originals; I already have some tools to process them. :p
04:28:15 <shachaf> True, I suppose.
04:28:23 <elliott> Hmm, it's $80.00 + $2.49 times an unspecified number.
04:28:27 <elliott> The DVDs are like a hundred bucks.
04:28:41 <elliott> Doesn't sound like it adds up to me.
04:28:46 <elliott> Grr, http://www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC2006T13 is out of order.
04:28:53 * elliott checks the cache for the exact price.
04:29:00 <elliott> Non-member Fee:Please contact the LDC at 1-(215)-573-1275 or ldc@ldc.upenn.edu for all pricing information.
04:29:04 <elliott> What? It had the price not long ago.
04:29:26 <elliott> (Those DVDs are of a different corpus, and probably a lower-quality one, but eh.)
04:29:34 <elliott> Yes indeed:
04:29:34 <elliott> Non-member Fee:US $150.00
04:29:39 <elliott> I wonder if they're charging more for it now?
04:31:51 <shachaf> elliott: Where are you? .uk?
04:32:08 <elliott> .qq; but yes.
04:32:14 <elliott> They should really have .qq domains.
04:32:16 <elliott> q is the best letter.
04:32:38 <shachaf> q is an abomination
04:32:49 <elliott> shachaf: Why.
04:32:53 <elliott> Why would you say such
04:32:53 <elliott> lies
04:33:21 <shachaf>
04:33:25 * Gregor founds Qoqonia to make .qq domains.
04:34:00 <CakeProphet> weeee, generating these datas == more fun than watching paint drying.
04:34:16 <elliott> CakeProphet: If you were smart and didn't use Perl like I'm not not doing, it would go much faster.
04:34:33 <CakeProphet> I am beginning to regret using perl now that I'm in debugging.
04:34:39 * shachaf wonders if there's a service where they download things and ship them to you.
04:34:47 <elliott> shachaf: It's called an ISP, I think. :p
04:34:56 <elliott> The shipping is done over copper.
04:35:06 <CakeProphet> ha, imagine if they shipped like a CD or something.
04:35:15 <CakeProphet> well, multiple DVDs
04:35:23 <CakeProphet> the shipping time would have to be shorter than the download time for the customer.
04:35:53 <elliott> CakeProphet: That's kind of the point.
04:36:05 <CakeProphet> elliott: note that we are saying the same thing.
04:36:09 <elliott> CakeProphet: Except not really, because waiting a week =/= scheduling time to peg my internet connection for forty eight hours.
04:36:43 <shachaf> elliott: Just throttle the download.
04:36:56 <elliott> Yeah, then it'll only take ten years,
04:37:00 <elliott> s/second ,/./
04:37:03 <shachaf> Don't throttle it that much.
04:37:20 <shachaf> Presumably if your Internet connection was half as fast as it is right now it wouldn't be that bad.
04:37:27 <elliott> shachaf: Yes, it would.
04:37:34 <elliott> I only have eight megabits, man. And I never get eight megabits.
04:37:47 <shachaf> That's a lotta megabits, man.
04:37:59 * shachaf gets ~0.8 megabits at home.
04:38:13 <shachaf> And I live in Silicon Valley. If you can believe that.
04:38:33 <elliott> More like Silicon Ha-ha. Vey.
04:38:47 <elliott> Hmm, Valley doesn't end in Vey.
04:39:04 <shachaf> Indeed.
04:39:10 <elliott> But maybe it COULD???
04:39:15 <shachaf> Nope.
04:39:58 <elliott> :(
04:40:03 <shachaf> http://www.canadiandownload.com/
04:41:34 <elliott> Looks legit.
04:41:43 <elliott> It, uh, only supports one URL though.
04:41:56 <elliott> Also I'm not in Canada.
04:41:56 <shachaf> It's a bit of a joke website, I suspect.
04:42:08 <elliott> Well...
04:42:09 <elliott> "We're in the process of burning all the discs for everyone who requested the service (as long as what they requested won't land us in jail for shipping it over international borders)."
04:42:18 <elliott> "Disclaimer: We are unable to download and ship pornography, copyrighted information, or anything else that could get us in the shit with customs or the FBI."
04:42:24 <elliott> Copyrighted information? So almost everything?
04:42:32 * elliott bets Google claim copyright on their corpus.
04:43:23 * shachaf creates a 100000-gram corpus from his favourite book.
04:43:40 <elliott> shachaf: With "cat"?
04:43:44 <shachaf> Yep.
04:43:53 <shachaf> I prefer to call it copyright-adjust.
04:44:06 <shachaf> It's my corpus, after all.
04:44:46 <elliott> It occurs to me that I have no idea how many pages 100000 words is.
04:44:54 <shachaf> Nor I.
04:45:11 <shachaf> http://answers.google.com/answers/threadview?id=608972
04:45:23 <elliott> W|A says five hundred "screenplay pages".
04:45:49 <shachaf> ∀|M
04:47:23 <shachaf> elliott: Whiile you're at it, can you do Hebrew too?
04:47:43 <elliott> Wow, Google actually offer Hebrew data.
04:48:01 <shachaf> Yep.
04:48:02 <elliott> shachaf: Unfortunately I know nearly nothing about Hebrew, so I would be unable to (a) understand what it spits out or (b) tune my code to it.
04:48:11 <elliott> Does Hebrew even have sentence boundaries?
04:48:19 <shachaf> Sure.
04:48:49 <elliott> Weeeeeeell, I /could/ do it, but it's -- oh, the data set is tiny.
04:48:57 <elliott> Sixty K per archive.
04:49:06 <CakeProphet> yeah it takes up to 10 seconds to import my data module...
04:49:19 <CakeProphet> I guess I should switch to Storable.
04:49:24 <elliott> shachaf: I suppose I'll give it a bash once I get everything written.
04:49:29 <elliott> CakeProphet: Ten seconds? That's nothing.
04:49:34 <elliott> Oh, your data module. Okay.
04:49:47 <CakeProphet> yeah.
04:49:51 <elliott> shachaf: But I wouldn't expect much; I'm going to tune it for well-formed punctuation, realistic lengths, full sentences, etc.
04:49:57 <shachaf> Starting up ghci takes me two seconds. :-(
04:49:59 <elliott> None of which I know about in the context of Hebrew.
04:50:04 <elliott> shachaf: What, why?
04:50:19 <shachaf> elliott: Medium two-digit number of imports in .ghci
04:50:27 <elliott> shachaf: That's called a problem.
04:50:33 <elliott> You have a problem; try removing it.
04:50:36 <shachaf> The fact that it takes two seconds? I agree.
04:50:40 <SgeoN1> I can.
04:51:01 <SgeoN1> ..pronounce out loud Hebrew text that has vowels...
04:51:20 <elliott> shachaf: No, your imports.
04:51:27 <Patashu> 10 seconds every time it runs, or only when it compiles?
04:51:30 <shachaf> My imports, my business.
04:51:33 <elliott> Patashu: ghci.
04:51:53 <shachaf> I assume Patashu is talking to CakeProphet.
04:52:05 <elliott> Oh.
04:52:07 <elliott> Patashu: Imports.
04:52:19 <elliott> At least that's what the context implied, with Storable.
04:53:05 -!- Jafet has quit (Quit: Leaving.).
04:53:08 <elliott> shachaf: Have a whine: Interning is probably going to lengthen the corpus by quite a bit, because most words are shorter than eight bytes.
04:53:19 <elliott> Unless, hmm.
04:53:29 <elliott> There are probably fewer than 4 billion words in the corpus.
04:53:33 <elliott> So it should shrink.
04:53:52 <shachaf> Which corpus?
04:53:59 <elliott> shachaf: The English five-grams.
04:54:20 <elliott> The one-grams are a different matter, there's a shitload of them, but they only include five-grams that occurred at least forty times.
04:54:27 <elliott> So I doubt there's many nonce words :P
04:54:43 <elliott> So I would /expect/ (hope) that a thirty-two bit integer would be enough to identify each word in the corpus.
04:55:09 <shachaf> How do you have all this hard drive space?
04:56:05 <CakeProphet> elliott: I might split my datasets into multiple modules
04:56:12 <CakeProphet> and import them dynamically based on command-line options.
04:56:17 <elliott> shachaf:
04:56:19 <elliott> Filesystem Size Used Avail Use% Mounted on
04:56:19 <elliott> /dev/sda5 134G 14G 114G 11% /
04:56:20 <CakeProphet> that should speed up startup times.
04:56:29 <elliott> shachaf: I don't, but one terabyte external disks are pretty cheap.
04:56:43 <elliott> shachaf: I already have a nice ~three hundred gig external disk that I can test subsets of the corpus on.
04:56:54 * shachaf recommends 1TB RAM.
04:57:00 <elliott> Yes, it would be nice.
04:57:10 <elliott> But really:
04:57:10 <elliott> -rw-rw-r-- 1 elliott elliott 20M 2011-10-14 03:08 foo
04:57:10 <elliott> -rw-r--r-- 1 elliott elliott 936M 2010-12-25 00:03 googlebooks-eng-all-5gram-20090715-478.csv
04:57:12 * CakeProphet bought a 1.5 TB external for around $60
04:57:14 <elliott> The former is the reduced version of the latter.
04:57:27 <elliott> The csv (not actually a CSV) has one line per /year/, and useless page/book counts.
04:57:40 <elliott> foo is just a binary form with all the years smushed together and only the full count.
04:57:40 <shachaf> > (compare `on` length) "elliott" "shachaf"
04:57:41 <lambdabot> EQ
04:57:48 <elliott> Huh? Your name totally looks longer.
04:57:51 <shachaf> Weird. That must be why I keep thinking you're me.
04:58:06 <shachaf> elliott: My name is totally shorter in sane languages.
04:58:16 <shachaf> שחף
04:58:20 <CakeProphet> however
04:58:33 <elliott> shachaf: That ש looks so unba- AUGH IT CHANGED WHEN I COPIED IT
04:58:38 <CakeProphet> splitting my script into like 24+ modules makes it annoying to port over to hackego.
04:58:45 <fizzie> It does omit non-occurring years completely, yes. (Given that the years start from 1600-something, it'd make for even hueger files otherwise.)
04:58:47 <elliott> DEVIL'S LANGUAGE DEVIL'S LANGUAGE MY COMPUTER IS BREAKING THE LAWS OF LOGIC AUUUUUGH
04:58:51 <CakeProphet> as I'll have to point perl to the directory where the modules are located.
04:58:57 * elliott cries
04:58:59 <shachaf> elliott: Welcome to the nightmare of handling RTL languages on most computers.
04:59:03 <CakeProphet> `run perl -e "print @INC"
04:59:09 -!- MichaelBurge has quit (Read error: Connection reset by peer).
04:59:09 <HackEgo> ​/etc/perl/usr/local/lib/perl/5.10.1/usr/local/share/perl/5.10.1/usr/lib/perl5/usr/share/perl5/usr/lib/perl/5.10/usr/share/perl/5.10/usr/local/lib/site_perl.
04:59:12 <elliott> shachaf: YOUR LANGUAGE IS BROKEN ;_______;
04:59:16 <shachaf> NO U
04:59:17 * elliott cries some more.
04:59:17 <CakeProphet> `run perl -e '$, = " "; print @INC'
04:59:19 <fizzie> And there certainly seemed to be very many not-really-5grams, though I didn't count them.
04:59:19 <HackEgo> ​/etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .
04:59:33 -!- MDude has changed nick to MSleep.
04:59:41 <elliott> fizzie: Yes, I'm just not sure what to do with them. A lot of them seem to have an extra space signifying an empty word after them (but not more than one space to pad them out fully).
04:59:51 <CakeProphet> yeah I'd have to have some environment variables configured probably... or have all the data modules in bin which is ugly.
05:00:00 <shachaf> elliott: ף is a "final letter". It's only used if it's on the end of a word, otherwise you use פ.
05:00:04 <elliott> fizzie: I can easily process them as less-than-five grams, I'm just not sure what to do.
05:00:20 <CakeProphet> elliott: do you think you could convince Gregor to let me modify the Perl module lookup paths?
05:00:21 <elliott> shachaf: פ is nicer. It's a sane capital letter, just upside down.
05:00:24 <elliott> You know, in real languages.
05:00:28 <elliott> CakeProphet: You can push to @INC.
05:00:38 <CakeProphet> ...bleh. fine.
05:00:59 <fizzie> You can "use lib 'dir';"
05:01:01 -!- pikhq has joined.
05:01:04 <elliott> CakeProphet: What fizzie said.
05:01:06 -!- pikhq_ has quit (Ping timeout: 252 seconds).
05:01:19 <elliott> shachaf: I wonder how mega-slow the babbler will be; it's going to have to do, like, hundreds of seeks, over USB, to produce a single sentence.
05:01:23 <CakeProphet> fizzie: is that the same as pushing to @INC?
05:01:37 <CakeProphet> except at compiletime.
05:01:40 <CakeProphet> "compile"time
05:01:44 <shachaf> elliott: אליוט is shorter, too.
05:01:50 <elliott> shachaf: What's that?
05:01:52 <shachaf> It's pretty much a superior language in every respect.
05:01:59 <shachaf> elliott: http://he.wikipedia.org/wiki/%D7%98%D7%99_%D7%90%D7%A1_%D7%90%D7%9C%D7%99%D7%95%D7%98
05:02:11 <fizzie> Almost. I think there was some subtle difference.
05:02:14 <elliott> shachaf: That page, is, like, backwards.
05:02:19 <elliott> shachaf: Also my name has two "t"s.
05:02:30 <shachaf> Only in redundant languages.
05:02:30 <elliott> Oh, two "l"s too.
05:02:34 <elliott> Can you duplicate the relevant letters for me, please?
05:02:38 <shachaf> No.
05:02:41 <shachaf> It doesn't work that way.
05:02:46 <elliott> Yes, it does. Do it.
05:02:54 <shachaf> If you have two letters in a row, it's pretty stronly implied that there's a vowel between them.
05:03:07 <shachaf> Vowels aren't usually written, you see.
05:03:13 <elliott> Only if you're dumb. People will totally understand what it means.
05:03:18 <fizzie> Oh, right, it also auto-adds $dir/$arch/ too if $dir/$arch/auto exists. And also versions.
05:03:36 <CakeProphet> ...cool, I guess...
05:03:38 <shachaf> אלליוטט
05:03:56 * shachaf doesn't even know what that means.
05:03:56 <elliott> shachaf: Excellent.
05:04:00 <elliott> It means "Elliott".
05:04:09 <elliott> * אלליוטט :Erroneous Nickname
05:04:11 <shachaf> More like Ellelliottett
05:04:15 <elliott> Augh, my input field right-aligned when I pasted that.
05:04:18 <fizzie> CakeProphet: Well, it's less silly-looking than BEGIN { unshift @INC, 'dir' }
05:04:20 <elliott> shachaf: That is also an acceptable name for me.
05:04:30 <shachaf> elliott: When are you moving to CA, by the way?
05:04:49 <elliott> shachaf: I do not plan to move to the US.
05:05:32 <shachaf> Silly elliott.
05:05:36 <shachaf> Silliott.
05:06:07 <CakeProphet> elliott: but the US is such a good country.
05:06:16 <elliott> CakeProphet: It is just too good for me.
05:06:30 <CakeProphet> you can buy pre-sliced roast beef that's /french onion dip/ flavored.
05:06:32 <CakeProphet> what more do you want.
05:06:43 <elliott> Oh.
05:06:44 * shachaf vegetarian
05:06:45 <elliott> shachaf: Tomorrow.
05:06:47 <CakeProphet> also hotdogs wrapped in pancake.
05:06:49 <elliott> Wow.
05:06:52 <elliott> shachaf: In ten minutes.
05:07:35 <CakeProphet> also you guys may have this too, but I've seen hotdogs that are /filled with gross processed cheese stuff/
05:07:46 <elliott> WOOOOOOOOOW
05:07:49 <elliott> shachaf: I am in fact already in the US.
05:07:51 <CakeProphet> America has the best food.
05:08:13 <shachaf> elliott: That's the spirit.
05:08:22 <shachaf> Motivations like that might not get you here to northern CA, though...
05:09:38 <pikhq> America: land of the 3.8L soda.
05:10:21 <CakeProphet> well, I've seen 3L but not that.
05:10:35 <pikhq> Apparently 7-11 carries such a thing.
05:10:41 <pikhq> I've not seen anyone go quite that far.
05:10:52 <pikhq> https://upload.wikimedia.org/wikipedia/en/d/d5/Big_gulp6480.JPG This, sure.
05:11:08 <CakeProphet> I know at quiktrip you can get like 48 oz. sodas for a dollar...
05:11:14 <CakeProphet> which is an obscene liquid to cent ratio.
05:11:35 <elliott> That's, like, forty eight ounces to the dollar.
05:12:38 <shachaf> elliott: Did you know US pints /= UK pints?
05:12:52 <elliott> I thought you guys didn't use pints. Am I wrong?
05:12:59 <elliott> I guess there's nothing else you could use.
05:13:07 <elliott> Metric is communist, and I don't know of anything else even semi-reasonable.
05:13:18 <elliott> "The imperial version is 20 imperial fluid ounces and is equivalent to about 568 mL, while the U.S. version is 16 U.S. fluid ounces and is equivalent to about 473 mL. Thus the traditional British pint of beer is approximately 20% larger than the American pint."
05:13:20 <shachaf> elliott: Something based on base 12 would be better than metric.
05:13:23 <elliott> See, we UK are more hardy folk.
05:13:28 <elliott> shachaf: You mean like the imperial system?
05:13:32 <shachaf> No.
05:13:33 <elliott> (Well. Sort of...)
05:13:35 <shachaf> I don't mean that.
05:13:50 <elliott> shachaf: You're not one of those Dozenal Society folks, are you?
05:14:01 <shachaf> Sure I am.
05:14:03 <shachaf> Well, maybe.
05:14:05 <shachaf> I've never heard of them.
05:14:26 <elliott> "The DSA has been around since World War II"
05:14:30 <CakeProphet> shachaf: they call themselves that because there's probably only a dozen of them.
05:14:33 <CakeProphet> (hhahahahahahauhweiuwe)
05:14:33 <elliott> Talk about priorities.
05:15:37 <shachaf> elliott: So in _1984_, this person talks about how 1L is too much but 0.5L is too little -- it don't satisfy, as I recall.
05:16:19 <elliott> shachaf: You mean "in _1194_".
05:16:21 <CakeProphet> imperial system is why USA is #1!!!!
05:16:36 <elliott> 74A and All That.
05:16:50 <shachaf> elliott: I'm told that balanced ternary > base 12.
05:16:56 <elliott> shachaf: Ah.
05:17:22 <CakeProphet> balanced ternary sounds awful.
05:18:28 * CakeProphet lives about -1-1-1-1-1-1 miles from your house.
05:18:44 <elliott> Distances can't be negative.
05:18:59 <CakeProphet> balanced ternary has -1 as a digit am I right?
05:19:09 <elliott> Sure.
05:20:18 <CakeProphet> so balanced ternary is more like binary but where each digit can have a sign that alternates the sign of the resultant number?
05:20:22 <CakeProphet> each 1
05:20:31 <CakeProphet> >_>?
05:20:41 <elliott> http://en.wikipedia.org/wiki/Balanced_ternary
05:20:53 <shachaf> elliott: How did you do that?!
05:21:01 <elliott> shachaf: What.
05:21:11 <shachaf> You just made this link appear to a page containing relevant information about a topic.
05:21:15 <CakeProphet> elliott: you have the wikimagicks
05:21:30 <shachaf> elliott: If only more IRC users had your powers.
05:21:32 <elliott> shachaf: It's because I'm a secret wizard.
05:21:41 <shachaf> I knew it.
05:22:19 <CakeProphet> man the internet takes all the fun out of conversations.
05:22:24 <CakeProphet> specifically the question-answer part.
05:24:51 * elliott thinks balanced ternary looks nice.
05:25:23 <CakeProphet> elliott: I think YOUR FACE looks nice.
05:26:02 * shachaf agrees about elliott's face.
05:26:15 <elliott> Heh.
05:27:09 <fizzie> They barely have any 2L bottles here :/ -- there are some, but the traditional 1.5L is still far more common.
05:27:53 <CakeProphet> traditional 1.5L
05:28:01 <CakeProphet> 1.5L is like a new thing in the southeastern US.
05:28:24 <elliott> fizzie: Do you think I should just process them as less-than-five-grams I MUST KNOW.
05:28:39 <elliott> fizzie: (And maybe drop the terminating "empty words"?)
05:30:05 <shachaf> Words, words, words.
05:30:09 <pikhq> elliott: The US actually uses a bizarre hybrid of US traditional and metric units for fluid measures.
05:30:23 <pikhq> To Americans, liters are entirely meaningful units.
05:30:24 <elliott> shachaf: Yes.
05:30:28 <elliott> pikhq: Suuuuuuuuure.
05:31:04 <fizzie> elliott: I don't know; I'd just drop them all for consistency's sake. And also parse that quoting while at it. But it's baaaad that they even are there.
05:31:19 <elliott> fizzie: Is "baaaad" meant to signify Great Badness?
05:31:30 <elliott> fizzie: But anyway, you saw my numbers: it's a whole sixth of one of the files and therefore probably of the whole corpus.
05:31:31 <elliott> That's a lot.
05:33:02 <pikhq> elliott: Bottled soda generally comes in 16 fl. oz, 20 fl. oz, and 2L.
05:33:27 <pikhq> Other available sizes include 12.5 fl. oz, 7.5 fl. oz, 1.25L, and 1.5L.
05:33:38 <pikhq> Oh, and 1L, of course.
05:36:16 -!- GreaseMonkey has joined.
05:36:42 <fizzie> elliott: Sure, but I'd still ignore them, since they're so obviously broken. Though I guess if you're going to take less-than-5 subgrams (not a word) of the other 5-grams too, you could also take those truncated ones.
05:37:04 <elliott> fizzie: Well, I'm doing a reverse-context tree, so...
05:37:21 <elliott> fizzie: I don't suppose you have any idea why there could be so many broken ones? They seem to coincide a lot with punctuation.
05:37:27 <elliott> Like things starting ".
05:41:41 <fizzie> All the non-truncated things starting with " seemed to me be things containing " inside, with the inner "s properly escaped by doubling.
05:42:46 <fizzie> Possibly the truncated ones had some other punctuation character which got them split badly. Perhaps you can figure out what would have followed from the context.
05:42:54 <elliott> Weeeell...
05:43:16 <elliott> It's no longer in my backlog.
05:43:24 <elliott> But they did not look that odd.
05:43:43 <elliott> fizzie: Fr'instance:
05:43:43 <elliott> 23:49:34: <elliott> ("\"* The latter ",54)
05:43:43 <elliott> 23:49:36: <elliott> ("\"* Thus ",73)
05:43:43 <elliott> 23:49:43: <elliott> ("\"* that is ",75)
05:43:52 <elliott> That's four words, last word empty.
05:43:58 <elliott> First word "*.
05:45:36 <fizzie> Well, I don't know. But I'm reasonably certain in those the real first word was plain '*'.
05:46:46 <elliott> fizzie: Really? Howso?
05:46:48 <elliott> There's no terminating quote.
05:47:06 <fizzie> Yes, because it got split along with the rest of the words.
05:47:17 <fizzie> As well as in all the [""" And then I said"]-style non-truncated 5-grams, I'm pretty sure it's trying to mean ["][and][then][I][said].
05:47:27 <elliott> fizzie: Split how? Sorry if I'm being dense.
05:48:46 <CakeProphet> #perl is such a friendly community
05:48:48 <CakeProphet> of assholes
05:49:11 <CakeProphet> one guy literally told me I would mess up using a join. Like I don't know how it works...
05:49:15 <elliott> CakeProphet: The one person you've quoted so far is also a #haskell op and has sometimes been in #esoteric. :p
05:49:50 <CakeProphet> elliott: I don't remember why I quoted that guy but it wasn't because he was being an asshole.
05:49:53 <CakeProphet> ...I think.
05:49:56 <elliott> It was the gdb thing.
05:49:57 <fizzie> elliott: I mean it was originally something like ["* The latter "" saints"], representing [*][The][latter]["][saints], in the unbroken dataset, and something broke it.
05:50:08 <CakeProphet> elliott: yeah that was for the purpose of providing context to a question.
05:50:14 <elliott> fizzie: Ah.
05:50:46 <elliott> fizzie: So you think I should basically strip off quotes-as-the-first-character-of-a-first-word-that-is-longer-than-one-character-that-aren't-later-teminated?
05:50:51 <elliott> s/teminated/terminated/.
05:51:00 <CakeProphet> elliott: I was threatened with a kickban for calling out that guy as being a jerk. :P
05:51:02 <elliott> And then de-escape "" inside.
05:51:54 <CakeProphet> *the guy that said I would improperly use a join
05:52:46 <fizzie> Yes, unless you can find an example of a "-starting string that isn't either (a) properly terminated, with any inner quotes escaped, or (b) less than 5 words and lacking the terminating quote.
05:52:51 <elliott> fizzie: Right.
05:53:10 <elliott> fizzie: " as the first word alone should be fine, right, because n-grams don't start with spaces?
05:53:28 <elliott> Oh, and I should apply the same treatment to it being the last character of a last word longer than one character that isn't previously terminated.
05:56:46 <fizzie> " as a first word alone could be fine, but I doubt any are in the set; all I saw was """ foo ..., which is the start of an escaped [" foo ...].
05:57:19 * elliott greps it.
05:57:29 <elliott> Yeah, you're right.
05:57:47 <elliott> fizzie: (Why doubt it? Other than that "s seem to be mushed with the word they're stuck to in practice; SIGH.)
05:57:57 <elliott> I don't suppose you know of a less bad corpus.
05:58:18 <CakeProphet> the only good corpus is a dead corpus.
05:58:27 <CakeProphet> :D :D :D :D :D :D :D :D :D ::D :D :D :D :D D:D :D :D :D : D:D
05:58:32 <fizzie> Oh, so it has [""foo]s too?
05:58:56 <elliott> fizzie: No, it has "foo and bar"s.
05:59:07 <elliott> Hmm.
05:59:12 <elliott> I suppose you'll tell me those are part of the same quoting nonsense.
05:59:16 <elliott> Augh.
05:59:21 <CakeProphet> The unexamined life is not worth living. -- Socrates
05:59:23 <fizzie> All non-doubled dquotes I've seen have been part of the quoting, not the data.
05:59:26 <CakeProphet> I'm not really sure what this quote is supposed to mean.
05:59:31 <elliott> fizzie: It definitely has lines starting """ though:
05:59:33 <elliott> """ "" Tell them nothing"1983333
05:59:35 <CakeProphet> but I don't really agree with it at all and am highly confused when I see it quoted?
06:00:06 <fizzie> Yes: thatms ["]["][Tell][them][nothing] properly quoted.
06:00:19 <CakeProphet> is it saying that there is no point in living if you don't analyze the events of your life, or...
06:00:21 <elliott> fizzie: Like I said, don't suppose you know of a nicer corpus? :p
06:00:32 <CakeProphet> is it saying that your life is worthless if people don't take notice of it and examine it.
06:00:42 <fizzie> Nnno, nothing as large and/or freely available.
06:02:34 <fizzie> You *can* count your own 'grams from Gutenberg, but the texts are predominantly non-modern, and the data is really really messy there too. (There's no consistent standard for the embedded Gutenberg prologues, the metadata often doesn't tell the encoding, and sometimes when it does it's actually a lie.)
06:03:13 <elliott> Well, right.
06:03:24 <elliott> I've done "bring your own corpus" stuff before.
06:03:28 <CakeProphet> real life is so much fun you guys.
06:03:43 -!- pikhq_ has joined.
06:06:22 -!- pikhq has quit (Ping timeout: 244 seconds).
06:09:42 <CakeProphet> oh wow, I forgot perl can do labels and gotos
06:11:27 <fizzie> Come to think of it, I don't really know that many text corpora that would be in the form of n-gram counts anyway, since it strictly limits what you can do with it. Usually it's just a large mass of text, and then you can do dependency grammars or whatever with them. Google Books and Google Web are exceptions, possibly because they'd be so unmanageably large otherwise.
06:11:42 <elliott> Right.
06:13:51 <fizzie> Well, assuming 5 as the average length of a token and one character separating each, the Google Books would be "just" two terabytes. Still.
06:14:27 <fizzie> Or I guess that's after dropping all used-less-than-40-times words.
06:14:45 <fizzie> So, uh, multiply that by some smallish integer.
06:17:23 <elliott> Heh.
06:17:42 <elliott> fizzie: used-less-than-40-times ngrams, I think.
06:17:46 <elliott> Not words.
06:19:06 <fizzie> Words. That calculation was from the unigram total-counts file.
06:19:47 <fizzie> (Sum of second column times six.)
06:20:41 <elliott> ah
06:21:15 -!- monqy has quit (Quit: hello).
06:22:06 <elliott> fizzie: Supposedly the corpus contains four percent of every book ever published in English.
06:22:33 <fizzie> Actually the count might be a real count of words there, pre-filtering, since they say it's useful for getting the relative (i.e. normalized) frequency of each word. I don't feel like summing up the unigram counts to see if it matches or not.
06:22:58 <CakeProphet> wow perl's import system allows you to completely fabricate non-existent modules.
06:24:10 -!- Sgeo|web has joined.
06:24:12 <Sgeo|web> i = 0x5f3759df - ( i >> 1 ); // what the fuck?
06:24:21 <fizzie> From the same file, (sum of column 2)/(sum of column 4) says that the average book has 109698 words. That sounds reasonable enough, it's very close to the book length on Bartledan.
06:24:22 <Sgeo|web> Why does this amuse me?
06:24:44 <CakeProphet> you can place a coderef in @INC that will get run when it's encountered in the import process, and that coderef can optionally return another coderef that generates lines of source code.
06:25:03 <fizzie> "It wasn't even the climax of the book, because there wasn't one. The character died about a third of the way through the penultimate chapter of the book, and the rest of it was just more stuff about road-mending. The book just finished dead at the one hundred thousandth word, because that was how long books were on Bartledan."
06:25:49 <elliott> Heh.
06:25:55 <Sgeo|web> <3 DNA
06:27:05 <Sgeo|web> Hmm, is And Another Thing any good? (Not DNA, which is why I'm asking)
06:27:13 <elliott> Yes and no.
06:27:30 <fizzie> Haven't read it yet, but "yes and no" is the impression what I've gotten from others.
06:28:06 <fizzie> Maybe I should use one of those quaint book-lending-places, what do you call them... lie-brary? Something like that.
06:28:19 <elliott> It tries too hard to imitate Adams. Colfer is very good, certainly he succeeds at that well, and the book is enjoyable. But in some sense it is still, and inevitably, plasticky.
06:28:24 <elliott> Adams he ain't.
06:28:45 <elliott> So, read it, but don't expect the sixth book in the trilogy.
06:28:59 <elliott> It's certainly of stellar quality for fanfiction.
06:29:04 <CakeProphet> fizzie: by "others" do you mean elliott. Because I've gotten that impression from others as well.
06:29:25 <CakeProphet> DNA is a pretty cool guy. eh translates to RNA and doesn't afraid of anything.
06:29:25 <elliott> Hey, I last talked about it in '09.
06:29:33 <elliott> You weren't even here.
06:29:47 <CakeProphet> hmmm, what was I doing in '09...
06:30:13 <CakeProphet> graduating and starting college.
06:30:34 <Sgeo|web> Honestly, I cannot remember the name "Colfer"
06:30:46 <CakeProphet> having a girlfriend. yeah there was like 2 or maybe 3 years where I kind of stopped being an #esoteric regular.
06:30:50 <CakeProphet> and then I came back. aren't you guys glad?
06:30:53 <elliott> Sgeo|web: Eoin.
06:31:43 <fizzie> He's the Artemis Fowl guy; those are some seriously shiny books. (As in, physically, the covers, of the ones I saw in the school lie-brary back then.)
06:32:17 <elliott> Sgeo|web: fizzie: I definitely disliked the focus on minor characters like Wowbagger and (ok, not that minor) Random.
06:32:37 <fizzie> SPOILAGE ALERT SPOILAGE ALERT
06:32:54 <CakeProphet> @hoogle Maybe a -> a -> a
06:32:55 <lambdabot> Data.Maybe fromMaybe :: a -> Maybe a -> a
06:32:55 <lambdabot> Prelude asTypeOf :: a -> a -> a
06:32:55 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
06:32:56 <elliott> Feels like Adams would make up new ones for the job (though I could imagine Random being a focus).
06:33:00 <elliott> fizzie: Oh pls.
06:33:04 <Sgeo|web> I think if I thought about it for two seconds, I would expect Random to show up. Wowbagger not so much
06:33:09 <elliott> It's in the first few pages.
06:33:14 <CakeProphet> @hoogle Maybe a -> Maybe a -> a
06:33:14 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
06:33:14 <lambdabot> Data.Maybe fromMaybe :: a -> Maybe a -> a
06:33:14 <lambdabot> Control.Applicative (<|>) :: Alternative f => f a -> f a -> f a
06:33:28 <CakeProphet> I guess fromMaybe is like the // of Haskell.
06:33:53 <elliott> fizzie: Sgeo|web: Also the cheat around the last book's ending is cheap and you will groan.
06:33:57 <elliott> That's all.
06:34:16 <CakeProphet> > Nothing <|> Just 3
06:34:17 <lambdabot> Just 3
06:34:25 <CakeProphet> oh okay well <|> for Maybe is also kind of like //
06:34:31 <Sgeo|web> > Just 3 <|> Nothing
06:34:32 <lambdabot> Just 3
06:34:43 <elliott> (Such a perfect ending it was, too.)
06:35:03 <Sgeo|web> > Nothing <|> Nothing -- Just a wild guess, completely chosen from an RNG, but could it be .... NOTHING?
06:35:04 <lambdabot> Nothing
06:35:33 <Sgeo|web> I'm not sure when I'd use this though?
06:35:35 <CakeProphet> Sgeo|web is mad with the logicks
06:35:45 <Sgeo|web> >:?
06:35:55 <fizzie> I think fromMaybe is the flip maybe id of Haskell.
06:35:55 <CakeProphet> when you have a Maybe value that you'd like to substitute in the event that another Maybe value is Nothing.
06:36:24 <CakeProphet> actually <|> looks quite useful
06:36:35 <elliott> Sgeo|web: parseOneFormat x <|> parseAnotherFormat x
06:36:44 <CakeProphet> almost as useful as return .: fromMaybe
06:36:57 <Sgeo|web> !
06:37:00 <CakeProphet> which is almost as useful as fromMaybe
06:37:04 <Sgeo|web> That's exactly what I think Parsec uses
06:37:29 <elliott> Sgeo|web: Yes (but no "x", and the Alternative is different.)
06:37:38 <Sgeo|web> > Left "hi" <|> Right 0
06:37:39 <lambdabot> Right 0
06:38:05 <Sgeo|web> > Just Right <|> Just Left
06:38:06 <lambdabot> Overlapping instances for GHC.Show.Show
06:38:07 <lambdabot> (b -> ...
06:38:12 <elliott> Left = Wrong, by standard interpretation.
06:38:16 <Sgeo|web> ...Overlapping?
06:38:20 <Sgeo|web> Not non-existent?
06:38:26 <Sgeo|web> elliott: I am aware of this
06:38:29 <CakeProphet> elliott: this is because left is traditionally associated with EVIL
06:38:36 <elliott> L.hs is monstrous.
06:38:50 <Sgeo|web> > Right
06:38:51 <lambdabot> Overlapping instances for GHC.Show.Show
06:38:52 <lambdabot> (b -> ...
06:38:57 <elliott> L.hs is monstrous.
06:39:06 <Sgeo|web> > id
06:39:07 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
06:39:07 <lambdabot> arising from a use of `...
06:39:11 <elliott> L.hs is monstrous.
06:39:27 <Sgeo|web> > putStrLn "L.hs is monstrous"
06:39:27 <lambdabot> <IO ()>
06:39:32 <Sgeo|web> derp
06:39:53 <elliott> > text "a"
06:39:54 <lambdabot> a
06:39:55 <elliott> brb
06:40:04 <CakeProphet> wow I really cannot decide what is the best way to fix my car situation.
06:40:49 <CakeProphet> it's quite tempting to go get a new used car but I think I might get more value of putting a /brand new engine/ in my car and getting probably another 150k at least for only $2000
06:41:06 <CakeProphet> but everyone I know IRL is saying that's a bad idea. I DON'T UNDERSTAND CAR LOGIC.
06:41:26 <CakeProphet> *value out of
06:41:53 <Sgeo|web> Any explanations?
06:42:00 <CakeProphet> huh?
06:42:25 <CakeProphet> Sgeo|web: about my car situation or about Haskell stuff above? :P
06:42:40 <Sgeo|web> car situation
06:42:46 <Sgeo|web> As in, why it would be a bad idea
06:42:53 * Sgeo|web knows approximately nothing about cars
06:43:06 <CakeProphet> oh well the explanations usually go like "I wouldn't put a new engine in that car". I suppose the reasoning is that I'm putting a lot of money into the car replacing parts...
06:43:20 <CakeProphet> but like, it's the same difference if I go put all my money into new used cars.
06:44:57 <CakeProphet> one benefit of a new car is potential gas mileage improvement. I found a 1995 Honda Accord for $2000 with 137k miles. That most likely has better mileage than my current Buick Skylark (which gets on average 21 MPG)
06:45:13 <CakeProphet> uh, what units do euro people buy gas in?
06:45:15 <CakeProphet> litres?
06:45:20 <fizzie> Litres, yes.
06:46:03 <fizzie> Though I think the commonest fuel efficiency number is the other way around; it's litres per hundred kilometres.
06:46:05 <fizzie> At least here.
06:46:12 <CakeProphet> `run frink 21 miles/gallon -> kilometers/liter
06:46:15 <CakeProphet> oh... weird.
06:46:17 <HackEgo> sh: cannot create kilometers/liter: Directory nonexistent
06:46:22 <CakeProphet> lol wat
06:46:24 <CakeProphet> oh
06:46:29 <CakeProphet> `frink 21 miles/gallon -> kilometers/liter
06:46:38 <HackEgo> 144000/16129 (approx. 8.928017856035712)
06:46:40 <CakeProphet> >_> oh yeah Java.
06:47:08 <CakeProphet> can frink even do that conversion...
06:47:26 <CakeProphet> `frink 21 miles/gallon -> litres/(100*kilometer)
06:47:26 <fizzie> That is the correct result.
06:47:34 <HackEgo> Warning: reciprocal conversion \ 16129/1440 (approx. 11.200694444444444)
06:47:43 <fizzie> Heh.
06:47:52 <fizzie> It is right, though the warning is sillyish.
06:48:18 <CakeProphet> so yeah not great gas mileage.
06:48:27 <fizzie> If you feed "21 mpg" into W|A, the Corresponding quantities: box has "fuel usage from FU = 1/FC" and gives them as L/100 km, L/km and gal/mi.
06:48:28 <CakeProphet> my parents say "that's great"
06:48:30 <CakeProphet> lolamerica
06:49:08 <Patashu> `frink 1 light year -> meters
06:49:16 <HackEgo> 9.4605284048728832955e+15
06:49:32 <CakeProphet> http://www.fueleconomy.gov/feg/noframes/11853.shtml so yeah according to this a 95 Accord gets significantly improved gas mileage.
06:49:40 <CakeProphet> MAY BE A GOOD IDEA?
06:49:47 <fizzie> I know so little about cars that it's silly, but I was under the impression that figure should be <10 nowadays.
06:49:47 <Patashu> `frink 1 light year/gallon -> litres/(100*kilometer)
06:49:58 <HackEgo> Warning: reciprocal conversion \ 4.0012688742102696655e-11
06:50:11 <Patashu> my mileage is so good
06:50:14 <CakeProphet> fizzie: well it's an older model car.
06:50:19 <CakeProphet> 95 Buick Skylark.
06:50:28 <pikhq_> `frink 1 light year/gallon -> square meter
06:50:37 <HackEgo> Warning: reciprocal conversion \ 4.0012688742102696655e-19
06:50:43 <pikhq_> :)
06:50:47 <fizzie> "In Europe, the two standard measuring cycles for "litre/100 km" value are "urban" traffic with speeds up to 50 km/h from a cold start, and then "extra urban" travel at various speeds up to 120 km/h which follows the urban test. A combined figure is also quoted showing the total fuel consumed in divided by the total distance traveled in both tests. A reasonably modern European supermini and many mid-size cars, including station wagons, may manage motorway trave
06:50:47 <fizzie> l at 5 L/100 km (47 mpg US/56 mpg imp) or 6.5 L/100 km in city traffic (36 mpg US/43 mpg imp), with carbon dioxide emissions of around 140 g/km."
06:51:15 <CakeProphet> supermini?
06:51:19 <Patashu> how does light year/gallon -> square meter preserve units?
06:51:22 <fizzie> I don't know what it means.
06:51:30 <fizzie> Except probably "small".
06:51:42 <Patashu> `frink 1 meter -> square meter
06:51:44 <pikhq_> Patashu: Actually, it doesn't, but only because I fucked it up.
06:51:52 <pikhq_> `frink 1 gallon/light year -> square meter
06:51:53 <HackEgo> Conformance error \ Left side is: 1 m (length) \ Right side is: 1 m^2 (area) \ Suggestion: multiply left side by length \ or multiply left side by area^(1/2) \ \ For help, type: units[length] \ or \ units[area] \ to list known units with these dimensions.
06:51:59 <Patashu> ok, so it does notice
06:52:02 <CakeProphet> I think you want lightyear not light year
06:52:03 <HackEgo> Conformance error \ Left side is: 0.00039846219030421139204 m^2 s^2 (unknown unit type) \ Right side is: 1 m^2 (area) \ Suggestion: multiply left side by frequency^2 \ or divide left side by time^2 \ \ For help, type: units[frequency] \ or \ units[time]
06:52:07 <pikhq_> `frink 1 gallon/lightyear -> square meter
06:52:18 <HackEgo> 22532213/56313871860600000000000000 (approx. 4.0011834128146076e-19)
06:52:22 <pikhq_> There we go.
06:52:38 <Patashu> oooh
06:52:43 <Patashu> it's because gallon is volume
06:52:46 <pikhq_> Yup.
06:52:49 <Patashu> m3/m1 = m2
06:52:56 <pikhq_> The square meter is a wonderful unit of fuel efficiency.
06:52:58 <Patashu> m1/m3 = ???
06:53:12 <pikhq_> =m^-2
06:53:18 <Patashu> except isn't gallon more like a unit of energy
06:53:23 <fizzie> m^-2, which is why it complained about reciprocal conversion.
06:53:24 <CakeProphet> no...
06:53:25 <CakeProphet> it's a volume
06:53:27 <CakeProphet> of a substance
06:53:29 <CakeProphet> that contains energy.
06:53:41 <CakeProphet> in the case of fuel efficiency.
06:53:42 <Patashu> when we talk about gallons, we normally talk about burning it to do something
06:53:51 <Patashu> thouhg I guess if we go down that alley we have to talk about the efficiency as well and blah blah
06:53:52 * CakeProphet goes to the store to buy a gallon of milk
06:53:58 <pikhq_> Yes, but a gallon of fuel does not have constant energy content.
06:54:07 * CakeProphet fills his 100 gallon aquarium with water.
06:54:18 <CakeProphet> Patashu: what are you talking about? :P
06:54:27 <Patashu> if a gallon isn't a constant amount of energy how can you talk about something like 'miles per gallon'?
06:54:33 <Patashu> shouldn't it then be 'miles per joule' or something
06:54:38 <CakeProphet> gallons are not a constant amount of energy, dude.
06:54:44 <pikhq_> It's a ballpark figure.
06:54:51 <pikhq_> We use it because it's a hell of a lot easier to measure.
06:54:53 <Patashu> what do you mean mileage varies depending on circumstances patashu???
06:54:55 <Patashu> gosh
06:56:01 <CakeProphet> so yeah if I switch to a 95 accord I'll get roughly 4 extra miles per gallon.
06:56:23 <fizzie> CakeProphet: It's best to go that extra mile.
06:56:28 <CakeProphet> and I found one for $2000, which is actually cheaper than replacing my engine if I consider labor fees.
06:56:31 <CakeProphet> so...
06:56:37 <CakeProphet> I guess I'll out this car. :P
06:56:40 <CakeProphet> *check out
06:56:43 <fizzie> CakeProphet: So, monowheel.
06:56:48 <CakeProphet> lolwat?
06:57:01 <fizzie> Didn't I say it? I was going to, but maybe I got distracted.
06:57:10 <fizzie> "Put your money in monowheel; it sounds a bit like money."
06:57:20 <CakeProphet> uh, what.
06:57:22 <CakeProphet> what is monowheel
06:57:23 <CakeProphet> help
06:57:26 <CakeProphet> fizzie has gone insane.
06:57:28 <fizzie> It's a wheel. You are in it.
06:57:47 <CakeProphet> .........what?
06:57:49 <fizzie> http://www.diseno-art.com/images/mcLean-V8-Monowheel.jpg
06:57:49 <CakeProphet> w h a t?
06:57:54 <fizzie> You know, that sort of thing.
06:58:05 <CakeProphet> what no
06:58:05 <CakeProphet> bad.
06:58:23 <fizzie> It's the only thing you can do the "hamster thing" in if you brake too hard.
06:58:23 <CakeProphet> why would you want to ride around in a circle thing.
06:58:41 <CakeProphet> is that even street legal.
06:59:15 <fizzie> Sounds unlikely.
06:59:57 <CakeProphet> it does appear to have tail lights. but no head lights
06:59:58 <fizzie> Anyway the other one was even better, let me find it. It's
07:00:09 <CakeProphet> or lamps. I believe is how euro people say it. WHY IS OUR CAR TERMINOLOGY ALL DIFFERENT.
07:00:14 <fizzie> Oh yes, the RIOT Wheel.
07:00:25 <fizzie> http://www.theriotwheel.com/
07:00:43 <CakeProphet> wow what.
07:00:47 <CakeProphet> that's like a death machine
07:00:51 <CakeProphet> death tractor.
07:01:19 <fizzie> "Can I BUY one?
07:01:19 <fizzie> Are you NUTS? Then of course you can buy one. These are prototypes, and so stupidly dangerous, but if you'd have bought a Wright Flyer in 1904, then contact us NOW --"
07:01:30 <CakeProphet> What is the RIOT Wheel?
07:01:30 <CakeProphet> It's an 1100lb motorized single-wheel vehicle, with
07:01:31 <CakeProphet> the driver in front. Why, what does it look like?
07:02:22 <fizzie> "So what's the HOLD-UP??
07:02:22 <fizzie> Yeah, I know. Money, of course: a couple o' medical bills --" -- medical bills, how surprising.
07:03:43 <CakeProphet> Will they "design cities around it"?
07:03:44 <CakeProphet> "Prediction is hard, particularly of the future." No.
07:03:58 <CakeProphet> good FAQ
07:03:58 <elliott> :D
07:04:43 <fizzie> It's a bit like a regular monowheel, except when you brake too hard, instead of you going around and around inside the wheel, the (1100lb) wheel rolls over you.
07:04:56 <elliott> :D
07:06:06 <CakeProphet> I think they actually designed it to account for that.
07:06:12 <CakeProphet> http://www.theriotwheel.com/Tech_BigPicture.html
07:06:15 <CakeProphet> see "maximum braking"
07:06:21 <fizzie> Yes, sadly.
07:06:38 <fizzie> But common sense says it's what should happen if you put the guy in front outside the wheel.
07:07:01 <elliott> `addquote <fizzie> It's a bit like a regular monowheel, except when you brake too hard, instead of you going around and around inside the wheel, the (1100lb) wheel rolls over you.
07:07:05 <HackEgo> 709) <fizzie> It's a bit like a regular monowheel, except when you brake too hard, instead of you going around and around inside the wheel, the (1100lb) wheel rolls over you.
07:07:28 <fizzie> Also if you put a solid-enough stone (or curb) on front of the sled, maybe momentum will flip it over.
07:07:32 <shachaf> `quote
07:07:35 <HackEgo> 610) <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
07:07:38 <CakeProphet> they're apparently going to try to beat the speed record for a single-wheeled vehicle.
07:08:00 <CakeProphet> elliott: what did you say to me once about providing context in a quote?
07:08:15 <shachaf> CakeProphet: "don't do it"?
07:08:24 <CakeProphet> ...no.
07:08:24 <fizzie> CakeProphet: Yeah, though the page looked exactly the same in 2008 or so, so...
07:08:36 <shachaf> @quote
07:08:36 <lambdabot> siracusa says: otherwise `maybe` not $ Just otherwise
07:08:56 <fizzie> "When you context, you make a con out of.. tex.. and T..."
07:12:55 <CakeProphet> ..
07:19:23 <CakeProphet> the riot wheel actually seems like a much better idea than the monowheel.
07:22:55 <CakeProphet> http://www.gizmag.com/embrio-one-wheel-concept/2350/
07:22:56 <CakeProphet> bahahaha
07:23:29 <Madoka-Kaname> @hoogle Char -> Int
07:23:29 <lambdabot> Data.Char digitToInt :: Char -> Int
07:23:29 <lambdabot> Data.Char ord :: Char -> Int
07:23:29 <lambdabot> Data.ByteString.Char8 count :: Char -> ByteString -> Int
07:23:33 <Madoka-Kaname> @hoogle Int -> Char
07:23:33 <lambdabot> Data.Char chr :: Int -> Char
07:23:33 <lambdabot> Data.Char intToDigit :: Int -> Char
07:23:33 <lambdabot> Data.ByteString.Char8 index :: ByteString -> Int -> Char
07:27:28 <CakeProphet> Subroutine references are the simplest case. When the inclusion system walks through @INC and encounters a subroutine, this subroutine gets called with two parameters, the first a reference to itself, and the second the name of the file to be included (e.g., "Foo/Bar.pm"). The subroutine should return either nothing or else a list of up to three values in the following order
07:27:35 <CakeProphet> I wonder why it gets a reference to itself...
07:32:25 <SgeoN1> Dear Chromium: Please stop hero derping
07:33:46 <Sgeo|web> Dear autocorrect: Please die.
07:34:43 <CakeProphet> oh god there's two Sgeo
07:35:25 <Sgeo|web> Dear Sgeo: Please multiply.
07:40:09 <Sgeo|web> > [S] Sgeo: Reproduce
07:40:10 <lambdabot> Not in scope: data constructor `S'Not in scope: data constructor `Sgeo'Not ...
07:49:11 <CakeProphet> another benefit of using multiple modules for the data: adding new modules does not require generating the entire thing again.
07:52:57 <elliott> tmpfs 740M 968K 739M 1% /run
07:52:57 <elliott> none 5.0M 0 5.0M 0% /run/lock
07:52:57 <elliott> none 1.9G 728K 1.9G 1% /run/shm
07:52:58 <elliott> Wait. What?
07:53:04 <elliott> elliott@katia:~/Code/ngrams$ ls /run
07:53:04 <elliott> acpid.pid ConsoleKit dbus lightdm.pid network-interface-security rsyslogd.pid udev upstart-udev-bridge.pid
07:53:04 <elliott> acpid.socket console-kit-daemon.pid dhclient-wlan0.pid lock NetworkManager.pid samba udev-configure-printer utmp
07:53:04 <elliott> atd.pid crond.pid initramfs motd nm-dhclient-wlan0.conf sdp udisks wpa_supplicant
07:53:06 <elliott> avahi-daemon crond.reboot kerneloops.pid mount pm-utils sendsigs.omit.d unattended-upgrades.lock
07:53:09 <elliott> console cups lightdm network pppconfig shm upstart-socket-bridge.pid
07:53:12 <elliott> fizzie: Explain.
07:53:15 <Sgeo|web> Huh. Yesod has a thing that lets it take a Yesod (and perhaps a broader category) site and package it as a desktop application
07:53:30 <Sgeo|web> <elliott> Don't do that
07:53:57 <Sgeo|web> <elliott> Don't put quotes in my mouth
07:55:25 <CakeProphet> `run perl -e '$x = $y = 2; print $y,$x'
07:55:27 <HackEgo> 22
07:56:01 <CakeProphet> `run perl -e '%x = %y = (); $y{x}=2; print %x,%y;'
07:56:03 <HackEgo> x2
07:57:33 <Sgeo|web> It bothers me a bit that "Just trust Google" is a Yesod default
07:57:48 <elliott> How does it trust Google?
07:57:59 <Sgeo|web> -- And tell us where to find the jQuery libraries. We'll just use the defaults, -- which point to the Google CDN. instance YesodJquery Synopsis
07:58:13 <elliott> Sgeo|web: That's an everything default; it's the official way to use jQuery.
07:58:49 * Sgeo|web nods and backs away slowly at the Google takeover of the web
07:59:21 <Sgeo|web> Seriously, how is that... I mean... why....
07:59:31 <elliott> Sgeo|web: Because Google have tons of servers and browsers can cache it.
07:59:36 <elliott> CDNs are not an uncommon tactic.
07:59:55 <elliott> This is why Yahoo tells you to use their Yahoo API stuff that was quite popular a while back directly from their servers.
08:00:06 <elliott> It avoids downloading the same files seven billion times.
08:00:12 <elliott> And if you think /that's/ how Google's taking over the web, then you're blind.
08:00:36 <elliott> Sgeo|web: Anyway, Google is probably _more_ secure than jquery.org or whatever; how many developers would check the minified version before using it?
08:01:08 <Sgeo|web> I may have trust issues
08:01:19 <Sgeo|web> Which is weird because I pretty much trust Google with my life at this point
08:01:39 <elliott> I explicitly detailed reasons why Google's trustability /in this case/ is strictly >= jquery.com.
08:02:07 <Sgeo|web> I meant in terms of trusting that Google is not actively malicious >.>
08:02:39 <Sgeo|web> Or maybe you meant even in those terms too
08:02:56 <elliott> Someone exploiting jquery.com is about ten thousand times more likely.
08:03:06 <elliott> But I'm not sure how much you could do with a hijacked jQuery.
08:03:25 <elliott> There aren't special jQuery calls for handling sensitive data; it would be an unwieldy, and _very_ obvious, hijacking.
08:03:30 <elliott> (Anyone using Firebug would spot it instantly.)
08:06:57 <Sgeo|web> "The widget generated contains only the contents of the form, not the form tag itself. So..."
08:07:11 <Sgeo|web> Hmm, weird, I wonder why. Multiple forms in a single form tag?
08:07:47 <elliott> Things like GET/POST/action/encoding are separate from the actual fields.
08:07:54 <elliott> But seriously stop talking about web stuff, it is really boring.
08:09:09 <Patashu> elliott needs to get with the times
08:09:10 <Patashu> web 3.0
08:10:22 <Sgeo|web> Oh god Web 3.0 is an actual existent buzzword
08:11:55 <Patashu> It's increasing at an exponential rate
08:12:03 <Patashu> Soon we'll be talking about web infinity.0
08:12:04 <shachaf> Web 3.11 is next.
08:12:17 <elliott> Patashu: Like Firefox version numbers!
08:12:18 <Patashu> Or web NaN.0 for those who coded it poorly
08:12:20 <Patashu> Yes
08:12:28 <Patashu> Man, now I want a program that's version NaN.0
08:12:48 <shachaf> Version number components aren't floating point numbers.
08:13:11 <Patashu> But some programming languages treat all numbers as floats
08:13:14 <Patashu> (unless you tell them not to)
08:13:18 <fizzie> I don't know what that /run is all about; it looks like the contents of a regular /var/run.
08:13:24 <elliott> Version numbers also aren't numbers.
08:13:40 <shachaf> elliott: I never claimed they were.
08:13:47 <elliott> That was at Patashu.
08:13:48 <shachaf> <elliott> shachaf: I never claimed you claimed they were.
08:13:49 <elliott> drwxr-xr-x 21 root root 800 2011-10-13 17:52 run
08:13:50 <elliott> The "run" is red, why is it red.
08:13:50 <shachaf> Oh.
08:13:58 <CakeProphet> elliott: what if version numbers were in maths.
08:13:58 <elliott> Im cry.
08:14:09 <CakeProphet> "the set of all version numbers"
08:14:25 <shachaf> elliott sad :-(
08:14:40 <shachaf> When are you changing your name to Trevor?
08:15:46 <elliott> * trevor :Nickname is already in use.
08:16:08 <shachaf> * elliott :Nickname is already in use.
08:16:31 <elliott> * shachaſ :Erroneous Nickname
08:16:35 <Sgeo|web> All version numbers to be used from henceforth must either have been used previously, or submitted to committee for consideration. Average time for definitive rulings expected to be one year.
08:16:43 <fizzie> ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file <- those are red.
08:16:52 <fizzie> At least in the default dircolors db here.
08:17:13 <elliott> http://books.google.com/ngrams/graph?content=afs&year_start=1750&year_end=2000&corpus=0&smoothing=3
08:17:19 <elliott> I don't like Google's OCR system.
08:17:26 <elliott> http://books.google.com/ngrams/graph?content=fuck&year_start=1750&year_end=2000&corpus=0&smoothing=3
08:17:29 <elliott> Come on, guys.
08:17:33 <elliott> It's called a long s.
08:17:38 <shachaf> I just ran `rm *` in my home directory
08:17:40 <shachaf> All the non-hidden non-directories are gone.
08:17:41 <shachaf> What do I do.
08:17:45 <elliott> shachaf: Smile.
08:17:55 <fizzie> You're on candid camera.
08:18:51 <elliott> http://multitude.tv/content/view/471/60/
08:19:02 <fizzie> They know about long s, they're just apathetic. ("Why do I see so many misspellings like thif from pre-1800 Englifh books? Use of the medial s.")
08:19:03 <elliott> fizzie: I swear to god, the Google data actually has "f" for the long s in all the historical data.
08:19:07 <elliott> It's...
08:19:10 <elliott> All the old data is completely unusable.
08:19:14 <elliott> This is so messy.
08:20:13 <fizzie> There isn't very much of the old data, though.
08:20:23 <Patashu> typoing on occasion will add realism
08:20:26 <Patashu> trust me guys
08:20:31 <elliott> fizzie: YES BUT COME ON
08:20:40 -!- SgeoN1 has quit (Read error: Connection reset by peer).
08:21:01 -!- SgeoN1 has joined.
08:22:06 <elliott> fizzie: I SUPPOSE it will all work out but STILL?
08:22:08 <fizzie> http://books.google.com/ngrams/graph?content=efcape%2Cescape&year_start=1750&year_end=2000&corpus=0&smoothing=3 <-- nice crossing there.
08:23:14 <elliott> fizzie: Quite a swift transition, innit.
08:23:34 <fizzie> Also -> http://narf-archive.com/pix/0bedf86c5eff1803888d6e7b8529b3603dedc5a1.jpg <- "By the year 2000" WHERE IS THE FUTURE
08:24:06 <elliott> Can that day happen?
08:24:07 <elliott> Please?
08:24:26 <elliott> (When's that from? It almost seems parody.)
08:24:55 <fizzie> I don't know; it was a link. It could be a parody, I suppose; it sounds surprisingly modern for what it pretends to be.
08:25:17 <elliott> The "hovercar" thing is a bit cliche.
08:26:11 <fizzie> Though it's not very different in tune from the not-a-parody "future" articles I've read in the piles of 1970s magazines we had at the summer cottage place.
08:26:15 <CakeProphet> okay so how would I do something like this, but in bash...
08:26:19 <elliott> Don't.
08:26:41 <CakeProphet> $var? "=$var" : ''
08:27:35 <fizzie> It's in that proggit thing, but no background from there either.
08:27:45 <elliott> elliott@katia:~/Code/ngrams$ grep " \"\t" googlebooks-eng-all-5gram-20090715-478.csv
08:27:45 <elliott> elliott@katia:~/Code/ngrams$
08:27:46 <elliott> Huh??
08:27:54 <elliott> I /know/ there are properly fully quoted entries.
08:27:55 <elliott> Oh, wait.
08:27:57 <elliott> As a word. Dur.
08:27:59 <elliott> Im idiot.
08:28:10 <CakeProphet> fizzie: help
08:28:22 <CakeProphet> I'm a bash noob.
08:29:22 <elliott> elliott@katia:~/Code/ngrams$ grep '" ' googlebooks-eng-all-5gram-20090715-478.csv | egrep -v '^"'
08:29:22 <elliott> elliott@katia:~/Code/ngrams$
08:29:27 <fizzie> CakeProphet: ${var:+=$var} maybe.
08:29:35 <elliott> fizzie: Strange; the imbalanced-quotes thing seems only to be for the beginnings of the n-grams.
08:29:49 <CakeProphet> fizzie: er wait isn't it -?
08:29:59 <CakeProphet> as you've explained something similar before.
08:30:03 <fizzie> CakeProphet: No, that's "use the value if $var is unset".
08:30:08 <CakeProphet> ah okay.
08:30:16 <fizzie> CakeProphet: With + it's "use the value if var is set; empty otherwise".
08:30:33 <fizzie> Well, s/set/non-empty/.
08:30:51 <elliott> fizzie: Be bemused with me.
08:32:08 <fizzie> elliott: It's not surprising space-quote-tab doesn't match, since why would there be a space before the terminating "? But quote-tab should.
08:32:17 <CakeProphet> I wonder if Eng1M is a valid Perl package name.
08:32:19 <elliott> fizzie: Quote-tab does.
08:32:22 <elliott> But
08:32:23 <elliott> <elliott> elliott@katia:~/Code/ngrams$ grep '" ' googlebooks-eng-all-5gram-20090715-478.csv | egrep -v '^"'
08:32:33 <elliott> fizzie: So /all imbalanced quotes are at the start of the line/.
08:32:37 <elliott> That makes no sense, to me.
08:33:08 <fizzie> elliott: Why not? All imbalanced quotes are produced by somehow terminating the n-gram too early, so they all have the starting quote but lack the ending one.
08:33:32 <elliott> fizzie: Weeell, okay. I'd expect it to get split somehow so that the ending-only one would appear somewhere else, but fair enough.
08:33:39 <elliott> fizzie: There are no escapes apart from "", right?
08:34:11 <fizzie> elliott: I haven't seen any, at least.
08:34:17 <elliott> Right.
08:34:38 <fizzie> It could be that embedded tabs would also be escaped somehow by the same thing that escaped the quotes, but one hopes there weren't any anywhere.
08:35:39 <CakeProphet> hey guys check out my somewhat advanced bash usage: http://pastebin.com/PKeH3Gmm
08:36:21 <elliott> fizzie: Something like "a b c d"" is theoretically possible, isn't it...?
08:36:25 <fizzie> Don't you mean ${2:+=$2} instead of ${2+=$2}?
08:36:30 <elliott> So I can't just strip off the last quote and then change "" into " >_<
08:36:34 <CakeProphet> fizzie: er, yes.
08:36:36 <elliott> Because it could be "a b c d""""
08:36:44 <CakeProphet> bash is weird
08:36:46 <elliott> Hmm, wait
08:36:50 <elliott> Doesn't that actually turn out right?
08:37:00 <elliott> CakeProphet: FSVO advanced.
08:37:28 <elliott> CakeProphet: Copied to http://sprunge.us/eiPC.
08:37:43 <CakeProphet> lolwhy
08:37:51 <elliott> Because I don't like expiring pastes.
08:37:57 <CakeProphet> ...why
08:37:59 <fizzie> elliott: I... uh, suppose. Though I believe (unsubstantiated) that a truncated [a][b][c][d"][something] would appear as ["a b c d"" ] with the trailing space in there. But I'm certainly not sure.
08:38:17 <elliott> fizzie: I mean, to strip off the /closing/ quote.
08:38:20 <elliott> fizzie: For fully-formed things.
08:38:35 <Sgeo|web> Is there a Random monad? Is randoms just commonly used?
08:38:47 <CakeProphet> elliott: hey you can't do that. I have intellectual property rights over that piece of code that I just freely gave to a pastebin site.
08:39:15 <elliott> Sgeo|web: The random functions are a trivial state monad over the RndGen; it's easy to construct your own. But usually it's simpler to thread the generator.
08:39:20 <fizzie> elliott: Yes, but I mean even when a truncated thing ends in an escaped "", I think there'd be a trailing space there, so it wouldn't be the very last character like it is for non-truncated quoted things.
08:39:31 <elliott> randoms is based because you can't return the final generator, so you can't really use it with the IO generator.
08:39:52 <Sgeo|web> based?
08:39:56 <elliott> bad.
08:40:06 <elliott> I keep mixing words with things I'm reading.
08:40:19 <elliott> fizzie: Well, I don't want to risk it. But still, if I do "chop off the last quote and then turn "" into ", leaving lone quotes as they are", that should preserve all quote cases with valid escaping... riiiiiight?????
08:40:38 <CakeProphet> is there any sane way to join two paths in bash?
08:40:53 <shachaf> Put a / in between them?
08:40:56 <elliott> /
08:41:04 <CakeProphet> like say $a is foo/bar/ then $a/blah is foo/bar//blah
08:41:08 <CakeProphet> is that fine?
08:41:13 <elliott> Yes.
08:41:15 <shachaf> Unless you care.
08:41:23 <CakeProphet> I kind of do, but not enough to worry about it.
08:41:25 <Sgeo|web> "Excuse me! If the user gives us some input here that read can't read (like "haha"), our program will crash with an ugly error message. If you don't want your program to crash on erronous input, use reads, which returns an empty list when it fails to read a string. When it succeeds, it returns a singleton list with a tuple that has our desired value as one component and a string with what it didn't consume as the other."
08:41:26 <elliott> I like how ByteString doesn't even have a simple replace function.
08:41:29 <fizzie> elliott: I suppose. There shouldn't be any lone quotes (or sequence-of-odd-quotes) left, except for the case where you'd accidentally turn a final "" into a single quote.
08:41:36 <Sgeo|web> Um, why a list, instead of a Maybe?
08:41:39 <elliott> Sgeo|web: ambiguous parses
08:41:51 <Sgeo|web> Ah
08:42:03 <elliott> fizzie: But that shouldn't matter, because I leave lone quotes alone after stripping off the end.
08:42:12 <fizzie> CakeProphet: ${a#/}/blah if you care.
08:42:17 <shachaf> Sgeo|web: Just define safeRead :: Read a => String -> Maybe a, and then use that.
08:42:18 <fizzie> elliott: Yes, it sounds like it should work all right.
08:42:21 <elliott> fizzie: Right.
08:42:44 <fizzie> CakeProphet: Uh, sorry, ${a%/}/blah, I mean.
08:42:46 <shachaf> safeRead is optimally defined by using unsafePerformIO to catch the read exception, as elliott will tell you.
08:42:59 <fizzie> (I can never remember how those go.)
08:43:15 <CakeProphet> oh hey look I decided to use greedy patterns because elliott said it was the most common case
08:43:27 <CakeProphet> and it's not what I wanted.
08:44:40 <CakeProphet> (no fault of elliott's, I just shouldn't blindly do everything he recommends without actually thinking about what I'm doing)
08:44:57 <shachaf> CakeProphet: WRONG
08:45:03 <CakeProphet> 4 < CakeProphet> (no fault of elliott's, I just shouldn't blindly do
08:45:03 <shachaf> Obey elliott without question.
08:45:05 <CakeProphet> er
08:45:07 <CakeProphet> wrong paste
08:45:13 <CakeProphet> BAH EMACS I HATE YOUR CLIPBOARD STUFF
08:45:18 <fizzie> CakeProphet: $ (a="x"; b="x/"; echo ${a%/}/y ${b%/}/y)
08:45:18 <fizzie> x/y x/y
08:45:20 <elliott> > breakSubstring "a" "b"
08:45:22 <lambdabot> Not in scope: `breakSubstring'
08:45:23 <elliott> > Data.ByteString.breakSubstring "a" "b"
08:45:24 <lambdabot> Not in scope: `Data.ByteString.breakSubstring'
08:45:27 <elliott> Bahh.
08:45:46 <CakeProphet> /^--(.+)(?:=(.+))?$/
08:45:54 <CakeProphet> /^--(.+)(?:=(.+))?$/
08:45:56 <CakeProphet> should be
08:45:59 <CakeProphet> /^--(.+?)(?:=(.+))?$/
08:47:04 <fizzie> /^--([^=]+)(?:=(.+))?$/ could *possibly* have less backtracking.
08:47:12 * CakeProphet misses the simple days where he just followed his use-non-greedy-by-default rule.
08:47:19 <shachaf> > (BS.breakSubstring `on` BSC.pack) "a" "b"
08:47:20 <lambdabot> ("b","")
08:47:23 <CakeProphet> fizzie: ah yes it could be optimized but it's not really a critical section of code.
08:47:27 <CakeProphet> it's my option parsing.
08:47:54 <CakeProphet> for this data generation script.
08:48:17 <elliott> http://sprunge.us/ZQic
08:48:24 <elliott> Perhaps I should make some top-level functions.
08:48:39 <elliott> CakeProphet: lern to getopt
08:48:43 <elliott> even bash has it
08:48:52 <CakeProphet> elliott: wow I feel like an actual prophet right now...
08:48:57 <CakeProphet> can't use getopt in this case, I'm pretty sure.
08:49:05 <elliott> "i'm sure."
08:49:40 -!- nooga has joined.
08:49:46 <CakeProphet> because the options designate that the preceding arguments are files that are grouped into the same dataset, up to the next option.
08:49:47 <shachaf> elliott: You're using ByteStrings?
08:49:48 <shachaf> Racist.
08:49:55 <CakeProphet> maybe that can be done with getopt magic but my code works fine.
08:50:05 <elliott> shachaf: Nothing I do breaks the Unicode.
08:50:09 <elliott> shachaf: Text would merely be added overhead.
08:51:15 <shachaf> elliott: Then what's the meaning of Data.ByteString.Char8? Eh?
08:51:25 <shachaf> What if someone uses a Unicode newline character instead of \n?
08:51:42 <elliott> shachaf: Someone, in this case, is Google. :p
08:51:42 <shachaf> What if they write an integer using a Unicode character?
08:51:56 <CakeProphet> so for example to generate all of the english modules you'd write ./construct_grams.pl --eng-all=EngAll googledata/googlebooks-eng-all*.csv --eng-1M=Eng1M googledata/googlebooks-eng-1M-*.csv --eng-fiction=EngFiction ...
08:52:00 <Sgeo|web> For my purposes, given my inexperience, should I be using Text?
08:52:05 <shachaf> elliott: ...Why B8.last instead of B.last?
08:52:09 <elliott> Sgeo|web: What are your purposes?
08:52:19 <elliott> shachaf: So I can pattern-match on a character literal.
08:52:42 <elliott> degrade: Data.ByteString.init: empty ByteString
08:52:42 <elliott> What.
08:52:49 -!- ais523 has joined.
08:52:52 <Sgeo|web> elliott: just in general
08:52:57 <Sgeo|web> Until I get a better grip
08:52:59 <elliott> Sgeo|web: That is not a purpose.
08:53:07 <CakeProphet> the option specifies what the option will be named in the actual word generator script, and the (optional) thing on the other side of the = specifies the perl module to save it to.
08:53:07 <Sgeo|web> Playing around is my purpose
08:53:14 <CakeProphet> so it's kind of a non-standard option usage.
08:53:16 <elliott> Then just use Strings, since you never write actual programs.
08:53:30 <elliott> hi ais523
08:53:34 <ais523> hi elliott
08:53:47 <CakeProphet> Sgeo|web: Text isn't particularly difficult
08:53:49 <CakeProphet> so, sure.
08:53:49 <ais523> bleh, too busy at work to do esoprogramming, or even roguelike development
08:53:51 <ais523> it's annoying
08:54:06 <shachaf> ais523: You develop a roguelike?
08:54:09 <ais523> (I did get a chance to practice my golfing skills when I needed to delete duplicated lines from a file in an emergency)
08:54:10 <elliott> acehack
08:54:10 <shachaf> Oh, *that* ais523.
08:54:13 <ais523> shachaf: AceHack, a NetHack fork
08:54:17 <CakeProphet> Sgeo|web: I think you have Haskellphobia
08:54:17 <elliott> shachaf: There are so many of them.
08:54:18 * shachaf feels like we've been through this before.
08:54:20 <ais523> wait, are there other ais523s?
08:54:24 <elliott> ais523: SO MANY.
08:54:39 <fizzie> CakeProphet: Personally I'd just make construct_grams.pl always construct a single dataset, and call it as ./construct_grams.pl --option="eng-all" --module="EngAll" googledata/googlebooks-eng-all*.csv
08:54:55 <CakeProphet> hmmmm, well...
08:55:03 <CakeProphet> yeah I could do that.
08:55:17 <elliott> fizzie: That lets him run them in parallel, too.
08:55:42 <CakeProphet> bah
08:55:48 <CakeProphet> I don't want to recode this thing /again/
08:55:49 <fizzie> "bah-rallel".
08:56:10 <CakeProphet> I just finished making it awesome.
08:56:40 <ais523> elliott: I have found places where someone else had registered ais523, but they're mostly really massive places like AOL
08:57:55 <ais523> so far, callforjudgement has been unique, but I haven't tried it in too many places
08:58:17 <elliott> fizzie: I found the most pathologicalest ngram:
08:58:18 <elliott> ----------
08:58:18 <elliott> "\""
08:58:18 <elliott> ----------
08:58:26 <ais523> (the YouTube account, I don't have access to, but I did create it; YouTube simply decided not to ask me for a password, then created the account, and now I can't log in as it doesn't have a password)
08:58:47 <elliott> fizzie: What, er, do you think that is? The single word "?
08:58:52 <elliott> fizzie: Literal emptiness?
08:59:05 <elliott> ais523: yes it does, it's tied to your google account
08:59:06 <fizzie> elliott: Ugh. I suppose that's [\"][x][y][z][w] with the other four words lost somewhere.
08:59:11 <fizzie> elliott: Was there a space after?
08:59:19 <ais523> elliott: but there was no google account mentioned
08:59:23 <elliott> fizzie: It's, um, hard to check.
08:59:24 <ais523> I don't think I specified an email address
08:59:26 <elliott> ais523: You were logged into one at the time.
08:59:33 <elliott> ais523: Google Account logins are visible from any google site.
08:59:44 <ais523> elliott: you know how paranoid I am with Google cookies, right?
08:59:52 <fizzie> There's a "fizzlefozzle" on ##c, I'm feeling identity-threatened. (I used to be "Fizzle" earlier.)
08:59:55 <ais523> I was using a separate browser with history deleted
09:00:03 <elliott> fizzie: OK, let's try this again.
09:00:10 <CakeProphet> also, I can still run multiple scripts in parallel, I just don't know if I can do that sanely
09:00:18 -!- copumpkin has quit (Ping timeout: 258 seconds).
09:00:21 <CakeProphet> because I also have to update a record of options -> modules
09:00:38 <CakeProphet> and there could be race conditions of some kind.
09:00:44 -!- copumpkin has joined.
09:00:54 <fizzie> There is this thing called advisory file locking.
09:01:02 <CakeProphet> oh?
09:01:06 <elliott> CakeProphet: Dude, you're overcomplicating things.
09:01:13 <elliott> There is no reason generating two models should have any kind of interaction.
09:01:55 <CakeProphet> they have to update their command-line option -> perl module association into some kind of data structure that the script has access to.
09:02:07 <CakeProphet> I suppose this could just be a text file.
09:02:20 <elliott> ----------
09:02:21 <elliott> "\""
09:02:21 <elliott> ----------
09:02:21 <fizzie> They, or you. I wouldn't bother automatating that sort of thing.
09:02:27 <elliott> fizzie: That's literally the entire thing, there's no quotes around it oranything.
09:02:31 <elliott> or anything.
09:02:37 <elliott> CakeProphet: Dude, just... write one. It'll be like five lines.
09:02:48 <fizzie> Well, there is a starting quote.
09:02:48 <CakeProphet> roughly 24 lines actually.
09:03:04 <elliott> fizzie: Yes, but is that the beginning of some escaping, or an actual double-quote token?
09:04:12 <fizzie> Based on what I've seen, the initial quote is a beginning of a ["a b "" c d"] style quoted-because-of-embedded-double-quote ngram; then the [\""] part is just properly escaped [\"] token; and then it has gotten splut, but it would have been followed with [uh oh ruh roh"] or something.
09:04:41 <fizzie> Of course that's still just a guess.
09:05:10 <elliott> fizzie: Oh.
09:05:12 <elliott> fizzie: You are misinterpreting me.
09:05:17 <elliott> fizzie: That was the print-out of the /Haskell string/.
09:05:24 <elliott> In the file, the n-gram portion of that line looks like this:
09:05:24 <elliott> "
09:05:28 <fizzie> Oh.
09:05:37 <fizzie> Uh.
09:05:49 <CakeProphet> hmmmmmmmm
09:05:52 <elliott> You're going to tell me to just drop it, but I want to know what you think it is first.
09:05:55 <elliott> Other than "a mess".
09:05:55 <CakeProphet> so now I can rewrite my build script to be parallel.
09:05:59 <elliott> CakeProphet: No.
09:06:01 <elliott> CakeProphet: Just use GNU parallel.
09:06:07 <elliott> It's like xargs, but parallel.
09:06:14 <shachaf> xargs is like xargs, but parallel
09:06:17 <fizzie> Or the parallelllling option of xargs.
09:06:21 <elliott> Well, yes, but parallel is simpler.
09:06:26 <shachaf> xargs is simpler.
09:06:34 <elliott> shachaf: FSVO simpler.
09:06:43 <shachaf> FTCVO simpler
09:06:46 <CakeProphet> elliott: what is parallel called in shell?
09:06:55 <elliott> CakeProphet: What? It's called... parallel.
09:06:56 <elliott> http://en.wikipedia.org/wiki/GNU_parallel
09:06:57 <fizzie> elliott: My guess is that it's still a ["a b c d e"] except it has gotten truncated to 0 words this time. But really, who can tell.
09:07:03 <shachaf> xargs also supports -0
09:07:06 <CakeProphet> elliott: ah I need moreutils
09:07:07 <shachaf> And all the other goodies.
09:07:14 <elliott> No.
09:07:16 <elliott> CakeProphet: moreutils is another thing.
09:07:20 <shachaf> CakeProphet: No, you need xargs
09:07:24 <elliott> parallel is just a shell script; pop it into ~/bin
09:07:27 <elliott> shachaf: parallel also does -0.
09:07:30 <CakeProphet> The program 'parallel' is currently not installed. You can install it by typing:
09:07:31 <shachaf> shachaf@argon:~$ dpkg -S `which parallel`
09:07:31 <shachaf> moreutils: /usr/bin/parallel
09:07:33 <CakeProphet> sudo apt-get install moreutils
09:07:35 <elliott> CakeProphet: That is another parallel program.
09:07:38 <elliott> shachaf: That is another parallel program.
09:07:40 <elliott> It is unrelated.
09:07:41 <shachaf> Oh.
09:07:44 <shachaf> That one is better.
09:07:45 <elliott> shachaf: Does xargs have multi-machine support?
09:07:54 <CakeProphet> um.... so what is parallel called in repos/shell
09:07:56 <shachaf> It has multi-datacenter support.
09:08:05 <shachaf> xargs will do anything.
09:08:12 <elliott> CakeProphet: It's called wget and move into ~/bin
09:08:15 <Patashu> does xargs have botnet support
09:08:16 <Patashu> muahahaha
09:08:18 <elliott> ftp://ftp.gnu.org/gnu/parallel/parallel-20110822.tar.bz2
09:08:54 <fizzie> http://www.gnu.org/software/parallel/ http://www.gnu.org/software/pexec/ GNU the Duplicator.
09:08:56 * CakeProphet is having command line overload
09:09:03 <elliott> FSVO upload.
09:09:08 <CakeProphet> is there an option to auto untar stuff.
09:09:12 <elliott> tar xf
09:09:32 <shachaf> xjf
09:09:44 <CakeProphet> don't I need something else for bz2?
09:09:47 <shachaf> Did you know the 'f' stands for 'file'?
09:09:49 <shachaf> CakeProphet: xjf
09:10:01 <fizzie> I always put the compression character in front of the 'x', and everyone thinks I'm all weird for that. :/ :/ :\
09:10:11 <fizzie> (As in, tar zxvf, tar jxvf, and so on.)
09:10:16 <shachaf> fizzie: You're all weird.
09:10:21 <shachaf> xzvf is the One True Order.
09:10:32 <elliott> shachaf: CakeProphet: xf figures it out automatically.
09:10:45 <shachaf> elliott: Only if you're using inferior GNU tools.
09:11:01 <shachaf> Real Programmers type it in by hand.
09:11:07 -!- pikhq has joined.
09:11:08 -!- pikhq_ has quit (Ping timeout: 240 seconds).
09:11:47 <fizzie> Of course Real Tar doesn't have any "z" or "j", so...
09:11:52 <fizzie> "tar: z: unknown function modifier"
09:12:15 <shachaf> Real Tar is GNU tar.
09:12:31 <shachaf> You just ignore whichever features don't make you feel superior enough.
09:13:00 <fizzie> % tar
09:13:01 <fizzie> Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@[0-7]][bfk][X...] [blocksize] [tarfile] [size] [exclude-file...] {file | -I include-file | -C directory file}...
09:13:01 <fizzie> % gtar
09:13:01 <fizzie> gtar: You must specify one of the `-Acdtrux' or `--test-label' options
09:13:01 <fizzie> Try `gtar --help' or `gtar --usage' for more information.
09:13:07 <elliott> `addquote <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough.
09:13:10 <HackEgo> 710) <shachaf> Real Tar is GNU tar. <shachaf> You just ignore whichever features don't make you feel superior enough.
09:13:20 <fizzie> The first one looks inherently more superior.
09:13:30 <fizzie> It's not trying too much to be friendly and accessible.
09:13:43 <CakeProphet> how does parallel differ from &?
09:13:51 <CakeProphet> aside from having fancy options
09:14:09 <shachaf> elliott: :-(
09:14:25 <elliott> CakeProphet: By being almost completely unrelated to &?
09:14:37 <shachaf> elliott: Not good enough.
09:14:47 <shachaf> I'm still confused.
09:14:52 <elliott> elliott@katia:~/Code/ngrams$ time cabal-dev/bin/degrade googlebooks-eng-all-5gram-20090715-478.csv >bar
09:14:52 <elliott> real0m44.693s
09:14:58 <elliott> That... that's a problem.
09:15:08 <elliott> I have a: problem.
09:15:10 <elliott> Time to: profile.
09:15:14 <shachaf> @whatis degrade
09:15:14 <lambdabot> I know nothing about degrade.
09:15:16 <fizzie> elliott: Your impatience is a problem. A day or two is not a problem.
09:15:24 <elliott> fizzie: That's for _one step_.
09:15:28 <elliott> fizzie: It was _eight seconds_ before.
09:15:41 <elliott> Something I messed with now has fiflicated the time it'll take.
09:15:47 <fizzie> Well, in that case.
09:15:49 <ais523> heh, I like quote 710
09:16:11 <elliott> fizzie: Nine hours is really not very acceptable for the "just clean it up into something vaguely reasonable so that intern can transform it" stag.e
09:16:12 <elliott> stage.
09:16:14 <CakeProphet> does bash have any kind of sensible map?
09:16:21 <CakeProphet> map as in Haskell or perl map
09:16:25 <fizzie> elliott: I don't know, you only have to do it once.
09:16:25 <elliott> for
09:16:38 <fizzie> CakeProphet: for k in $space_separated_list; do a_thing_with $k; done.
09:16:40 <elliott> fizzie: Yes, but for something that was going to take an hour...
09:16:44 <elliott> fizzie: Micro-optimising will pay off here.
09:17:19 <CakeProphet> hmmm okay
09:17:45 <shachaf> for k in "${come_on_fizie_bash_has_arrays[@]"; do a_thing_with "$k"; done
09:17:53 * shachaf can't spell without tab completion.
09:18:02 <shachaf> ...Or close {}.
09:19:54 <fizzie> while read col1 col2; do a_thing_with $col1 $col2; done < a_file_with_two_columns, also.
09:20:25 <shachaf> I like how bash...
09:20:34 <shachaf> Hmm, no, I can't think of any honest way of finishing that sentence.
09:20:35 <Sgeo|web> There's nothing wrong with using <$> without <*>, right? Even though it's basically a more restricted fma.... well, that would be a reason to use fmap
09:20:46 <shachaf> Sgeo|web: It's not more restricted.
09:20:50 <shachaf> @src <$>
09:20:51 <lambdabot> f <$> a = fmap f a
09:20:55 <Sgeo|web> Oh
09:21:01 * Sgeo|web might be a little tired right now
09:21:12 <elliott> Sgeo|web is always tired iff he's wrong.
09:21:31 <shachaf> Aren't we all?
09:21:36 <Sgeo|web> No, it's more like: If I'm wrong, then I'm tired.
09:21:49 <Sgeo|web> Since I'm always tired, I can be either right or wrong
09:21:50 <elliott> That's what I said.
09:21:55 <elliott> Well, almost.
09:22:05 <shachaf> Well, it's pretty much not what you said.
09:22:07 <shachaf> You must be tired.
09:22:30 <CakeProphet> so a for loop with parallel should work well yes.
09:22:32 <fizzie> I support the "let's make tires out of him" proposal, yes.
09:22:32 <elliott> Very.
09:22:38 <elliott> CakeProphet: parallel does the for loop for you.
09:22:40 <elliott> That's kind of the point.
09:22:48 <fizzie> Parallel and/or xargs. :p
09:22:51 <CakeProphet> elliott: but what I meant was that & spawns new processes... which is a form of parallelization right?
09:23:02 * elliott decides to let you figure it out yousrelf.
09:23:06 <elliott> s/yousrelf/yourself/.
09:23:22 * shachaf figures it out hismelf.
09:23:35 <CakeProphet> ah okay I missed the ... on the end of parallel usage string
09:23:46 <CakeProphet> but then.... how does it differentiate between commands and arguments.
09:24:00 <elliott> fizzie: See, that's why it was so slow: I had a major bug.
09:24:07 <CakeProphet> parallel cat a b c cat d
09:24:41 <shachaf> CakeProphet: It just splits whenever it sees an argument equal to "cat".
09:24:54 <elliott> "therapeutialliance"? Some word.
09:25:00 <CakeProphet> parallel cat a b c ls d
09:25:07 <shachaf> Doesn't work.
09:25:15 <shachaf> It'll cat a file called "ls".
09:25:21 <shachaf> In parallel.
09:25:53 <CakeProphet> okay well then I still want a for loop to construct the arguments to parallel I think.
09:26:16 <fizzie> Just pipe the arguments into it; that's what I'd do.
09:26:38 <CakeProphet> how so.
09:26:57 <CakeProphet> (Note: it's getting late, my brain starts to shut down and I become more dense than usual)
09:27:20 <fizzie> Just look at the parallel examples.
09:27:37 <fizzie> I don't know what exactly you want to do with it, after all.
09:28:13 <elliott> unescape Main 121 7781622 4.1 1.7 4.1 1.7
09:28:13 <elliott> That's better.
09:30:08 <elliott> parse Main 107 31149605 39.3 52.5 65.3 84.1
09:30:08 <elliott> clean Main 109 52212026 2.7 3.5 6.9 5.2
09:30:08 <elliott> unescape Main 121 7781622 4.1 1.7 4.1 1.7
09:30:08 <elliott> splitTab Ngram 108 88837691 19.1 26.4 19.1 26.4
09:30:08 <elliott> Gah.
09:30:12 <elliott> I guess I should optimise splitTab?
09:30:26 <elliott> splitTab :: ByteString -> (ByteString, ByteString)
09:30:26 <elliott> splitTab b = (B.take n b, B.drop (n+1) b)
09:30:26 <elliott> where Just n = B8.elemIndex '\t' b
09:30:26 <elliott> Not much to optimise.
09:31:41 <elliott> elliott@katia:~/Code/ngrams$ time cabal-dev/bin/degrade googlebooks-eng-all-5gram-20090715-478.csv >/dev/null
09:31:41 <elliott> real0m26.433s
09:31:46 <elliott> Hokay, splitting is definitely quite slow for some reason.
09:32:58 <fizzie> CakeProphet: E.g. something like this:
09:33:05 <fizzie> $ parallel -n 2 echo ./doit.pl <<ARGS
09:33:05 <fizzie> > --eng-all EngAll
09:33:05 <fizzie> > --eng-blah EngBlah
09:33:05 <fizzie> > ARGS
09:33:05 <fizzie> ./doit.pl --eng-all EngAll
09:33:05 <fizzie> ./doit.pl --eng-blah EngBlah
09:33:06 <lambdabot> not an expression: `--eng-all EngAll'
09:33:06 <lambdabot> Not in scope: data constructor `ARGS'
09:33:06 <lambdabot> not an expression: `--eng-blah EngBlah'
09:33:23 <fizzie> (Obviously without the "> "s, those are just the interactive prompt of "please continue".)
09:33:52 <CakeProphet> also without the echo
09:34:03 <fizzie> You may need to do something else if you want a globbed list-of-files in there, though.
09:34:07 -!- ais523 has quit (Remote host closed the connection).
09:34:13 <CakeProphet> fizzie: I do
09:34:51 <elliott> This is very, very annoying.
09:35:09 <CakeProphet> fizzie: couldn't I just construct a list of options separated by newlines or something?
09:35:19 <CakeProphet> and pipe that to parallel?
09:36:08 <elliott> AKA what fizzie said.
09:37:03 <fizzie> Here's one way:
09:37:14 <fizzie> $ while read opt mod fglob; do echo --option=$opt --module=$mod $fglob*; done <<ARGS | parallel echo ./doit.pl
09:37:15 <fizzie> > eng-all EngAll all-
09:37:15 <fizzie> > eng-blah EngBlah blah-
09:37:15 <fizzie> > ARGS
09:37:15 <fizzie> ./doit.pl --option=eng-all --module=EngAll all-1 all-2 all-3
09:37:16 <lambdabot> Not in scope: data constructor `ARGS'
09:37:16 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
09:37:16 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
09:37:16 <fizzie> ./doit.pl --option=eng-blah --module=EngBlah blah-1 blah-2
09:38:06 <CakeProphet> ....
09:38:10 <CakeProphet> I feel there is perhaps
09:38:12 <CakeProphet> an easier way.
09:38:51 <elliott> CakeProphet: It's kind of your fault that your tool is awkward to script.
09:39:06 <CakeProphet> elliott: ...okay?
09:39:44 <CakeProphet> next time I'll magically forsee this situation.
09:39:55 <CakeProphet> and other situations that I have no knowledge of.
09:39:59 <CakeProphet> I am after all, a prophet.
09:40:04 -!- oerjan has joined.
09:41:10 <CakeProphet> http://pastebin.com/HnuGcVE4
09:41:15 <CakeProphet> does anything look wrong with this?
09:41:51 <CakeProphet> the option is now just --ModuleName
09:42:07 <CakeProphet> as I took elliott's advice and will just manually upkeep the options
09:42:29 <elliott> It looks completely and utterly wrong.
09:42:35 <elliott> I'll let fizzie tell you how.
09:43:10 -!- GreaseMonkey has quit (Quit: The Other Game).
09:43:57 <fizzie> At the very least you should be piping the arguments into parallel (and it's lacking the command to run with those arguments); or I think there's some sort of ::: syntax to take them from the command line too, but still.
09:44:05 <oerjan> well, canadian-english-insane looks a bit redundant.
09:44:10 <CakeProphet> lol
09:44:14 <CakeProphet> I thought so too.
09:45:01 <fizzie> Oh, the command is in the x_opt() already. Well, that works too.
09:45:06 <CakeProphet> fizzie: it seems that according to the man page you can just intersperse arguments with commands?
09:45:12 <fizzie> (Without a command line it'll execute each input line.)
09:45:14 <elliott> Haskell loop unrolling:
09:45:15 <elliott> littleSplit :: ByteString -> [ByteString]
09:45:15 <elliott> littleSplit b = [first,second,third,fourth,fifth]
09:45:15 <elliott> where (first, b') = (B.take n b, B.drop (n + 1) b)
09:45:15 <elliott> where n = fromMaybe 0 (B8.elemIndex ' ' b)
09:45:15 <elliott> (second, b'') = (B.take n b', B.drop (n + 1) b')
09:45:16 <elliott> where n = fromMaybe 0 (B8.elemIndex ' ' b')
09:45:18 <elliott> (third, b''') = (B.take n b'', B.drop (n + 1) b'')
09:45:20 <elliott> where n = fromMaybe 0 (B8.elemIndex ' ' b'')
09:45:22 <elliott> (fourth, b'''') = (B.take n b''', B.drop (n + 1) b''')
09:45:24 <elliott> where n = fromMaybe 0 (B8.elemIndex ' ' b''')
09:45:25 <fizzie> CakeProphet: Which 'parallel' is this, the moreutils or the GNU one?
09:45:26 <elliott> (fifth, _) = (B.take n b'''', B.drop (n + 1) b'''')
09:45:28 <elliott> where n = fromMaybe 0 (B8.elemIndex ' ' b'''')
09:45:30 <CakeProphet> GNU one.
09:45:31 <elliott> fizzie: More importantly, he has a bunch of commands with no delimiters, unquoted.
09:45:44 * elliott waits for oerjan to scream.
09:45:56 <CakeProphet> parallel doesn't seem to specify that I need to delimit or quote anything
09:45:59 <CakeProphet> it is somehow magical.
09:46:22 * elliott lets fizzie express his scepticism for him.
09:46:24 <oerjan> AAAAAAAAAAAAAAAA
09:46:29 <fizzie> CakeProphet: Well, going by http://www.gnu.org/s/parallel/man.html#synopsis I think you should either paste or separate by other means.
09:47:02 <fizzie> s/paste/pipe/
09:47:14 <CakeProphet> the ... seems to suggest that I can repeat the [command [arguments ...]] pattern...
09:47:56 <elliott> shachaf: I wish the English corpus was only forty megs.
09:48:03 <CakeProphet> parallel ::: "gzip file1" "gzip file2"
09:48:05 <elliott> shachaf: That's the one good thing about your language.
09:48:06 <CakeProphet> hmmm
09:48:08 <CakeProphet> that's a new one.
09:48:12 <CakeProphet> but I could use this form probably.
09:48:16 <fizzie> CakeProphet: It doesn't suggest that to me, but I've just been using xargs.
09:48:17 <shachaf> elliott: It's because Hebrew is more compact.
09:48:25 <elliott> CakeProphet: You could just generate a bunch of arguments, and then | parallel ./foo.pl, dude.
09:48:30 <shachaf> elliott: Translate book from English to Hebrew => They get shorter.
09:48:31 <shachaf> It's true.
09:48:40 <elliott> Whaaat, my unrolled loop slowed my code down.
09:48:43 <elliott> That never happens.
09:48:50 <CakeProphet> elliott: I was trying to use as much of my existing code as possible.
09:48:54 <CakeProphet> as I am a bash nub
09:49:02 <oerjan> pesky vowels, who needs them
09:49:03 <elliott> CakeProphet: It's three lines. You barely have any code.
09:49:15 * CakeProphet is a bash nub.
09:49:19 <fizzie> CakeProphet: What I'd do is (gb_opt eng-1M Eng1M; gb_opt eng-all EngAll; gb_opt eng-fiction EngFiction; ...) | src/parallel
09:49:19 <CakeProphet> it scares me.
09:49:30 <fizzie> (It seems to work.)
09:49:32 <CakeProphet> ...what am I looking at.
09:49:40 <elliott> fizzie: Yes, that also works.
09:49:45 <elliott> fizzie: But use {} instead of (), please.
09:49:51 <CakeProphet> help what is this.
09:49:58 <CakeProphet> is that an array syntax or something?
09:50:02 <elliott> Sigh.
09:50:18 <elliott> fizzie: I'm wondering if I perhaps imagined this thing taking eight seconds.
09:50:36 <fizzie> elliott: Maybe. It took over a minute for my Perl script, and everyone knows Perl is the fastest thing.
09:50:46 <elliott> fizzie: Oh, wait, no, I distinctly felt superior because ha ha, mine only took eight seconds.
09:51:08 <CakeProphet> help what is () and {} with semicolon delimited list of commands.
09:51:16 <fizzie> CakeProphet: (a; b; c) is just "execute a, then b, then c in subshell"; and elliott is right, {a; b; c} would probably be better.
09:51:22 <elliott> fizzie: {a;b;c;}
09:51:27 <elliott> Bit of a wart there; you need the final semicolon.
09:51:29 <fizzie> Oh, right.
09:51:38 <CakeProphet> ...and you can.... pipe that?
09:51:40 <fizzie> And whitespace, I think.
09:51:40 <elliott> But on multiple lines it's swell:
09:51:41 <elliott> {
09:51:41 <CakeProphet> okay.
09:51:42 <elliott> a
09:51:42 <elliott> b
09:51:43 <elliott> c
09:51:44 <elliott> } | foo
09:52:03 <elliott> CakeProphet: I would pass along the arglist to parallel.
09:52:04 <fizzie> Certainly you can pipe the output of a command.
09:52:10 <elliott> CakeProphet: With "$@".
09:52:13 <elliott> (With quotes.)
09:52:19 <elliott> CakeProphet: Then you can specify things like job limit, etc.
09:52:55 <CakeProphet> I have no idea what "pass along the arglist to parallel" means.
09:53:09 <fizzie> The arguments to your script, perhaps.
09:53:18 <CakeProphet> isn't that what I have to do?
09:53:26 <fizzie> The thing that you pasted.
09:53:26 <CakeProphet> in order for it to work properly?
09:53:45 <fizzie> So that you can call "./build_all.sh -j 4" or something to make it run four jobs in parallel.
09:53:51 <CakeProphet> oh
09:53:52 <CakeProphet> that arglist
09:53:58 <CakeProphet> okay.
09:53:59 <CakeProphet> sure.
09:53:59 <elliott> | parallel "$@" should do it.
09:54:00 <fizzie> Though you'd need to shift that optional $1 out in that case.
09:54:05 <CakeProphet> right
09:54:22 <oerjan> > take 5 . map (take 4) . iterate (drop 5) $ "abcdefghijklmnopqrstuvwxyz"
09:54:25 <lambdabot> mueval-core: Time limit exceeded
09:54:26 <CakeProphet> er, how do I shift out that optional 1 :P
09:54:34 <oerjan> sheesh
09:54:37 <oerjan> > take 5 . map (take 4) . iterate (drop 5) $ "abcdefghijklmnopqrstuvwxyz"
09:54:37 <CakeProphet> help write bash for me.
09:54:40 <lambdabot> ["abcd","fghi","klmn","pqrs","uvwx"]
09:55:10 <fizzie> Just add a "shift" command somewhere. (After the D=... part.)
09:55:26 <fizzie> It does mean you'd need to "./build_all.sh . -j 4" to pass arguments to parallel, though.
09:55:39 <CakeProphet> hmmm, okay.
09:55:52 <fizzie> If you don't feel like it, you can just stick whatever parallel args you want right in the script.
09:55:56 <elliott> CakeProphet: It should probably just not take a directory.
09:56:02 <CakeProphet> D=$1
09:56:03 <CakeProphet> shift $@
09:56:04 <CakeProphet> ?
09:56:08 <fizzie> D=$1
09:56:09 <fizzie> shift
09:56:11 <elliott> CakeProphet: I mean.
09:56:14 <elliott> CakeProphet: You can just use "cd".
09:56:30 <CakeProphet> elliott: no I need the current directory elsewhere.
09:56:35 <CakeProphet> the cd is where the modules are output
09:56:39 <CakeProphet> but the googledata is on my external
09:56:49 <elliott> Seriously? It's not that big.
09:56:58 <CakeProphet> eh, I like it there. :P
09:57:08 <CakeProphet> I've only got like 70 gigs left on my laptop anyway.
09:57:29 <elliott> CakeProphet: See, those of us in the _serious_ n-gram business have to buy two-terabyte disks to store all our data files.
09:57:42 <elliott> And max out our connections for two days to get the data.
09:57:56 <fizzie> desmond:/project/puhe
09:57:57 <fizzie> 8.0T 3.9T 4.1T 49% /fs/project/puhe
09:57:57 <fizzie> desmond:/scratch/users/htkallas
09:57:57 <fizzie> 11T 9.0T 2.0T 83% /fs/scratch/users/htkallas
09:58:07 <elliott> nICE.
09:58:08 <elliott> Nice.
09:58:18 <fizzie> They recently expandated it a bit.
09:58:21 <elliott> fizzie: All them Hitchhikers books, eh?
09:58:37 <fizzie> Of course there's quite a lot more than one user too, so per-user it's not really very much.
09:59:04 <elliott> fizzie: Incidentally, how long does a seek over USB to a presumably-five-four-hundred-rpm mechanical hard disk take these days?
09:59:12 <elliott> (USB two.)
09:59:16 <CakeProphet> elliott: I am a nub. :( :( :(
09:59:17 <fizzie> (Also despite how the per-user automounts make it look, it's not exactly a 11T-disk-for-each-user.)
09:59:19 <CakeProphet> at the ngram business.
09:59:50 <fizzie> I don't know, but I don't think USB latency is very much compared to the actual seek time of the disk.
10:00:11 <CakeProphet> http://pastebin.com/JnhEYfDt
10:00:14 <CakeProphet> hi does this look good?
10:00:16 <elliott> fizzie: Hmph.
10:00:24 <elliott> fizzie: I have no idea how many I'll need to do per sentence.
10:00:26 <CakeProphet> er why did I tell it to highlight as perl
10:00:38 <elliott> CakeProphet: Yes, except you have ridiculous duplication there.
10:00:47 <elliott> You could do the gb_opt and d_opt things in a for loop.
10:00:57 <CakeProphet> jhweriuhwerhweorhwetoihasfiuhwetiuhwer
10:01:06 <elliott> Oh, er.
10:01:08 <elliott> } | parallel "$@" perl ./construct_grams.pl {}
10:01:11 <elliott> gb_opt() { echo perl ./construct_grams.pl --${2:-$1} $D/googlebooks-$1-*.csv; }
10:01:11 <fizzie> CakeProphet: Either "./construct_grams.pl" in x_opt() or on the parallel command line, not on both.
10:01:11 <elliott> d_opt() { echo perl ./construct_grams.pl --${2:-$1} /usr/share/dict/$1; }
10:01:19 <elliott> Yeah, I'd remove it from the _opt functions.
10:01:20 <CakeProphet> right my bad.
10:01:21 <elliott> Cleaner.
10:02:07 <CakeProphet> okay so how would I pipe a for loop into parallel. I'd have to use something like read right?
10:02:21 <fizzie> for ...; done | parallel?
10:02:30 <CakeProphet> oh.....
10:02:33 <CakeProphet> uh, okay.
10:02:38 <CakeProphet> bash = magic
10:02:42 <CakeProphet> arcane magic.
10:03:06 <CakeProphet> eh I'll just leave it as is
10:03:09 <CakeProphet> because.... I feel like it.
10:03:18 * elliott wonders if he's reporting /r/haskell trolls too much.
10:03:20 <CakeProphet> and because some options have second arguments and others don't
10:03:23 <elliott> shachaf: Am I reporting /r/haskell trolls too much?
10:03:38 <shachaf> elliott: How should I know?
10:03:43 <elliott> shachaf: You're the expert.
10:03:45 <shachaf> I don't usually read /r/haskell.
10:03:52 <shachaf> Do there exist trolls there?
10:03:55 * CakeProphet is now a master irp programmer.
10:04:00 <CakeProphet> I use irp to generate code in bash.
10:04:12 <CakeProphet> because I don't know how to do shit in bash.
10:04:37 <fizzie> CakeProphet: Should canadian-english-insane also have a module name? All the other dashful ones do.
10:04:45 <fizzie> (Or is that 'dashing'?)
10:05:15 <elliott> shachaf: Well, one guy has been trying to argue with me that, because his original post was to be interpreted as formal logic with a very torturous interpretation and not Haskell, his blatantly inflammatory "the only reason to learn Haskell is intellectual curiosity, only" comment was actually just saying close to nothing at all, and all my days of telling him that no, Visual Basic isn't better than Haskell in any way, and his "all that matters i
10:05:15 <elliott> s what the customer wants!!" argument is fallacious, were completely wasted.
10:05:22 <elliott> (As opposed to the 99 percent wasted I went in expecting.)
10:05:28 <elliott> Now he's posted this gem:
10:05:28 <elliott> [[
10:05:28 <elliott> v
10:05:29 <elliott> The first slide says Haskell is uniquely suited to help build programs from composable parts. How are classes in OOP languages not similar?
10:05:30 <CakeProphet> fizzie: ah yes
10:05:31 <elliott> And please, it's not a troll question. Please discuss with constructive arguments.
10:05:33 <augur_> elliott: "would whoever's milk shake is bringing all the boys to the yard please stop it"
10:05:33 <elliott> ]]
10:05:36 <augur_> good? bad?
10:05:39 <augur_> if good, what does it mean
10:05:42 <elliott> augur_: Milkshake is one word.
10:05:49 <augur_> yeah yeah typo
10:05:49 <elliott> augur_: It's certainly hard to read.
10:05:50 <augur_> jesus christ
10:05:55 <elliott> augur_: But it is amusing.
10:05:59 <augur_> ok and what does it mean
10:06:02 <CakeProphet> fizzie: it could also stand to have a shorter option name but that would complicate my script somewhat.
10:06:10 <augur_> "would whoever's milkshake is bringing all the boys to the yard, please stop it"
10:06:10 <shachaf> elliott: Be constructive!
10:06:11 <augur_> better?
10:06:28 <elliott> augur_: It is a request that the person P s.t. P's milkshake is bringing all the boys to the yard, to please stop their milkshake bringing all the boys to the yard.
10:06:40 <elliott> That doesn't parse, but anyway.
10:06:54 <augur_> everyones saying that. its amazing.
10:07:09 <augur_> it sounds perfectly fine to me, meaning only that, and i cannot see how that can work
10:07:11 <augur_> its beautiful
10:07:18 <elliott> shachaf: But the /r/haskell mod just came back like a few weeks ago to tell us he'd be more strictly enforcing the deletion of trolling and promoted copumpkin and some others to mod status :-(
10:07:18 <augur_> well i mean, i can see exactly how it can work but
10:07:21 <elliott> THE NEW REGIME HAS FAILED
10:07:35 <elliott> augur_: I keep wanting to say that "whoever" should be "whomsoever".
10:07:39 <elliott> It just... seems to read better like that.
10:07:45 <augur_> elliott: well thats fine
10:07:46 <elliott> Like you're obscuring the nonsense with formality.
10:07:48 <augur_> you're just a weirdo
10:07:56 <elliott> :D
10:07:59 <augur_> <3
10:08:04 <elliott> WHY IS THIS CODE SO SLOW
10:08:08 <augur_> also shachaf knows what i perceive better than i do
10:08:10 <augur_> via the internet
10:08:14 <shachaf> augur_: It's true.
10:08:20 <shachaf> It only works for Internet people.
10:08:43 <Sgeo|web> liftM = fmap except different types BLARGH
10:08:47 * Sgeo|web shoots someone
10:09:01 <elliott> Sgeo|web: What would you have preferred happen?
10:09:07 <augur_> :t liftM
10:09:10 <CakeProphet> fizzie: I don't think this script is working correctly.
10:09:12 <augur_> ...
10:09:14 <lambdabot> forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r
10:09:27 <augur_> that makes sense.
10:09:29 <Sgeo|web> All monads be functors?
10:09:34 <augur_> Sgeo|web: yes
10:09:34 <shachaf> class Monad extends Functor {
10:09:41 <CakeProphet> shachaf: die
10:09:52 <elliott> Sgeo|web: Functors were not around when liftM was invented.
10:09:54 <elliott> (Well, yes, they were.)
10:09:55 <augur_> Sgeo|web: i suspect that liftM has laws that map doesnt have
10:09:56 <elliott> (But Functor wasn't.)
10:09:58 <oerjan> elliott: whomsoever is _wrong_ there, dammit.
10:09:59 <elliott> augur_: No it doesn't.
10:10:02 <augur_> elliott: oh?
10:10:10 <CakeProphet> fizzie: yeah so the script ends very quickly and nothing happens for some reason.
10:10:10 <fizzie> CakeProphet: Put an "echo" before the "perl" on the parallel command line and check what's it doing.
10:10:15 <augur_> so liftM is just fmap
10:10:17 <CakeProphet> okay
10:10:19 <oerjan> whom is _not_ a catchall replacement for who
10:10:23 <elliott> oerjan: :D
10:10:30 <elliott> Sgeo|web: So you'd have just removed liftM and broken all the code in existence?
10:10:33 <shachaf> oerjan: Whom said it was?
10:10:49 <elliott> Sgeo|web: I take it you'd do the same for ap when Applicative popped up even more recently (like six, seven years ago)?
10:10:49 <CakeProphet> oerjan: whomse English are we speaking? can I speak to the owner?
10:11:13 <elliott> I'm so glad we live in a world of slightly redundant functions being exported rather than a world in which nobody codes Haskell because they keep fucking breaking it.
10:11:30 <shachaf> elliott: WRONG
10:11:41 <shachaf> They keep breaking it *and* there are slightly redundant functions being exported.
10:11:42 <CakeProphet> fizzie: hmmm, well...
10:11:46 <elliott> shachaf: Well, yes.
10:11:48 <shachaf> Also, fmap can be more efficient than liftM, I believe.
10:11:49 <CakeProphet> is it just supposed to work in the background?
10:11:54 <elliott> shachaf: Well, yes.
10:11:57 <elliott> (>>=) can be slow.
10:11:59 <CakeProphet> or does it terminate when every parallel job terminates?
10:12:11 <fizzie> CakeProphet: By default it will wait until all the commands have been run.
10:12:15 <shachaf> http://www.haskell.org/pipermail/haskell-cafe/2006-November/019190.html
10:12:30 <CakeProphet> fizzie: oh well they finish way too fast for some reason... hmmm it may be an issue with my script
10:12:59 <Sgeo|web> Why not, in some library, do instance (Functor a) => Monad a where...
10:13:02 <fizzie> You could try running one of the lines the 'echo' printed out manually.
10:13:03 <Sgeo|web> Wait, no
10:13:09 <elliott> Sgeo|web: Because that (a) doesn't do what you want, and
10:13:10 <shachaf> Sgeo|web: Overlapping.
10:13:11 <elliott> (b) breaks everything.
10:13:14 <Sgeo|web> instance (Monad a) => Functor a....
10:13:15 <elliott> shachaf: It's not even overlapping.
10:13:18 <elliott> shachaf: it just doesn't work.
10:13:22 <elliott> Well, it is overlapping.
10:13:23 <shachaf> elliott: I meant what Sgeo|web meant.
10:13:33 <elliott> Right.
10:13:36 <elliott> Sgeo|web: Anyway, no.
10:13:40 <elliott> The answer is no.
10:13:41 <CakeProphet> fizzie: it seems to run fine that way.
10:13:47 <shachaf> However, in GHC 7.4, I hear they might be able to do it.
10:13:48 <CakeProphet> the lines are constructed well.
10:13:50 <shachaf> Or was it 7.6?
10:14:02 <elliott> shachaf: They're adding a Prolog interpreter?
10:14:02 <shachaf> Anyway, somethign about default implementations given constraints, or something like that.
10:14:15 <elliott> shachaf: That's already in, for methods:
10:14:31 <elliott> class Foo a where foo :: a -> (); default foo :: (Show a) => a -> (); foo a = show a `seq` ()
10:14:46 <shachaf> Oh.
10:14:56 <shachaf> In that case, what's stopping them from adding it?
10:14:57 <oerjan> <Sgeo|web> instance (Monad a) => Functor a.... <-- overlapping, which means it would make it impossible to define Functors that were not Monads
10:15:07 <elliott> shachaf: Because you'd still need an empty "instance Functor M" line for every M.
10:15:18 <fizzie> CakeProphet: Weird; in that case I'd expect it to work. You could try adding something like die join(" ", map { "[$_]" } @ARGV); at the beginning of the Perl script to see exactly what the arguments are.
10:15:33 <fizzie> (And whether there's any difference in running it manually or by parallel.)
10:15:38 <elliott> http://www.willamette.edu/~fruehr/logos/PNGs/RealHackers.png Oh man, 2006, so wild.
10:16:09 <elliott> fizzie: What if I just didn't parse the quotes?
10:16:14 <elliott> FOOD FOR THOUGHT.
10:16:15 <CakeProphet> fizzie: hmmmm it seems to be passing in the arguments as a single argument?
10:16:23 <CakeProphet> Constructing manx /usr/share/dict/manx dataset...
10:16:24 <shachaf> elliott: Oh. Well, there was some way they were going to add it.
10:16:29 <CakeProphet> should just say manx dataset
10:16:30 <elliott> CakeProphet: Well, it works like xargs.
10:16:34 <elliott> CakeProphet: It bundles up arguments and all.
10:16:35 <Sgeo|web> oerjan: Ah, that makes sense
10:17:00 -!- derdon has joined.
10:17:03 <CakeProphet> oh, well, I don't want that.
10:17:33 <Sgeo|web> Ooh, how about an AutoMonadToFunctor class, empty of functions, and instance (Monad a, AutoMonadToFunctor a) => Functor a
10:17:40 <Sgeo|web> So that lazy monad writers can just do
10:17:47 <elliott> CakeProphet: I'll let fizzie tutor you in basic xargs use.
10:17:57 <Sgeo|web> instance AutoMonadToFunctor MyMonad where...
10:17:59 <shachaf> Sgeo|web: The issue is old code.
10:17:59 <elliott> Sgeo|web: Lazy monad writers can just do instance Functor M where fmap = liftM.
10:18:06 <shachaf> Sgeo|web: And what elliott said.
10:18:09 <oerjan> Sgeo|web: still overlapping. only the part to the right of => counts.
10:18:13 <elliott> Sgeo|web: And instance Applicative M where pure = return; (<*>) = ap
10:18:32 <Sgeo|web> elliott: fair enough. oerjan, o.O
10:18:44 <elliott> Sgeo|web: GHC does not embed a complete constraint solving algorithm.
10:18:46 <elliott> It is not Prolog.
10:18:48 <Sgeo|web> I should go eat dinner... at 6:18 AM
10:19:05 <shachaf> elliott: It should be.
10:19:09 <Patashu> GHC should be able to solve my calculus homework
10:19:16 * shachaf votes for Oleg to replace SPJ.
10:19:22 <elliott> Patashu: The type-system is TC these days.
10:20:33 <CakeProphet> elliott: erm will learning basic xargs usage magically not pack all the arguments into $ARGV[0]?
10:20:53 <elliott> You use the word "magically" a lot.
10:21:36 * shachaf >>=
10:21:52 <CakeProphet> is there a way I could magically not do that magically?
10:23:37 <elliott> fizzie: Magically.
10:24:29 -!- ais523 has joined.
10:24:33 <CakeProphet> -m looks promising
10:24:44 <ais523> what does it say about me that I checked to see if I could connect to Freenode to see if I was online?
10:24:56 <elliott> heh
10:24:57 <ais523> opening IRC is more convenient than connecting a web browser
10:25:06 <ais523> and the firewall here blocks pings, so I can't just ping Google or something to check
10:25:21 <elliott> CakeProphet: an xargs interface makes irrelevant how many processes are pinged
10:25:29 <elliott> it is meant to be used on a tool s.t. f x; f y == f x y
10:25:39 <elliott> you need to specify options if you want a shell interpretation.
10:25:51 <elliott> CakeProphet: You could just re-add the perl things and remove the rest of the parallel line.
10:25:54 <shachaf> Or just use -n1
10:25:54 <elliott> That will work correctly.
10:25:59 -!- copumpkin has quit (Ping timeout: 248 seconds).
10:26:03 <elliott> shachaf: Except he has multiple arguments on a line.
10:26:13 <CakeProphet> of varying number
10:26:23 -!- copumpkin has joined.
10:26:27 <shachaf> Oh, well, just pipe them to sh -c.
10:26:31 <shachaf> Or something.
10:26:33 <shachaf> I don't know.
10:26:49 * shachaf >>=
10:26:54 <fizzie> CakeProphet: -m will just add multiple lines' worth of arguments. The easy way to have a shell interpret and word-split it is to use parallel -q sh -c "perl foo.pl {}" in place of parallel perl foo.pl {}
10:27:01 <elliott> fizzie: Dude.
10:27:01 <fizzie> There might be some useful options too for all I know.
10:27:02 <elliott> fizzie: Or just.
10:27:04 <elliott> parallel
10:27:07 <elliott> And include the "perl foo.pl" in the lines.
10:27:10 <elliott> That will work fine.
10:27:14 <fizzie> That is also possible, yes.
10:27:23 <fizzie> But you yourself said it's cleaner that way. :p
10:27:44 <CakeProphet> fizzie: elliott: LIFDOFF
10:27:54 <CakeProphet> my computer is going to explode.
10:28:03 <fizzie> Anyway, also ... | sed -e '/^/perl foo.pl /' | parallel for the truu sed user.
10:28:08 <CakeProphet> or most likely overheat.
10:28:23 <elliott> CakeProphet: You should have set a job number other than 9.
10:28:32 <elliott> Even for that much IO-boundness it's likely not going to perform well like that.
10:28:34 <CakeProphet> but I'm using %100 CPU all the time compared to the 25% or so I was using before
10:28:37 <CakeProphet> so that's good
10:28:49 <fizzie> I think by default it runs as many parallel tasks as there are cores.
10:28:55 <elliott> fizzie: I thought it was 9.
10:28:59 <CakeProphet> also I'm not getting any output.
10:29:07 <elliott> CakeProphet: It serialises the output
10:29:08 <elliott> CakeProphet: It serialises the output.
10:29:14 <fizzie> CakeProphet: It buffers the output so that it can then spew it out in the correct order.
10:29:14 <CakeProphet> ah okay.
10:29:23 <fizzie> There's an "immediate-output" option if you don't mind getting it mixed.
10:29:30 <CakeProphet> eh, no thanks.
10:29:35 <fizzie> -u I guess.
10:29:51 <CakeProphet> parallel is quite excellent.
10:29:57 <CakeProphet> good use of time.
10:30:00 <CakeProphet> to learn.
10:30:31 <fizzie> There are so many of them. 'xargs' got the feature added; then there's GNU parallel, GNU pexec, and that other parallel. Everyone keeps solving the same thing.
10:30:36 <Patashu> wtf is this shit
10:30:36 <Patashu> http://web.archive.org/web/20090106022617/http://www.forteanbureau.com/sept2004/Schoffstall/printerfriendly.html
10:30:42 <Patashu> what does 'We were unable to get the robots.txt document to display this page.' mean
10:30:45 <fizzie> ("then" is not trying to imply any sort of chronological order.)
10:30:55 <elliott> http://www.forteanbureau.com/robots.txt
10:31:11 <CakeProphet> yeah by default it's number of cores
10:31:13 <Patashu> it's a redirect
10:31:18 <CakeProphet> I've got four perl's running at 100%
10:31:24 <elliott> Patashu: Right, probably it barfs on that.
10:31:29 <Patashu> does that mean that, since there's no url forteanbureau.com with a robots.txt on it, it can never retrieve a cached page for me ever????
10:31:31 <Patashu> FUCK
10:31:37 <Patashu> I don't have a saved copy of that page
10:31:45 -!- pikhq has quit (Ping timeout: 245 seconds).
10:31:46 -!- pikhq_ has joined.
10:31:49 <elliott> Patashu: Just call them up and ask for a copy.
10:31:51 <elliott> (This might even work.)
10:32:43 <CakeProphet> I'm glad I bought this cooling pad thing.
10:33:05 <CakeProphet> if my laptop were sitting on my bed at max CPU usage I would have already disconnected...
10:33:15 <Patashu> Hmm, I guess I'll ask
10:33:38 <elliott> Patashu: I meant the archive.org folks, but that sounds even more plausible.
10:33:58 <CakeProphet> really the extra fans don't do much, but the fact that there's airflow beneath it allows the laptop fan to do its thing.
10:34:34 <CakeProphet> but I guess the extra fans help too. especially on max speed.
10:36:40 <CakeProphet> I've read that hyperthreading is inefficient. I wonder if that's why I've had overheating problems.
10:37:20 <elliott> Hyperthreading is not inefficient.
10:37:21 <elliott> It's a mth.
10:37:23 <elliott> myth.
10:37:40 <elliott> CPU speed so significantly outweighs speed of communications with everything else that it's almost as good as having another core.
10:37:50 <ais523> wow, it seems that I can send over 100 emails in a few seconds and still end up with a negative spam score
10:38:02 <fizzie> All the air is getting tangled in those hyperthreads and that's why it overheats.
10:38:09 <elliott> ais523: what did you do...
10:38:32 <oerjan> elliott: he just writes that interesting emails
10:39:12 <ais523> elliott: my automated marking script sends a summary of the reasons for its marks, to everyone it marked, every week
10:39:47 <ais523> it's a bit of a testament to Perl that I learnt to use Email::Sender::Transport::SMTP::Persistent in less than an hour
10:40:04 <fizzie> That's one long module name.
10:40:16 <elliott> Yes, that's also a testament to Perl.
10:41:05 <elliott> fizzie: I'm really annoyed that there's a five-times performance impact that I can't explain.
10:41:10 <elliott> It is all your fault.
10:41:25 <ais523> fizzie: it's a little long for Perl, and a little short for Java
10:42:52 <elliott> ais523: hi, I'm spending effort and money on n-grams again
10:43:30 <ais523> ouch
10:49:10 -!- copumpkin has quit (Ping timeout: 258 seconds).
10:49:48 <fizzie> eShipment::Purolator::WSDL::Interfaces::ServiceAvailabilityService::ServiceAvailabilityServiceEndpoint
10:50:00 <elliott> Me.
10:50:06 <fizzie> aWebService::Edgecast::auto::MediaManager::Interface::EdgeCastWebServices::EdgeCastWebServicesSoap
10:50:07 <fizzie> Microsoft::AdCenter::NotificationManagementService::ApproachingCreditCardExpirationNotification
10:50:40 <fizzie> Those were some of the longest module names from ~/.cpan/Metadata; disregard the few spurious leading lowercase letters.
10:50:52 <fizzie> eBay::API::XML::Call::AddTransactionConfirmationItem::AddTransactionConfirmationItemRequestType is also pretty long.
10:51:04 -!- copumpkin has joined.
10:51:21 <fizzie> eBay::API and Microsoft::AdCenter dominate the top-50.
10:51:27 -!- elliott_ has joined.
10:51:33 <fizzie> Oh, but Universe::ObservableUniverse::Filament::SuperCluster::Cluster::Group::Galaxy::Arm::Bubble::InterstellarCloud::SolarSystem::Earth is the winner.
10:51:53 <ais523> please tell me that's a joke
10:51:55 <fizzie> http://search.cpan.org/~jkutej/Universe-Galaxy-0.03/lib/Universe/ObservableUniverse/Filament/SuperCluster/Cluster/Group/Galaxy/Arm/Bubble/InterstellarCloud/SolarSystem/Earth.pm
10:52:00 <ais523> I strongly suspect it's a joke from the name
10:52:02 <fizzie> It looks like a joke.
10:52:06 <fizzie> And it quacks like a joke.
10:52:12 <fizzie> Must be a joke.
10:53:09 <ais523> indeed, it only has two methods: ultimate_answer which always returns 42, and AUTOLOAD which always returns "Mostly harmless"
10:54:04 <elliott_> fizzie: Oh, I think I know what was meant to take eight seconds:
10:54:05 <fizzie> "SEE ALSO: aliased", presumably because the name is tad on the long side.
10:54:07 <elliott_> elliott@katia:~/Code/ngrams$ time cabal-dev/bin/intern foo >/dev/null
10:54:07 <elliott_> real0m4.875s
10:54:15 -!- elliott has quit (Ping timeout: 245 seconds).
10:54:35 <elliott_> fizzie: I guess my micro-optimisation can't hurt much, though.
10:55:29 <elliott_> ?hoogle (a -> Bool) -> [a] -> [a]
10:55:30 <lambdabot> Prelude dropWhile :: (a -> Bool) -> [a] -> [a]
10:55:30 <lambdabot> Prelude filter :: (a -> Bool) -> [a] -> [a]
10:55:31 <lambdabot> Prelude takeWhile :: (a -> Bool) -> [a] -> [a]
10:55:33 <elliott_> (Looking for something precomposed with not.)
10:55:43 <Patashu> I emailed both clockpunkstudios and archive.org about it in the end
10:55:48 <Patashu> The more people I complain to the more likely it is to be solved
10:55:49 <Patashu> \o/
10:55:49 <myndzi> |
10:55:49 <myndzi> /|
10:55:52 <Patashu> Ty
10:58:20 -!- Phantom_Hoover has joined.
10:59:51 <elliott_> http://sprunge.us/JbiJ
10:59:54 <elliott_> I guess this is as far as it goes.
11:00:55 -!- ais523 has quit (Ping timeout: 245 seconds).
11:02:38 <elliott_> fizzie: I sure wish the ngrams came pre-reversed.
11:02:49 <CakeProphet> speaking of long module names
11:03:09 <CakeProphet> I learned today that you can also write ${Module Name Goes Here var}
11:03:18 <elliott_> CakeProphet: eh?
11:03:44 <CakeProphet> you know, if that's what you're into.
11:03:53 <Phantom_Hoover> elliott_, so Strax will never see the light of day?
11:04:04 <elliott_> Phantom_Hoover: This isn't Strax, you buffoon.
11:05:02 -!- ais523 has joined.
11:05:22 <Phantom_Hoover> elliott_, you have *another* n-gram project?
11:05:40 <elliott_> Phantom_Hoover: strax isn't an n-gram project yyou just totally made that up.
11:05:43 <CakeProphet> today/tonight has been #esoteric-ngram
11:05:47 <elliott_> sy
11:05:49 <elliott_> s/yy/y/
11:06:46 <Phantom_Hoover> elliott_, help what
11:08:14 <CakeProphet> sy\y\yy\yy
11:09:02 <ais523> list of possible errors that my marking script can produce that nobody's triggered yet: message too long; message cannot be parsed as MIME; message submitted for nonexistent question number; program took too long to execute; program output junk on stderr; OCaml compiler errored out trying to compile program; program tried to violate sandboxing
11:09:13 <elliott_> fizzie: You think the number of words in the corpus will fit into a thirty-two bit word, right?
11:09:26 <ais523> elliott_: what is strax, then?
11:09:42 <elliott_> ais523: what, nobody's submitted an invalid program yet?
11:10:02 <ais523> that's happened quite a lot
11:10:09 <ais523> but it doesn't cause the compiler to error, but rather to reject the program
11:10:16 <fizzie> elliott_: Yes, I would be very surprised if it didn't, given that one file had barely a hundred thousand words, and most of them are common between files. (Even if they were all unique, that'd be just 80 million words.)
11:10:26 <elliott_> fizzie: Right.
11:10:46 <elliott_> fizzie: That's good; words are about five letters, right? (I hear that's the standard.)
11:10:48 <elliott_> Well an int is like FOUR.
11:10:51 <elliott_> SMALLER.
11:11:11 <ais523> elliott_: but you're not trying to encode the words directly into ints, are you?
11:11:24 <elliott_> ais523: No, I'll have a big old lookup table.
11:11:47 <ais523> there are unlikely to be over four billion unique words
11:11:49 <elliott_> ais523: The primary reason is seekability and space; the model is going to be about a terabyte, so...
11:11:54 <elliott_> Yes, but these are Google words.
11:12:23 <ais523> even so, a billion is a huge value
11:12:25 <CakeProphet> I wonder if "I'd push my stable branch into her repository" would be an 8-gram if Google had 8-grams.
11:12:32 <Phantom_Hoover> ais523, apparently you are an expert on how esoteric heraldry language is.
11:12:48 <ais523> Phantom_Hoover: I wouldn't call myself an expert on it, but it is pretty eso, indeed
11:13:00 <Phantom_Hoover> Can we have an article about it on the wiki?
11:13:03 <fizzie> elliott_: 5 sounds like a reasonable guess for the average, and then with words you usually need one length byte and/or a terminator and/or something.
11:13:55 <CakeProphet> and/or should just become some kind of new conjunction word
11:13:56 <CakeProphet> andoror
11:14:16 <ais523> Phantom_Hoover: it isn't a programming language, really
11:14:26 <ais523> it's like, umm, an esoteric vector image format
11:14:30 <Phantom_Hoover> ais523, neither is the lambda calculus.
11:14:38 <elliott_> fizzie: Yes, a length byte is what I've been doing.
11:14:39 <ais523> but you can program with that
11:14:43 <ais523> I don't think you can program with heraldry
11:14:55 <elliott_> ais523: Has anyone tried yet?
11:14:57 <ais523> unless it somehow ends up possible to encode TC equations in it, or something silly like that
11:14:59 <Phantom_Hoover> I don't know, is there a Turing-complete problem in heraldry?
11:15:03 <elliott_> ais523: Maybe we can send the people who draw them into an infinite loop.
11:15:04 <ais523> elliott_: not to my knowledge
11:15:08 <CakeProphet> I'm not entirely sure I understand what makes LC no a programming language.
11:15:14 <CakeProphet> *not
11:15:15 <elliott_> ais523: Like, something tiered piecewise argent in pale itself.
11:15:17 <elliott_> Or something.
11:15:24 <Phantom_Hoover> Like, you describe a coat of arms, and there are really complex rules dictating what is and isn't a legal coat-of-arms.
11:15:25 -!- Jafet has joined.
11:15:46 <Phantom_Hoover> And it ends up that computing whether a given coat of arms is valid is Turing-equivalent.
11:16:10 <ais523> I thought the main validity rule was no colors touching colors, no metals touching metals
11:16:16 <ais523> although that one's been bent on occasion, maybe even broken
11:16:21 <Phantom_Hoover> Hmm.
11:16:23 <fizzie> In fact, given that a single file had only 622735 5-grams, even if every word of every 5-gram was unique, and all the 799 other files had as many, that'd be just 800*622735*5 = 2490940000 = 2^31.21... unique words. So as long as your ints are unsigned... (Okay, it's not even theoretically possible for them all to be unique, since they're overlapping.)
11:16:35 <Phantom_Hoover> So it's just planar two-colouring; not TC.
11:16:40 <ais523> yep
11:16:42 <Patashu> Someone make Heraldry eso lang
11:16:43 <Phantom_Hoover> *TE
11:17:10 <Phantom_Hoover> Dammit WP, I need a list of TE problems.
11:18:26 <CakeProphet> my LMD got stuck in EROP while the FSF stopped TOW from being KE
11:18:29 <elliott_> fizzie: 2^31.21 juuust steps outside the guarantees Haskell gives for Int :P
11:18:38 <elliott_> CakeProphet: Those are awful acronyms.
11:18:40 <elliott_> Especially FSF.
11:19:00 <Phantom_Hoover> <Patashu> Someone make Heraldry eso lang
11:19:04 <Phantom_Hoover> Nononononono that won't do.
11:19:07 <CakeProphet> note: RDBMS is a real acronym and worse.
11:19:14 <Patashu> heraldry vector graphics format
11:19:14 <Phantom_Hoover> Encoding a program into it is just *boring*.
11:19:21 <Phantom_Hoover> No, no, no, no, no.
11:19:24 <fizzie> elliott_: Word32 to the rescue!
11:19:40 <Phantom_Hoover> Is 3-colouring TE?
11:19:41 <elliott_> fizzie: Kind of redundant, since HashMap will be giving me Ints I think, but sure :P
11:20:00 <elliott_> CakeProphet: Seriously though, is that the results of your process?
11:20:02 <Phantom_Hoover> OK, I am getting really tired of DDG right now.
11:20:03 <Patashu> phantom_hoover: I know wang tiling is
11:20:09 <elliott_> CakeProphet: You've tuned too much for acronyms instead of words.
11:20:14 <CakeProphet> elliott_: my, process?
11:20:18 <Phantom_Hoover> Patashu, yeah, something similar.
11:20:18 <CakeProphet> no. I just made up some acronyms
11:20:20 <elliott_> Phantom_Hoover: Why?
11:20:24 <CakeProphet> to make fun of recent heavy acronym usage.
11:20:24 <elliott_> CakeProphet: I thought that was your script.
11:20:38 <CakeProphet> because #esoteric is all about the acronyms.
11:21:00 <Phantom_Hoover> elliott_, because I searched for '3-colouring' and then '4-colouring' and it gave me colouring books for both; Google has WP's page on graph colouring in first place.
11:21:15 <elliott_> Phantom_Hoover: Well colouring books are good, you know.
11:21:19 <Phantom_Hoover> I don't think this is an isolated incident, although my memory is hazy.
11:21:39 <CakeProphet> elliott_: rest assured it will likely be many days before I get a working version of this word generator
11:21:44 <CakeProphet> I am bad at programming. :P
11:21:47 <elliott_> CakeProphet: I thought you were almost done.
11:22:02 <Phantom_Hoover> Putting WP articles at the top is cute, but not very useful: if I *want* the WP article, I can just type wi<tab> and circumvent DDG's long response times.
11:22:24 <CakeProphet> elliott_: no I've switched the format like 4 times now so I need to recode the generator to match the new file layout.
11:22:43 <elliott_> Phantom_Hoover: Let's be honest, you always want the WP article.
11:22:47 * elliott_ always wants the WP article.
11:23:06 <Phantom_Hoover> elliott_, yeah, so DDG is just adding a long response time.
11:23:10 <fizzie> An ORDBMS is just like a RDBMS except you can inherit tables.
11:23:19 <elliott_> Phantom_Hoover: Well, yes, but the question is whether you'll ever actually use wi<tab>.
11:23:29 <Phantom_Hoover> elliott_, I always use it if I want Wikipedia.
11:23:50 <oerjan> <Phantom_Hoover> Dammit WP, I need a list of TE problems. <-- you might look for undecidable, it's not precisely the same but includes TE
11:23:53 <Phantom_Hoover> I use it for the Minecraft and DF wikis as well; it's actually one of Chrome's neatest features.
11:24:09 <Phantom_Hoover> http://en.wikipedia.org/wiki/Turing_degree
11:24:19 <elliott_> Phantom_Hoover: Firefox has search keywords too, y'know.
11:24:22 * CakeProphet is working on his Turing degree.
11:24:31 <CakeProphet> requirements are kind of tough though.
11:24:36 <Patashu> What's chrome's magical 'go to wikipedia' feature?
11:24:39 <Phantom_Hoover> elliott_, well, I must have switched before it added them.
11:24:43 <fizzie> I use "wp foo" quite a lot.
11:24:47 <elliott_> Phantom_Hoover: They've been in for years.
11:24:50 <Patashu> ooo
11:24:51 <Patashu> handy
11:24:51 <elliott_> Like, literally since two thousand and four.
11:24:52 <elliott_> At least.
11:24:56 <fizzie> And they've been really there for ages.
11:24:57 <oerjan> <Phantom_Hoover> Is 3-colouring TE? <-- NP-complete
11:25:06 <Phantom_Hoover> elliott_, in that quickly-accessible way?
11:25:12 <elliott_> Phantom_Hoover: "wp foo", sure.
11:25:13 <Phantom_Hoover> And automatic?
11:25:18 <Phantom_Hoover> I never noticed, but OK.
11:25:25 <fizzie> You just make a regular bookmark, give it a keyword-name, and put a %s in the string.
11:25:43 <fizzie> It's worked for... a long time.
11:25:52 <CakeProphet> assuming that my data generator works correctly now I should /never have to do this shit again/
11:26:02 <Phantom_Hoover> fizzie, well yeah, but like I said, Chrome does it automatically, which makes it useful if you have multiple reference sites.
11:27:21 <fizzie> Phantom_Hoover: How does that happen automatically? Who/what defines the abbreviations?
11:27:28 <Phantom_Hoover> I'm not sure.
11:27:44 <oerjan> Phantom_Hoover: probably TE if you use some kind of infinite graph
11:28:02 <fizzie> Bookmark keywords have been there since Firefox 2.0, maybe earlier.
11:28:09 <elliott_> fizzie: It uses bookmark completion.
11:28:15 <Phantom_Hoover> But I never did any kind of manual setup for the DF or MC wikis, and it works, so I suspect that it's recognising MediaWiki or something.
11:28:16 <elliott_> Bookmark<tab> -> search that site.
11:28:18 <elliott_> Erm.
11:28:21 <elliott_> fizzie: Bookmark/history completion.
11:28:37 <Phantom_Hoover> Or whatever elliott_ says, he probably knows more about it
11:28:39 <elliott_> Phantom_Hoover: It's OpenSearch.
11:28:48 <fizzie> elliott_: Fancy-schmancy.
11:29:20 <Phantom_Hoover> Ah.
11:29:27 <CakeProphet> so uh... does keeping my computer cooler make it somehow run faster?
11:29:38 <Phantom_Hoover> Yes.
11:29:43 <CakeProphet> oh good.
11:29:51 <Phantom_Hoover> Lower entropy means better computation.
11:29:55 <Phantom_Hoover> It's basic thermodynamics.
11:30:05 <fizzie> It could be keeping the therman auto-throttling thing offline.
11:30:09 <Patashu> I better clean up my room then
11:30:21 <elliott_> fizzie: Too fancy-schmancy; my "wi" completion isn't WIkipedia. :p
11:30:54 <Phantom_Hoover> It's particularly important if you're searching: the enthalpy change is negative and the entropy change is large and positive, so if the temperatures are too high the reaction ceases to be feasible at all.
11:31:01 <Phantom_Hoover> Erm, s/searching/sorting/
11:31:27 <Patashu> But wait what if I'm using a quantum computer
11:31:27 <fizzie> My "wp" completion probably especially wouldn't be, and I've been trained to use that instinctively.
11:31:31 <CakeProphet> so quicksort doesn't work at high temperatures?
11:31:35 <Phantom_Hoover> No.
11:31:40 <CakeProphet> :P
11:33:05 <Phantom_Hoover> (I hope you realise that this is all bullshit.)
11:33:42 <elliott_> fizzie: OTOH, you can explicitly manage search engines.
11:33:47 <elliott_> fizzie: Fill in percent-s strings, etc.
11:34:04 <elliott_> fizzie: And give them keywords.
11:34:23 <CakeProphet> Phantom_Hoover: it became increasingly obvious.
11:34:28 <elliott_> fizzie: Yep, you can set Wikipedia's keyword to wp.
11:34:35 <elliott_> fizzie: Then "wp foo" does the expected.
11:34:38 <elliott_> As does wp<tab>foo.
11:34:41 <Phantom_Hoover> CakeProphet, it's perfectly valid chemistry, I should point out.
11:35:02 <Phantom_Hoover> http://en.wikipedia.org/wiki/List_of_undecidable_problems
11:35:15 <Phantom_Hoover> OK guys, we need to encode one of these into a coat of arms elegantly.
11:35:30 <Patashu> Is there a coat of arms for 'prime number'?
11:35:44 <oerjan> <Patashu> But wait what if I'm using a quantum computer <-- there is "quantum entropy". it's the same except no one understands it.
11:35:56 <elliott_> `addquote <oerjan> <Patashu> But wait what if I'm using a quantum computer <-- there is "quantum entropy". it's the same except no one understands it.
11:35:58 <Patashu> oerjan: By adding quantum before any word I can make the reader's brain turn off
11:35:58 <HackEgo> 711) <oerjan> <Patashu> But wait what if I'm using a quantum computer <-- there is "quantum entropy". it's the same except no one understands it.
11:36:12 <elliott_> `quote
11:36:14 <HackEgo> 74) <fungot> i am sad ( of course by analogy) :) smileys)
11:36:16 <elliott_> `quote
11:36:16 <elliott_> `quote
11:36:17 <elliott_> `quote
11:36:17 <elliott_> `quote
11:36:18 <elliott_> `quote
11:36:18 <elliott_> `quote
11:36:19 <elliott_> `quote
11:36:21 <Phantom_Hoover> oerjan, people understand normal entropy?
11:36:24 <HackEgo> 503) <Taneb> I can't afford one of those! <Taneb> A grandchild, not a laser printer
11:36:30 <HackEgo> 378) <oklopol> esperanto is just spanish with a diarrhea
11:36:32 <HackEgo> 451) <elliott> It's a Toy Story character, you uncultured fuck.
11:36:38 <oerjan> Phantom_Hoover: some claim to.
11:36:44 <HackEgo> 665) <elliott> Second Life is like... real life, modelled by people who've READ about real life, you know, in books.
11:36:45 <HackEgo> 567) <itidus20> what i mean by afk is <itidus20> i can see how dumb it is.. ill make a coffe instead
11:36:45 <HackEgo> 236) <tswett> elliott: just to bring you up to speed, you are now my baby nephew. <olsner> wtf, elliott is a nephew and his uncle is here? <nooga> what <tswett> Heck yes I'm elliott's uncle.
11:36:45 <HackEgo> 572) <monqy> the classic "souls have mass" hypothesis
11:37:03 <elliott_> <HackEgo> 567) <itidus20> what i mean by afk is <itidus20> i can see how dumb it is.. ill make a coffe instead
11:37:07 -!- ais523 has quit (Read error: Connection reset by peer).
11:37:07 <elliott_> Phantom_Hoover: Possibly even an instant coffee.
11:37:17 <Phantom_Hoover> When was 572 added, I remember that being a fun conversation.
11:37:24 <elliott_> `log the classic "souls have mass" hypothesis
11:37:48 <HackEgo> 2011-08-09.txt:22:55:56: <elliott> `addquote <monqy> the classic "souls have mass" hypothesis
11:37:53 <elliott_> >_<
11:37:53 <CakeProphet> I believe the toy story character thing was directed at me.
11:37:57 <elliott_> `logurl 2011-08-09.txt:22:55:56:
11:37:59 <HackEgo> http://codu.org/logs/log/_esoteric/2011-08-09
11:38:01 <elliott_> Phantom_Hoover: Somewhere thereabouts.
11:38:08 <elliott_> 22:55:28: <monqy> the classic "souls have mass" hypothesis
11:38:08 <elliott_> Yes.
11:38:16 <elliott_> It's > #jesus.
11:38:20 <elliott_> s/> //
11:38:53 <Patashu> new idea
11:38:55 <Patashu> souls == higgs boson
11:38:59 <Patashu> when someone dies they become massless
11:39:02 <Patashu> and float away from the planet
11:39:16 -!- ais523 has joined.
11:39:17 <Phantom_Hoover> Makes sense.
11:39:18 <elliott_> http://en.wikipedia.org/wiki/File:Sphaerodactylus_parthenopion_004.jpg
11:39:21 <elliott_> Phantom_Hoover: oh ;my god
11:39:25 <elliott_> it is so small
11:39:28 <Phantom_Hoover> So the LHC is basically voodoo?
11:39:52 <Phantom_Hoover> elliott_, awwwwwwwwwwwwwwww (wasn't that on an Attenborough programme?)
11:39:55 <Patashu> The LHC is attempting to break into the afterlife and bring back a soul
11:40:02 <elliott_> Phantom_Hoover: Wasn't everything on an Attenborough program.
11:40:03 <Phantom_Hoover> But WHOSE
11:40:09 <elliott_> Phantom_Hoover: I mean he has to be running out of animals by now.
11:40:12 <elliott_> Also Higgs'.
11:40:16 <elliott_> They're going to ask him if his boson is real.
11:40:22 <Phantom_Hoover> elliott_, aren't we all on an Attenborough programme in some sense?
11:40:26 <elliott_> `quote monad tutorial
11:40:29 <HackEgo> 477) <Phantom_Hoover> oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life.
11:40:32 <Phantom_Hoover> Higgs is still alive you idiot.
11:40:36 <Patashu> LOL
11:40:37 <elliott_> Phantom_Hoover: Yes, exactly.
11:40:42 <elliott_> Phantom_Hoover: That's the genius of it.
11:40:54 <elliott_> Patashu: What was that lol at?
11:40:58 <Patashu> higgs being alive
11:41:00 <Phantom_Hoover> I can get a bus and ask him right now if you want.
11:41:03 <Patashu> so it's like
11:41:03 <elliott_> "Higgs was born in Wallsend, Newcastle upon Tyne."
11:41:04 <Patashu> instant murder
11:41:05 <elliott_> Phantom_Hoover: Oh my god.
11:41:07 <Patashu> to grab his soul
11:41:18 <Patashu> science........can kill you............
11:41:20 <elliott_> Phantom_Hoover: Anyway no it grabs his soul from the Omega Point.
11:41:29 <elliott_> Phantom_Hoover: When he knows whether the Higgs boson is real or not.
11:41:30 <elliott_> Duh.
11:41:44 <elliott_> This then ensures with causality etc. that his soul will exist at the time of the Omega Point, granting him immortality.
11:41:48 <Phantom_Hoover> Hell, I'm going to King's Buildings later today; I can ask him then.
11:41:55 <elliott_> Phantom_Hoover: Do you understand me.
11:42:41 <elliott_> oerjan: so is ():^ underload TC if stack elements have some arbitrary runtime maximum length >:)
11:43:28 -!- ais523_ has joined.
11:43:30 <ais523_> `quote
11:43:33 <HackEgo> 611) <Gregor> ANOTHER THUNDERSTORM, INDIANA? <Gregor> That's three today. <elliott> Gregor: It FEELS like it should be a really simple fix :P
11:43:36 <oerjan> yes. there are no commands to construct truly new elements, after all
11:43:42 -!- ais523 has quit (Disconnected by services).
11:43:44 -!- ais523_ has changed nick to ais523.
11:43:51 <elliott_> oerjan: oh right
11:44:00 <elliott_> `delquote 611
11:44:03 <HackEgo> ​*poof*
11:44:37 <oerjan> the context police has spoken
11:45:18 <fizzie> Oh, I thought it was just the quality police.
11:46:29 <ais523> are out-of-context quotes not allowed?
11:46:32 <ais523> `quote
11:46:34 <HackEgo> 660) <shachaf> elliott: GHC bug? Come on, it's the parentheses. <shachaf> The more parentheses you add, the closer it is to LISP, and therefore the more dynamically-typed.
11:46:47 <ais523> `quote
11:46:49 <HackEgo> 652) <Gregor> IF YOU DON'T SHUT UP I'LL K-LINE YOU TO THE AETHEREAL PLANE
11:46:56 <ais523> we need a `recentquote, really
11:46:58 <elliott_> `delquote 652
11:47:00 <ais523> that's weighted towards more recent quotes
11:47:01 <HackEgo> ​*poof*
11:47:04 <ais523> `quote
11:47:06 <HackEgo> 91) <apollo> Actually, he still looks like he'd rather eat her than have sex with her.
11:47:14 <elliott_> It's so low-numbered.
11:47:17 <elliott_> Do I dare remove it for low quality?
11:47:21 <ais523> elliott_: yes
11:47:24 <ais523> `quote
11:47:25 <elliott_> `delquote 91
11:47:27 <HackEgo> 569) <ais523> oerjan: I'm not imaginative enough to write truly great slash fiction
11:47:37 <elliott_> HackEgo: Come on, go poof.
11:47:39 <HackEgo> ​*poof*
11:47:39 <elliott_> You are the worst bot.
11:47:41 <elliott_> Thank you.
11:47:54 <ais523> `quote
11:47:56 <HackEgo> 219) <olsner> DAMN YOU, I'm leaving <Vorpal> olsner, FINALLY NOTHING BETWEEN ME AND WORLD DOMINATION!
11:48:06 * elliott_ reboots for esolang duties.
11:48:11 <ais523> is the metajoke there intentional?
11:48:14 <ais523> `quote
11:48:16 <HackEgo> 118) <Keiya> I want a patent on common sense <Keiya> It wouldn't get me much though >_>
11:48:17 -!- elliott_ has quit (Read error: Connection reset by peer).
11:49:01 -!- elliott_ has joined.
11:49:14 <Sgeo|web> Note to self: Read manual before deciding that an arbitrary IDE is crap
11:49:18 <ais523> why does esolanging require rebooting?
11:49:27 <elliott_> ais523: Esolang duties, not esolanging.
11:49:30 <ais523> Sgeo|web: no need, /all/ IDEs are crap
11:49:43 <ais523> elliott_: what's the distinction, and why does it require rebooting?
11:49:55 <Sgeo|web> ais523: I was expecting something like that, but from elliott_
11:50:02 <ais523> I was just pre-empting it
11:50:25 <ais523> hmm, if such responses are so predictable, is there even, platonically, a need to make them?
11:50:25 <elliott_> Unix is a fairly good IDE.
11:50:38 <ais523> elliott_: I disagree with the I part of "IDE"
11:50:38 <elliott_> ais523: the distinction will be obvious soon :-)
11:50:46 <ais523> it is a good development environment, though
11:50:47 <elliott_> ais523: Unix is very interactive.
11:50:57 <ais523> the I stands for "integrated", doesn't it?
11:51:03 <CakeProphet> `quote`
11:51:05 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: quote`: not found
11:51:05 <CakeProphet> `quote
11:51:07 <HackEgo> 607) <fizzie> They're (according to current plans/rumours) going to release a grand total of approximately 1.1 MeeGo devices; the N9, plus the N950 "developers only" phone, which I'm counting as 0.1 because (even though it is a MeeGo device) it's not going to actually be released.
11:51:09 <elliott_> ais523: oh, right
11:51:17 <elliott_> ais523: well, Unix is pretty integrated, if everyone would follow its philosophy
11:51:33 <oerjan> <ais523> are out-of-context quotes not allowed? <-- not if the lack of context makes them unfunny
11:52:08 <fizzie> The slowest possible recent-weighted quote; manages to make it O(N^2) in the number of quotes, after all:
11:52:10 <fizzie> `run allquotes | perl -ne 'print $_ x $n++;' | shuf -n 1
11:52:14 <HackEgo> 642) <ais523> oh no, I think we've managed to mix three metaphors in a way that actually makes sense
11:52:15 <fizzie> But it's a short line.
11:52:21 -!- ais523_ has joined.
11:52:25 <ais523_> <Wikipedia> Integrated development environment, a software application that provides comprehensive facilities to computer programmers for software development
11:52:27 -!- ais523 has quit (Read error: Connection reset by peer).
11:52:33 -!- ais523_ has changed nick to ais523.
11:52:52 <ais523> [12:50] <ais523> the I stands for "integrated", doesn't it?
11:52:53 <ais523> [12:51] <ais523> which is more or less the opposite of the UNIX philosophy
11:53:33 <ais523> elliott_: something that IMO all OS-with-applications combinations need is composability of basic operations to perform more complex tasks on them
11:53:51 <ais523> I'm not sure if doing it UNIX-style with text files is the best method, but so far it's the only one that's been demonstrated to work
11:53:59 <Sgeo|web> Leksah... what exactly is the point of trying to autocomplete me when I'm in a string?
11:54:00 <fizzie> What, the I in UNIX stands for "integrated"?
11:54:08 <ais523> fizzie: no, in IDE
11:54:16 <fizzie> *Ohhhh*.
11:54:19 <ais523> I wasn't aware hat UNIX stood for anything
11:54:20 <fizzie> That makes more sense.
11:54:28 <ais523> *that
11:55:12 <elliott_> ais523: well, it's integrated, because everything can talk to each other
11:55:18 <elliott_> not integrated would be, two tools that can't communicate or operate together
11:55:21 <elliott_> consider, two WIMP applications
11:55:51 <ais523> I always took integrated as meaning that one executable tries to do everything, (possibly delegating Emacs-style, but taking control of the UI of the result)
11:55:56 -!- sadhu has joined.
11:56:01 <sadhu> hello
11:56:26 <ais523> hi
11:57:06 <sadhu> ais523:are you on github?
11:57:31 <elliott_> sadhu: rant incoming
11:57:33 <ais523> sadhu: the people in #esoteric who know me are now likely to be scared of my answer to that question
11:57:53 <ais523> I'm not sure if I have the effort for a proper rant, though
11:57:57 <ais523> I'm not very good at them
11:58:04 <ais523> elliott_: how wide does github render tabs?
11:58:11 <sadhu> lol...i am not #esoteric regular...so i don't know...but what happened?
11:58:15 <elliott_> ais523: as wide as your browser (so four spaces)
11:58:55 <ais523> sadhu: a) I dislike git, b) I dislike github in particular (and use gitorious for hosting git repos, when I happen to have a need to do that)
11:58:59 -!- Vorpal has joined.
11:59:19 <ais523> I grudgingly acknowledge that git is actually usable for about 90% of what people try to use it for, although it makes their life harder for no good reason
11:59:23 <oerjan> comments on a postcard was funny today
11:59:33 <sadhu> so sad u dislike git
11:59:44 <ais523> when I use a VCS through choice, I generally use darcs, although I acknowledge that it's not perfect either
11:59:49 <ais523> just a lot better than git
12:00:03 <elliott_> git is pretty badly designed
12:00:10 <ais523> (which is better than svn, which is better than CVS, which is better than Visual SourceSafe)
12:01:31 * oerjan recalls a reddit (?) discussion where someone claimed that Visual SourceSafe was the only vcs which actually _harmed_ productivity
12:01:45 <oerjan> and there seemed to be general agreement
12:01:58 <ais523> oerjan: it's generally worse, rather than better, than no VCS at all
12:02:15 <ais523> due to its habit of getting corrupted and deleting the files it's meant to version
12:02:16 <Patashu> how bad can it be :downs:
12:02:18 <Patashu> ... what
12:02:20 <Patashu> that bad
12:06:58 <tswett> By the way, elliott_ is now capable of standing up if you hold his hands.
12:07:07 <elliott_> Yaaaay
12:07:33 <tswett> He doesn't really know any words yet. One day, he said "dit" a bunch of times, but unfortunately, there's no such thing as a dit.
12:07:59 <Patashu> So when will elliott be acing the SAT
12:08:30 <ais523> Patashu: confusingly, the term "SAT" is meaningful in both US and UK education, but has a different meaning in each
12:08:41 <Patashu> that is confusing!
12:08:50 <tswett> I dunno. Ten years at the very very least.
12:08:52 <Patashu> how does wikipedia disambiguate it?
12:08:57 -!- DH____ has joined.
12:09:11 <ais523> This article is about the college admissions test in the United States. For the exams in England colloquially known as SATs, see National Curriculum assessment. For other uses, see SAT (disambiguation).
12:09:33 <Patashu> so it doesn't basically
12:09:36 <Patashu> it calls it something else
12:09:43 <elliott_> ais523: my esolang duties are done
12:09:58 <ais523> I /just/ noticed I didn't have my RSS reader open
12:10:02 <ais523> and now, I'm worried as to what I'll find
12:10:07 <ais523> you didn't create an esolang with a spam name again, did you?
12:10:29 <elliott_> no, unfortunately my esolang wheels have not been in motion much as of late
12:11:16 <ais523> ah, aha, you just gainfully decompressed a screenshot
12:11:31 <ais523> (what is the inverse operation to lossy compression called?)
12:11:41 <oerjan> ENHANCE
12:11:43 <elliott_> heh
12:11:47 <elliott_> ais523: technically, I completely changed it :-)
12:11:52 <elliott_> ...but it's prettier now anyway
12:12:03 <elliott_> wow, my snowman looks really grumpy with this Mac's fonts: http://i.imgur.com/tSbiF.png
12:12:27 <Patashu> lossy decompression sounds like what google does, when it only extracts part of its cache for a page
12:12:32 <ais523> not the most effort in drawing a Unicode snowman that I've seen from font designers
12:12:44 <fizzie> There's not even any snow falling.
12:12:54 <elliott_> ais523: what kind of snowman has a fez?
12:12:55 <fizzie> And what's with that skewed hat?
12:12:58 <ais523> Patashu: lossy decompression is also what happens to interlaced images while they're partially loaded
12:13:13 <ais523> elliott_: a Gregor snowman?
12:13:18 <elliott_> ais523: ah.
12:13:21 <Sgeo|web> elliott_: if the snowman was a Doctor...
12:13:25 <ais523> btw, is the underscore significant?
12:13:32 <ais523> or have you just not bothered to remove it?
12:13:37 <elliott_> ais523: Which underscore?
12:13:40 <ais523> you've been elliott_ for a while, now, IIRC
12:13:42 <elliott_> Oh.
12:13:52 <ais523> so I was wondering if it had a meaning
12:13:55 <tswett> elliott_: say. I didn't know all the trolls' names by the end of 5.1. Does that mean you're mad at me?
12:14:02 <elliott_> There appears to be no "elliott" online right now.
12:14:07 <elliott_> So I wonder why my client did this.
12:14:40 <elliott_> tswett: Yes, but you would have to try really, really hard to have a looser grip on the plot than Sgeo|web.
12:14:48 <fizzie> How about gainful compression?
12:15:03 <tswett> elliott_: I dunno; I'm bad at plots.
12:15:04 <elliott_> ais523: by the way, you should just delete [[Programming Languages Glossary]]
12:15:05 <Vorpal> <elliott_> So I wonder why my client did this. <-- maybe there was when you connected but it timed out shortly after or such?
12:15:19 <elliott_> ais523: I'm not sure why Timwi has started filling it in while also maintaining the page is pointless and should be deleted, but it doesn't really mater
12:15:20 <elliott_> matter
12:15:24 <Patashu> fizzie: When saving your image, it looks on google iamge search/google street view to see if it can add more relevant information
12:15:24 <Patashu> ??
12:15:40 <fizzie> Patashu: When saving your image, it adds more artistic merit.
12:15:48 <ais523> elliott_: get him to split it into separate pages, then delete?
12:15:52 <oerjan> <elliott_> So I wonder why my client did this. <-- elliott pinged out a while ago, after elliott_ entered
12:15:52 <Vorpal> heh
12:15:55 <elliott_> ais523: there already are separate pages
12:15:57 <ais523> alternatively, replace the content with an esolang
12:16:07 <elliott_> ais523: apart from definitions of stdin and stdout, which aren't very esolang-related
12:16:33 <Vorpal> oerjan, as I suggested just above
12:16:34 <elliott_> ais523: but the only person who said anything about not deleting it was Taneb, "How about we start putting things in this page? One or the other", which is a pretty bad reason for keeping a page, and there is that "one or the other"
12:16:43 <elliott_> also, I can't be bothered to create an esolang to replace it
12:16:50 <elliott_> ais523: ooh, what if I replace it with a really bad brainfuck derivative
12:16:52 <elliott_> will you delete it then?
12:17:04 <Phantom_Hoover> http://myownscientia.blogspot.com/2011/09/researchers-developing-new-form-of-life.html
12:17:05 <ais523> well, I didn't delete Brainlove, IIRC
12:17:14 <elliott_> ais523: mine will be /even worse/
12:17:16 <Phantom_Hoover> Help I have this urge to study biochemistry.
12:17:23 <Patashu> Wow
12:17:27 <Patashu> I wish I had urges to study
12:17:29 <ais523> elliott_: I still want to make the worst BF derivative myself
12:17:32 <Patashu> Rather than needing to force myself
12:17:36 <Phantom_Hoover> :D
12:17:41 <ais523> or, well, it's going to be a version with command letters permuted
12:17:45 <ais523> *command characters
12:17:48 <ais523> via the null permutation
12:17:53 <Vorpal> elliott_, what about this one: It is brainfuck but with 1 added to the ASCII codepoints for the instructions?
12:17:59 <elliott_> ais523: but brainfuck isn't that bad a language, so it's not a bad BF derivative
12:18:08 <sadhu> elliott_ are you still in high school
12:18:09 <ais523> it's really bad /at/ being a BF derivative
12:18:12 <Vorpal> elliott_, or even better: id(brainfuck syntax)
12:18:15 <sadhu> or maybe KG ?
12:18:35 <ais523> or perhaps I'll make a BF derivative that's completely unrelated to BF, that would be fun
12:18:36 <elliott_> sadhu: I'm actually a fetus.
12:18:41 <Sgeo|web> elliott_: I think I've improved my grip on the plot
12:19:03 * ais523 tries to figure out how that makes sense
12:19:15 <sadhu> elliott_: awesome!
12:19:29 <oerjan> ais523: there was a functional one a while ago...
12:19:58 <Phantom_Hoover> Dammit, I found the Brainlove talk page a month too late.
12:20:02 <ais523> I suppose there's the class of "languages that embed BF", some of which can potentially be quite good
12:20:08 <ais523> Phantom_Hoover: you can just fake dates on it, we won't mind
12:20:13 <Sgeo|web> What about a language that uses the symbols +-<>,.[] but uses them for something completely unrelated
12:20:19 <ais523> it's been done
12:20:35 <Phantom_Hoover> No that would violate the SACRED LAWS OF MEDIAWIKI
12:20:36 <Vorpal> Sgeo|web, sounds like a subset of befunge :P
12:20:43 <Patashu> you know how there are creatures that mimic different creatures? like spider mimics and ant mimics and so on
12:20:48 <Patashu> this is like a programming language mimic
12:20:55 <ais523>
12:21:01 <Patashu> that's trippy. how does such a thing evolve? what biological niche is it filling? we need to film a mockumentary on this
12:21:15 <elliott_> `addquote <Patashu> that's trippy. how does such a thing evolve? what biological niche is it filling? we need to film a mockumentary on this
12:21:17 <HackEgo> 709) <Patashu> that's trippy. how does such a thing evolve? what biological niche is it filling? we need to film a mockumentary on this
12:21:20 <elliott_> CULLING TIME:
12:21:21 <elliott_> `quote
12:21:22 <elliott_> `quote
12:21:22 <elliott_> `quote
12:21:24 <elliott_> `quote
12:21:25 <HackEgo> 236) <Anti-X> i didn't like jquery, until i decided to use it because it made development faster. now i can't go back to women...
12:21:25 <HackEgo> 111) <Warrigal> Making a small shrine to Lawlabee in my basement is something I should get around to at some point.
12:21:26 <elliott_> `quote
12:21:29 <HackEgo> 77) <coppro> SF.net porn :/ <ehird> Oh yeah, baby, gimme that... bloated download page?
12:21:30 <HackEgo> 514) <Taneb> Look, I often walk my dog through a field with cows in it. And I punched myself in the face once.
12:21:30 <Patashu> wait
12:21:31 <ais523> what could be interesting would be a language that /looked/ like BF, not just used the same symbols
12:21:35 <Patashu> doesn't that quote need context?
12:21:35 <HackEgo> 361) <oklopol> and then there's the slightly annoying one where suddenly, i start rolling forward and i can't stop <oklopol> like i can be having some great sex dream or whatever and then suddenly "oh god not this again" <oklopol> (i go "not this again" but not necessarily realize it's a dream)
12:21:41 <fizzie> Remember to account for changing line numbers when poofing.
12:21:42 <Phantom_Hoover> Patashu, it's quite simple, AFAIK.
12:21:43 <elliott_> Patashu: no, it's the mockumentary part that's funny
12:21:46 <ais523> so you could recognise [-] and so on
12:21:47 <elliott_> `delquote 236
12:21:49 <HackEgo> ​*poof*
12:21:51 <Patashu> mockumentary was a real word
12:21:55 <elliott_> Yes it is.
12:21:59 <elliott_> It's also a funny word in context.
12:22:06 <Patashu> you're the boss
12:22:10 <ais523> and things like [<<+>+>-] loops
12:22:15 <Phantom_Hoover> I mean, you can imagine a spider which raids ant nests; mimicking ants clearly has a survival advantage there.
12:22:17 <ais523> and yet, they had nothing to do with their meanings in BF at all
12:22:25 <Patashu> phantom_hoover: yeah it's shit like that
12:22:30 <elliott_> ais523: the perfect BF derivative is not some immense tower of complexity
12:22:42 <ais523> elliott_: that's not meant to be a perfect BF derivative
12:23:03 <elliott_> it's mimicking the perfect twelve year old just discovering BF at the perfect time with the perfect, equally-matched curiosity, enthusiasm, inexperience, and lack of attention span
12:23:10 <elliott_> like, assuming a perfectly spherical twelve year old
12:23:19 <elliott_> and producing the BF derivative they would produce, under perfect conditions
12:23:27 <elliott_> this makes total sense (C) me
12:23:28 <ais523> OK, how about this for worst BF derivative ever: you can write anything you want, as English, and the computer just understands and executes it, but you have to write it as a BF program that outputs the English you want
12:23:42 <ais523> that checks all the boxes for being a really bad esolang
12:23:51 <ais523> somewhere between BF and QWERTY Keyboard Dot Language
12:23:55 <elliott_> ais523: I'm actually laughing.
12:23:56 <Patashu> english is too ill defined. let's make a brainfuck program that outputs C
12:24:00 <ais523> so am I
12:24:01 <Patashu> now there's a language with consistency and oomph
12:24:06 <ais523> but not very loud as there are other people in my office
12:24:08 <tswett> [ ] Is the source code an analog signal?
12:24:14 <elliott_> ais523: Wait, make it as Hungarian instead.
12:24:17 <Patashu> Woah
12:24:21 <elliott_> That's ~random~.
12:24:22 <Patashu> A language with an analog input.......
12:24:27 <Patashu> Oscilloscope?
12:24:30 <ais523> elliott_: but I only know a few words of Hungarian
12:24:37 <elliott_> ais523: perfect
12:24:51 <Sgeo|web> ais523: good reason to switch it to a language you know 0 words of.
12:24:52 <ais523> and I imagine most people don't know any at all
12:24:57 <tswett> Proce is already a language where the storage stuff is analog. The programs themselves are just ASCII text.
12:25:14 <Vorpal> ais523, how come you know any Hungarian words at all?
12:25:20 <Sgeo|web> Ooh, voynich manuscript
12:25:24 <ais523> Vorpal: I've been to Hungary
12:25:27 <Vorpal> ah
12:25:30 <ais523> you tend to be able to deduce some
12:25:39 <tswett> I guess you could have an interpreter written in Proce that takes an analog signal as the program. But you still have to design the language.
12:25:47 <elliott_> ais523: I was hoping you'd learned them for nomic or something.
12:25:59 <oerjan> <elliott_> like, assuming a perfectly spherical twelve year old <-- hey don't mock the poor guy, obesity is hard at that age
12:26:02 <ais523> I have been to very few countries in my life
12:26:07 <ais523> the UK, France, Canada, and Hungary
12:26:30 <elliott_> [http://code.google.com/p/esolang-geom/downloads/list http://code.google.com/p/esolang-geom/downloads/list]
12:26:30 <Vorpal> tswett, what is Proce?
12:26:32 <ais523> <QWERTY Keyboard Dot Language> The above dots say HELLO. I decided not to write all of HELLO WORLD because it would take too long.
12:26:33 * Sgeo|web has only been here and Canada, iirc
12:26:34 <tswett> I suddenly feel the need to go on a trip abroad.
12:26:38 <elliott_> ais523: UUOMWMU award up there
12:26:42 <Sgeo|web> And I was too young to remember anything in Canada
12:26:49 <tswett> North America makes it hard to visit other countries. We only have, like, three here. Europe has fifty.
12:26:59 <Vorpal> Sweden, Denmark, Norway for me.
12:27:06 <Patashu> But you can visit such cultured places as...canada
12:27:12 <tswett> Vorpal: esolangs.org/wiki/Proce or some such.
12:27:13 <Patashu> And such lawless places as mexico where you'll probably be shot
12:27:13 <ais523> elliott_: not completely useless, if the next character isn't a space
12:27:14 <ais523> or a newline
12:27:14 <ais523> but close, I admit
12:27:31 <oerjan> <ais523> elliott_: but I only know a few words of Hungarian <-- just fake it with hungarian notation for the rest
12:27:36 <ais523> oh, QKDL /is/ one of zzo38's
12:27:46 <ais523> I thought i recognised his writing style, but it doesn't seem to be the sort of thing he'd come up with
12:28:04 <Patashu> QKDL?
12:28:17 <Sgeo|web> QWERTY Keyboard Dot Language
12:28:51 <Patashu> ah
12:28:55 <Patashu> shouldn't zzo38 know better?
12:29:10 <Sgeo|web> It is categorized as a joke language
12:29:16 <Phantom_Hoover> <Patashu> shouldn't zzo38 know better?
12:29:24 <Phantom_Hoover> You have talked to zzo, right?
12:29:25 <Sgeo|web> By Keymaker
12:29:52 <ais523> hey, I just found [[Super Stack!]] on random page patrol
12:29:59 <ais523> uncategorized, and not stupid
12:30:02 <Phantom_Hoover> It often seems that if there are two things to know, one of them better, he will know the worse one.
12:30:26 <fizzie> Finland, Sweden, Norway, Denmark, Estonia, Germany, Netherlands, Belgium, France, Switzerland, UK, Italy, Czech Republic, Greece, Russia, Egypt, Tunisia, Thailand, Barbados, Saint Vincent and the Grenadines; and I don't consider I've done much travelling at all, compared to some folks who make a hobby out of it.
12:30:28 <ais523> I'm trying to categorize it now, but am not sure on computational class; it's obviously PDA, and may be TC if there's some trick scope for TCness in there
12:30:30 <Patashu> super stack! seems like it should be isomorphic to a different stack based lang
12:30:32 <Patashu> like forth or something I dunno
12:30:45 <fizzie> (Also "Saint Vincent and the Grenadines" is a silly name for a country.)
12:30:56 <Phantom_Hoover> * Sgeo|web has only been here and Canada, iirc
12:31:03 <Vorpal> fizzie, where is that?
12:31:05 <Phantom_Hoover> This would explain why you didn't know where Scotland was.
12:31:06 <ais523> aha, TC, it has a "cycle" command that lets you use both the top and bottom of the stack
12:31:13 <ais523> even if it doesn't have arbitrary-precision ints (that's not clear)
12:31:27 <Phantom_Hoover> Vorpal, Wikipedia, have you heard of it?
12:31:39 <Vorpal> fizzie,
12:31:42 <Vorpal> err
12:31:49 <Vorpal> Phantom_Hoover,* no, what is it?
12:31:50 <oerjan> A megtúdunk az integerben külföldük nebbene rajtad háromvan köztársaság.
12:32:12 <Phantom_Hoover> oerjan, excuse me this is a xenophobically English-only channel please leave.
12:32:23 <fizzie> Vorpal: It's a group of islands between the Caribbean Sea and the Atlantic Ocean, near the south end of the chain there.
12:32:27 <Patashu> the only programming language we speak here is english
12:32:32 <Vorpal> fizzie, ah
12:32:39 <ais523> oerjan: you used Google Translate for that, right?
12:32:59 <Vorpal> oerjan, hm, Hungarian?
12:32:59 <elliott_> ais523: what's the character code for |?
12:33:01 <oerjan> ais523: nope
12:33:09 <ais523> some other translation service?
12:33:14 <elliott_> `translate A megtúdunk az integerben külföldük nebbene rajtad háromvan köztársaság.
12:33:20 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/json", line 4, in <module> \ data = json.loads(sys.stdin.read().decode('utf-8')) \ File "/opt/python27/lib/python2.7/json/__init__.py", line 310, in loads \ return _default_decoder.decode(s) \ File "/opt/python27/lib/python2.7/json/decoder.py", line 346,
12:33:24 <elliott_> gah
12:33:29 <ais523> elliott_: not sure; I vaguely remember that 62 is the char code for something that may or may not be |, though
12:33:38 <ais523> perhaps 92 if it isn't 62
12:33:41 <Vorpal> weird language to have a short sentence for a stacktrace!
12:33:43 <oerjan> vague memory of my mom's hungarian course
12:33:59 <ais523> 0x7C according to character map
12:34:10 <ais523> `run sh echo $((0x7C))
12:34:12 <HackEgo> sh: Can't open echo
12:34:17 <ais523> `run echo $((0x7C))
12:34:18 <HackEgo> 124
12:34:22 <ais523> elliott_: 124, it seems
12:34:25 <fizzie> 92 would be the one that's 32 below it.
12:34:31 <elliott_> oh, wait, we have {{!}}
12:34:35 <fizzie> The middle of [\] as opposed to {|}.
12:34:37 -!- derdon has quit (Remote host closed the connection).
12:34:49 <fizzie> \, the lowercase |.
12:34:57 <fizzie> Er, the uppercase.
12:34:58 <ais523> yay, uppercase/lowercase punctuation marks
12:35:11 <fizzie> Much as [] are the uppercase {}.
12:35:15 <ais523> let's categorise punctuation mark case by Unicode codepoint & 32
12:35:24 <ais523> regardless of where in Unicode it i
12:35:26 <ais523> *is
12:36:31 <fizzie> ais523: Does that also mean that whenever there are two punctuation marks a, b where a = b^32, they should compare equal in case-insensitive comparisons?
12:36:39 <ais523> I think so
12:36:45 <Patashu> One of these days documentation needs to be made for FlogScript
12:36:53 <elliott_> ais523: You can add to the MW stylesheet easily, right?
12:37:07 <ais523> elliott_: not trivially, but relatively easily
12:37:23 <elliott_> ais523: Can you table.centrefirst td:first-child { text-align: center }? :-P
12:37:29 <ais523> for which skin? all of them?
12:37:35 <elliott_> I don't want to centre every single td by hand, that would be really annoying.
12:37:37 <elliott_> ais523: Yes please.
12:38:34 <ais523> what's the :first-child for?
12:38:36 * elliott_ is improving [[Geompp]]'s presentation.
12:38:39 <elliott_> ais523: Only the first td in a row.
12:38:52 <elliott_> It's widely-supported CSS3.
12:38:54 <ais523> oh, it means "first child of their parent"?
12:38:57 <elliott_> Yes.
12:39:12 <ais523> IIRC there's mediawiki syntax for that already, but it might have been proposed rather than adopted
12:39:14 <ais523> let me check
12:39:43 <elliott_> ais523: our MW is /really old/ :P
12:39:55 <ais523> indeed
12:40:27 <Phantom_Hoover> It is the oldest.
12:40:35 <Phantom_Hoover> Also not TC, which is terrible.
12:40:41 <elliott_> ais523: hmm, maybe I should email Graue and ask him to update MW
12:40:46 <oerjan> s/háromvan/harminc/
12:41:04 <Phantom_Hoover> elliott_, I think I tried that? Or wait, I just asked him to install the LaTeX support.
12:41:20 <ais523> elliott_: yep, doesn't work
12:41:24 <ais523> I'll just add the style
12:41:49 <ais523> elliott_: should I also to the same for th:first-child?
12:41:51 <Sgeo|web> MW is TC now?
12:41:53 <ais523> actually, why not just use th?
12:41:59 <elliott_> ais523: probably; and th bolds
12:41:59 <ais523> Sgeo|web: http://esolangs.org/wiki/Wiki_Cyclic_Tag
12:42:07 <elliott_> ais523: I think you could even do
12:42:12 <elliott_> ais523: table.centrefirst tr :first-child
12:42:14 <elliott_> (note the space before the colon)
12:42:16 <fizzie> Heh, you can use foo:nth-of-type(4n+2) {...} to select every fourth (starting from the second) sibling-element of the same type there are in the tree.
12:42:18 <elliott_> that's probably the cleanest way
12:42:33 <elliott_> fizzie: Have you seen CSSthree's ASCII-art layout DSL?
12:42:37 <ais523> elliott_: yes, I was wondering why no mention of tr
12:43:06 <elliott_> ais523: (and that would handle both td and th)
12:43:30 <ais523> elliott_: CSS updated; bypass your cache, then let me know if it works
12:43:30 <ais523> the actual update takes about a month, because that's the TTL on the cached version, and admin isn't high enough privs to clear the cache
12:43:31 <ais523> of other people's browsers
12:43:32 <ais523> (which is done by changing the URL)
12:43:52 <elliott_> ais523: heh
12:43:56 <elliott_> ais523: that's, umm, problematic?
12:43:59 <ais523> it's shift-reload on most browsers, IIRC
12:44:05 <ais523> elliott_: I said it wasn't trivial
12:44:17 * elliott_ just saves it and works out how to clear Safari's cache
12:44:19 <ais523> but it'll be centered for everyone /eventually/
12:44:23 <ais523> that's good enough, right?
12:44:23 <elliott_> I bet... option-click.
12:44:25 <elliott_> Yep, that did it.
12:44:32 <elliott_> http://esoteric.voxelperfect.net/wiki/Geompp#Operators
12:44:38 <ais523> http://en.wikipedia.org/wiki/Wikipedia:BYPASS#Safari
12:44:40 <elliott_> Now I just need to make the rest of it nice.
12:45:06 <ais523> seems shift-reload on Safari 4 or later; Cmd-R on Safari 3 and earlier
12:45:08 <Phantom_Hoover> Hmm, I need to get icons for Minecraft and Oolite in my games menu.
12:45:17 <elliott_> ais523: you have a superfluous ; :-(
12:45:21 <elliott_> it's a separator, not a terminator
12:45:28 <ais523> it feels like half my talk page responses on Wikipedia were linking WP:BYPASS
12:45:31 <elliott_> heh
12:45:38 <fizzie> elliott_: Wouldn't "table.centrefirst tr :first-child" apply to all elements inside the <tr>? Shouldn't that be "table.centrefirst tr > :first-child" or something?
12:45:42 <ais523> elliott_: it's both, you're allowed it at the end
12:45:47 <elliott_> I'm on Safari 5, which did even more redesigning.
12:45:51 <elliott_> fizzie: No.
12:45:59 <elliott_> fizzie: Implicit asterisk before the :.
12:46:07 <elliott_> So it's any element that is the first child of its parent, that is a child of a tr.
12:46:18 <elliott_> ais523: no, CSS just allows empty statements, I think
12:46:21 <fizzie> elliott_: That's not what I meant. "a b" is "any b that is descendant of a", not "child of a".
12:46:31 <elliott_> ais523: Did you ever work out if we could import the nice wikitable class or not?
12:46:33 <elliott_> fizzie: Oh.
12:46:35 <elliott_> fizzie: Right.
12:46:36 <fizzie> And with the (implicit) asterisk, that's all descendants.
12:46:40 <elliott_> ais523: Change that to table.centrefirst tr > :first-child.
12:46:52 <ais523> elliott_: I think we can't
12:46:53 <ais523> unless it's used on mediawiki.org, in which case we an
12:46:53 <ais523> *can
12:47:02 <elliott_> ais523: it is, I think
12:47:34 <elliott_> yep
12:47:35 <elliott_> http://www.mediawiki.org/wiki/MediaWiki:Common.css
12:47:36 <ais523> elliott_: there's a class called wikitable there, but it seems strangely different
12:47:40 <elliott_> although, hmm
12:47:41 <elliott_> yes
12:47:44 <elliott_> ugh
12:48:10 <elliott_> ais523: just wait until Timwi notices you changed the CSS
12:48:17 <ais523> why?
12:48:29 <ais523> if something really bad will happen, I can change it back and delete the evidence
12:48:53 <elliott_> ais523: he'll start asking for admin privs again :-)
12:49:02 <elliott_> his main argument last time was all the CSS improvements he'd do, after all
12:49:05 <ais523> oh right
12:50:01 <elliott_> I wonder if we could get the Esme guy to join us on IRC.
12:50:06 <elliott_> He was so... inexplicable.
12:50:33 <elliott_> ais523: also, what page title should be used for a language whose name is a NUL byte?
12:50:43 <Sgeo|web> PSOX
12:51:12 <Sgeo|web> [insert not actually witty remark about people hating me here]
12:51:24 <Patashu> Esme is the best language
12:51:44 <Patashu> And of course zzo38 in the talk page for Esme
12:51:45 <Patashu> He he
12:53:21 <Sgeo|web> http://esolangs.org/wiki/User_talk:Dagoth_Ur%2C_Mad_God
12:54:07 -!- ais523 has quit (Ping timeout: 260 seconds).
12:55:35 <fizzie> It takes a certain sort of person to say "please start making sense" to Dagoth Ur.
12:56:06 <elliott_> It's a fairly reasonable request. :p
12:59:11 <Sgeo|web> Eating dinner at 9AM: Good idea or best idea?
12:59:58 <Patashu> Is there an ergonomic reason why websites are always black text on searing pure white?
13:00:08 <elliott_> Patashu: Yes: White on black is worse.
13:00:09 <Patashu> I found a bookmarklet that turns it into white on black and now I use it habitually
13:00:18 <elliott_> Patashu: It really is worse.
13:00:33 <elliott_> Off-black on yellow-ish pale grey is something close to the ideal.
13:00:37 <Patashu> Well when I say white on black it's more like #EEEEEE on black
13:00:40 <Patashu> Hmm
13:00:42 <Patashu> I could accept that
13:00:43 <elliott_> Patashu: Nothing on black is a good idea.
13:00:49 <elliott_> I mean, OK, off-white on dark grey, sure.
13:01:06 <elliott_> But any light on top of black on an LCD is like making every letter a lightbulb.
13:01:48 <Patashu> Hmmmmm
13:04:04 <sadhu> hey anybody know about that 35$ netbook
13:04:19 <Patashu> Does it come with a mcdonalds happy meal
13:04:25 <elliott_> Wasn't that a tablet.
13:04:27 <elliott_> Pretty sure that was a tablet.
13:04:37 <elliott_> sadhu: How's your asm->bf thing getting on?
13:05:11 <sadhu> elliott_: its going nice...i will sort all things out and put it on github and will tell about it here
13:05:21 <elliott_> Cool; can it translate much yet?
13:05:43 <Patashu> how is bf going to emulate sys calls
13:05:53 <elliott_> Patashu: Does it need to?
13:06:03 <elliott_> write() and read() are not hard for stdin and stdout.
13:06:09 <elliott_> Nothing else matters.
13:06:11 <elliott_> Well.
13:06:14 <elliott_> I guess you want an allocator.
13:06:19 <elliott_> But that doesn't need any syscalls in bf.
13:06:28 <sadhu> Patashu: i dont think i will implement all those syscalls but some methods for I/O will be given
13:06:32 <Patashu> ok
13:06:35 -!- pikhq has joined.
13:06:49 -!- pikhq_ has quit (Ping timeout: 255 seconds).
13:08:15 -!- oerjan has quit (Quit: Lateral).
13:08:30 <sadhu> BTW,here is my git repo...maybe you will like that "KeyComb" tool
13:08:32 <sadhu> https://github.com/turiya
13:08:44 <sadhu> i had pretty much fun with that
13:10:53 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
13:16:42 <elliott_> I don't think many people here run Windows
13:17:20 <sadhu> elliott_:me too...i hardly go in it..but i had setup it to dual boot...the other one is FreeBSD
13:23:18 <Vorpal> sadhu, is that x86 asm you are translating to bf? Quite impressive if so.
13:23:26 <Vorpal> What with dealing with segment registers and what not
13:23:40 <Vorpal> err segment selectors
13:24:24 <sadhu> Vorpal:yeah its *like* it....though i have no plans to implement everything but only if it becomes quite popular in esoteric world :)
13:25:09 <Vorpal> sadhu, in what sort of mode? real mode? protected mode?
13:27:28 <sadhu> it can be said like a real mode,but it won't matter much because everything will depend on the brainfuck interpreter for which it generates code...and i don't think bf is complex enough to differentiate between real or protected modes
13:28:40 <Vorpal> sadhu, well it does matter for register access and such iirc
13:28:57 <Vorpal> though that is just a vague memory of how stuff work
13:29:04 <Vorpal> sadhu, also what about x87?
13:29:44 <Sgeo|web> I was biased by the statements of the person who linked to this article, so I can't give an objective opinion, so what are your thoughts on http://www.cringely.com/2011/10/the-second-coming-of-java/ ?
13:30:15 <elliott_> Hey, it's Cringely. That person I ignore and don't remember why.
13:30:20 <sadhu> if i am lucky and crazy enough to implement it then yes... ;)
13:30:31 <elliott_> I suggest you do like I do. Wait, here is a reason, Sgeo|web: That header image is unbelievably terrible.
13:31:10 <elliott_> "In 1998, it was revealed[6][7][8] that Stephens had falsely claimed to have received a Ph.D. from Stanford University and to have been employed as a professor there. Stanford's administration stated that while Stephens had been a teaching assistant and had pursued course work toward a doctoral degree, he had never held a professorship nor had he been awarded the degree. Stephens then stated that while he had received a master's degree from
13:31:10 <elliott_> the department of communications and completed the classes and tests required for the Ph.D., he acknowledged that he failed to complete his dissertation. Asked about the resulting controversy, Stephens told a reporter: "[A] new fact has now become painfully clear to me: you don't say you have the Ph.D unless you really have the Ph.D."[9]"
13:31:13 <elliott_> There's another reason!
13:31:18 <Sgeo|web> elliott_: I.... the person who linked it essentially (though not in those words) called the article stupid. I am inclined to agree.
13:31:22 <elliott_> Good, now I can justify not reading this thing about Java to myself.
13:31:40 <elliott_> Sgeo|web: http://en.wikipedia.org/wiki/Robert_X._Cringely does not say anything about him having any programming knowledge or experience or any kind of CS backgronud at all.
13:31:42 <elliott_> background
13:31:46 <elliott_> I see absolutely no reason to read those words.
13:32:09 <Phantom_Hoover> Help how did I never realise Simon Pegg played Scotty in the last Star Trek film
13:32:18 <elliott_> "JVM’s took care of cleaning up memory and automatically profiling and optimizing our programs — tasks that had to be done by hand back in C++."
13:32:20 <elliott_> Ooh, this is great.
13:32:33 <Sgeo|web> elliott_: tl;dr: Solid State storage makes Ruby and other interpreted languages the bottleneck when it comes to speed, so Java, as it's faster, will make a comeback as the speed becomes noticable
13:32:39 <elliott_> "Under Ruby, we put C++. On top of Ruby we put the Rails web framework. It’s not very common to actually code anything in Ruby. You pretty much only see people coding Ruby while using the Rails framework which governs the whole thing."
13:32:44 <elliott_> You can almost tell he can't program.
13:32:46 <elliott_> By almost, I mean .
13:32:58 <Vorpal> <Sgeo|web> elliott_: tl;dr: Solid State storage makes Ruby and other interpreted languages the bottleneck when it comes to speed, so Java, as it's faster, will make a comeback as the speed becomes noticable <-- that makes zero sense
13:33:00 <Phantom_Hoover> "Using a radical new technology known as 'garbage collection', it rapidly endeared itself to theoreticians and engineers alike."
13:33:08 <elliott_> Vorpal: No, this is the best article.
13:33:12 <Vorpal> unless ruby has terrible IO performance.
13:33:16 <elliott_> Vorpal: It's like the Markov chain version of computing.
13:33:18 <Vorpal> elliott_, right, so bad it is good?
13:33:41 <Sgeo|web> Vorpal: well, it's saying that when IO performance speeds up, the speed of the language itself will dominate considerations
13:33:45 <elliott_> I present my Abbreviated Translation of Cringely's Article "The second coming of Java" from Insane to English:
13:33:46 <elliott_> "The big story here (since from the comments below it apparently wasn’t obvious) is the JVM. Ruby is already migrating to that JRuby as will all similar tools. So far, it just hasn’t mattered that much — but it will."
13:33:48 <elliott_> I am high as a kite.
13:34:46 <Sgeo|web> Oh, I misread it
13:34:56 <Sgeo|web> It's saying that JVM is making a comeback, not Java language
13:35:07 <Sgeo|web> ...did it become a little less insane?
13:35:44 <Sgeo|web> ...or am I misrepresenting the article by saying that it's saying JVM, not Java language, is making a comeback?
13:36:20 -!- MSleep has changed nick to MDude.
13:36:35 <elliott_> OK, I have this horrible, horrible urge to make a Deadfish IDE.
13:36:51 <Vorpal> heh
13:37:16 <Sgeo|web> From the comments: "Databases are not slow and disk access is almost irrelevant. "
13:37:47 <Sgeo|web> Um.... someone please tell that to the Yesod devs? They are storing session data encrypted in cookies partly (but perhaps not entirely) for performance reasons
13:38:11 <fizzie> "web frameworks based on interpreted, dynamic languages only exist at all because disks are just so damned slow" is quite a statement to make.
13:38:12 <elliott_> You should do that for RESTfulness.
13:38:20 <elliott_> Not performance. Performance is just a handy benefit of REST architectures.
13:38:50 <Sgeo|web> Is it safe to say that Seaside is the anti-REST?
13:39:40 <elliott_> Well, not the component parts.
13:39:46 <fizzie> If an architecture is not RESTful, is it proper to call it AGITated?
13:39:49 <elliott_> The dialogue parts not really either, but in their implementation, sure.
13:39:56 <Vorpal> besides I can't think of any directly interpreted language. Most compile to bytecode internally which is then executed. Lisps just execute the AST quite often. Not sure what bash does?
13:40:05 <elliott_> Vorpal: FSVO lisps, often.
13:40:11 <elliott_> bash probably uses regexps or something :P
13:40:17 <Vorpal> probably
13:40:20 <Vorpal> would explain the speed
13:41:00 <Vorpal> or rather, lack of same
13:42:08 <fizzie> I'm reasonably sure there was something that really interpreted the textual source all the time (did jumps by changing the pointer to the source text etc.) but I can't recall what it was.
13:42:15 <fizzie> Maybe it was just a bad esolang interpreter or something.
13:42:26 <fizzie> Maybe it was fungot's Underload interpreter. :p
13:42:27 <fungot> fizzie: i am just as confused. you, in that line, that i have gone totally wanting, and then you can choose fnord, but don't want to get somewhere
13:42:54 <elliott_> I think it's time for everyone to admire:
13:42:55 <elliott_> http://esoteric.voxelperfect.net/wiki/Deadfish#C.2B.2B_templates
13:43:06 <elliott_> I mean, come on, I am so good.
13:43:32 <fizzie> Even TI-BASIC has a bytecode, of sorts. (Though it's mostly just turning command words into tokens.)
13:43:46 <elliott_> fizzie: Well, there's BashForth. :p
13:44:26 <fizzie> "In Tcl, everything is a string—sort of. Tcl 8.x allows you to write scripts which pretend that everything is represented as a string, while it silently uses a dual-ported object system to cache native types." <- oh, it no longer really is all strings?
13:45:58 <elliott_> fizzie: They're strings, cached as other things behind the scenes.
13:46:06 <elliott_> fizzie: It's like a JIT, if JITs were... strings.
13:49:43 <Vorpal> fizzie, well, befunge93 interpreters could interpret the textual data after loading it into an array. Would even be a quite sensible way to implement a simple one
14:09:56 * elliott_ briefly re-reboots.
14:10:07 -!- elliott_ has quit (Remote host closed the connection).
14:14:20 -!- elliott_ has joined.
14:16:26 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:26:14 -!- pikhq_ has joined.
14:26:16 -!- pikhq has quit (Ping timeout: 260 seconds).
14:36:42 -!- sadhu has quit (Quit: Leaving).
14:38:56 -!- copumpkin has joined.
14:52:31 <Phantom_Hoover> For reasons I cannot comprehend my right ear is incredibly hot.
14:52:34 <Gregor> `addquote <elliott> fizzie: It's like a JIT, if JITs were... strings.
14:52:36 <HackEgo> 709) <elliott> fizzie: It's like a JIT, if JITs were... strings.
14:52:59 <Gregor> Phantom_Hoover: You autoaurophilic creep.
14:54:01 <Vorpal> btw it was -5 C this morning.
14:54:03 <elliott_> Time for another purge.
14:54:06 <elliott_> `quote
14:54:07 <elliott_> `quote
14:54:08 <elliott_> `quote
14:54:08 <HackEgo> 465) <Gregor> decrypt 'illustrates the "can do" approach of conservatism in a patriotic way'
14:54:09 <elliott_> `quote
14:54:10 <elliott_> `quote
14:54:11 <HackEgo> 374) <pikhq> o.O <pikhq> There's a birth defect which results in the formation of a cloaca. <Gregor> It's called "not being a mammal" :P
14:54:12 <HackEgo> 11) <Lil`Cube> wouldn't that be considered pedophilia? <Quas_NaArt> No. They all go by stage names.
14:54:13 <HackEgo> 342) <catseye> wow, thinkgeek really makes me hate being alive
14:54:13 <HackEgo> 644) <itidus20> according to physics and maths can we theoretically have a box with infinite cookies inside?
14:54:23 <elliott_> Hmmmmm
14:54:28 <elliott_> `delquote 11
14:54:31 <HackEgo> ​*poof*
14:54:35 <elliott_> Gregor: Think we just gotta face up to the fact that your early Sine quotes are terrible
14:54:39 <Phantom_Hoover> This is seriously getting uncomfortable.
14:54:51 <elliott_> Phantom_Hoover: Try setting fire to it.
14:54:58 <elliott_> `pastequotes
14:55:00 <Phantom_Hoover> Maybe if I got a little spray bottle of water— OH DEAR GOD I'VE TURNED INTO MOSS
14:55:01 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26214
14:55:11 <elliott_> Gregor: PLEASE FIX THOSE FUCKING HTTP HEADERS YOU PIECE OF SHIT
14:55:35 <Phantom_Hoover> `delquote 3, unquestionably.
14:55:37 <HackEgo> No output.
14:55:48 <Phantom_Hoover> `quote 3
14:55:49 <elliott_> Phantom_Hoover: Three was not in that list.
14:55:50 <HackEgo> 3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order.
14:55:55 <elliott_> Don't.
14:56:00 <elliott_> That is not the way of the purging.
14:56:04 <Phantom_Hoover> But... it's a terrible qquote.
14:56:15 <elliott_> Phantom_Hoover: It's funnier than average, and that says something.
14:56:21 <elliott_> Phantom_Hoover: But the early quotes only rarely come up.
14:56:32 <Gregor> ... dafuq? That's hg giving the wrong headers, not me.
14:56:36 <elliott_> There's a lot more non-early quotes and those have a lot of chaff, which is my purge method is best :P
14:56:39 <elliott_> Gregor: It's been happening for AGES.
14:56:43 <elliott_> Gregor: `url too.
15:00:24 <Phantom_Hoover> `quote 359
15:00:26 <HackEgo> 359) <oklopol> and then there's the slightly annoying one where suddenly, i start rolling forward and i can't stop <oklopol> like i can be having some great sex dream or whatever and then suddenly "oh god not this again" <oklopol> (i go "not this again" but not necessarily realize it's a dream)
15:01:11 <Phantom_Hoover> Future oklopol: but the sex part doesn't necessarily stop?
15:01:49 <Vorpal> 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop <-- how is that funny?
15:02:07 <Vorpal> besides it didn't taste very good (the topic was freeze dried ice cream)
15:02:49 <elliott_> Vorpal: Oh come on, you already spent about ten hours deleting it after multiple people kept putting it back.
15:03:00 <elliott_> We, as a community, have decided that we want that quote, if only to irritate you slightly.
15:03:14 <elliott_> Also can I have some.
15:03:18 <Vorpal> elliott_, did I? doubtful. I'm not that persistent
15:03:19 <elliott_> Was it like nougart.
15:03:23 <elliott_> And yes, you really did.
15:16:22 -!- pikhq has joined.
15:16:44 -!- pikhq_ has quit (Ping timeout: 258 seconds).
15:20:14 <Gregor> ncdu
15:20:19 <Gregor> So glad I finally found that package.
15:20:27 <Gregor> Console equivalent of kdirstat, filelight etc.
15:20:39 <Gregor> My ultimate plan to never use graphical applications continues.
15:22:47 * elliott_ does not understand why you would want to replace a WIMP application with an Xorg backend with a WIMP application with a very limited curses backend.
15:23:09 <elliott_> I can definitely understand replacing a WIMP application with a composable tool, but curses ain't that.
15:24:08 -!- ive has joined.
15:32:35 -!- Ngevd has joined.
15:32:40 -!- Ngevd_ has joined.
15:32:48 <Ngevd> Great
15:32:56 <Ngevd> I connected twice and I'm using my old client
15:32:57 <Ngevd> brb
15:33:02 -!- Ngevd_ has quit (Read error: Connection reset by peer).
15:33:03 -!- Ngevd has quit (Read error: Connection reset by peer).
15:33:33 -!- Ngevd has joined.
15:33:40 <Ngevd> Now I've got that sorted
15:33:44 <Ngevd> Here comes the important bit
15:33:46 <Ngevd> Hello!
15:36:38 <Ngevd> Don't CTCP VERSION me!
15:36:41 <Ngevd> It's rude!
15:36:44 <Ngevd> You can just ask!
15:36:48 <Phantom_Hoover> http://twitter.com/#!/qntm/statuses/124529807865286656
15:37:01 <Phantom_Hoover> I HATE YOU I WAS PROCRASTINATING ON LOOKING AT THAT VERY DOCUMENT AAAAAAAAAAAAA
15:39:33 -!- ais523 has joined.
15:39:56 <Phantom_Hoover> http://www.irregularwebcomic.net/3183.html
15:40:15 <Ngevd> I had that page open already
15:40:15 <Phantom_Hoover> And IWC's plot was coming very near to actually progressing.
15:40:23 <elliott_> Phantom_Hoover: I...
15:42:03 <elliott_> Phantom_Hoover: I can only conclude that IWC's plot will conclude with DMM going on a canonical yet real-world attempt to create alt.fan.irregularwebcomic.
15:42:16 <elliott_> Each comic will be an update on this attempt.
15:42:20 <elliott_> When he succeeds, the comic will end.
15:42:21 <Ngevd> Shall we beet him to it?
15:42:27 <elliott_> Yes, let us beet him to it.
15:42:37 <Ngevd> Oh, you know what I meant
15:42:39 <elliott_> ais523: Oi, how do you make Usenet groups? It's a post and no-one has to challenge it or something, right?
15:42:42 <Ngevd> Don't make fun
15:42:49 <elliott_> ais523: And then you have to convince everyone to route it?
15:43:10 <ais523> elliott_: the only thing you need to do is to convince everyone to route it
15:43:18 <ais523> there is a reasonably established process for doing so, though
15:43:30 <elliott_> ais523: how likely is it to succeed?
15:43:36 <ais523> which if not followed, is unlikely to result in the creation of a group
15:43:43 <elliott_> heh
15:43:44 <ais523> IIRC, there's a group somewhere for debating the creation of new groups
15:45:19 <elliott_> does anyone have a good approximation for what a book's paper looks like under standard yellow-ish light?
15:45:23 <ais523> and if it's agreed there that it makes sense for the group to exist, there's an automated please-route-this-group message you can send out
15:45:23 <ais523> and the servers tend to honour it
15:45:24 <ais523> if it was approved beforehand
15:45:26 -!- ais523_ has joined.
15:45:27 -!- ais523 has quit (Remote host closed the connection).
15:45:29 <elliott_> it's light beige, I'm just not sure which light beige
15:45:30 <ais523_> [16:43] <ais523> IIRC, there's a group somewhere for debating the creation of new groups
15:45:31 <ais523_> [16:44] <ais523> and if it's agreed there that it makes sense for the group to exist, there's an automated please-route-this-group message you can send out
15:45:44 <elliott_> What if I just send that without asking? :-)
15:46:40 <ais523_> [16:44] <ais523> and the servers tend to honour it
15:46:40 <ais523_> [16:44] <ais523> if it was approved beforehand
15:46:41 -!- ais523_ has changed nick to ais523.
15:46:48 <ais523> typically, some servers will honour it, most won't, IIRC
15:47:51 <ais523> also, people are rather more tolerant of requests to route groups in alt.
15:49:09 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/lc0rk/do_bears_have_elbows/
15:49:13 <Phantom_Hoover> Actual best question.
15:49:52 <ais523> elliott_: for the alt.* hierarchy, alt.config is the place where you try to convince people to accept group creation messages
15:50:20 <elliott_> Phantom_Hoover: Yes.
15:50:23 <ais523> ooh, useful FAQ: http://www.faqs.org/faqs/alt-creation-guide/
15:54:22 <elliott_> > length "irregularwebcomic"
15:54:22 <lambdabot> 17
15:54:28 <elliott_> o the group name can convey more meaning than just what
15:54:29 <elliott_> can fit in 14 letters. (e.g. alt.music.monkees vs.
15:54:29 <elliott_> alt.monkees)
15:54:33 <elliott_> ais523: sounds like it may be a hopeless cause
15:54:47 <Ngevd> alt.fan.iwc
15:54:50 <Ngevd> IT IS THE ONLY WAY
15:54:55 <ais523> yep, weird abbreviations get used sometimes as a result
15:55:03 <ais523> also, it seems very specific to have a newsgroup for one webcomic
15:55:05 <ais523> they're normally wider than that
15:55:10 <elliott_> ais523: yes, but it's _prophesised_
15:55:11 <ais523> (e.g. one about webcomics in general)
15:56:07 <ais523> correct naming would be something like alt.webcomic.irregular, probably with an extra component in there somewhere
15:56:20 <ais523> under the same hierarchy as other webcomics, if they even have one
15:56:59 * ais523 checks if there is one
15:58:28 <Ngevd> brb, tesco
15:58:29 -!- Ngevd has quit (Quit: I'm a cuboid!).
16:01:49 -!- ais523 has quit (Ping timeout: 256 seconds).
16:04:11 <elliott_> `quote
16:04:11 <elliott_> `quote
16:04:12 <elliott_> `quote
16:04:13 <elliott_> `quote
16:04:15 <elliott_> `quote
16:04:17 <HackEgo> 56) <GregorR> ??? <GregorR> Are the cocks actually just implanted dildos? <GregorR> Or are there monster dildos and cocks? <GregorR> Or are both the dildos and cocks monster?
16:04:22 <HackEgo> 517) <elliott> Do one better! Pretend to be an idiot until YOU DIE.
16:04:24 <HackEgo> 326) <oklopol> shit would make great currency, because everyone would have it and you could literally be filthy rich
16:04:27 <HackEgo> 161) <cheater99> you don't have an urethra, you're a girl.
16:04:27 <HackEgo> 386) <crystal-cola> 3 = 7/2
16:05:22 -!- monqy has joined.
16:05:29 <Phantom_Hoover> `delquote 161
16:05:32 <HackEgo> ​*poof*
16:05:39 <elliott_> the harsh judgement process
16:06:21 <monqy> bad quotes
16:06:35 <elliott_> Let's have another round of judgement.
16:06:35 <elliott_> `quote
16:06:36 <elliott_> `quote
16:06:37 <elliott_> `quote
16:06:39 <elliott_> `quote
16:06:39 <HackEgo> 666) <Gregor> But whereas the Zune UI makes one think "I want to kill myself", the Windows CE UI makes one think "I want to kill myself, but first kill my parents as punishment for bringing into this world someone who would one day own a Windows CE device."
16:06:41 <elliott_> `quote
16:06:41 <HackEgo> 143) <Aftran> I have a feeling iPods still beat me.
16:06:43 <HackEgo> 550) <fungot> fizzie: i, myself, will bring an end to all.
16:06:45 <HackEgo> 585) <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
16:06:51 <HackEgo> 342) <elliott> ais523: quick, say something funny <oklopol> something funny hagrea:D <oklopol> can'tä sopt laughitn
16:06:58 <elliott_> `delquote 143
16:07:01 <HackEgo> ​*poof*
16:07:04 <monqy> rip
16:07:07 <elliott_> It's like natural selection, except you're just killing the weak.
16:13:50 <elliott_> Gregor: Deewiant: I remembered that iTunes had that thing to stream shit over WiFi, so I looked into it and the iPhone can do it, and it just requires a bunch of jailbreaking and painstaking, awful VPN crap setup to get it to work over threegee :P
16:13:55 <elliott_> So what I talked about is TECHNICALLY POSSIBLE
16:14:28 <elliott_> It's probably a lot easier with Android but I had no such epiphany about an Android app.
16:21:41 -!- Jafet has quit (Quit: Leaving.).
16:21:43 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
16:26:57 <elliott_> Let's do this again.
16:26:58 <elliott_> `quote
16:26:59 <elliott_> `quote
16:26:59 <elliott_> `quote
16:27:01 <elliott_> `quote
16:27:02 <HackEgo> 267) <oklopol> oerjan: also actually A(4, 4) is larger than any other integer, i learned this the other day when i was reading about this algo, it had complexity O(n a^-1(n)) = O(n a^-1(4))
16:27:02 <HackEgo> 428) <oklopol> yes i use the services of a psychic, but i'm considering getting a live one since stuff like "hello $name, your first name $first_name has |$first_name| letters, so by using numerology we can tell ..." is getting kind of boring
16:27:03 <elliott_> `quote
16:27:06 <HackEgo> 481) <ais523> the thing about modern semiconductor design is, 0s are more powerful as 1s
16:27:07 <HackEgo> 495) <oklopol> you know that thing in the movies where they put a pillow on someone's face and try to suffocate them <oklopol> that doesn't work. <oklopol> we tried that with my ex once, but we just couldn't kill each other that way
16:27:14 <HackEgo> 504) <Gregor> I have a WRT120N <fizzie> Gregor: The WRT160NL has 40 units more of... stuff. Plus an L.
16:27:46 <elliott_> None of those are that bad.
16:27:53 <Gregor> OH NOOOOOOOOOOO
16:27:58 <elliott_> So they stay.
16:28:05 <elliott_> The last one is the worst out of them though.
16:28:09 <elliott_> I like how they were in strictly ascending order.
16:32:05 <elliott_> Gregor: BTW, I might get around to that Transactional HackEgo(tm) thing sometime soon.
16:32:21 <Gregor> Sure you will.
16:32:39 <elliott_> Gregor: Is this more of your "mockery is the only way to ensure victory" things?
16:32:44 <Gregor> Yup
16:33:02 <Gregor> With no one saying you can't, you won't.
16:33:19 <elliott_> It's likely :P
16:37:41 <Vorpal> oblivon's alchemy is quite amazing. I managed to create a poison of cure poison. Not sure how.
16:38:40 <Vorpal> also there is a poison named "Restore Magicka" here... but the tooltip indicates no such effect. It is silence for 12 seconds...
16:40:46 -!- Ngevd has joined.
16:41:07 <Ngevd> elliott_, can you recommend me a resturant in Hexham?
16:41:15 <Ngevd> Except spelt correctly
16:43:40 <Ngevd> No wait, think about it and tell me later
16:43:41 -!- Ngevd has quit (Client Quit).
16:44:53 -!- Ngevd has joined.
16:44:57 <Ngevd> Thought about it yet?
16:45:02 <Ngevd> Also, hello!
16:47:39 -!- Ngevd has quit (Read error: Connection reset by peer).
16:47:54 <Gregor> Wowsa
16:48:06 -!- Ngevd has joined.
16:49:15 <monqy> hi
16:49:30 <Ngevd> Hello!
17:01:08 -!- Ngevd has quit (Read error: Connection reset by peer).
17:01:34 -!- Ngevd has joined.
17:02:27 <Madoka-Kaname> > f x = x : f * 2
17:02:28 <lambdabot> <no location info>: parse error on input `='
17:03:26 <Madoka-Kaname> > (\f -> f f) (\f x -> x : f * 2) 1
17:03:27 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> t1 -> t2
17:04:41 <elliott_> > let f x = x : f * 2 in ()
17:04:42 <lambdabot> Couldn't match expected type `[a]' against inferred type `a -> t'
17:04:50 <elliott_> > let f x = x ++ f * 2 in ()
17:04:51 <lambdabot> Occurs check: cannot construct the infinite type: m = m -> t
17:04:56 <elliott_> > let f x = x + f * 2 in ()
17:04:57 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> t
17:05:04 <elliott_> > let f x = fromIntegral x + f * 2 in ()
17:05:05 <lambdabot> Occurs check: cannot construct the infinite type: t = a -> t
17:05:13 <elliott_> > let f x = truncate x + f * 2 in ()
17:05:14 <lambdabot> Occurs check: cannot construct the infinite type: t = a -> t
17:05:16 <elliott_> Bah.
17:05:20 <Ngevd> It's because you're multiplying a function by 2?
17:05:27 <elliott_> That can work.
17:05:28 <Madoka-Kaname> > fix fix (\x -> 1:last x)
17:05:29 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> a
17:05:38 <Madoka-Kaname> > fix (\x -> 1:(last x)*2)
17:05:38 <lambdabot> Occurs check: cannot construct the infinite type: t = [t]
17:06:06 <Madoka-Kaname> > fix (\x -> (last x*2):x) 1
17:06:07 <lambdabot> Couldn't match expected type `t1 -> t' against inferred type `[a]'
17:06:16 <Madoka-Kaname> > fix (\x -> (last x)*2:x) 1
17:06:17 <lambdabot> Couldn't match expected type `t1 -> t' against inferred type `[a]'
17:06:22 <Ngevd> Any restaurant reccomendations, elliott_?
17:06:36 <Madoka-Kaname> > fix (\x -> ((last x)*2):x) 1
17:06:37 <lambdabot> Couldn't match expected type `t1 -> t' against inferred type `[a]'
17:06:39 <Madoka-Kaname> :<
17:07:16 <Ngevd> > (\x -> ((last x)*2):x) [1]
17:07:17 <lambdabot> [2,1]
17:07:27 <Ngevd> :t fix
17:07:28 <lambdabot> forall a. (a -> a) -> a
17:08:32 <Madoka-Kaname> > 1 .&. 3
17:08:33 <lambdabot> Ambiguous type variable `a' in the constraint:
17:08:33 <lambdabot> `Data.Bits.Bits a'
17:08:33 <lambdabot> a...
17:09:47 <Madoka-Kaname> > 1 .&. 3 : Int
17:09:47 <lambdabot> Not in scope: data constructor `Int'
17:09:48 <Madoka-Kaname> > 1 .&. 3 :: Int
17:09:49 <lambdabot> 1
17:11:07 <Ngevd> Bye
17:11:08 -!- Ngevd has quit (Quit: I'm a cuboid!).
17:11:13 <Madoka-Kaname> @pl f a b = (a .&. b) == b
17:11:14 <lambdabot> f = join . ((==) .) . (.&.)
17:13:27 -!- Madoka-Kaname has left ("Huggles for everybody~♪ ^_^").
17:13:30 -!- Madoka-Kaname has joined.
17:14:04 <Madoka-Kaname> @hoogle join
17:14:05 <lambdabot> Control.Monad join :: Monad m => m (m a) -> m a
17:14:05 <lambdabot> System.FilePath.Posix joinDrive :: FilePath -> FilePath -> FilePath
17:14:05 <lambdabot> System.FilePath.Windows joinDrive :: FilePath -> FilePath -> FilePath
17:15:02 <Deewiant> join f x = f x x
17:17:37 <elliott_> ?free a -> f a
17:17:38 <lambdabot> Extra stuff at end of line
17:17:42 <elliott_> ?free ah :: a -> f a
17:17:43 <lambdabot> Extra stuff at end of line
17:17:48 <elliott_> >:?
17:17:51 <elliott_> ?free ah :: a -> a
17:17:51 <lambdabot> f . ah = ah . f
17:17:55 <elliott_> ?free ah :: a -> Maybe a
17:17:55 <lambdabot> $map_Maybe f . ah = ah . f
17:17:58 <elliott_> meh
17:19:13 <Madoka-Kaname> ?free unsafeCoerce :: Int
17:19:13 <lambdabot> unsafeCoerce = unsafeCoerce
17:19:20 <Madoka-Kaname> What does free do?
17:19:29 <Deewiant> ?free foldr
17:19:30 <lambdabot> (forall x. g . h x = k (f x) . g) => g . foldr h y = foldr k (g y) . $map f
17:19:38 <elliott_> Madoka-Kaname: free theorems
17:19:39 <Deewiant> ?help free -- Madoka-Kaname
17:19:39 <lambdabot> free <ident>. Generate theorems for free
17:20:01 <elliott_> ?free (.)
17:20:02 <lambdabot> Pattern match failure in do expression at Plugin/Free/FreeTheorem.hs:54:20-34
17:20:06 <elliott_> sigh
17:20:10 <Madoka-Kaname> ?free map
17:20:11 <lambdabot> g . h = k . f => $map g . map h = map k . $map f
17:20:16 <elliott_> ?free compose :: (b -> c) -> (a -> b) -> a -> c
17:20:16 <lambdabot> g . k = p . f => f . q = f1 . h => g . compose k q = compose p f1 . h
17:20:35 <Madoka-Kaname> ?free unsafeCoerce
17:20:36 <lambdabot> Extra stuff at end of line in retrieved type "Not in scope: `unsafeCoerce'\n\n"
17:20:39 <Madoka-Kaname> ?free unsafeCoerce :: a -> b
17:20:40 <lambdabot> g . unsafeCoerce = unsafeCoerce . f
17:20:58 <elliott_> Heh.
17:21:09 <Madoka-Kaname> ?free unsafeCoerceIO :: IO a -> a
17:21:10 <lambdabot> f . unsafeCoerceIO = unsafeCoerceIO . $map_IO f
17:21:20 <elliott_> s/Coerce/Perform/
17:21:25 <elliott_> ?free unsafeBlah :: Askjhd a -> a
17:21:26 <lambdabot> f . unsafeBlah = unsafeBlah . $map_Askjhd f
17:21:32 <elliott_> Madoka-Kaname: Note how it doesn't actually know about your types.
17:21:41 <Madoka-Kaname> =p
17:21:59 <Madoka-Kaname> ?free ((.)$(.))
17:21:59 <lambdabot> Pattern match failure in do expression at Plugin/Free/FreeTheorem.hs:54:20-34
17:22:40 <Madoka-Kaname> ?free owl :: (Functor f, Functor f1) => f (a -> b) -> f (f1 a -> f1 b)
17:22:40 <lambdabot> Extra stuff at end of line
17:23:19 <Madoka-Kaname> ?free owl :: (a -> b -> c) -> a -> (d -> b) -> d -> c
17:23:20 <lambdabot> (forall x. h . p x = q (f x) . g) => g . f1 = f2 . k => h . owl p y f1 = owl q (f y) f2 . k
17:25:10 <Madoka-Kaname> ?free owl :: (a -> b -> c -> d) -> a -> (e -> f -> b) -> e -> (g -> f) -> g -> (h -> i -> c) -> h -> (j -> i) -> j -> d
17:25:11 <lambdabot> (forall x y. k . f5 x y = f6 (f x) (g y) . h) => (forall u. g . f7 u = f8 (p u) . q) => q . f9 = f10 . f1 => (forall b. h . f11 b = f12 (f2 b) . f3) => f3 . f13 = f14 . f4 => k . owl f5 z f7 v f9 a
17:25:11 <lambdabot> f11 c f13 = owl f6 (f z) f8 (p v) f10 (f1 a) f12 (f2 c) f14 . f4
17:25:20 <Madoka-Kaname> @djinn (a -> b -> c -> d) -> a -> (e -> f -> b) -> e -> (g -> f) -> g -> (h -> i -> c) -> h -> (j -> i) -> j -> d
17:25:20 <lambdabot> f a b c d e f g h i j = a b (c d (e f)) (g h (i j))
17:25:27 <Madoka-Kaname> @pl f a b c d e f g h i j = a b (c d (e f)) (g h (i j))
17:25:29 <lambdabot> f = ((((const .) .) .) .) . flip flip ((.) .) . ((flip . ((flip . ((flip . (liftM2 ((.) . (.) . (.)) .)) .)) .)) .) . flip flip ((.) .) . (((.) . (.) . (.) . (.)) .)
17:25:45 <elliott_> Does this have a point?
17:25:48 <Madoka-Kaname> Nope.
17:25:53 <elliott_> Take it to /msg.
17:25:55 -!- Slereah has joined.
17:26:45 -!- pikhq has quit (Ping timeout: 245 seconds).
17:26:51 -!- pikhq_ has joined.
17:27:48 -!- Slereah_ has quit (Ping timeout: 260 seconds).
17:37:30 <Madoka-Kaname> >:3
17:37:32 <Madoka-Kaname> @djinn (t->t20->t25->t30->t31)->t->(t1->t17->t19->t20)->t1->(t2->t16->t17)->t2->(t3->t16)->t3->(t4->t18->t19)->t4->(t5->t18)->t5->(t6->t22->t24->t25)->t6->(t7->t21->t22)->t7->(t8->t21)->t8->(t9->t23->t24)->t9->(t10->t23)->t10->(t11->t27->t29->t30)->t11->(t12->t26->t27)->t12->(t13->t26)->t13->(t14->t28->t29)->t14->(t15->t28)->t15->t31
17:37:32 <lambdabot> f a
17:37:33 <lambdabot> b
17:37:33 <lambdabot> c
17:37:33 <lambdabot> d
17:37:33 <lambdabot> e
17:37:34 <lambdabot> f
17:37:36 <lambdabot> g
17:37:40 <lambdabot> h
17:37:42 <lambdabot> i
17:37:44 <lambdabot> j
17:37:46 <lambdabot> k
17:37:46 <elliott_> Madoka-Kaname: I believe I said: take it to message.
17:37:48 <lambdabot> Plugin `djinn' failed with: thread killed
17:40:43 -!- Ngevd has joined.
17:41:32 <Ngevd> Hello!
17:45:08 -!- pumpkin has joined.
17:45:52 -!- copumpkin has quit (Ping timeout: 258 seconds).
17:46:13 <Ngevd> God, "I'm a cuboid!" is a stupid quit message
17:46:20 <Ngevd> Wait, God isn't on this channel
17:48:26 <Gregor> Yes I am.
17:48:29 <Gregor> Pay more attention.
17:48:42 <Ngevd> So you are
17:48:48 <Ngevd> Many apologies
17:51:23 <Ngevd> NOW TO RECORD A VLOG!
17:52:53 <Gregor> You better!
17:54:35 <elliott_> Gregor: Do you do any sort of LD_PRELOADing with the current HackEgo system?
17:54:38 -!- pumpkin has changed nick to copumpkin.
17:55:15 <Gregor> elliott_: No.
17:55:31 <elliott_> Gregor: Do static binaries work?
17:55:36 <Gregor> Yes.
17:55:46 <elliott_> Gregor: How should I override syscalls :P
17:55:55 <Gregor> You shouldn't :P
17:56:17 <Gregor> Or ... FUSE?
17:56:28 <elliott_> That's what tup replaced LD_PRELOAD with, so it's tempting.
17:56:29 <Gregor> I mean, UML is doing it all for me as it stands.
17:56:48 <elliott_> Gregor: Hmm... I could make it work based on the resulting filesystem /after/ the command runs, but that (a) is brittle, (b) very slow.
17:56:49 <elliott_> So
17:56:50 <elliott_> Yeah
17:56:53 <elliott_> FUSE sounds like a good idea
17:57:25 <Gregor> That's more or less how it works now.
17:57:36 <Gregor> It does an hg clone and then checks hg status to see if it needs to commit anything.
17:57:44 <Gregor> And yeah, it's slow and terrible :P
17:57:57 <elliott_> Right, you could do it pseudo-transactionally like that, but it would be even more terrible
17:57:59 <elliott_> .
17:58:12 <elliott_> I think I have a workable, fully-ACID FUSE-based design in my head.
17:58:13 <Gregor> But it was pretty easy to implement X-P
17:58:14 <elliott_> Now I just gotta write it out :P
17:58:43 <Gregor> Incidentally, since UML is a kernel after all, it may (or may not) be more practical (or faster or something) to write it as an actual kernel module instead of FUSE.
17:59:29 <elliott_> Gregor: Yeah, but... I can do FUSE shit in Python.
17:59:37 <elliott_> You can't write kernel modules in anything but C :P
18:00:04 <Gregor> I'll bet if you were a truly awful human being, you could write kernel modules in C++. It would take an enormous amount of hackery though.
18:00:17 <elliott_> Yeaaaaaaah
18:00:31 <Gregor> :P
18:01:47 <elliott_> Gregor: I wonder how I can handle aliasing through hardlinks...
18:01:58 <elliott_> Gregor: I suppose I can mark dirty changes as inode /plus/ filepath
18:02:21 <elliott_> That makes both, e.g. replacing the filepath to point to some other inode, and modifying an inode pointed to by multiple filepaths, properly
18:02:24 <elliott_> s/properly/work properly/
18:03:24 <Gregor> I don't think HackEgo really supports hardlinks anyway.
18:03:32 <Gregor> `run touch foo; ln foo bar
18:03:39 <HackEgo> No output.
18:03:50 <Gregor> `run ls -l foo bar
18:03:52 <HackEgo> ​-rw-r--r-- 1 5000 0 0 Oct 14 18:03 bar \ -rw-r--r-- 1 5000 0 0 Oct 14 18:03 foo
18:04:01 <Gregor> Yeah, it doesn't support hardlinkes.
18:04:03 <Gregor> *hardlinks
18:04:07 <Gregor> `run rm foo bar
18:04:10 <HackEgo> No output.
18:04:34 -!- calamari has joined.
18:07:22 <elliott_> Gregor: It doesn't?
18:07:25 <elliott_> Howso?
18:08:55 -!- Taneb has joined.
18:09:11 <elliott_> Gregor: So is every inode referenced by at most zero or one file names?
18:09:13 <Gregor> elliott_: Note how the number of links for foo and bar there were both 1.
18:09:17 <elliott_> `ls /proc
18:09:19 <HackEgo> 1 \ 11 \ 2 \ 267 \ 271 \ 272 \ 273 \ 274 \ 275 \ 276 \ 277 \ 278 \ 3 \ 4 \ 40 \ 42 \ 44 \ 5 \ 6 \ 64 \ 65 \ 7 \ 8 \ buddyinfo \ bus \ cmdline \ config.gz \ consoles \ cpuinfo \ crypto \ devices \ diskstats \ driver \ execdomains \ exitcode \ filesystems \ fs \ interrupts \ iomem \ ioports \ irq \ kallsyms \ kcore \ kmsg
18:09:24 <elliott_> I guess /proc isn't writable so it doesn't matter.
18:09:26 <elliott_> Okay, cool.
18:09:27 <Gregor> elliott_: I mean the /hackenv filesystem doesn't.
18:09:32 <elliott_> Right.
18:10:55 <Gregor> I mean, I suppose it could in principle, but not supporting them wouldn't be a regression *shrugs*
18:12:07 -!- Ngevd has quit (Ping timeout: 248 seconds).
18:12:58 * elliott_ wonders if a lock-based system might actually work better here...
18:13:09 -!- Taneb|Hovercraft has joined.
18:13:33 <elliott_> Gregor: Is there any reason to not just cause any open-for-write operation to lock a file, such that any attempts to open that file block (not counting to their total allocated execution time) until the writing command finishes and "hg commit"s?
18:13:39 <elliott_> (And then a re-checkout is done, etc.)
18:13:40 <elliott_> Oh wait
18:13:46 <elliott_> That's just the transactional system in disguise :P
18:13:52 <elliott_> Except I removed the atomicity guarantee.
18:14:00 <elliott_> Finally I have become pro.
18:15:00 <Gregor> We care about atomicity for revertability, but in principle you could have only half-broken revertability without atomicity.
18:15:14 <elliott_> Gregor: No, I care about atomicity because I care about atomicity :P
18:15:35 <elliott_> Gregor: I like building things like the quote system from simple queries and imperatives.
18:15:48 <elliott_> Not doing everything as one fopen-fwrite-fclose shouldn't break them.
18:16:08 -!- Taneb has quit (Ping timeout: 255 seconds).
18:22:36 <elliott_> Gregor: Hmm, if something tries /reading/ a file BEFORE another thread tries /writing/ it, should the reading transaction fail and go after the write, or should the writing transaction fail and be retried after the reading?
18:23:32 <elliott_> Gregor: I have a feeling I should prioritise writes above all else: Even if minor timing makes a difference, quote should make sense after delquote :P
18:23:58 <Gregor> Writes should be even more rare here than they are in typical transactional systems.
18:24:04 <elliott_> Right.
18:24:05 <Gregor> So it's unlikely that writes will ever starve reads.
18:24:42 <coppro> what's the name of that metric used in spell checking? Kblablabmorov distance?
18:25:04 <Gregor> pooppy: Yeah, I'm pretty sure that's it.
18:26:10 -!- pikhq has joined.
18:26:28 -!- pikhq_ has quit (Ping timeout: 252 seconds).
18:27:42 <elliott_> Gregor: How's this sound: http://sprunge.us/TORd
18:28:08 <Gregor> It sounds TOR'd
18:28:20 <elliott_> Gregor: TOR'd?
18:28:22 <elliott_> Oh.
18:30:03 <Gregor> Makes sense.
18:30:26 <Gregor> The gritty details are probably going to make this harder to implement than it seems, so I anticipate failure. And maybe crying.
18:31:02 <Taneb|Hovercraft> Why am I hovercraft?
18:31:11 <elliott_> Gregor: One thing that occurs to me is that it should try and preserve the given order of commands...
18:31:20 -!- Taneb|Hovercraft has changed nick to Ngevd.
18:31:23 <elliott_> Gregor: You don't want `delquote a, `delquote b to run the latter before the former.
18:31:28 <elliott_> Because the numbers will change, etc. :P
18:31:41 <Gregor> 'struth.
18:31:53 <elliott_> Gregor: Remind me why complete sequential execution is untenable >_>
18:32:28 <Gregor> It's not untenable per se, just untenably slow.
18:33:47 <elliott_> Gregor: Here's my super-smart transactional HackEgo: If any writes are done, kill all commands executed since and discard their results (nothing gets committed until no previous (chronologically) commands at all are running), then it re-executes them in sequence :P
18:35:04 <Ngevd> ++
18:35:08 <Ngevd> +
18:35:09 <Ngevd> +
18:35:10 <Ngevd> +
18:35:16 <Ngevd> +-
18:35:16 <Ngevd> -
18:35:43 <elliott_> hi Ngevd
18:35:48 <Ngevd> Hello
18:36:16 <Ngevd> Can you reccomend a restaurant?
18:36:29 <elliott_> No. It is a fundamental facet of the human condition.
18:36:39 -!- MDude has quit (Ping timeout: 248 seconds).
18:37:13 -!- SimonRC has quit (Ping timeout: 260 seconds).
18:43:00 -!- SimonRC has joined.
18:43:53 -!- pikhq_ has joined.
18:44:44 <Madoka-Kaname> :t runCont
18:44:45 <lambdabot> forall r a. Cont r a -> (a -> r) -> r
18:46:14 <Madoka-Kaname> @djinn (((a -> b) -> b) -> c -> d) -> c -> a -> d
18:46:14 <lambdabot> f a b c = a (\ d -> d c) b
18:46:59 -!- pikhq has quit (Ping timeout: 260 seconds).
19:00:31 -!- Phantom_Hoover has joined.
19:05:42 -!- oerjan has joined.
19:06:28 <Ngevd> Man, my vlogs are accidentally hilarious
19:06:35 <Ngevd> Shame I don't watch them
19:18:04 -!- calamari has quit (Quit: Leaving).
19:19:11 <Phantom_Hoover> Ngevd, the law of the channel dictates that you must link.
19:19:26 <Ngevd> But then elliott_ will know what I look like!
19:19:43 <Ngevd> http://www.youtube.com/watch?v=cbCVGq2y5io
19:19:55 <elliott_> I'm going to click that link and see my own face staring back at me.
19:19:56 <Phantom_Hoover> Your photo is publicly visible on Facebook you idiot.
19:20:04 <Ngevd> That's an old photo
19:20:17 <Phantom_Hoover> elliott_, wait, you have the Moustache of Inability to Shave, don't you?
19:20:26 <elliott_> X-D
19:21:27 <pikhq_> Hmm. D no longer has 2 stdlibs.
19:21:32 <elliott_> What happened
19:21:37 <pikhq_> Tango pretty much died.
19:21:52 <elliott_> pikhq_: As opposed to the incredibly vibrant rest-of-D community
19:22:10 <pikhq_> elliott_: Yes, as opposed to the rest-of-D community.
19:22:15 <elliott_> Wow :P
19:22:20 <elliott_> So it, like, makes negative one commits per second?
19:22:26 <elliott_> It's just rolling back to the big bang.
19:22:37 <Ngevd> I think I can make XSLT S and K work better if instead of having s and k elementsd
19:22:53 <Ngevd> I have combinator elements with the type as an attribute
19:22:57 -!- tiffany has joined.
19:23:12 <Sgeo|web> On Stack overflow, am I not allowed to suspect X-Y problem?
19:23:24 -!- ive has quit (Read error: Operation timed out).
19:23:33 <Phantom_Hoover> Ngevd, you look very silly mandatory insult complete
19:23:50 <Ngevd> Should see my older videos
19:23:53 <Ngevd> Before my haircut
19:24:02 <Phantom_Hoover> Ah, gerunds.
19:24:08 <Phantom_Hoover> I remember not knowing what they are.
19:24:42 <pikhq_> elliott_: Also, D *might* even become vaguely reasonable to use.
19:24:46 <Phantom_Hoover> Ngevd, what is it with people and not realising that I can click the channel link and see all their videos.
19:24:50 <pikhq_> It's getting merged into GCC.
19:24:58 <Phantom_Hoover> wat
19:25:01 <Ngevd> I don't really care
19:25:04 <elliott_> pikhq_: No, Digital Mars want gdc to be :P
19:25:07 <Phantom_Hoover> In all channels and/or dialogues I am in.
19:25:16 <elliott_> gdc is not only terrible, but also I doubt anyone gives a shit.
19:25:20 <Sgeo|web> Oh, um. Maybe as an "answer" is the wrong place to say X-Y problem
19:25:26 <pikhq_> elliott_: You really think the GCC devs will say "no"? These people don't know how.
19:25:29 <Phantom_Hoover> Ngevd, jesus christ you look like a twat with that haircut.
19:25:49 <elliott_> We have such quality discussion in here.
19:25:57 <Sgeo|web> Of course, it might not actually be
19:25:58 <Phantom_Hoover> http://www.youtube.com/watch?v=Fi2Q_5yw1MM&feature=channel_video_title
19:26:04 <Phantom_Hoover> Where is the glitch here.
19:26:11 <elliott_> Phantom_Hoover: Beds.
19:26:15 <Ngevd> Zombie spawned
19:26:21 <Ngevd> Skeleton, actually
19:26:21 <elliott_> Monsters waking enclosed beds due to lack of wall thickness.
19:26:29 <Phantom_Hoover> That's intended behaviour, for some reason.
19:26:35 <elliott_> No it isn't.
19:26:39 <elliott_> Or at least it's nonsense.
19:26:43 <Phantom_Hoover> I... how...
19:26:54 <Phantom_Hoover> I mean, it cannot not be a one-liner to fix.
19:27:01 <Phantom_Hoover> And it must have been coded explicitly in.
19:27:25 <pikhq_> I must admit, it still seems strange that many people's concept of a high-level language seems to be "add things to C".
19:28:02 <Sgeo|web> There are people in the Cringley comments AGREEING with Cringley
19:28:13 <Ngevd> For me, a high level language is pretty much "not assembly or machine code"
19:28:19 <Ngevd> I have poor taste in languages
19:28:20 <Sgeo|web> Cringely
19:28:26 <Ngevd> And non-portable tastes...
19:28:54 <Phantom_Hoover> You have the worst stastes.
19:29:04 <pikhq_> Yeah, even Phantom_Hoover has better taste.
19:29:08 <Sgeo|web> "I refuse to believe that Bob Cringely wrote this article. I typically enjoy your writing sir, but I sincerely hope this was a joke."
19:29:12 <elliott_> Don't call it Cringely for nothin'
19:29:19 <Sgeo|web> elliott_: lol
19:29:21 <Phantom_Hoover> I have notoriously bad tastes (do I?).
19:29:36 <pikhq_> You like Perl.
19:29:50 <Phantom_Hoover> I do?
19:30:06 <Phantom_Hoover> I... don't know how to tell you this, but... I think you've confused me with CakeProphet.
19:30:08 <Phantom_Hoover> For some time.
19:30:13 <pikhq_> God dammit.
19:30:17 <pikhq_> I need more coffee.
19:30:21 <Ngevd> I used to do that
19:30:23 <Phantom_Hoover> Instant coffee?
19:30:28 <pikhq_> CakeProphet: STOP HAVING SUCH BAD TASTE I CONFUSE YOU WITH OTHER PEOPLE
19:30:31 <pikhq_> Phantom_Hoover: No.
19:30:33 <elliott_> Phantom_Hoover: pls link to instant coffee video
19:30:36 <elliott_> I must relive the experience.
19:30:53 <Phantom_Hoover> Oh no I can't remember
19:31:23 <Ngevd> I'm mildly disturbed
19:31:33 <Phantom_Hoover> http://www.youtube.com/watch?v=wlL4o9N9vdM YES
19:31:45 <Ngevd> MS Visual Studio has a decent all bells and whistles XSLT writing thingy
19:32:02 <Sgeo|web> One person makes fun of the article.... while entirely missing the point Cringely is trying to make
19:32:04 <elliott_> Phantom_Hoover: THAT IS NOT INSTANTC OFFE
19:32:07 <elliott_> I DEMAND INSTANT COFE
19:32:19 <Phantom_Hoover> Oh, right you are.
19:32:44 <Phantom_Hoover> http://www.youtube.com/watch?v=qdP2l5oEK4E
19:32:47 <Phantom_Hoover> INSTANT
19:32:49 <Phantom_Hoover> COFFEE
19:33:37 <elliott_> They should advertise instant coffee with this.
19:35:29 <oerjan> <coppro> what's the name of that metric used in spell checking? Kblablabmorov distance?
19:35:38 <oerjan> levenshtein?
19:35:41 <coppro> possibly
19:35:46 <coppro> thought it was a k though
19:36:09 <pikhq_> Phantom_Hoover: The eff?
19:36:18 <elliott_> coppro: you're thinking of kolgomorov complexity
19:36:20 <elliott_> which is unrelated.
19:36:27 <coppro> oh
19:36:32 <elliott_> pikhq_: Instant coffee.
19:37:05 <elliott_> coppro: There is also the Hamming distance, which doesn't have substitution.
19:37:39 <Phantom_Hoover> I don't know, instant coffee is pretty well related to Kolmogorov complexity.
19:37:50 <Phantom_Hoover> Although I can't speak for Kogomorov complexity.
19:37:57 <Phantom_Hoover> Or Kolgomorov.
19:38:51 <Phantom_Hoover> I love how all of the evidence points to iti living in a shack.
19:39:01 <copumpkin> you can't compute colmogorov complexity
19:39:07 <copumpkin> but you can kompute kolmogorov komplexity
19:39:32 <Ngevd> Open University:
19:39:35 <Ngevd> "Now that you have installed Ubuntu (in the Study Week 2), visit https://help.ubuntu.com/ community/ Games
19:39:35 <Ngevd> [Tip: hold Ctrl and click a link to open it in a new tab. (Hide tip)
19:39:36 <Ngevd> ] . Would the selection amuse the average teenager?"
19:39:45 <Ngevd> "The collection includes many small games as well as complex three-dimensional gaming environments."
19:40:46 <Phantom_Hoover> I wish the maths course I did had made cracks at teenagers like that.
19:41:18 <elliott_> Are you sure they're cracks?
19:42:03 <Phantom_Hoover> They may be fractures, admittedly.
19:47:19 <Ngevd> You know what I miss?
19:47:28 <Ngevd> Frequent Homestuck updates
19:48:21 <Phantom_Hoover> Badum-tshhh?
19:48:33 <Ngevd> No, I'm serious
19:49:44 <Ngevd> I really want to see more Homestuck
19:50:17 <Ngevd> Hold on, I have an entire MSPAFA to myself
19:50:20 <Ngevd> What do I care
19:50:23 <Sgeo|web> Ngevd: somehow I doubt this hiatus nis permanent
19:50:29 <Ngevd> 11 MORE DAYS
19:50:36 <elliott_> Sgeo|web: Yes it is.
19:50:55 <Sgeo|web> Ooh, 81%
19:51:00 <Ngevd> http://www.mspaforums.com/showthread.php?34749-PixelQuest-the-one-with-you-know-pixels
19:52:51 -!- SgeoN1 has quit (Read error: Connection reset by peer).
19:52:57 -!- SgeoN2 has joined.
19:54:31 -!- pumpkin has joined.
19:55:32 -!- copumpkin has quit (Ping timeout: 240 seconds).
19:57:15 <Ngevd> I AM GOING TO UPDATE MY MSPAFA!
19:59:33 <Phantom_Hoover> Ngevd, pixel: replicate self into 9 pixels, delete middle pixel, shrink self by scale factor 3, repeat ad infinitum; become, in the limit, Douglas Hofstadter.
20:01:20 <Phantom_Hoover> (Is 2 Hofstadter jokes in one day too many? Who knows.)
20:01:40 -!- zzo38 has joined.
20:01:42 <Ngevd> If you want me to do it, post it in the thread
20:01:50 <Ngevd> I've done virtually every submission
20:02:04 <Phantom_Hoover> Can you post it in the thread for me?
20:02:19 <Ngevd> No
20:02:22 <pikhq_> Long live zoneinfo!
20:02:24 <elliott_> Why not.
20:02:25 <zzo38> This is SQL-Report program I made for FreeGeek: http://sprunge.us/XLWg
20:02:36 <Ngevd> Because that would be cheating
20:03:13 <zzo38> I can send a plain C code file too if you want that one.
20:03:58 -!- pumpkin has changed nick to copumpkin.
20:12:12 <Sgeo|web> Phantom_Hoover: I can post for you
20:12:40 <Sgeo|web> Wait, I have no idea if that even makes sense in the current context
20:12:41 <zzo38> Is this program good to you?
20:17:30 <Phantom_Hoover> Ngevd, are you happy now, Mr picky.
20:17:38 <Ngevd> NOT QUITE
20:20:26 <oerjan> he still lacks the conquest of his enemies and the lamenting of their women.
20:22:22 <Sgeo|web> OOH
20:22:35 <Sgeo|web> Any binary on Heroku, or something
20:22:39 <Sgeo|web> Haskell on Heroku
20:23:11 <elliott_> Time for a massacre.
20:23:12 <elliott_> `quote
20:23:13 <elliott_> `quote
20:23:13 <elliott_> `quote
20:23:15 <elliott_> `quote
20:23:17 <elliott_> `quote
20:23:25 <HackEgo> 407) <oklofok> i hope that isn't child pornography <oklofok> whew <oklofok> equally cute tho, have to admit
20:23:26 <HackEgo> 425) <Phantom_Hoover> https://bugs.launchpad.net/ubuntu/+source/pam/+bug/790538 <Phantom_Hoover> APT GUY STRIKES AGAIN <Gregor> APT GUUUUUUUY NANANANANANANANANANANANANANANANA APT GUUUUUUUUUUUUUY
20:23:38 <HackEgo> 453) <coppro> elliott: actually, it's worse right now, I'm in the USA <coppro> where the solution to counterfeiting problems is "add more ink" <coppro> eventually all US bills will just be solid green
20:23:38 <HackEgo> 83) <Warrigal> What do you call the husband of my first cousin once removed? <apollo> Warrigal: "Hey, Sexy."
20:23:38 <HackEgo> 66) <oklopol> hmm, this is hard
20:23:52 <elliott_> `delquote 425
20:23:53 <elliott_> Rest in peace.
20:23:55 <HackEgo> ​*poof*
20:24:25 <oerjan> Gregor: elliott_ does not appreciate your humor
20:24:34 <elliott_> oerjan: No you don't understand.
20:24:39 <elliott_> I'm culling the quote database on grounds of badness.
20:24:51 <monqy> `quote
20:24:53 <HackEgo> 172) <cpressey> Never ever use a quote which contains both the words "aloofness" and "gel" (verb).
20:24:58 <Phantom_Hoover> I suspect elliott_ may have added that.
20:25:03 <elliott_> oerjan: So every now and then I do `quote five times, and then delete the worst one.
20:25:09 <elliott_> Unless they're all really good.
20:26:51 -!- pikhq_ has quit (Ping timeout: 252 seconds).
20:26:54 -!- pikhq has joined.
20:28:32 -!- elliott_ has quit (Remote host closed the connection).
20:29:17 <Phantom_Hoover> I'd point out the flaw but he's just quit.
20:37:34 -!- GreaseMonkey has joined.
20:38:38 -!- GreaseMonkey has quit (Client Quit).
20:39:16 <Phantom_Hoover> `quote
20:39:16 <Phantom_Hoover> `quote
20:39:17 <Phantom_Hoover> `quote
20:39:17 <Phantom_Hoover> `quote
20:39:17 <Phantom_Hoover> `quote
20:39:27 <HackEgo> 9) <Madelon> Lil`Cube: you had cavity searches? <Lil`Cube> not yet <Lil`Cube> trying to thou, just so I can check it off on my list of things to expirence
20:39:28 <HackEgo> 177) <ais523> you should be eating corpses more
20:39:41 <HackEgo> 138) <fungot> AnMaster: intercal-72 c-intercal clc-intercal j-intercal yes all versions all versions
20:39:42 <HackEgo> 653) <shachaf> elliott: GHC bug? Come on, it's the parentheses. <shachaf> The more parentheses you add, the closer it is to LISP, and therefore the more dynamically-typed.
20:39:42 <HackEgo> 336) 00:07 Sgeo has quit (IRC is taking up too much of my time. I need time to study the Bible and find Christ.) 00:12 Sgeo has joined #esoteric.
20:40:40 <Phantom_Hoover> http://en.wikipedia.org/wiki/Glasgow_Ice_Cream_Wars
20:41:04 <Phantom_Hoover> "The conflicts, in which vendors raided one another's vans and fired shotguns into one another's windscreens, were more violent than might typically be expected between ice-cream salesmen.
20:41:06 <Phantom_Hoover> *"
20:41:34 <Ngevd> The ice cream man outside of school has gone away
20:41:42 <zzo38>
20:41:44 <Ngevd> Turns out, I was the only person who bought his ice cream
20:41:45 <Phantom_Hoover> Those damn Glaswegians.
20:41:54 <Ngevd> Everyone else bought his drugs
20:42:43 -!- GreaseMonkey has joined.
20:42:57 <oerjan> Phantom_Hoover: [citation needed]
20:43:06 <Phantom_Hoover> oerjan, well indeed.
20:46:00 <Phantom_Hoover> http://en.wikipedia.org/wiki/Lothian_Buses
20:46:11 <Phantom_Hoover> This article is far, far, far longer than it has any right to be.
20:46:29 <Ngevd> "Edingburgh, Scotland"!?
20:48:51 -!- pikhq has quit (Read error: Operation timed out).
20:54:07 <Ngevd> Well, I've updated my MSPAFA
20:55:40 <Phantom_Hoover> Excuse me Taneb it is updated INADEQUATELY
20:55:52 <Ngevd> Screw you.
20:55:56 <Ngevd> I'm the author
20:56:04 <Ngevd> And the artist.
20:56:26 <Phantom_Hoover> Neither of which you do reliably.
20:56:44 <Ngevd> That is the author's and the artist's shared perogative
20:56:49 <Ngevd> Look at MegaTokyo.
20:56:57 <Ngevd> I NEVER resort to filler art
20:57:00 <Phantom_Hoover> Or indeed with any quality at the peak.
20:57:01 -!- ive has joined.
20:57:21 <Ngevd> And I do it for fun
20:58:49 <Ngevd> I don't care if everyone hates me for ti
20:59:03 <Ngevd> hngs that I do
20:59:14 <Ngevd> See, I can turn one typo into another!
20:59:23 <Phantom_Hoover> No you don't get it I hate you for things that you *don't* do.
20:59:40 <Ngevd> Such as?
20:59:53 <Phantom_Hoover> Responding to my suggestion.
21:00:23 <Sgeo|web> I don't think AH always responded to all suggestions even in the early days?
21:00:26 <Ngevd> All in good time, Phantom_Hoover, all in good time
21:00:39 <Ngevd> I respond to all suggestions always
21:00:47 <Ngevd> Just after some delay
21:00:52 <Ngevd> Say, three months
21:02:38 <Ngevd> Goodnight
21:02:42 <Sgeo|web> Night
21:02:46 -!- Ngevd has quit (Quit: Goodbye).
21:08:40 <CakeProphet> fizzie: any idea what encoding /usr/share/dict/* is in?
21:08:59 <CakeProphet> I'm guessing UTF-8, but I'm getting a lot of warnings about bytes not mapping to code points.
21:11:33 <Deewiant> file /usr/share/dict*
21:16:07 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
21:18:56 <CakeProphet> yeah UTF-8
21:23:30 <CakeProphet> hrm... I dunno then.
21:23:42 <CakeProphet> I would think that the data is properly encoded.
21:26:40 -!- derdon has joined.
21:31:54 -!- pikhq has joined.
21:35:55 -!- Phantom_Hoover has joined.
21:38:16 <CakeProphet> I... have no clue what is happening
21:38:27 <CakeProphet> it's not write any of the /usr/share/dict data
21:41:17 <Sgeo|web> My /usr/share/dict is empty
21:41:52 <CakeProphet> I've downloaded everything in the repos
21:49:58 -!- Patashu has joined.
22:01:22 <fizzie> Some of them may not be UTF-8; e.g. the /usr/share/dict/finnish wordlist from 'wfinnish' is in ISO-8859-1.
22:04:08 <CakeProphet> oh.
22:04:14 <CakeProphet> uh.... halp
22:04:33 <CakeProphet> Perl doesn't seem too good at automatically detecting encodings or anything like that.
22:04:49 <CakeProphet> I have it set to explicitly read UTF-8 at the moment.
22:05:11 <fizzie> What do you mean not good? "use Encoding::Guess" and all that.
22:05:18 <fizzie> Sorry, Encode::Guess.
22:05:48 <fizzie> It's doable manually with plain Encode, but it's a little more complicated.
22:06:09 <fizzie> Though even with plain Encode it should be reasonably easy to read "utf-8 with fallback to latin-1".
22:06:20 <Phantom_Hoover> Dammit elliott why did you need to sleep before opening that envelope.
22:06:36 <Phantom_Hoover> I am HIGHLY IRRITATED
22:06:58 <fizzie> Okay, so Encode::Guess is not very good at guessing on single-byte encodings where all bytes are valid; those always count as matching guesses. But still.
22:08:26 <CakeProphet> fizzie: hmmm, so it'll be kind of difficult to read any encoding and convert it all to one encoding?
22:08:48 <fizzie> (Possibly UTF-8 with CP1252 fallback can also work; it's about the same as latin-1/9 fallback, except the 0x80-0x9f control character block of latin-X is filled with "smart quotes" and such.
22:08:53 <Phantom_Hoover> "
22:08:54 <Phantom_Hoover> Please make sure you access the EUCLID channel when you are requested by email to do so." — University of Edinburgh
22:09:01 <Phantom_Hoover> I wonder if they have a KETER channel.
22:10:51 <fizzie> There's an Encode::Detect too, but I've heard of Encode::Guess more.
22:11:13 <CakeProphet> fizzie: well with single-byte formats I really don't care what the encoding is, I think.
22:11:23 <CakeProphet> except I do want to normalize it to UTF-8
22:11:31 <oerjan> Phantom_Hoover: yeah it's address is [REDACTED]
22:11:35 <oerjan> *its
22:11:56 <fizzie> It's kind of hard to guess encodings well.
22:12:15 <CakeProphet> fizzie: could I extract the encoding data from file?
22:12:19 <CakeProphet> and then, use that? :P
22:13:06 <fizzie> I guess you... could, though I don't really think file's guess is any cleverer.
22:15:35 <Phantom_Hoover> oerjan, all the lecture notes are just page upon page of [DATA EXPUNGED].
22:15:51 <fizzie> I mean, it's literally just "check for UTF-like stuff; no? well, check if there's anything in the latin-1 control character regions? oh, there were? well, then it's 'extended non-ISO' and that's that".
22:16:03 <fizzie> If you do extract it from file, use the --mime-encoding flag.
22:16:10 <fizzie> (It's more parseable that way.)
22:17:29 <fizzie> Though use Encode; use Encode::Guess qw/latin1/; my $utf8 = decode("Guess", $data); probably does approximately as well. Needs to preload the data, though. ("file" just looks at the first N bytes, I think.)
22:18:05 <oerjan> fungot: [REDACTED]
22:18:05 <fungot> oerjan: it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave? fnord 06:22, 29, no. 2, 2, 3, 4, 8, 13, 1(::**) ...bad insn!
22:18:22 <fizzie> oerjan: I think you broke it.
22:19:43 <Phantom_Hoover> fizzie, no, it's just a result of the [DATA EXPUNGED].
22:19:54 <oerjan> the unbeatable combination of lovecraft and underload
22:20:27 -!- azaq23 has joined.
22:20:36 -!- azaq23 has quit (Max SendQ exceeded).
22:21:02 -!- azaq23 has joined.
22:22:13 <fizzie> At least the comment looks exactly like the sort of stuff you'd expect from the rogue AI as you disconnect its component cards one by one to stop it from killing you.
22:22:57 <Phantom_Hoover> fizzie, what if fungot's component cards are being connected, and this is the boot sequence.
22:22:58 <fungot> Phantom_Hoover: is that something you know and and the cases that required to actually mutate the original ( sorted, perhaps, it may be said that particularly here, parliament will give a single instance,
22:24:08 <Phantom_Hoover> Oh dear.
22:24:30 <Phantom_Hoover> fungot, think of a number.
22:24:30 <fungot> Phantom_Hoover: c has an ignore restarter, restart/ ignore do? the symbols, pairs, procedures, and so am i just being anal here or am i misunderstanding how these were the people skills of a plane alone
22:24:37 <Phantom_Hoover> fungot, a *number*.
22:24:37 <fungot> Phantom_Hoover: i, myself, will bring an end to all. ghosts lurk in the ruins were in truth, and everything in readiness for fnord. under these is concerned, the use of " coup" here is one that only takes predicates and has not named a
22:24:57 <Phantom_Hoover> fizzie, OK wait what would happen if you gave fungot the OEIS.
22:24:57 <fungot> Phantom_Hoover: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
22:25:36 <CakeProphet> fizzie: so by ISO-8859 do you mostly mean latin-1?
22:27:08 <CakeProphet> er, mo.
22:27:10 <CakeProphet> *no
22:29:12 <CakeProphet> latin-1 doesn't cover finnish or swedish completely
22:29:44 <Phantom_Hoover> I hate it when all conversation on the channel collapses for no readily apparent reason.
22:30:30 <CakeProphet> mainly because fizzie isn't replying to your millions of questions. :P
22:30:35 <CakeProphet> *our
22:31:06 <Phantom_Hoover> You mean my one question.
22:31:38 <CakeProphet> yes and my one question
22:31:39 <CakeProphet> that's two
22:31:44 <CakeProphet> which is very close to millions.
22:32:19 <Phantom_Hoover> Well of course, but it's also very close to G.
22:33:53 <fizzie> I don't think I said "ISO-8859" anywhere; by ISO-8859-1 I obviously mean latin-1, because they're the same thing. (As are ISO-8859-15 and latin-9, for some inexplicable reasons.)
22:33:57 <fizzie> Phantom_Hoover: Digits would come out.
22:35:23 <CakeProphet> fizzie: why would they use latin-1 if it doesn't completely cover Finnish?
22:35:47 <Phantom_Hoover> fizzie, yes, this was not so much a "what if" question as a "this would be so cool I would tell you to do it now if it didn't make me look like a prick".
22:36:13 <Deewiant> CakeProphet: It covers all the parts that most people ever use
22:36:42 <fizzie> CakeProphet: Because that's what was the standard for all text here, before latin-9 and Unicode came along. (After the silly 7-bit things.)
22:37:38 <CakeProphet> hmmm, okay so how would I go about converting latin-1 to utf-8... is that even a thing?
22:38:08 <Deewiant> Latin-1 byte x is Unicode code point x
22:40:14 <fizzie> And you can use something like use PerlIO::encoding; open my $foo, '<:encoding(latin-1)', $foofile or die "urgh" to read a latin-1-encoded $foofile.
22:42:19 <CakeProphet> so wait, that means I don't actually have a problem right? or does latin-1 not correspond to the same bytes as UTF-8?
22:42:33 <fizzie> Certainly not.
22:42:41 <CakeProphet> ah okay.
22:43:06 <fizzie> Unicode codepoint x is not represented by byte x, because the codepoints are rather larger than bytes.
22:43:18 <CakeProphet> right right I understand that.
22:43:23 <CakeProphet> I just wasn't sure how UTF-8 did it.
22:44:00 <fizzie> It's not possible for it to represent latin-1 as the way latin-1 is, because there would be no bytes left over to do anything else, like escaping or whatever.
22:44:34 <CakeProphet> so I think my best option is to use Encode::Guess and then convert latin-1 to utf-8 via... something.
22:44:36 <fizzie> (But UTF-8 does happen to correspond to ASCII for any codepoints <0x80.)
22:44:50 <CakeProphet> fizzie: yes I knew that much.
22:45:22 <fizzie> use Encode; use Encode::Guess qw/latin1/; my $utf8 = decode("Guess", $data); already converts, assuming $data is what you read from a file with :raw or something.
22:46:00 <CakeProphet> raw is not default right?
22:47:06 <CakeProphet> open my $f, '<:raw', $filename
22:47:07 <CakeProphet> like that?
22:47:40 <fizzie> I'm not entirely sure. I think it reads bytes (that you can then decode(); as opposed to UTF-8 or something) by default if you don't 'use' anything, though.
22:48:08 <CakeProphet> ah okay.
22:48:43 <CakeProphet> according to PerlIO you can also use binmode, which is more backwards compatible.
22:49:21 <CakeProphet> but otherwise they're equivalent.
22:50:10 <CakeProphet> but no I don't think :raw is default
22:51:41 -!- Vorpal has quit (Ping timeout: 252 seconds).
22:52:10 <fizzie> It's not the default, but I think the default is bytey enough. But that's just a guess.
22:52:38 <CakeProphet> also I want qw{utf-8 latin-1} I think
22:52:41 <CakeProphet> for the suspects.
22:52:49 <fizzie> No, Unicode is in there by default.
22:53:56 <Gregor> (to police officer) "I'm sorry, but my TV is broken and I didn't know who to call!" "Normally you'd call a TV repair man. If that repair man tried to kill you or steal your purse, then you'd call us." -- Corner Gas
22:54:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:55:06 <zzo38> I should try to think of what spell I want for D&D game; if I make up something I can ask the Dungeon Master. Such as, a spell that causes creatures in range to attack the caster to the best of their ability and they even get bonuses if targeting the caster (including higher save DC). What level and name would be such a spell?
22:56:37 <CakeProphet> zzo38: try one of these: http://thesaurus.com/browse/distract
22:56:52 <zzo38> OK thank you
22:57:09 <CakeProphet> divert or distract sound good.
22:57:18 <zzo38> I don't want to open a web browser right now, actually, but OK
22:57:20 <CakeProphet> or engross.
22:59:53 <zzo38> Another idea of a spell, makes the caster have a penalty of their choice to an ability score of their choice and is dismissible as an immediate action
23:00:06 <CakeProphet> impel, incite, compel.
23:00:09 <zzo38> Another idea of a spell, is a spell that affects the phase of the moon but only locally
23:00:15 <zzo38> And only temporarily
23:00:23 <CakeProphet> zzo38: sounds like a daily perhaps?
23:03:15 <zzo38> I am sorry, can you explain better?
23:03:39 <CakeProphet> the moon spell sounds like a daily spell. that's a thing in D&D right?
23:03:47 <CakeProphet> or is it daily ability? not
23:03:50 <CakeProphet> spell
23:04:01 <zzo38> Are you talking about 4th edition? I am playing 3.5 edition
23:04:06 <CakeProphet> oh, yes.
23:04:09 <CakeProphet> disregard.
23:04:22 <CakeProphet> I don't know anything about 3.5
23:04:28 <CakeProphet> and I only know a little about 4
23:05:04 <zzo38> I finished typing the recording for the session I have played last, except for some of the level-up stuff.
23:05:51 <CakeProphet> fizzie: oh hey, what did I need Encode for in your example above
23:06:13 <zzo38> Another idea, is spell that writes information such as the time of day, current position, mass, length, etc, on a provided paper, even if you have no writing equipment
23:07:36 <CakeProphet> what about a spell that makes you INSANE WITH SMARTNESS.
23:07:37 <fizzie> CakeProphet: To export the 'decode' funnction, I suppose. It was from some example.
23:07:49 <CakeProphet> fizzie: but decode exists in Encode::Guess.
23:07:51 <Phantom_Hoover> I love how there will never be a third world war.
23:07:53 <Phantom_Hoover> Really.
23:07:59 <Phantom_Hoover> The term is so vague as to be useless now.
23:08:09 <CakeProphet> Phantom_Hoover: WW3 = apocalypse
23:08:19 <Phantom_Hoover> CakeProphet, yes, exactly.
23:08:45 <fizzie> CakeProphet: It does? Weird. Maybe it automatically re-exports it for convenience, then.
23:08:51 <CakeProphet> God bless the atomic bomb.
23:08:52 <Phantom_Hoover> But it's used for _any_ apocalyptic war, and so it's useless to refer to any real war that way.
23:08:58 <Phantom_Hoover> Even an apocalyptic one.
23:10:10 <Phantom_Hoover> It'd be called the War of Fred's Accidental Button Press or something similarly specific.
23:10:13 <fizzie> fis@eris:~$ perl -e 'use Encode; use Encode::Guess qw/latin-1/; decode("Guess", "");'
23:10:16 <fizzie> Empty string, empty guess at /usr/lib/perl/5.10/Encode.pm line 174
23:10:18 <fizzie> fis@eris:~$ perl -e 'use Encode::Guess qw/latin-1/; decode("Guess", "");'
23:10:19 <CakeProphet> fizzie: I wonder if decoding line by line will result in a larger number of errors.
23:10:21 <fizzie> Undefined subroutine &main::decode called at -e line 1.
23:10:21 <fizzie> Looks like it doesn't.
23:10:36 <zzo38> I need to select two spells to level-up. I think I might select the Extend Tentacles spell, and possibly also the Object Mirroring spell that I made up if the DM approves it
23:10:45 <Phantom_Hoover> zzo38, pervert.
23:10:59 <zzo38> You think it is perverse?
23:10:59 <CakeProphet> fizzie: because it will croak if more than two encodings match
23:11:11 <CakeProphet> which could easily happen between UTF-8 and latin-1 I think?
23:11:45 <CakeProphet> well, no.
23:11:53 <fizzie> CakeProphet: Only if two suspects match, I think. Not for Unicode and a suspect.
23:11:57 <CakeProphet> hopefully it's smart enough to realize that when that happens the encodings are equivalent.
23:12:03 <CakeProphet> ah okay.
23:12:09 <Phantom_Hoover> <zzo38> You think it is perverse?
23:12:12 <zzo38> Select a line crossing the object which direction to mirror it in. That object becomes mirror-imaged of itself, but other than that it will be the same object. (If the object contains writing, the writing will now be backwards.)
23:12:19 <Phantom_Hoover> Yes, such are the times we live in.
23:12:30 <zzo38> O, you mean the times we live in are perverse.
23:12:42 <CakeProphet> and full of perverted tentacles, yes.
23:12:56 <Phantom_Hoover> No, I mean such are the times we live in that any reference to tentacles will be viewed in a sexual light.
23:13:08 <CakeProphet> though mirror-images sound pretty sexy too.
23:13:14 <CakeProphet> I'm getting hot and bothered just thinking about it.
23:13:31 <zzo38> Phantom_Hoover: O, that is why I said, the times we live in are perverse. So, it is same thing. However, neither of these two spells have anything to do with sexual light.
23:13:45 <CakeProphet> bahahahaha. sexual light.
23:13:57 <Phantom_Hoover> Tentacles of sexual light.
23:14:05 <zzo38> It has nothing to do with sexual anythingelse, either.
23:14:39 <Phantom_Hoover> Mirroring of sexual anythingelse objects.
23:15:55 <zzo38> (Extend Tentacles increases reach of caster's tentacle attacks by 5 ft (no effect if the caster is human); Object Mirroring causes an object to become a mirror image of itself, so that if it contains writing, it will now be written backwards.)
23:16:51 <zzo38> (Effects of mirroring molecules, atoms, and subatomic particles, is ignored)
23:16:52 <CakeProphet> zzo38: also it would reverse asymmetrical things.
23:16:58 <CakeProphet> such as large asymmetrical monsters.
23:17:02 <CakeProphet> that I'm sure exist.
23:17:08 <Phantom_Hoover> So you could use Object Mirroring on a person and watch them slowly starve to death?
23:17:11 <zzo38> CakeProphet: Yes it does. Creatures get a saving throw, though.
23:17:12 <CakeProphet> they'll be so confused. their sense of right and left will be all messed up.
23:17:23 <zzo38> And it is also temporary if used on creatures.
23:17:30 <Phantom_Hoover> Or indeed invoke CP symmetry and watch for a short time as they explode.
23:17:35 <zzo38> Because it is designed to use on objects.
23:17:45 <CakeProphet> CakeProphet symmetry?
23:18:04 <Phantom_Hoover> No, charge-parity.
23:18:07 <CakeProphet> child porn symmetry?
23:18:07 <CakeProphet> oh
23:18:09 <CakeProphet> okay.
23:18:14 <zzo38> Phantom_Hoover: You cannot invoke CP symmetry because one of the paragraphs in the spell description says such effects are ignored
23:18:40 <Phantom_Hoover> zzo38, oh well, at least we have our tentacles of sexual light.
23:18:41 <zzo38> That is what I meant by "Effects of mirroring molecules, atoms, and subatomic particles, is ignored"
23:18:59 <Phantom_Hoover> How does that work, then?
23:19:01 <zzo38> Phantom_Hoover: No, the tentacles and mirrors have nothing to do with sexual anything
23:19:03 <CakeProphet> iso-8859-1 or utf8 at /usr/local/lib/perl/5.10.1/Encode.pm line 174
23:19:08 <CakeProphet> fizzie: lies
23:19:27 -!- copumpkin has joined.
23:19:28 <Phantom_Hoover> If chirality of proteins etc. is left as-is, the overall reflection would stop them from fitting together at all.
23:19:47 <CakeProphet> fizzie: well, it's just a warning so... I guess it doesn't matter?
23:20:02 <Phantom_Hoover> Not to mention things like polymers and chiral ionic lattices.
23:20:38 <zzo38> Phantom_Hoover: O! I forgot about that. Although what I meant is that at the molecular level things just change so that they are the same thing, by magic; and at larger scales everything is mirrored.
23:20:58 <Phantom_Hoover> Magic doesn't excuse logical inconsistency.
23:21:06 <CakeProphet> I think it's probably best to leave chemistry out of D&D.
23:21:14 <zzo38> Phantom_Hoover: Are you sure?
23:21:15 * oerjan throws a paradox spell at Phantom_Hoover
23:21:48 <Phantom_Hoover> I could quite easily construct a system wherein macroscopic parity reversal would result in qualitatively different properties than the unmirrored version.
23:22:15 <CakeProphet> Phantom_Hoover: do it. stopwatch has started.
23:22:37 <zzo38> Probably, then in those kind of cases, the spell can be used.
23:22:50 <Phantom_Hoover> http://en.wikipedia.org/wiki/Carvone
23:22:52 <Phantom_Hoover> Bam.
23:23:13 <CakeProphet> does D&D even specify that its unvierse consists of the same kinds of units of matter as ours?
23:23:25 <CakeProphet> I imagine there's some kind of magical theory behind it.
23:23:32 <CakeProphet> involving like, I dunno, elements and other magicky things.
23:23:39 <Phantom_Hoover> Well, if zzo38 defines his own laws of physics, and they're consistent, I have no quarrel.
23:24:05 <zzo38> Note the spell allows mirroring on whatever axis is wanted, as long as some restrictions are followed, having to do with supporting objects, moving the center of gravity, and ensuring at least one point of the object remains part of the object relative to the current position.
23:24:18 <Phantom_Hoover> But the explicit reference to molecular structure implies that it does use real-world chemistry.
23:24:44 <Phantom_Hoover> zzo38, ah, so you can't fling a rock 500km into the air with it?
23:24:52 <Phantom_Hoover> That never occurred to me.
23:25:28 -!- Phantom_Hoover has left ("Leaving").
23:25:31 -!- Phantom_Hoover has joined.
23:25:41 <Phantom_Hoover> http://en.wikipedia.org/wiki/Cetonia_aurata
23:25:43 <zzo38> Phantom_Hoover: Yes, you cannot use it to fling a rock 500km into the air.
23:25:50 <Phantom_Hoover> Let us suppose I mirror one of these.
23:26:29 <Phantom_Hoover> The light it reflects is still circularly polarised in the same direction; however, if you chipped its carapace on one side, the chip would move.
23:28:13 <Phantom_Hoover> Aha, of course!
23:28:21 <Phantom_Hoover> What if you mirrored an LCD display?
23:28:38 <oerjan> CakeProphet: http://www.giantitp.com/comics/oots0423.html
23:28:41 <Phantom_Hoover> (Don't bother, I'm too tired.)
23:28:44 * Phantom_Hoover → sleep
23:29:06 -!- Phantom_Hoover has quit (Quit: Leaving).
23:29:45 <CakeProphet> oerjan: ..
23:29:49 <CakeProphet> heh
23:31:41 -!- kmc has quit (Quit: Leaving).
23:33:05 <CakeProphet> okay, but for some reason my /usr/share/dict datasets aren't writing to a file.....
23:33:14 <CakeProphet> but the googledata ones did.
23:40:30 -!- oerjan has quit (Quit: Good night).
23:44:32 <CakeProphet> yeah I'm getting blank results for those...
23:46:30 <CakeProphet> well, I guess it's time to explicitly specify encoding...
23:53:54 <CakeProphet> file /media/Elements/googledata/googlebooks-ger-all-1gram-20090715-1.csv
23:53:55 <CakeProphet> /media/Elements/googledata/googlebooks-ger-all-1gram-20090715-1.csv: ASCII text
23:53:59 <CakeProphet> wat
←2011-10-13 2011-10-14 2011-10-15→ ↑2011 ↑all