←2011-10-06 2011-10-07 2011-10-08→ ↑2011 ↑all
00:09:34 -!- zzo38 has joined.
00:16:10 <zzo38> As far as I can tell a graph can form a category, where the objects correspond to the points and the morphisms correspond to the paths between the points, where if you go along a line backward it is cancelled out. At least they seem to me, like forming a category.
00:16:23 <zzo38> I am not exactly sure.
00:19:00 <zzo38> Do you know?
00:20:38 <elliott> <Pseudonym> The first cut of the Mercury compiler was written in the intersection of Mercury, NU-Prolog and SICStus Prolog.
00:20:38 <elliott> <Pseudonym> And it compiled to Goedel.
00:20:39 <oerjan> zzo38: except for the cancelling out part
00:20:41 <elliott> beautiful
00:21:03 <oerjan> assuming it's directed.
00:21:08 <oerjan> or maybe, hm.
00:21:20 <oerjan> i guess the cancelling out can work.
00:23:09 <zzo38> I was thinking of nondirected graphs, where each pair of points either has a line between them or does not have. But you could have a similar (but different) idea for directed graphs too, I suppose, and pseudographs, etc
00:23:21 <zzo38> I don't really know, I just guessed
00:25:14 <oerjan> zzo38: with the cancelling, it would be close to a fundamental path in homotopy theory
00:25:55 <zzo38> But does it form a category?
00:25:59 <elliott> oerjan: I'm convinced homotopy theory is just one big practical joke by the mathematicians once they realised that category theory actually has applications.
00:26:18 <zzo38> It seem to me, it does have associativity, identity morphism, and so on, like category theory.
00:27:06 <oerjan> yes, it does.
00:39:51 <elliott> data ConnInfo = ConnInfo
00:39:51 <elliott> { conn?????? :: Chan ServerPacket
00:39:51 <elliott> , connReader :: PacketReader ClientPacket
00:39:51 <elliott> , connHost :: HostName
00:39:51 <elliott> , connPort :: PortNumber
00:39:52 <elliott> }
00:39:59 <elliott> Help what should I name the Chan containing the packets to send to the client.
00:40:02 <zzo38> I looked at the Wikipedia article about Kleisli category. It says how composition of morphisms in the Kleisli category is given by. I tried putting the same thing they specify there into Haskell it seem to me it would be this: g <=< f = join . fmap g . f
00:40:08 <elliott> oerjan: he;perlg
00:40:27 <oerjan> connContent
00:40:44 <elliott> oerjan: but... there is other content too (the PacketReader)...
00:40:51 <oerjan> connPayload
00:41:00 <elliott> :(
00:41:00 <zzo38> elliott: Well, conn?????? is not a very good name for it because it mixes letters with symbols.
00:41:04 <elliott> it isn't really a payload if you send a bunch of them is it
00:41:25 <oerjan> connPackets
00:41:35 <elliott> oerjan: <elliott> , connReader :: PacketReader ClientPacket
00:41:40 <elliott> note the read end :P
00:41:42 <elliott> this is just the write end
00:41:59 <oerjan> connWriter
00:42:06 <elliott> maybe........................ i was thinking that but
00:42:12 <elliott> is it a writER if it's just a Chan....
00:42:31 <elliott> it feels....inert...
00:42:32 <oerjan> connOut
00:42:39 <elliott> hmm maybe............... that sounds good........
00:43:24 <oerjan> zzo38: that looks right for <=<
00:43:42 <oerjan> join . fmap g = (g =<<)
00:45:54 -!- CakeProphet has quit (Ping timeout: 276 seconds).
00:46:10 <zzo38> oerjan: OK. I just tried to write the same thing as in that Wikipedia article, but in Haskell. That is, this: $g\circ_T f = \mu_Z \circ Tg \circ f$ is what I tried to make into a Haskell code.
00:46:36 <oerjan> right
00:59:22 <oerjan> today's iwc feels a bit deus ex machina.
00:59:40 <oerjan> or something like that.
01:00:51 <elliott> oerjan: looks intentional to me :P
01:02:04 <oerjan> maybe, but it feels like bad writing.
01:02:25 <oerjan> or maybe it's an intentional parody on forced happy endings
01:02:28 <elliott> oerjan: I mean, it's obviously meant to look ridiculous, so I suspect it's a setup for expectations being violated
01:02:30 <elliott> or parody
01:03:00 <oerjan> in fact that's been kind of a common theme lately, hasn't it.
01:04:14 <oerjan> maybe it's part of dmm's quest to use every trope :P
01:04:25 <oerjan> (not that that is official)
01:07:31 -!- coppro has quit (Quit: leaving).
01:07:38 -!- coppro has joined.
01:11:36 -!- coppro has quit (Client Quit).
01:11:42 -!- coppro has joined.
01:26:02 <elliott> oerjan: w.t.f.
01:26:03 <elliott> :t forkIO
01:26:04 <lambdabot> Not in scope: `forkIO'
01:26:06 <elliott> oh
01:26:07 <elliott> forever
01:26:09 <elliott> god damn you, forever
01:26:43 <oerjan> wat
01:27:23 -!- augur_ has changed nick to augur.
01:27:26 <oerjan> :t Control.Concurrent.forkIO
01:27:27 <lambdabot> IO () -> IO GHC.Conc.ThreadId
01:27:48 <oerjan> :t forever
01:27:49 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> m b
01:28:18 <oerjan> :t (.) runST
01:28:19 <lambdabot> forall a (f :: * -> *). (Functor f) => f (forall s. ST s a) -> f a
01:28:27 <oerjan> wat
01:28:33 <oerjan> :t (Prelude..) runST
01:28:34 <lambdabot> forall a a1. (a1 -> forall s. ST s a) -> a1 -> a
01:29:01 <oerjan> :t runST . liftM ?f
01:29:02 <lambdabot> Couldn't match expected type `forall s. ST s a'
01:29:02 <lambdabot> against inferred type `m r'
01:29:02 <lambdabot> Expected type: m a1 -> forall s. ST s a
01:29:08 <elliott> oerjan:
01:29:15 <elliott> :t (runST . forever) (return ())
01:29:16 <lambdabot> Couldn't match expected type `forall s. ST s a'
01:29:16 <lambdabot> against inferred type `m b'
01:29:16 <lambdabot> Expected type: m a1 -> forall s. ST s a
01:29:17 <oerjan> scandel
01:29:18 <elliott> erm
01:29:21 <oerjan> *a
01:29:23 <elliott> what was it...
01:29:29 <elliott> :t (runST . forever) $ return ()
01:29:30 <lambdabot> Inferred type is less polymorphic than expected
01:29:30 <lambdabot> Quantified type variable `s' escapes
01:29:31 <lambdabot> In the second argument of `(.)', namely `forever'
01:29:34 <elliott> :t runST . forever $ return ()
01:29:34 <lambdabot> Inferred type is less polymorphic than expected
01:29:35 <lambdabot> Quantified type variable `s' escapes
01:29:35 <lambdabot> In the second argument of `(.)', namely `forever'
01:29:36 <elliott> hmph
01:29:46 <elliott> only shachaf has the true knowledge
01:29:53 * shachaf ?
01:29:58 <oerjan> :t runST $ forever $ return ()
01:29:59 <lambdabot> forall b. b
01:30:20 <oerjan> it's a scandal you cannot use . there
01:30:27 <elliott> oerjan: no, shachaf has an example that works with ()s but not without
01:30:29 <elliott> or the other way around
01:30:33 <elliott> /without/ operator precedence being involved
01:30:50 <oerjan> oh
01:30:53 <monqy> hm, this spambot seems to be having problems with the beginnings of its sentences.
01:31:07 <shachaf> Oh, that.
01:31:13 <shachaf> Hmm, how did that go...
01:31:22 <oerjan> :t runST . flip ?f
01:31:23 <lambdabot> Couldn't match expected type `forall s. ST s a'
01:31:23 <lambdabot> against inferred type `f b'
01:31:24 <lambdabot> Expected type: a1 -> forall s. ST s a
01:31:28 <oerjan> darn
01:31:48 <shachaf> Maybe it's this?
01:31:50 <shachaf> > id runST (return 5)
01:31:51 <lambdabot> Couldn't match expected type `m t'
01:31:51 <lambdabot> against inferred type `forall s....
01:31:52 <shachaf> > id runST $ return 5
01:31:53 <lambdabot> 5
01:31:57 <shachaf> No, that's not it.
01:32:03 <monqy> :(
01:32:08 <shachaf> It was something with actual parentheses making a difference and nothing else.
01:32:20 <shachaf> Oh:
01:32:25 <shachaf> > id runST (return 5)
01:32:26 <lambdabot> Couldn't match expected type `m t'
01:32:26 <lambdabot> against inferred type `forall s....
01:32:27 <shachaf> > (id runST) (return 5)
01:32:28 <lambdabot> 5
01:32:33 <elliott> :'(
01:32:38 <monqy> ;_;
01:32:58 -!- DH____ has joined.
01:33:01 <oerjan> ouch
01:34:03 <elliott> shachaf: is that bug a ticket yet? :P
01:34:16 <shachaf> elliott: Fixed in GHC 7.
01:34:21 <shachaf> So I have no idea.
01:34:21 <elliott> oh good
01:34:23 <shachaf> Well, "fixed".
01:34:33 <monqy> "fixed"?
01:34:41 <monqy> is it always broken now
01:34:50 <monqy> consistency: good
01:35:06 <oerjan> :t runST . mapM ?f
01:35:07 <lambdabot> Couldn't match expected type `forall s. ST s a'
01:35:07 <lambdabot> against inferred type `m [b]'
01:35:07 <lambdabot> Expected type: [a1] -> forall s. ST s a
01:35:22 <oerjan> :t runST . forM ?l
01:35:23 <lambdabot> Couldn't match expected type `forall s. ST s a'
01:35:23 <lambdabot> against inferred type `m [b]'
01:35:24 <lambdabot> Expected type: (a1 -> m b) -> forall s. ST s a
01:35:47 <shachaf> monqy: Well, it's a hack either way.
01:35:56 <elliott> <byorgey> shachaf: ah yes, you find runST's dirty little secret special case in the type checker
01:35:57 <elliott> <byorgey> shachaf: it should be. But there's some sort of special case for runST so that runST $ foo works
01:35:59 <elliott> :'(
01:36:08 <elliott> <-- crying
01:36:14 <monqy> im doublecrying
01:36:20 <shachaf> #firstworldproblems
01:37:02 <elliott> * Now talking on #firstworldproblems
01:37:02 <elliott> * #firstworldproblems :You're not a channel operator
01:37:02 <monqy> i wish rank>1types werent bad like this
01:37:04 <elliott> * Users on #firstworldproblems: elliott @ChanServ
01:37:08 <elliott> <elliott> cry
01:37:12 <elliott> monqy: well it's still a bug :P
01:37:14 <elliott> i mean
01:37:18 <elliott> that parens can have an affect
01:37:20 <elliott> s/a/e/
01:37:38 <shachaf> @let foo = return 5
01:37:39 <lambdabot> <local>:6:0:
01:37:39 <lambdabot> Multiple declarations of `L.foo'
01:37:39 <lambdabot> Declared at: <local>...
01:37:43 <monqy> does jhc have rank>1type sdoes jhc have thes probmesl
01:37:44 <shachaf> @undefine
01:37:46 <shachaf> @let foo = return 5
01:37:47 <lambdabot> Defined.
01:37:49 <monqy> what abhout qhc....
01:37:54 <shachaf> > id runST foo
01:37:54 <lambdabot> Couldn't match expected type `m t'
01:37:55 <lambdabot> against inferred type `forall s....
01:37:57 <shachaf> > ($) runST foo
01:37:58 <lambdabot> 5
01:38:09 <shachaf> > (id `asTypeOf` ($)) runST foo
01:38:10 <lambdabot> Cannot match a monotype with `forall s. GHC.ST.ST s a'
01:38:18 <shachaf> ?!
01:38:18 <lambdabot> Maybe you meant: . ? @ v
01:38:38 <shachaf> > let blah = (id `asTypeOf` ($)) in blah runST foo
01:38:39 <lambdabot> 5
01:38:42 <monqy> > runST foo
01:38:44 <lambdabot> 5
01:39:02 <shachaf> > ((id `asTypeOf` ($)) runST) foo
01:39:03 <lambdabot> Cannot match a monotype with `forall s. GHC.ST.ST s a'
01:39:06 <monqy> this is bad
01:39:09 <monqy> why ghc why
01:39:28 <shachaf> monqy: To encourage you to write code that looks like LISP.
01:39:33 <shachaf> More parentheses = better life.
01:39:51 <oerjan> because infering rank>1 types is undecidable, i assume
01:40:17 <oerjan> so in some way, every case which works is a hack
01:40:29 <monqy> shachaf: but but but....using $ fixed it when parens didn't....and i prefer parens....
01:40:44 <shachaf> monqy: When did parentheses not fix it?
01:41:05 <monqy> i mean
01:41:50 <monqy> it's weird because of precedence and $ being infix
01:41:54 <oerjan> > (id runST :: forall s. GHC.ST.ST s a -> a) foo
01:41:55 <lambdabot> Not in scope: type constructor or class `GHC.ST.ST'Not in scope: type varia...
01:41:59 <oerjan> argh
01:42:04 <oerjan> > (id runST :: forall s. ST s a -> a) foo
01:42:04 <lambdabot> Not in scope: type variable `a'Not in scope: type variable `a'
01:42:14 <shachaf> forall s a.
01:42:27 <oerjan> > (id runST :: forall a. (forall s. ST s a) -> a) foo
01:42:29 <lambdabot> 5
01:42:34 <oerjan> whew
01:43:17 <shachaf> elliott: Hey, write me a generic function f x y = f (x y), please.
01:43:25 * shachaf will complain loudly until someone does this.
01:43:38 <elliott> ?pl \f x y -> f (x y)
01:43:38 <lambdabot> (.)
01:43:40 <elliott> or is f
01:43:43 <shachaf> Er.
01:43:44 <elliott> not a parameter there
01:43:48 <shachaf> f x y = x (x y)
01:43:59 <elliott> ?pl \x y -> x (x y)
01:44:00 <lambdabot> join (.)
01:44:03 <elliott> shachaf: enjoy...
01:44:09 <shachaf> > join (.) (:[]) 5
01:44:10 <lambdabot> Occurs check: cannot construct the infinite type: a = [a]
01:44:21 <shachaf> > (:[]) ((:[]) 5)
01:44:22 <lambdabot> [[5]]
01:44:30 <shachaf> No thanks.
01:44:49 <monqy> :(
01:45:29 <elliott> (:[])
01:45:55 <monqy> if only: untyped haskell: because: types cause problemns
01:45:58 <monqy> (joke)
01:46:37 <shachaf> > let f :: forall s a. (forall t. t -> s t) -> a -> s (s a); f x y = x (x y) in f Just 5
01:46:38 <lambdabot> Just (Just 5)
01:46:59 <shachaf> > let f :: forall s a. (forall t. s t -> t) -> s (s a) -> a; f x y = x (x y) in f fromJust (Just (Just 5))
01:47:00 <lambdabot> 5
01:47:47 <monqy> iw ant to make a language that doesn't have probelms....hoW?
01:51:24 <oerjan> aaaaah timwi
01:51:40 <elliott> oerjan: my thoughts exactly
01:51:43 <elliott> oerjan: confrontational as usual :P
01:51:47 <elliott> although his complaint has merit >_>
01:52:24 <oerjan> monqy: i recommend hq9+ or deadfish, they are remarkably problem free
01:52:37 <elliott> Deadfish is all problems.
01:54:18 -!- tiffany has joined.
02:17:54 <zzo38> Will infinite types result in Russell's paradox?
02:20:44 <Gregor> OK, here's a big lol for y'all.
02:20:46 <Gregor> So I mentioned earlier that I got an email asking if I wanted codu.net for $250.
02:20:52 <Gregor> Turns out the company that owns it is an "IT solutions / apostolic ministry"
02:23:40 <shachaf> Curry's paradox is the best paradox.
02:23:48 <shachaf> Beats Russell's any day.
02:24:00 <monqy> how about codu.com
02:24:12 <Gregor> monqy: Donno who owns that, don't really care *shrugs*
02:24:36 <monqy> codu.com seems pretty sketchy
02:24:40 <coppro> shachaf: my favority paradox is out in a lake in BC
02:24:44 <Gregor> monqy: Yes it does :P
02:30:31 -!- TeruFSX has quit (Remote host closed the connection).
02:32:29 <elliott> localhost:47150 > KeepAlive 0
02:32:29 <elliott> localhost:47150 > KeepAlive 0
02:32:30 <elliott> localhost:47150 > KeepAlive 0
02:32:30 <elliott> localhost:47150 > KeepAlive 0
02:32:30 <elliott> localhost:47150 > KeepAlive 0
02:32:30 <elliott> localhost:47150 > KeepAlive 0
02:32:32 <elliott> localhost:47150 > KeepAlive 0
02:32:34 <elliott> localhost:47150 > KeepAlive 0
02:32:36 <elliott> localhost:47150 > KeepAlive 0
02:32:38 <elliott> localhost:47150 > KeepAlive 0
02:32:40 <elliott> localhost:47150 > KeepAlive 0
02:32:42 <elliott> localhost:47150 > KeepAlive 0
02:32:44 <elliott> localhost:47150 > KeepAlive 0
02:32:46 <elliott> localhost:47150 > KeepAlive 0
02:32:48 <elliott> localhost:47150l o>c aKleheopsAtl:i4v7e1 500
02:32:50 <elliott> <l oPclaalyheorsPto:s4i7t1i5o0n L>o oKke e(pPAllaiyveer P0o
02:32:52 <elliott> s l(oPcoailnhto s0t.:04 76195.09 9>9 9K9e9e9p9A5l2i3v1e6 30
02:32:54 <elliott> 0.l0o)c a7l1h.o6s2t): 4(7D1i5r0e c>t iKoene p0A.l0i v0e. 00)
02:32:56 <elliott> Tlroucea
02:32:58 <elliott> lh
02:33:00 <elliott> Behold, multithreaded IO.
02:33:14 * oerjan cancels his /^msg chanserv quiet #esoteric elliott just in time
02:33:58 <elliott> I typed out "KeepAlive", decided to start fleshing it into a joke by prepending "Your MOM", and then stared wide-eyed at my screen for a few seconds before deleting the line.
02:34:10 * Gregor vaguely wonders what "/^msg" is
02:34:26 <oerjan> Gregor: like /msg except doesn't open a query window
02:34:33 <Gregor> Mmm
02:35:45 <zzo38> If you make a category from a graph as I have described, what things in category theory correspond to what things in graph theory?
02:37:05 <oerjan> zzo38: well every morphism is an isomorphism
02:37:40 <zzo38> oerjan: Yes I noticed the same thing.
02:40:34 <oerjan> making this a "groupoid" (although i think that word has several senses)
02:41:45 <oerjan> and if the graph is connected, there is a functor equivalence mapping all the objects into one
02:42:30 <oerjan> or if not, you can select one object from each component to map everything to.
02:42:58 <oerjan> aka skeleton category
02:45:09 -!- quintopia has quit (Remote host closed the connection).
02:46:19 -!- pikhq_ has joined.
02:46:26 -!- quintopia has joined.
02:46:26 -!- quintopia has quit (Changing host).
02:46:26 -!- quintopia has joined.
02:46:45 <zzo38> If the graph is a tree, does the category have all endomorphisms being identity morphisms, due to canceling?
02:47:09 <oerjan> yes, i think so.
02:47:19 <oerjan> tree or forest
02:47:39 <zzo38> Yes, I was just going to say, it applies to forests too
02:47:54 -!- quintopi1 has joined.
02:48:50 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:49:19 -!- pikhq has quit (Ping timeout: 258 seconds).
02:51:06 -!- quintopi2 has joined.
02:51:34 -!- quintopi2 has quit (Client Quit).
02:52:35 <zzo38> Are there other properties?
02:53:36 <oerjan> well unless it is a tree, there won't be any initial or terminal objects
02:53:48 <oerjan> and if it is, they all are
02:54:51 <oerjan> oh and the category is isomorphic to its own dual, but that follows from being a groupoid i think
02:55:23 -!- copumpkin has joined.
02:55:23 -!- copumpkin has quit (Remote host closed the connection).
02:55:24 -!- quintopi1 has quit (Quit: Lost terminal).
02:55:29 -!- CakeProphet has joined.
02:55:29 -!- CakeProphet has quit (Changing host).
02:55:29 -!- CakeProphet has joined.
02:55:48 -!- copumpkin has joined.
02:57:33 <zzo38> Probably when I wrote "path" I meant "walk"
02:59:11 <oerjan> ah
03:05:35 <shachaf> hadmin + elliott
03:12:39 <CakeProphet> I like the pirate bay's current home page logo.
03:14:00 -!- nooga has quit (Ping timeout: 255 seconds).
03:15:08 <elliott> Why are you using the Pirate Bay, it is the most useless torrent index
03:18:25 <CakeProphet> elliott: I very frequently find more obscure artists on TPB when things like isohunt fail.
03:18:36 <elliott> http://torrentz.eu/
03:18:36 <CakeProphet> it's worked quite well for my purposes.
03:19:02 <elliott> metatracker which lists all the found trackers for a torrent in utorrent format so you can paste it in for moar speed
03:19:07 <elliott> (it helps massively in my experience)
03:20:00 <tiffany> I use tokyotosho for anime, and then isohunt, tpb, and demonoid for everything else
03:20:31 <monqy> whats piracy help
03:20:51 <elliott> There is no possible way that searching a public tracker can be superior to using Torrentz because it indexes tons of them.
03:20:57 <Gregor> Fuckin' piracy. How does it work?
03:21:01 <elliott> Hmm, looks like it doesn't index isohunt, wonder if there's some drama to do with that.
03:21:19 <elliott> But w/e, if you can't find it on the public trackers torrentz indexed you're probably best served going to a private one anyway :P
03:21:23 <tiffany> If piracy was enforced as harshly as denial of service attacks, 9% of americans would be in jail probably ;P
03:21:25 <elliott> monqy: Gregor: Nooo, this is how I get my Linux ISOs.
03:21:43 * pikhq_ pirates greatly
03:21:43 <Jafet> Gotta catch all 'em Linux ISOs.
03:21:49 <monqy> pirate linux all day every day
03:22:06 <tiffany> You cant pirate free stuff can you?
03:22:17 <zzo38> O, is that how you define piracy now?
03:22:22 * CakeProphet will, in the course of one hour, find torrents for the entire discographies of over 35 artists
03:22:29 <CakeProphet> I pirate with no shame.
03:22:36 <pikhq_> tiffany: I know this is probably a long-shot, but would tokyotosho happen to have anime with Japanese subtitles?
03:22:37 <Jafet> I distribute linux without the source code. I am wanted in four continents.
03:22:43 <tiffany> Bittorrent is like the greatest doenload protocol ever, pretty obvious to use for pirates~
03:22:52 <tiffany> Uum, possibly
03:23:03 <Jafet> Anime with Japanese subtitles?
03:23:03 <pikhq_> It is *far* too hard to find that sort of thing, even if you go totally legit and buy Japanese DVDs.
03:23:14 <pikhq_> Jafet: And Japanese audio, of course.
03:23:44 <CakeProphet> tiffany: telnet is the best protocol for all purposes.
03:23:53 <elliott> Jafet: I'm wanted in ten continents.
03:23:55 <tiffany> telnet~
03:23:56 <Jafet> Not many people care about subtitles in the same language as the film.
03:23:59 <elliott> <tiffany> telnet~
03:24:04 <elliott> how can you even say telnet in any tone of voice other than normal
03:24:11 <elliott> there is no possible way to impart any other kind of context onto the utterance "telnet"
03:24:13 <CakeProphet> lol
03:24:17 <zzo38> Which protocol is best for one purpose depend on the purpose. No protocol is really best for all purposes
03:24:18 <tiffany> <elliott> <tiffany> telnet~
03:24:26 <monqy> how did i know that was going to happen
03:24:26 <elliott> "telnet" as a statement means one thing and one thing only and you cannot modify that auuuugh
03:24:29 <elliott> oerjan: ban tiffany
03:24:29 <pikhq_> Jafet: It's really *quite* helpful for foreign language learners.
03:24:31 <monqy> someone quoting elliott quoting tiffany
03:24:31 <Jafet> tiffany is channelling the telnetcat
03:24:36 <tiffany> .-.
03:24:48 <pikhq_> Particularly when learning a language with nontrivial orthography.
03:24:48 <monqy> o~o
03:24:50 <zzo38> Telnet is good for many purpose, though.
03:24:58 <CakeProphet> %^:
03:25:08 <tiffany> Like tuning engines on a flying 747?
03:25:34 <tiffany> Because, you can actually do that >_>;
03:25:46 <CakeProphet> elliott: tone of voice police
03:26:02 <zzo38> I don't know anything about tuning engines on a flying 747
03:26:18 <monqy> neither do I
03:26:40 <tiffany> I read this article from an engineer who worked on that kind of stuff
03:26:43 <CakeProphet> zzo38: telnet is more or less a protocol for protocols.
03:26:45 <CakeProphet> or can be.
03:27:05 <Jafet> Most people who use telnet don't use telnet.
03:27:07 <tiffany> He said 747s use telnet because ssh breaks the menu thingies in the telnet interface
03:27:20 <CakeProphet> Jafet: that's also true.
03:27:26 <tiffany> Anyway i host a bbs over telnet
03:27:40 <zzo38> SSH is also good protocol for many purposes (but not all).
03:27:44 <zzo38> tiffany: Is it Synchronet?
03:27:51 <tiffany> Nup
03:27:54 <CakeProphet> zzo38: telnet, on the other hand, is suitable for all
03:27:58 <tiffany> Its citadel :s
03:28:01 <CakeProphet> best protocol for our modern age.
03:28:11 <monqy> telnet for president
03:28:21 <tiffany> Also i have an 8192bit rsa key for ssh
03:28:26 <monqy> wow
03:28:28 <monqy> !!!!
03:28:31 <zzo38> CakeProphet: No, I don't think telnet is suitable for all.
03:28:57 <tiffany> It only took a couple minuts to generate so why not
03:29:03 <tiffany> Minutes*
03:29:06 <Jafet> I would use an 8192-bit key, too, if I was tuning engines on flying 747s.
03:29:24 <tiffany> ^
03:29:44 <tiffany> I would use a 32768bit key for that
03:29:52 <monqy> crazy stuff that
03:30:00 <monqy> so much bits
03:30:02 <zzo38> For internet banking and internet money transfer, SSH is the protocol that ought to be used (and the protocol running inside the SSH would be the same in both cases, although some commands might be permitted in only one way and not another way), in my opinion.
03:30:29 <Jafet> Internet banking currently runs on the honour system
03:30:31 <tiffany> Even if 1024bit still takes a fudgeload of time to crack
03:30:49 <tiffany> Didnt it take like 300 computers 400 days to crack one?
03:31:07 <CakeProphet> *fungeload
03:31:18 <monqy> so much load
03:31:48 <tiffany> Rsa is pretty much dead with quantum computers though :/
03:32:24 <elliott> Is?
03:32:26 <elliott> Present tense?
03:32:33 <tiffany> Well
03:32:33 <elliott> How much are D-Wave paying you?
03:32:36 <tiffany> Will be
03:32:37 <monqy> we live in the future, tiffany and me
03:32:43 <monqy> or tiffany and i
03:32:51 <tiffany> Mceliece cryptosystem~
03:32:52 <monqy> whats an english and how does it work?
03:33:09 <Jafet> monqy: it only throws you exceptions
03:33:30 <monqy> help
03:33:50 <CakeProphet> `frink 1 erlang -> 1 fudgeload
03:34:00 <HackEgo> Unknown symbol "fudgeload" \ Warning: undefined symbol "erlang". \ Warning: undefined symbol "fudgeload". \ Unconvertable expression: \ erlang (undefined symbol) -> fudgeload (undefined symbol)
03:34:16 <tiffany> It seems like mceliece is bad in the face of bruteforce or i am reading this wikipedia article wrong
03:34:32 <tiffany> 260000bit key is only as good as 80bit encryption?
03:35:04 <CakeProphet> `units 'erlang' 'fudgeload'
03:35:06 <HackEgo> Unknown unit ''erlang''
03:35:11 <CakeProphet> :(
03:35:23 <CakeProphet> `units erlang fudgeload
03:35:25 <HackEgo> Unknown unit 'erlang'
03:35:33 <CakeProphet> WHY NO ERLANG
03:35:44 <monqy> ;_;
03:36:02 <CakeProphet> !monqy WHY NO ERLANG
03:36:14 <CakeProphet> dude you guys
03:36:17 <CakeProphet> why is egobot gone
03:36:17 <CakeProphet> always now
03:37:27 <monqy> what did monqy do again
03:37:39 <elliott> CakeProphet: frink
03:37:42 <elliott> `frink 9 erlang
03:37:49 <monqy> was it just map toLower and remove all punctuation or something?
03:37:51 <HackEgo> Warning: undefined symbol "erlang". \ 9 erlang (undefined symbol)
03:37:54 <elliott> fuck
03:37:57 <CakeProphet> monqy: just map tolower actually
03:37:57 <monqy> such an inaccurate representation of me
03:37:58 <monqy> oh
03:37:59 <CakeProphet> elliott: see above
03:38:01 <monqy> still awful
03:38:15 <CakeProphet> l;le;ler;le;lr;e;ler;ler;le;lerr;le;le;erle;e;rler;lere;er;lerrelrrerererlanggt
03:38:22 <elliott> `addquote <CakeProphet> l;le;ler;le;lr;e;ler;ler;le;lerr;le;le;erle;e;rler;lere;er;lerrelrrerererlanggt
03:38:24 <HackEgo> 703) <CakeProphet> l;le;ler;le;lr;e;ler;ler;le;lerr;le;le;erle;e;rler;lere;er;lerrelrrerererlanggt
03:38:27 <monqy> neesd to transpose letters, insert es ant the ends of things, otherr quirdks????
03:38:35 <CakeProphet> elliott: I am become famous now.
03:38:39 <monqy> simulated keybarod badding
03:38:47 <monqy> simulated word badding
03:39:00 <zzo38> However, if I designed a BIOS for a PC motherboard, it would be PC-FORTH and one of the things it would include is a terminal emulator (with the PC BIOS emulation as the default), which can be used with telnet and with serial port
03:39:02 <tiffany> http://gopherproxy.org/zzo38computer.cjb.net/0column80*c131_115
03:39:03 <elliott> http://googleads.g.doubleclick.net/pagead/imgad?id=CJvR5I68-qvvUhDQAhiYAjIIAD54C6Z-Wvk
03:39:03 <elliott> auuugh return of the finger tree
03:40:02 <monqy> that's brilliant
03:40:11 <zzo38> I intended to block gopherproxy.org so that Google does not index it.
03:40:15 <monqy> I love those awful ads
03:41:27 <elliott> monqy: oh did you never see my finger tree
03:41:29 <elliott> it was a work of art
03:41:32 <elliott> not as disturbing as that but
03:41:33 <elliott> close
03:41:37 <Jafet> elliott: http://adrinael.net/hr.gif
03:41:39 <monqy> now i want to see it
03:41:44 <monqy> ewww
03:42:23 <elliott> how have you not seen the hasselhoff thing, it's the oldest thing on the internet
03:42:23 <CakeProphet> ow sudden wrist pain.
03:42:27 <elliott> disappointed in you monqy, disappointed
03:42:29 <CakeProphet> maybe I'm getting carpal tunnel.
03:42:37 <monqy> elliott i've seen it but that doesn't make it not gross....
03:43:11 <zzo38> If you need to link to my gopher server, please do so directly.
03:43:56 <elliott> monqy should I use Map or HashMap................................................................
03:43:58 <elliott> debceibcisoisns
03:44:07 <monqy> which is
03:44:08 <monqy> betretr
03:45:48 <elliott> actually hmm i might want some way to reclaim old identifiers
03:46:00 <elliott> what has fast minKey.......
03:46:18 <elliott> the answer is IntMap but I have Int32s :(
03:46:35 <elliott> minView, whatever
03:46:42 <elliott> er no
03:46:42 <elliott> minKey
03:48:41 <zzo38> I figured out why the block that used to work has failed; it is because spoton.net has many IP addresses in different ranges. (It used to be bytemark3.spotonnet.co.uk and is now on bytemark7.spotonnet.co.uk, which have the addresses 89.16.178.179 and 46.43.34.25)
03:50:37 -!- MDude has joined.
03:50:57 <elliott> monqy: my favourite terrible ad of late is these "51 Year Old Mom Looks 25" ones with a bouncing picture above
03:51:00 <elliott> it's so bouncy
03:51:33 <monqy> i dont see enough terrible ads because ad blocker ;_;
03:51:44 <elliott> disable it, it is the devil
03:52:05 <elliott> I bet Jafet knows a good IntMap type thing that works for arbitrary key types and has efficient-ish minKey.
03:52:06 <monqy> i also love the ones where it's like "is this real or fake" or "iq test" and "99% get this wrong"
03:52:17 <elliott> (Hmm, I think Data.Map has pretty efficient minKey, isn't it O(log n)?)
03:52:45 <monqy> and it's something absolutely ridiculous like a seagull with a human arm
03:52:48 <elliott> monqy: my favourite was "HAS SCIENCE GONE TOO FAR? real / fake" -- yeah
03:52:51 <Jafet> minView is bettar
03:52:52 <elliott> with 99 percent get this wrong
03:52:57 <elliott> with birds with arms :')
03:53:00 <CakeProphet> elliott: I can't think of a way it wouldn't be O(log(n))
03:53:01 <monqy> ah yes has science gone too far that's it
03:53:03 <elliott> best use of meme
03:53:04 <monqy> i love birds with arms
03:53:12 <monqy> also great: dancing babies
03:53:12 <elliott> CakeProphet: intmap has constant-time minKey I think
03:53:17 <elliott> and hashmap obviously O(n)
03:53:21 <CakeProphet> well right, I meant for Map.
03:54:33 <CakeProphet> well you could have constant time minKey by keping track of the minimum key as an extra field of the data structure or something.
03:54:37 <CakeProphet> *keeping
03:54:37 <CakeProphet> on Map
03:54:45 <CakeProphet> well... no
03:54:48 <elliott> i'm not sure you could
03:54:50 <elliott> hmm
03:54:52 <CakeProphet> you're just changing
03:54:53 <elliott> yes you could I think
03:54:56 <CakeProphet> when you do the O(log(n))
03:54:57 <elliott> the tree structure makes it possible
03:55:02 <elliott> you can amortise it on insert which is already O(log(n))
03:55:03 <CakeProphet> oh?
03:55:08 <CakeProphet> ah okay.
03:55:13 <elliott> yes, I think you can tell when you're inserting before the minimum key
03:55:29 <CakeProphet> ah right.
03:56:15 <CakeProphet> I think in practice lists shouldn't have O(n) length.
03:56:22 <CakeProphet> GHC should just use a hidden field for length.
03:57:00 <monqy> gross
03:57:10 <CakeProphet> monqy: efficient
03:57:35 <monqy> _someone_ doesn't understand elegance, likes perl, is a bad person
03:57:51 <CakeProphet> of course a change of data structure would suffice. linked list is probably not what you want in this scenario.
03:57:56 <Jafet> I think in practice you shouldn't be using lists if you use length
03:58:04 <Jafet> Sequence has O(1) length
03:58:15 -!- tiffany has quit (Remote host closed the connection).
03:58:16 <elliott> CakeProphet: I think that breaks sharing
03:58:40 <Jafet> More pertinently, that breaks non-strictness
03:58:46 <Jafet> Sharing is unaffected
03:58:57 <CakeProphet> o rite.
03:59:01 <CakeProphet> that whole infinite list thing.
03:59:05 <CakeProphet> well that's not an issue.
03:59:15 <CakeProphet> it could magically be made not an issue.
03:59:19 <CakeProphet> I'm pretty sure.
03:59:26 <CakeProphet> but yeah I don't really know much about sharing.
04:00:15 <CakeProphet> monqy: I understand elegance just fine, but... don't see why you would prefer elegance to efficiency when implementing data structures that other people are going to use.
04:00:34 <monqy> then you don't understand elegance
04:00:53 <CakeProphet> but I see that length being O(1) on linked lists would have some issues.
04:00:59 <CakeProphet> monqy: elegance of interface, sure.
04:01:22 <CakeProphet> but as far as I care a data structure could have an ugly implementation as long as it's efficient.
04:01:43 <monqy> I think Jafet sums it up nicely
04:01:44 <monqy> 20:57:59 < Jafet> I think in practice you shouldn't be using lists if you use length
04:01:53 <CakeProphet> yes I agree.
04:05:24 <shachaf> elliott: Remember that Gobby Haskell Arc implementation session thing?
04:05:25 <coppro> rofl
04:05:27 <shachaf> You were there, right?
04:05:37 <coppro> apparently yesterday's xkcd was Randall's first animated gif
04:05:57 <monqy> gobby haskell arc implementation session? arc as in the lisp or what
04:05:58 <elliott> shachaf: I think I started doing my own thing before that, and then gave up in disgust when the hoi polloi ruined it with their "collaboration" bullshit.
04:06:24 <elliott> coppro: I heard it wasn't.
04:06:27 <elliott> WHO TO BELIEVE???
04:06:38 <coppro> elliott: I heard this from Randall
04:06:43 <coppro> apparently it was the first animated gif he made ever
04:06:58 <shachaf> coppro: You mean the one on xkcd.com?
04:07:06 <coppro> shachaf: yes
04:07:09 <shachaf> That is a bad animated GIF!
04:07:14 <elliott> shachaf: No, he means the one on secretanimatedgifs.xkcd.com.
04:07:21 <shachaf> It depends on the fact that browsers violate the GIF spec for historical reasons!
04:07:24 <elliott> DON'T TELL A SINGLE PERSON.
04:07:30 <shachaf> elliott: There exist many Randalls in the world.
04:07:39 <elliott> shachaf: How many of them make xkcds?
04:07:55 <shachaf> elliott: I didn't see anyone mention "xkcd" until I did.
04:08:00 <elliott> <coppro> apparently yesterday's xkcd was Randall's first animated gif
04:08:04 <elliott> shachaf: I did.
04:08:12 <shachaf> elliott: Well, I didn't see it.
04:08:15 <shachaf> Oh, now I see it.
04:08:22 <elliott> shachaf: Also, what's a map structure with fast minKey (O(log n) at least) that isn't Map or IntMap?
04:08:26 <elliott> TIA
04:08:32 <elliott> hmm, I don't even want minKey
04:08:36 <elliott> I want minimumUnusedKey :P
04:08:38 <shachaf> Anyway, he has the frame delay between the frames set to 1. 1!
04:08:41 <shachaf> Can you believe it?
04:08:49 <elliott> I'm disgusted.
04:08:58 <shachaf> He's relying on and old broken behavior of Netscape 4 on old computers that every browser ever has had to replicate.
04:09:08 <shachaf> Disgusting, huh?
04:09:13 <shachaf> He should've left it at 0.
04:09:49 <shachaf> elliott: Also, why ask me in here?
04:10:00 <elliott> That other channel is so, like, big.
04:10:38 * shachaf wrote an animated GIF player that's too unbroken for that comic.
04:10:55 <elliott> So unbroken it doesn't work.
04:11:00 <shachaf> Exactly!
04:11:24 -!- hagb4rd has quit (Ping timeout: 248 seconds).
04:11:47 <shachaf> Ata hafachta ve'ani hafachti uvechol zot ze nish'ar hafuch!
04:11:49 <shachaf> ...As they say.
04:12:10 <elliott> They say that?
04:12:16 <shachaf> Some of them do.
04:12:24 <elliott> Only the lame ones.
04:12:30 <shachaf> :-(
04:12:56 <elliott> Oh no, the Wayback Machine is going to be down for three days.
04:13:09 <shachaf> elliott: You're the one who doesn't speak the right language.
04:13:47 <elliott> shachaf: At least I'm not a Finnish citizen.
04:14:26 <shachaf> That's not Finnish.
04:14:33 * shachaf doesn't even speak Finnish.
04:14:34 <elliott> shachaf: Did I say it was?
04:14:42 <shachaf> elliott: Did I say you said it was?
04:14:59 <shachaf> elliott: By the way, "esolangs" don't count as actual languages.
04:15:02 <elliott> You have an additional space there.
04:15:16 <elliott> And I'll agree with you if you read the entirety of the Checkout page.
04:15:24 <shachaf> Checkout page?
04:15:37 <shachaf> Ah, http://esolangs.org/wiki/Checkout
04:15:50 <shachaf> Maybe I'll just insert random double spaces into my text.
04:15:58 * elliott awaits the inevitable.
04:16:38 <shachaf> Checkout looks like a neat idea.
04:16:59 <elliott> Yes. Now read the entire page.
04:17:01 <elliott> Either:
04:17:01 <shachaf> However, I'm going to need the entire page delivered to me in IRC-sized snippets.
04:17:14 <elliott> (a) You will agree that esolangs can be actual languages because you'll have read the entire damn thing; OR
04:17:30 <elliott> (b) You will give up because it is made of about a billion paragraphs of about ten thousand sentences (this is the likely scenario).
04:17:41 <elliott> Either way I don't have to agree. YaySimple tutorial on Twisted Deferreds and how to implement them in Haskell
04:17:50 <elliott> [asterisk]Yay!
04:17:55 <zzo38> I like the Checkout esolang idea too; I want to be able to use a fully open-source Checkout compiler to program a GPU that has open specification.
04:17:58 * shachaf suspects there's a flaw in elliott's logic.
04:18:02 <shachaf> I can't find it, though.
04:18:15 <elliott> I can guarantee that I never say anything wrong at all.
04:18:23 <elliott> zzo38: I doubt that will happen.
04:19:36 <zzo38> elliott: I, too, doubt it; probably because very few people would be interested and that many GPU do not follow these requirements.
04:19:56 <elliott> It would be neat though.
04:20:04 <elliott> I don't think anyone would want to write programs in Checkout by hand though.
04:20:10 <elliott> It's pretty low level.
04:20:12 <zzo38> Yes it would be neat.
04:21:04 <elliott> It would even be: Super neat.
04:21:26 <elliott> Seat.
04:21:32 <elliott> I'm almost as good at words as monqy.
04:21:41 <elliott> `word
04:21:44 <HackEgo> in
04:21:46 <elliott> CakeProphet...
04:21:50 -!- Jafet has quit (Quit: Leaving.).
04:21:52 <elliott> `word 99
04:21:54 <HackEgo> lumbatenoncipard sawailecgle ibutoehalitter patuddoteeresporfriipele pracke camineanystionatiandhylcherty boufaskiditoiionfilist dis decrccatenadalc arcte mermi ar ment postragopc yamopporgeminerridepomarhuferse orfs sellineum mangriek hia grolina shotticallorp lobufgendlcmpres clum ticalder tf leuck foravoynynatios wal gos
04:21:59 <elliott> Lumbatenoncipard.
04:22:25 <zzo38> I would want to write programs in Checkout almost by hand, by having a macro system for it. (BLISS has a powerful macro system, so you could possibly use something like that)
04:25:32 <monqy> hi
04:25:36 <monqy> im
04:25:37 <monqy> back
04:26:00 <CakeProphet> elliott: in. good word.
04:26:11 <elliott> A very good word.
04:26:15 <elliott> Almost as good a word as lumbatenoncipard.
04:26:27 <CakeProphet> mangriek
04:27:27 -!- elliott_ has joined.
04:27:31 <elliott_> Foravoynynatios.
04:27:45 <CakeProphet> checkout seems so unusual is this how processors actually work kind of?
04:27:51 <oerjan> <elliott> shachaf: Also, what's a map structure with fast minKey (O(log n) at least) that isn't Map or IntMap? <-- finger trees
04:28:21 <shachaf> oerjan: elliott decided he didn't want minKey and didn't tell us what he did want.
04:28:22 <CakeProphet> is the level hierarchy essentially a means of parallelism?
04:28:33 <elliott_> I did.
04:28:36 <elliott_> I said I wanted minimumUnusedKey.
04:28:44 <elliott_> Basically I'm allocating ID numbers and then looking them up.
04:28:57 <elliott_> And then deleting them later, in which case the ID should be available for reuse.
04:29:03 <shachaf> Oh.
04:29:08 <shachaf> Is reuse even important?
04:29:16 <shachaf> CakeProphet: Processors are, like, weird, man.
04:29:43 <elliott_> shachaf: Probably not, but thirty-two bit integers are not /that/ hard to exhaust.
04:29:51 <shachaf> 32?
04:30:05 <shachaf> Lrn221stcentury
04:30:05 <elliott_> Yes.
04:30:09 <elliott_> Protocol.
04:30:31 <elliott_> And the intention is to be able to run the server indefinitely, so reuse is preferred.
04:30:34 <elliott_> I suppose I could rely on overflow.
04:30:36 -!- elliott has quit (Ping timeout: 248 seconds).
04:30:45 <shachaf> Anyway, fine.
04:31:27 <shachaf> You could just keep a set of keys that you've deleted, if there aren't going to be that many.
04:32:13 <elliott_> Well, it's a network server with up to, say, a hundred connections at once.
04:32:21 <elliott_> Connections probably won't last more than a few hours.
04:32:29 <elliott_> And connections/disconnections will be pretty frequent.
04:32:43 <CakeProphet> you probably want a finger tree of priority queues.
04:32:49 <elliott_> So were one to run a ridiculously popular server, one could see pretty damn high identifiers pretty quickly.
04:32:54 <elliott_> shachaf: ...but I guess overflow will sort it out.
04:33:00 <elliott_> I mean, unless one guy stays connected for like two years.
04:33:03 <shachaf> Don't be disgusting.
04:33:06 <zzo38> You could have a infinite list of 1,2,3,4,5,6,7,8,9 and so on, and when you delete, put it at the beginning
04:33:36 <zzo38> And you might want a timeout; you don't need to stay connected for two years
04:33:53 <elliott_> Hmm, an infinite list might work.
04:33:57 <elliott_> shachaf: Why didn't you suggest that?
04:34:05 <shachaf> Suggest what?
04:34:11 <elliott_> <zzo38> You could have a infinite list of 1,2,3,4,5,6,7,8,9 and so on, and when you delete, put it at the beginning
04:34:12 <zzo38> (If it is 32-bit numbers, it will not actually be infinite)
04:34:13 <elliott_> That.
04:34:21 <CakeProphet> elliott_: I considered it, but I figured it would be too trivial since you were trying more complicated stuff.
04:34:38 * shachaf can never figure out elliott's sense of humor.
04:34:46 <CakeProphet> humor? where?
04:34:52 <shachaf> Not sure.
04:34:57 <CakeProphet> wat humor help.
04:35:46 * elliott_ wonders if there's a nicer way to write [0..] ++ [-1,-2..]
04:36:26 <monqy> zipeprs?
04:36:43 <CakeProphet> elliott_: I'm assuming you've "casted" that into an int or something?
04:36:48 <elliott_> Casted?
04:36:50 <CakeProphet> otherwise the negatives won't ever be reached.
04:37:04 <shachaf> elliott_: What's wrong with [minBound..]?
04:37:08 <monqy> cakeprohpet wizdom
04:37:20 <CakeProphet> elliott_: disambiguated the Num instance. does that sound better?
04:37:28 <shachaf> UNSAFECOERCE
04:37:34 <CakeProphet> no just ::
04:37:51 <oerjan> * elliott_ wonders if there's a nicer way to write [0..] ++ [-1,-2..] <-- [0..], assuming they're Integers :P
04:37:52 <shachaf> Oh. safe...Coerce?
04:37:57 <shachaf> You're not even coercing. :-(
04:38:04 <shachaf> Come on, you gotta coerce.
04:38:04 <CakeProphet> oerjan: elliott_: yes this is what I was getting
04:38:07 <elliott_> shachaf: It's kind of ugly to have the first connection get a really huge negative ID number. :p
04:38:14 <monqy> xippers ar egood
04:38:15 <shachaf> No it's not?
04:38:16 <elliott_> That's literally the only reason.
04:38:18 <elliott_> shachaf: Yes it is.
04:38:20 <elliott_> 0 is a much nicer number.
04:38:28 <elliott_> Sequences are meant to start at 0.
04:38:31 <shachaf> elliott_: [0..] :: Word32?
04:38:36 <elliott_> Protocol.
04:38:39 <shachaf> And then cast it.
04:38:45 <elliott_> With unsafeCoerce?
04:38:48 <elliott_> :p
04:38:48 <shachaf> With whatever.
04:38:53 <shachaf> unsafeCoerce is good.
04:39:03 <monqy> > [0..] :: Word32
04:39:04 <lambdabot> Couldn't match expected type `GHC.Word.Word32'
04:39:04 <lambdabot> against inferred typ...
04:39:10 <monqy> try harder
04:39:13 <elliott_> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-1
04:39:13 <elliott_> 18,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9
04:39:13 <elliott_> ,-8,-7,-6,-5,-4,-3,-2,-1]
04:39:15 <elliott_> shachaf: Not quite the same :P
04:39:25 <elliott_> Although, admittedly, nicer.
04:39:26 <shachaf> elliott_: It accomplishes the purpose.
04:39:26 <monqy> so this is what you are doigne..
04:39:35 <zzo38> Use unsigned types if it helps.
04:39:53 <shachaf> elliott_: When did your reuse-of-IDs problem get solved again?
04:39:55 <elliott_> [0..] ++ [minBound..-1] I guess is as good as it gets.
04:40:04 <elliott_> shachaf: When zzo38.
04:40:35 <CakeProphet> elliott_: I find it hilarious that making that sequence "look nicer" is an actual issue you're trying to resolve. :P
04:41:07 <oerjan> > map fromEnum [0 :: Word8 ..] :: [Int8]
04:41:07 <lambdabot> Couldn't match expected type `GHC.Int.Int8'
04:41:08 <lambdabot> against inferred type `...
04:41:12 <oerjan> argh
04:41:19 <oerjan> > map fromIntegral [0 :: Word8 ..] :: [Int8]
04:41:20 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
04:41:29 <elliott_> oerjan: That's nice.
04:41:44 <oerjan> > reverse $ map fromIntegral [0 :: Word8 ..] :: [Int8]
04:41:45 <lambdabot> [-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20,-21...
04:41:45 <CakeProphet> I see no aesthetic difference at all in that
04:41:56 <CakeProphet> if anything it might actually be uglier to me.
04:42:08 <CakeProphet> just because there's more stuff. :P
04:42:17 <shachaf> > (\x->x::Int8).fromIntegral.[(\x->x::Word8)0..]
04:42:18 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
04:42:25 <calamari> [1,2,skip a few,99,100]
04:42:30 <CakeProphet> maybe I have perl mind virus where "is smaller code" -> "looks nicer"
04:42:43 <shachaf> CakeProphet: s/erl/rogrammer/
04:42:56 <elliott_> Erl rogrammer.
04:43:04 <monqy> im not a programmer, proud?
04:43:09 <elliott_> MC/Host.hs:49:58: Not in scope: `..-'
04:43:09 <elliott_> Sign.
04:43:24 <monqy> good job haskell
04:43:42 <shachaf> elliott_: What you *actually* want is [0,1,-1,2,-2,..]
04:43:46 <monqy> good thing I put spaces around my things so this never happens to me
04:43:49 <shachaf> That's the true enumeration.
04:44:00 <monqy> > [0,1,-1,2,-2,..]
04:44:01 <lambdabot> <no location info>: parse error on input `..'
04:44:02 <elliott_> Trumeration.
04:44:06 <monqy> no haskell no ;_;
04:44:31 <oerjan> > [0, -1..] <**> [id, (1-)]
04:44:32 <lambdabot> [0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,-8,9,-9,10,-10,11,-11,12,-12,13,-13...
04:44:40 <monqy> good
04:45:03 <shachaf> There you go.
04:45:07 <shachaf> Now that's an enumeration!
04:45:14 <zzo38> Yes, [0,1,-1,2,-2,.. is the way if you have a list with an first element and want to list *all* of the integers.
04:45:15 <monqy> thumbs up
04:45:19 <shachaf> A real enumeration. Remuneration.
04:45:20 <shachaf> Wait.
04:45:39 <monqy> emuneration
04:45:43 <oerjan> > 1 - (maxBound :: Int8)
04:45:44 <lambdabot> -126
04:45:51 <oerjan> misses some terms
04:45:57 <oerjan> oh wait
04:45:59 <zzo38> But do you require all of the integers?
04:46:01 <oerjan> > 1 - (minBound :: Int8)
04:46:02 <lambdabot> -127
04:46:05 -!- elliott__ has joined.
04:46:08 <monqy> lame terms for lame people
04:46:11 <oerjan> actually, overlaps some
04:46:38 <monqy> > reverse $ [0, -1..] <**> [id, (1-)]
04:46:47 <CakeProphet> ...
04:46:52 <CakeProphet> this is the most ridiculous code pageant every.
04:46:54 <lambdabot> thread killed
04:46:55 <CakeProphet> -y
04:46:59 <monqy> lambdabot ;_;
04:47:19 <oerjan> monqy: lambdabot is _shockingly_ bad at reversing infinite lists
04:47:28 <monqy> oerjan: a True Pity
04:47:33 <monqy> Truely a Pity
04:47:50 <monqy> > reverse ([0, -1..] <**> [id, (1-)]) :: [Int8]
04:47:55 <monqy> no.......
04:47:59 <lambdabot> mueval-core: Time limit exceeded
04:48:03 <monqy> :'(
04:48:03 <zzo38> You cannot reverse infinite lists!
04:48:17 <oerjan> > reverse ([0, -1..] <**> [id, (1-)]) :: [Int8]
04:48:19 <lambdabot> [-127,-128,-128,-127,127,-126,126,-125,125,-124,124,-123,123,-122,122,-121,...
04:48:23 <zzo38> Because a list must have a first element
04:48:24 <shachaf> > map (\x -> foldl' (\x y -> 2 * x + y) 0 x :: Int8) $ replicateM (sizeOf (undefined::Int8)*8) [0,1]
04:48:25 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
04:48:30 <shachaf> elliott_: That.
04:49:16 -!- elliott_ has quit (Ping timeout: 248 seconds).
04:50:01 <elliott__> shachaf: Ah yes. Beautiful.
04:51:59 <CakeProphet> elliott__: using floating point numbers instead
04:52:02 <CakeProphet> best idea.
04:52:05 <elliott__> Protocol.
04:52:11 <elliott__> Protocol protocol protocol.
04:52:14 <CakeProphet> trick it.
04:52:16 <CakeProphet> >_>
04:52:30 <CakeProphet> use short floats.
04:52:31 <CakeProphet> and stuff.
04:52:35 <monqy> ewwwwwwwww
04:52:39 <monqy> why are you saying floats
04:52:39 <monqy> stop
04:52:40 <monqy> that
04:52:41 <monqy> now
04:52:43 <monqy> ok
04:52:46 <CakeProphet> ..
04:52:52 <CakeProphet> :t 0.2 :: Float
04:52:53 <lambdabot> Float
04:52:55 <monqy> ;_;
04:52:56 <elliott__> mchost: PacketReadError "too few bytes\nFrom:\tdemandInput\n\n"
04:52:57 <elliott__> help
04:53:06 <shachaf> elliott__: You can enumerate Float32s!
04:53:18 <CakeProphet> monqy: I was under the impression that float was a perfectly normal thing for a programmer to say.
04:53:22 <shachaf> IEEE floats are even correctly ordered.
04:53:26 <monqy> floats is a bad word
04:53:29 <monqy> never say
04:53:36 <calamari> > root beer floats
04:53:37 <lambdabot> Not in scope: `root'Not in scope: `beer'Not in scope: `floats'
04:53:40 <CakeProphet> monqy: and only gross sounding to weird pedantic people
04:53:43 <CakeProphet> actually not even those people
04:53:44 <shachaf> > root beer sinks
04:53:44 <lambdabot> Not in scope: `root'Not in scope: `beer'Not in scope: `sinks'
04:53:45 <CakeProphet> they don't care either.
04:53:46 <CakeProphet> just you.
04:54:03 <monqy> ;_;
04:54:22 <calamari> is that missing spaces for anyone else?
04:54:26 <monqy> yes
04:55:34 <calamari> > foo
04:55:35 <CakeProphet> monqy: man this bacon is so good.
04:55:35 <lambdabot> No instance for (GHC.Show.Show (m t))
04:55:35 <lambdabot> arising from a use of `M5331478887...
04:55:45 <CakeProphet> I'm going to get so fat if I keep eating bacon all the time but it's so delicious.
04:55:45 <monqy> CakeProphet: even worse
04:55:48 <elliott__> > runIdentity foo
04:55:50 <lambdabot> 5
04:55:53 <elliott__> ah.
04:55:57 <elliott__> good five
04:56:07 <calamari> I guess I should learn haskell sometime
04:56:08 <monqy> never ever do bacon floats or i will hunt you down and kill you augh my leg
04:56:29 <oerjan> > fromJust foo
04:56:30 <lambdabot> 5
04:56:37 <CakeProphet> `addquote < monqy> never ever do bacon floats or i will hunt you down and kill you augh my leg
04:56:39 <HackEgo> 704) < monqy> never ever do bacon floats or i will hunt you down and kill you augh my leg
04:56:40 <CakeProphet> ...what
04:56:41 <CakeProphet> why does irssi
04:56:42 <elliott__> "Precise Pangolin"? Seriously, Shuttleworth?
04:56:42 <CakeProphet> do
04:56:42 <CakeProphet> that
04:56:45 <elliott__> `delquote 704
04:56:48 <CakeProphet> I didn't even highlight the newline.
04:56:48 <HackEgo> ​*poof*
04:56:51 <elliott__> `delquote cakepropehts being born
04:56:52 <HackEgo> No output.
04:57:06 <CakeProphet> `addquote <monqy> never ever do bacon floats or i will hunt you down and kill you augh my leg
04:57:08 <HackEgo> 704) <monqy> never ever do bacon floats or i will hunt you down and kill you augh my leg
04:57:11 <monqy> no CakeProphet
04:57:11 <monqy> bad
04:57:15 <elliott__> CakeProphet: Too much space.
04:57:18 <elliott__> `delquote 704
04:57:19 <CakeProphet> ...
04:57:20 <HackEgo> ​*poof*
04:57:26 <CakeProphet> `addquote <monqy> never ever do bacon floats or i will hunt you down and kill you augh my leg
04:57:28 <HackEgo> 704) <monqy> never ever do bacon floats or i will hunt you down and kill you augh my leg
04:57:38 <CakeProphet> SUCH HIGH STANDARDS.
04:57:52 <CakeProphet> also seriously why does irssi include the newline when I specifically avoided it.
04:57:55 <CakeProphet> why is it dumb.
04:57:59 <elliott__> `delquote 705
04:58:01 <HackEgo> No output.
04:58:04 <elliott__> :}
04:58:08 <monqy> :}
04:58:11 <CakeProphet> :}
04:58:14 <CakeProphet> new fad.
04:58:18 <monqy> the augh my leg is because i felt a pain running down my leg while i was typing it
04:58:19 <elliott__> no
04:58:20 <elliott__> our fad
04:58:32 <CakeProphet> no I am the trend follower.
04:58:33 <monqy> my left leg, if it helps your imagination
04:58:41 <monqy> my right leg if you'd prefer I lie
04:58:55 <oerjan> <CakeProphet> I didn't even highlight the newline. <-- it will end the line if there is any newline inside the paste.
04:58:56 <monqy> both legs if you want to imagine me in pain
04:58:57 <CakeProphet> monqy: conditional truth is confusing.
04:59:15 <CakeProphet> oerjan: ...right, which is why I didn't highlight the newline
04:59:17 <CakeProphet> and it still did it.
04:59:34 <CakeProphet> I specifically avoided it.
05:00:07 <CakeProphet> maybe I messed up. I dunno.
05:00:29 <oerjan> ah.
05:00:29 <CakeProphet> :}{
05:00:33 <CakeProphet> innovation.
05:00:37 <monqy> unnovation
05:00:44 <calamari> I think I found out how to use social networks properly.. it's actually a game: you try to be as annoying as possible.. once you lose all your friends, you win!
05:00:47 <CakeProphet> standing ovulation.
05:01:17 -!- oerjan has quit (Quit: Later).
05:02:08 <CakeProphet> rip oerjan, died as he lived.
05:02:15 <CakeProphet> as people often do.
05:02:19 <CakeProphet> `words 40
05:02:21 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: words: not found
05:02:27 <CakeProphet> `word 40
05:02:29 <HackEgo> ixted eque nos welogro deng poccbiscaletchrostanacatiblesladism ra rejlaulon iseetrogit ducha agog ableinkeilt mum bahmillhortiquerglisigk bed chenn klexnices gj sper loshe genzia ree hot saming by bur dectiornitremichendhase pre eutted la na vak wootompdpliamermintionnior aterie oxae mitnr omeng mele ovs imseria
05:02:42 <elliott__> poccbiscaletchrostanacatiblesladism
05:02:53 <monqy> deng is like a word I would say
05:02:59 <monqy> `log deng
05:03:21 <HackEgo> 2011-10-07.txt:05:02:59: <monqy> `log deng
05:03:23 -!- calamari has quit (Quit: the game).
05:03:25 <CakeProphet> ducha is a spanish verb for shower.
05:03:27 <monqy> hackego....
05:03:34 <monqy> eutted is good
05:03:43 <monqy> omeng. just about anything ending with eng is good.
05:04:06 <CakeProphet> oh ducha is also the noun shower
05:06:10 <CakeProphet> I enjoy ixted
05:08:10 <CakeProphet> I should take all this wonderful free time I have
05:08:16 <CakeProphet> and instead of doing nothing as I am prone to do
05:08:22 <CakeProphet> finish the next version of words
05:08:42 -!- elliott__ has changed nick to elliott.
05:08:43 -!- elliott has quit (Changing host).
05:08:43 -!- elliott has joined.
05:08:54 <elliott> but it is already perfect
05:09:01 <CakeProphet> not quite.
05:09:06 <CakeProphet> I need to add the other datasets.
05:09:10 <CakeProphet> and other options.
05:09:17 <CakeProphet> and the new algorithm.
05:09:22 <CakeProphet> but I can keep the old one too if you like?
05:11:08 <elliott> mchost: PacketReadError "too few bytes\nFrom:\tdemandInput\n\n"
05:11:08 <elliott> WHY YOU INFERNAL MACHINE WHYYYY
05:16:48 <CakeProphet> x is the best perl operator
05:17:04 <CakeProphet> because I'm sure it's absolutely terrible to parse.
05:24:28 -!- kmc has quit (Ping timeout: 248 seconds).
05:25:57 <CakeProphet> I wonder if there's any reason not to prenormalize the data in the actual file.
05:26:19 <zzo38> What would the category of magic spells be in Icosahedral RPG?
05:29:23 -!- kmc has joined.
05:35:39 <CakeProphet> I wonder if this word generating algorithm is similar to what a captcha service uses to generate some of its phrases.
05:36:14 <CakeProphet> some just use dictionary words or random strings of characters, of course.
05:42:35 <zzo38> When you make a category from a graph (using the things I have mentioned), what does a product category and comma category and so on make? What functors can you make? Do monomorphisms correspond to anything?
05:49:06 <CakeProphet> sub dataset_opt_handler($) { %opts{shift} = 1 } my %dataset_opts = map {$_, \dataset_opt_handler} %$data; GetOptions (%dataset_opts, N=>\$dont_normalize);
05:49:13 <CakeProphet> best option handling code
05:52:10 <zzo38> If I have data X b f = X f (b -> X b f) what is that called?
05:52:27 <zzo38> (Instead of "X", that is.)
05:53:11 <CakeProphet> !perl print (5/2)
05:53:18 <CakeProphet> bah
05:53:22 <CakeProphet> `perl print (5/2)
05:53:23 <zzo38> It has some similarities to streams as well as some similarities to barrier monads
05:53:24 <HackEgo> Can't open perl script "print (5/2)": No such file or directory
05:53:31 <CakeProphet> `run perl -e 'print (5/2)'
05:53:33 <HackEgo> 2.5
05:53:43 <CakeProphet> ...okay that's what I thought.
05:58:14 <zzo38> Therefore I called it "BarrierStream"
06:02:01 <CakeProphet> you know what would be interesting.
06:02:30 <CakeProphet> a language where you can initialize a variable outside of the scope it's defined to be visible in.
06:02:39 <elliott> ew
06:02:58 <CakeProphet> I suppose that's similar to be dynamic scoping actually.
06:03:02 <CakeProphet> but less specific.
06:03:04 <CakeProphet> to one scope
06:03:06 <monqy> initialization? whats that?
06:03:25 <CakeProphet> monqy: that's where you assign a variable for the first time in these weird state machine things.
06:03:28 <CakeProphet> I dunno it should just be math.
06:03:52 <monqy> "assign a variable for the first time" what!!!!
06:03:57 <monqy> state machine things whaaaaaaaaaaat
06:05:40 <CakeProphet> I think they're called computers I can't remember.
06:06:01 <monqy> i mpuke at the very thoguht
06:09:33 <CakeProphet> my $sum = $dont_normalize? 1 : sum(values %fs);
06:09:36 <CakeProphet> bahahaha I'm so evil.
06:10:33 <monqy> :(
06:10:54 <CakeProphet> because later I do:
06:10:57 <CakeProphet> ($grams{$key}->{$c} //= 0) += $v/$sum;
06:11:07 <CakeProphet> so $sum = 1 has the effect of not normalizing.
06:11:33 <CakeProphet> best evil ever.
06:11:55 * CakeProphet has no taste etc
06:13:04 <CakeProphet> oh wait I just realized....
06:13:11 <CakeProphet> $dont_normalize is 1... when it's on.
06:13:41 <CakeProphet> bahahahahahaha my $sum = $dont_normalize || sum(values %fs);
06:14:01 <monqy> no CakeProphet no
06:15:07 <monqy> hm another spambot with sentence beginning problems
06:15:08 <fizzie> Is that //= 0 necessary?
06:15:23 <CakeProphet> no but it suppresses a warning
06:15:30 <CakeProphet> I believe it was you who told me that code would have a warning otherwise.
06:15:43 <fizzie> It certainly wasn't me; could've been ais523.
06:16:07 <CakeProphet> oh wow I just realized I forgot use strict; use warnings;
06:16:12 -!- pikhq has joined.
06:16:22 <fizzie> Don't see any warnings in there anyhow.
06:16:24 <fizzie> $ perl -e 'use strict; use warnings; use Data::Dumper; my %a = (); $a{b}->{c} += 1; print Dumper(\%a);'
06:16:24 <fizzie> $VAR1 = {
06:16:24 <fizzie> 'b' => {
06:16:24 <fizzie> 'c' => 1
06:16:24 <fizzie> }
06:16:25 <fizzie> };
06:16:34 <CakeProphet> oh, hmmm
06:16:35 <CakeProphet> okay.
06:16:38 <CakeProphet> I guess it's not necessary then
06:17:02 <CakeProphet> maybe some versions do warn?
06:17:09 <fizzie> Could be.
06:17:27 <fizzie> I don't really personally feel all that comfortable in doing the autovivification dance.
06:17:57 <CakeProphet> why'sat?
06:18:13 <fizzie> I'unno; personal idiosyncracy, I suppose. It's certainly all Perlish and all that.
06:19:14 <CakeProphet> dunno, I like it. Saves a bunch of %blah = (); lines
06:19:20 <CakeProphet> or, worse, expressions.
06:19:25 <CakeProphet> nested ones.
06:19:28 -!- pikhq_ has quit (Ping timeout: 244 seconds).
06:21:18 <fizzie> $ echo 'long long long int im_so_long;' | gcc -xc -
06:21:18 <fizzie> <stdin>:1: error: ‘long long long’ is too long for GCC
06:21:19 <fizzie> The funniest.
06:21:43 <fizzie> Sadly "short short" is just "duplicate short".
06:21:58 <monqy> short short is too long
06:22:07 <monqy> what's long short
06:22:15 <fizzie> "error: both ‘long’ and ‘short’ in declaration specifiers"
06:22:28 <monqy> :(
06:22:30 <fizzie> $ echo 'long long long long long int im_so_long;' | gcc -xc -
06:22:31 <fizzie> <stdin>:1: error: ‘long long long’ is too long for GCC
06:22:31 <fizzie> <stdin>:1: error: ‘long long long’ is too long for GCC
06:22:31 <fizzie> <stdin>:1: error: ‘long long long’ is too long for GCC
06:22:34 <fizzie> That's a bit funny too.
06:22:43 <monqy> long short too confusing for gcc
06:22:43 <fizzie> It's one more error for each (overlapping) triplet of longs.
06:23:02 <pikhq> Demonstrating that GCC's error reporting sucks.
06:23:13 <monqy> , is the best
06:23:43 <pikhq> Sadly, clang is boring.
06:23:48 <pikhq> $ echo 'long long long int im_so_long;' | clang -xc -
06:23:51 <pikhq> <stdin>:1:11: error: cannot combine with previous 'long long' declaration specifier
06:23:54 <pikhq> long long long int im_so_long; ^
06:23:57 <pikhq> 1 error generated.
06:24:06 <pikhq> Bleh, copy-paste fucked that up.
06:24:09 <fizzie> I recall not-so-seriously suggesting that each 'long' should double the width, each 'short' halve it, and it should support arbitrary widths.
06:24:27 <CakeProphet> gigabyte integers. yesssssss
06:24:35 <pikhq> fizzie: Easier solution: int*_t.
06:24:45 <pikhq> Where * can be any greater-than-0 power of 2.
06:25:18 <monqy> int0s best
06:25:26 <fizzie> It doesn't quite have the same feel as "long long long long long long short /* just to avoid the monotony */ long int two_kilobits;"
06:25:31 <pikhq> int1_t is best. Consider that that's signed.
06:25:33 <monqy> int1/2
06:25:34 <CakeProphet> im agree with monqy
06:25:47 <monqy> CakeProphet: extra e on that agre there
06:26:00 <pikhq> int2048_t two_kilobits;
06:26:14 <pikhq> Actually. the int*_ts are typedefs.
06:26:17 <pikhq> They could coexist.
06:27:06 <CakeProphet> what would happen if you tried to use a struct of ints in an integer expression?
06:27:13 <CakeProphet> would it just truncate it?
06:28:53 <CakeProphet> `run perl -e 'use Data::Dumper; $t=2; Dumper(\$t);
06:28:56 <HackEgo> sh: -c: line 0: unexpected EOF while looking for matching `'' \ sh: -c: line 1: syntax error: unexpected end of file
06:29:04 <CakeProphet> `run perl -e 'use Data::Dumper; $t=2; Dumper(\$t);'
06:29:06 <HackEgo> No output.
06:29:11 <CakeProphet> `run perl -e 'use Data::Dumper; $t=2; print Dumper(\$t);'
06:29:13 <HackEgo> ​$VAR1 = \2;
06:29:38 <CakeProphet> it would be nice if that didn't output the reference.
06:29:43 <CakeProphet> `run perl -e 'use Data::Dumper; $t=2; print Dumper($t);'
06:29:45 <HackEgo> ​$VAR1 = 2;
06:29:47 <CakeProphet> oh, okay...
06:30:05 <CakeProphet> `run perl -e 'use Data::Dumper; $t=2; print Dumper($t, 4);'
06:30:08 <HackEgo> ​$VAR1 = 2; \ $VAR2 = 4;
06:31:34 <fizzie> You can have signed one-bit-wide bitfields already, though. It has a range of [-1, 0] on a two's-complement system. At least so it happens to work on this GCC, and I can't find anything in the standard prohibiting it. I'm just wondering what it would do on a sign-magnitude machine.
06:31:50 <fizzie> Possibly it'd just be -0 or 0.
06:33:17 -!- zzo38 has quit (Remote host closed the connection).
06:34:25 <pikhq> Pretty sure that'd be the behavior per the standard.
06:34:55 <CakeProphet> fizzie: would it be possible via prototyping to have a subroutine take either a hash or a hashref and treat either exactly the same way?
06:35:05 <CakeProphet> or, rather, what's the best way to do that.
06:36:49 -!- copumpkin has quit (Ping timeout: 258 seconds).
06:37:13 -!- copumpkin has joined.
06:38:43 <fizzie> I don't really think so. I mean, \% would give you a hash-as-a-hashref, but it can't be that if you want it to take a hashrefs too (without explicit %$foo'ing them).
06:39:01 <CakeProphet> ah okay
06:39:16 <CakeProphet> I'll just use hashref then as that's the common case
06:39:24 <CakeProphet> and just add a \ when I need to.
06:39:36 <CakeProphet> better looking than %{} all over the place
06:40:32 <fizzie> That sounds reasonable. You could argue for \% as it'd "compile-time" typecheck you're always passing in a hash, but that doesn't really help since it wouldn't look past the %{} in the cases where something bad actually might occur.
06:47:28 <CakeProphet> I wonder if I could somehow incorporate recursion into the lvalue sub modifier.
06:47:37 <CakeProphet> recursive_call() = blah; ....
06:48:09 <CakeProphet> when would you even do that.
06:50:10 <CakeProphet> elliott: so, re: word generation, you said the space frequency should increase exponentially after the target length is reached.
06:50:18 <CakeProphet> exactly what kind of exponential? if that makes sense.
06:51:36 <fizzie> Possibly the sort where the base is larger than one.
06:51:45 <CakeProphet> yes I thought that might be the case.
06:52:52 <CakeProphet> 2 seems quite extreme...
06:53:03 <CakeProphet> perhaps polynomial increase would be more reasonable?
06:54:47 <elliott> 2.
06:55:24 <CakeProphet> so uh.... space = 2**space?? that uh.... okay.
06:55:41 <fizzie> 2**(length-target_length), more like?
06:55:41 <elliott> ...
06:55:44 <elliott> no
06:55:46 <elliott> yes
06:56:03 <CakeProphet> ah okay.
06:56:24 <CakeProphet> shouldn't it sort of depend on the original frequency though?
06:56:44 <fizzie> Well, I was assuming "space" was a multiplier for it or some-such.
06:56:55 <CakeProphet> this is just assigning a flat, very high percent to spaces, which would not produce natural endings.
06:56:58 <CakeProphet> ah okay.
06:57:46 <CakeProphet> I don't know polynomial still makes sense to me especially with values that are already normalized. 2**anything is just going to be a ridiculous amount of probability.
06:58:51 <fizzie> Given that you already (I guess?) select a properly distributed random target length, I don't suppose the way you emphasize the spaces matters all that much; all it affects is what's the expected amount of "extra" characters you will get.
06:59:33 <elliott> fizzie: CakeProphet: You want the probability of space to get exponentially closer to one each character you go OVER target.
06:59:38 <elliott> NOT as you approach target.
06:59:40 <elliott> As you go OVER.
06:59:47 <CakeProphet> ...this is what I'm doing.
06:59:50 <elliott> And note that target is actually the real target length MINUS a small constant, so this works out.
06:59:59 <fizzie> Yes, that is not news.
07:00:01 <CakeProphet> yes, this is also what I'm doing.
07:00:15 -!- nooga has joined.
07:00:31 <elliott> CakeProphet: Anyway, the probability is MEANT to be ridiculous.
07:00:40 <elliott> The whole point is to not go over the target by more than a few.
07:01:25 <CakeProphet> it seems that you lose much of the benefit of the spaces if the probability increase significantly outweighs the Markov chain.
07:01:56 <CakeProphet> might as well stop a randomly selected length.
07:01:58 <CakeProphet> *at a
07:02:04 <elliott> You are wrong.
07:02:18 <elliott> It is far preferable to do this than to go over the target by much.
07:03:44 <elliott> CakeProphet: To be clear: Of course you want to scale up lengths as you approach the target.
07:03:52 <elliott> But you want to scale them much, much faster once you pass it.
07:03:54 <elliott> Erm
07:03:57 <elliott> s/lengths/spaces/
07:04:23 <CakeProphet> I thought the idea was to ignore spaces until target length?
07:04:40 <elliott> ...No.
07:04:59 <elliott> You want spaces to be reduced in likelihood at the start, increase as you get closer to the target, and then sharply increase as you pass it.
07:05:22 <elliott> The various factors can be tweaked by comparing the length of the words produced to the target lengths.
07:08:09 <CakeProphet> the target length is already based on the word length histogram. I don't see the benefit of allowing words to stop short of the target when the idea is to replicate the word lengths of the dataset.
07:09:12 <elliott> say the target is seven
07:09:14 <elliott> if you can stop with probability 0.99999 after foobar
07:09:32 <elliott> or with probability 0.3 scaled up after foobarebq
07:09:34 <elliott> which would you prefer
07:09:37 <elliott> hint: the former
07:12:52 <CakeProphet> but all of this stuff has the effect of shortening the mean length of the generated words below the mean length of the dataset.
07:13:18 <CakeProphet> though perhaps only by a small amount.
07:13:37 <elliott> No.
07:13:49 <elliott> Not with constant factor tweaking.
07:14:35 <fizzie> You just pick your target-length-to-real-target-length offset so that it matches the mean of the difference between your target length and the mean of what you got with it.
07:16:03 <elliott> Right.
07:16:59 <CakeProphet> uh, real target length? +_+
07:17:22 <fizzie> The one picked from your dataset. As opposed to the one used in the space-weighting.
07:17:43 <CakeProphet> oh
07:17:55 <fizzie> Alternatively, you can have just a single target length and have an constant in the space-weighting with some other name, if you like that more.
07:18:50 <CakeProphet> uh, I have no clue I'm really tired. :P
07:19:41 <fizzie> With a context length of 2, it's not really going to be so terribly clever about "wordness", so personally I wouldn't care about biases in the exact distribution of word endings so much.
07:19:58 <fizzie> Just, you know, do something.
07:20:37 <CakeProphet> to me this algorithm seems to make the actual markov probability of a space entirely irrelevant.
07:20:47 <CakeProphet> or almost irrelevant I mean
07:22:59 <fizzie> It's going to avoid unseen word endings, which is probably the most important thing; and depending on your parameters (basically, how "sharply" you fix it to be the target length) it's still going to make unlikely word endings unlikelier than likely ones.
07:29:49 <CakeProphet> right, but that's kind of like saying O(2^n + n^3) is noticeably slower than O(2^n + n^2)
07:32:17 <fizzie> It's not going to be very likely that you happen to end up multiple characters past your target length, where the space-weighting would flatten the last-letters-of-the-word distribution much.
07:33:18 <CakeProphet> I'm mostly concerned about getting more unusual word endings.
07:34:03 <fizzie> That's a strange thing to be concerned about.
07:34:32 <CakeProphet> I'm increasing their likelihood exponentially...
07:34:32 -!- elliott has quit (Remote host closed the connection).
07:35:00 <fizzie> Yes, as you go over the target length; but you don't really go over the target length by much very often.
07:35:58 <CakeProphet> okay so how should I scale before then?
07:38:09 <fizzie> It's really up to you. All you're doing is determining the shape of the distribution of the difference between the generated word length and the target word length. Approximately speaking, your final word length distribution is going to be a convolution of that and your target distribution (the dataset word lengths). If you make it possible to deviate much from the target length, you'll possibly lessen the bias on word endings, but it'll smoosh the generated wo
07:38:10 <fizzie> rd lengths by some amount too.
07:38:56 <CakeProphet> there's no way I'm going to get this right on the first try. :P
07:39:27 <fizzie> You're not going to get it "right" anyway; just make up something that spews reasonable-looking output.
07:39:48 <fizzie> If you seriously care about this so much, you should probably be doing the exact thing, but that sounds pretty messy. (Basically, for each generated character you should only consider the subset of 'grams that can possibly result in a word of the desired length, renormalized. It should be possible to precompute some of this, but still.)
07:41:23 <CakeProphet> okay so... space_f*(length word - target)????
07:41:28 <CakeProphet> that looks bad.
07:41:42 <CakeProphet> also that's negative.
07:42:43 <CakeProphet> what if I just did 2**(length $word - $target) the entire time?
07:43:01 <CakeProphet> this would make spaces uncommon up to the target I believe.
07:43:31 <fizzie> You can do that, yes. Assuming that's a value you then multiply the existing space frequency with.
07:43:39 <CakeProphet> right
07:44:18 <CakeProphet> so when the difference = 1 that means space is 50% chance...
07:44:36 <CakeProphet> assuming a normalized dataset.
07:45:13 <CakeProphet> er... no
07:45:14 <CakeProphet> neverind
07:45:14 <CakeProphet> :P
07:45:17 <CakeProphet> +m
07:45:18 <fizzie> When length $word == $target+1, you have twice the chance of space that you would normally have.
07:45:37 <CakeProphet> okay that's not too bad
07:46:18 <CakeProphet> I should have an option to override the distribution. :P
07:46:23 <CakeProphet> with perl code!
07:46:35 <CakeProphet> what could be safer.
07:46:49 <fizzie> You can tune the base if it doesn't seem to do well, and you certainly should tune the offset you apply to $target so that what you get out will, on average, match the "actual" target.
07:47:10 <CakeProphet> yes I was going to include it as an option so that it can be adjusted quickly.
07:47:39 <fizzie> Oh no, it's lunchtime.
07:48:29 <CakeProphet> I wonder if $blah->{ } is $blah->{' '}
07:48:32 <CakeProphet> TIME TO FIND OUT
07:52:05 -!- monqy has quit (Quit: hello).
08:08:05 -!- erdosjr has joined.
08:39:12 <CakeProphet> `run perl -e '%blah = (a=>2);$x = \%blah; %blah2 = %$x; $blah2{b}=3; print %$x;
08:39:15 <CakeProphet> `run perl -e '%blah = (a=>2);$x = \%blah; %blah2 = %$x; $blah2{b}=3; print %$x;'
08:39:18 <HackEgo> sh: -c: line 0: unexpected EOF while looking for matching `'' \ sh: -c: line 1: syntax error: unexpected end of file
08:39:18 <HackEgo> a2
08:41:07 -!- ais523 has joined.
08:49:49 -!- DH____ has quit (Ping timeout: 248 seconds).
08:50:40 -!- ais523 has quit (Read error: Connection reset by peer).
08:55:31 -!- ais523 has joined.
09:16:53 -!- CakeProphet has quit (Ping timeout: 260 seconds).
09:18:36 -!- CakeProphet has joined.
09:20:16 -!- DH____ has joined.
09:52:42 -!- CakeProphet has quit (Ping timeout: 258 seconds).
09:54:36 -!- CakeProphet has joined.
09:54:36 -!- CakeProphet has quit (Changing host).
09:54:36 -!- CakeProphet has joined.
10:16:28 -!- CakeProphet has quit (Ping timeout: 258 seconds).
10:18:18 -!- CakeProphet has joined.
10:23:01 -!- ais523_ has joined.
10:23:22 -!- ais523 has quit (Ping timeout: 258 seconds).
10:23:40 -!- derdon has joined.
10:31:48 -!- Phantom_Hoover has joined.
10:35:40 -!- ais523_ has quit (Read error: Connection reset by peer).
10:36:55 -!- ais523_ has joined.
10:48:13 -!- CakeProphet has quit (Ping timeout: 248 seconds).
10:50:01 -!- CakeProphet has joined.
10:50:02 -!- CakeProphet has quit (Changing host).
10:50:02 -!- CakeProphet has joined.
10:52:16 -!- nooga has quit (Ping timeout: 244 seconds).
10:55:02 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
10:55:35 -!- Vorpal has joined.
10:57:09 -!- Vorpal_ has joined.
10:59:31 -!- Vorpal has quit (Disconnected by services).
10:59:32 -!- Vorpal_ has changed nick to Vorpal.
11:02:05 -!- ais523_ has quit (Ping timeout: 248 seconds).
11:05:03 -!- nooga has joined.
11:13:15 -!- erdosjr has quit (Ping timeout: 252 seconds).
11:18:05 -!- CakeProphet has quit (Ping timeout: 248 seconds).
11:19:53 -!- CakeProphet has joined.
11:20:00 -!- CakeProphet has quit (Changing host).
11:20:00 -!- CakeProphet has joined.
11:20:21 -!- ais523_ has joined.
11:28:56 -!- derdon has quit (Remote host closed the connection).
11:40:19 -!- ais523_ has changed nick to ais523.
11:57:06 -!- CakeProphet has quit (Ping timeout: 258 seconds).
11:57:34 -!- sadhu has joined.
11:57:47 <sadhu> Hello World!
11:58:52 -!- CakeProphet has joined.
11:58:52 -!- CakeProphet has quit (Changing host).
11:58:52 -!- CakeProphet has joined.
12:18:39 -!- sadhu has quit (Quit: Leaving).
12:21:47 -!- CakeProphet has quit (Ping timeout: 260 seconds).
12:23:41 -!- CakeProphet has joined.
12:23:41 -!- CakeProphet has quit (Changing host).
12:23:41 -!- CakeProphet has joined.
12:44:23 -!- Zuu has quit (Ping timeout: 244 seconds).
12:46:46 -!- ais523 has quit (Remote host closed the connection).
13:10:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:14:16 -!- CakeProphet has quit (Ping timeout: 255 seconds).
13:15:53 -!- CakeProphet has joined.
13:25:51 -!- iconmaster has joined.
13:38:53 -!- CakeProphet has quit (Ping timeout: 248 seconds).
13:39:57 -!- pikhq has quit (Ping timeout: 248 seconds).
13:40:04 -!- pikhq has joined.
13:40:37 -!- CakeProphet has joined.
13:40:37 -!- CakeProphet has quit (Changing host).
13:40:37 -!- CakeProphet has joined.
13:45:11 -!- derrik has joined.
13:53:42 -!- Zuu has joined.
14:00:45 -!- DH____ has quit (Ping timeout: 248 seconds).
14:04:22 -!- DH____ has joined.
14:08:33 -!- oerjan has joined.
14:09:58 -!- CakeProphet has quit (Ping timeout: 276 seconds).
14:11:30 -!- CakeProphet has joined.
14:35:37 -!- sadhu has joined.
14:52:41 -!- Ngevd has joined.
14:55:03 <Ngevd> Hello!
15:02:02 <fizzie> WORLD.
15:02:12 <fizzie> It's like a secret handshake for programmers.
15:02:38 <Ngevd> That we try to put as early on as possible in the majority of tutorials
15:02:50 <Ngevd> We're a very open sect
15:09:06 -!- CakeProphet has quit (Ping timeout: 252 seconds).
15:10:50 -!- CakeProphet has joined.
15:10:50 -!- CakeProphet has quit (Changing host).
15:10:51 -!- CakeProphet has joined.
15:19:45 -!- derrik has quit (Quit: must feed kids).
15:28:51 -!- sadhu has quit (Ping timeout: 255 seconds).
15:44:52 -!- zzo38 has joined.
16:00:18 -!- iconmaster has quit (Quit: Probably switching to Pesterchum now.).
16:04:37 -!- monqy has joined.
16:12:24 <Ngevd> Time to play Portal
16:26:17 -!- Ngevd has quit (Ping timeout: 252 seconds).
16:39:09 -!- Ngevd has joined.
16:39:29 -!- oerjan has quit (Quit: Good night).
17:07:30 <CakeProphet> when do wildcards expand?
17:07:43 <CakeProphet> (in unix sh)
17:08:41 -!- Ngevd has quit (Ping timeout: 260 seconds).
17:09:34 <Gregor> You just answered your own question.
17:09:43 <CakeProphet> no I mean...
17:09:51 <CakeProphet> X = *
17:10:00 <CakeProphet> command blah/$X
17:10:02 <CakeProphet> what happens?
17:10:14 <CakeProphet> *X=*
17:10:25 <Gregor> X does get set to *, it expands after variable replacement.
17:10:40 <CakeProphet> ah okay.
17:11:40 <CakeProphet> what happens if there's a * passed to a subroutine?
17:11:44 <CakeProphet> or returned by one?
17:12:14 <fizzie> "The order of expansions is: brace expansion, tilde expansion, parameter, variable and arithmetic expansion and command substitution (done in a left-to-right fashion), word splitting, and pathname expansion."
17:12:34 <CakeProphet> ah okay.
17:13:01 <CakeProphet> cool so I can shorten this code a lot now.
17:13:29 <fizzie> (That was for bash; I'm not sure how it's specifically defined for POSIX sh.)
17:13:53 <Gregor> Presumably the same, or bash wouldn't be particularly POSIX-compliant ... I don't think any of those are bash-specific.
17:13:59 <fizzie> It seems reasonably similar.
17:14:13 <fizzie> "The order of word expansion shall be as follows:
17:14:13 <fizzie> Tilde expansion (see Tilde Expansion ), parameter expansion (see Parameter Expansion ), command substitution (see Command Substitution ), and arithmetic expansion (see Arithmetic Expansion ) shall be performed, beginning to end. See item 5 in Token Recognition .
17:14:13 <fizzie> Field splitting (see Field Splitting ) shall be performed on the portions of the fields generated by step 1, unless IFS is null.
17:14:13 <fizzie> Pathname expansion (see Pathname Expansion ) shall be performed, unless set -f is in effect.
17:14:15 <fizzie> Quote removal (see Quote Removal ) shall always be performed last."
17:15:19 <Gregor> "quote removal" isn't meaningfully distinct from "word splitting", and I don't think that moving it to the other side of pathname expansion changes anything, but OK
17:15:44 <fizzie> Quote removal is actually listed (in a separate sentence) as a final step in the bash manual, too.
17:16:07 <Gregor> (To split words you have to be handling the quotes already, and you have to imagine they're not there to do pathname expansion OHHH except that single quotes don't expand OK I see the distinction)
17:19:14 -!- CakeProp1et has joined.
17:19:32 <Gregor> What's a proplet?
17:19:46 -!- CakeProphet has quit (Ping timeout: 276 seconds).
17:19:47 <CakeProp1et> I dunno
17:19:49 <CakeProp1et> but uh...
17:19:50 <fizzie> I think it's some sort of a mini-property.
17:20:02 <CakeProp1et> I'm so bad at bash. :P
17:20:09 <fizzie> You know, applets and so on.
17:20:16 <CakeProp1et> sub() { return x y z }
17:20:19 <CakeProp1et> does this make any sense at all?
17:21:03 <Gregor> `run sub() { return x y z }; sub; echo $?
17:21:04 <HackEgo> sh: -c: line 1: syntax error: unexpected end of file
17:21:09 <monqy> trick question. perl never makes sense.
17:21:21 <CakeProp1et> monqy: this is bash..
17:21:21 <Gregor> monqy: Trick answer: Not perl you moron
17:21:23 <CakeProp1et> but okay.
17:21:27 <monqy> oops
17:21:30 <Gregor> :P
17:21:34 <monqy> whats bash
17:21:41 <Gregor> `run sob() { return x y z }; sob; echo $?
17:21:43 <HackEgo> sh: -c: line 1: syntax error: unexpected end of file
17:21:46 <Gregor> Huh
17:21:47 <CakeProp1et> okay so I can't concat strings together in a return?
17:21:58 <fizzie> You can't return a string, either.
17:22:02 <CakeProp1et> ......
17:22:05 <CakeProp1et> how do I...
17:22:05 <Gregor> CakeProp1et: I didn't expect that to be a syntax error, I expected it to be weird.
17:22:08 <CakeProp1et> structure code. help
17:22:09 <Gregor> 'cuz yeah, you can't return a string.
17:22:13 <fizzie> The return value of a shell function is much like a return code from a process.
17:22:19 <Gregor> Yup
17:22:25 <Gregor> `run sob() { return 42 }; sob; echo $?
17:22:26 <CakeProp1et> oh okay so I output?
17:22:27 <HackEgo> sh: -c: line 1: syntax error: unexpected end of file
17:22:30 <Gregor> Ohwait
17:22:32 <CakeProp1et> echo?
17:22:34 <Gregor> `run sob() { return 42; }; sob; echo $?
17:22:36 <HackEgo> 42
17:22:41 <Gregor> <-- incompetent
17:22:58 <fizzie> You can echo, or you can set "return value" variables.
17:23:04 <CakeProp1et> I think I'll echo
17:23:09 <CakeProp1et> because I'll be using it like `opt blah`
17:23:16 <CakeProp1et> which should substitute the echo right?
17:25:45 <CakeProp1et> also how would I use || as an expression inside a string...
17:25:59 <CakeProp1et> opt() { echo --$1 $D/googlebooks-($2||$1)-*.csv }
17:26:05 <CakeProp1et> I'm pretty sure that's completely wrong.
17:27:13 <fizzie> I'm not sure what you want to happen there.
17:27:40 <CakeProp1et> I want that string to be output with those variables substituted. when $2 isn't there I want it to use $1
17:27:53 <CakeProp1et> but actually I think I'll set it up so that the second argument doesn't exist at all.
17:27:57 <CakeProp1et> as it currently is.
17:28:03 <CakeProp1et> opt() { echo --$1 $D/googlebooks-$1-*.csv }
17:28:11 <CakeProp1et> oh wait
17:28:15 <CakeProp1et> do I need to quote the -- stuff?
17:28:16 <fizzie> ${2:+$1} might have worked in bash, though I'm no bashist.
17:28:42 <CakeProp1et> `run echo --test
17:28:45 <HackEgo> ​--test
17:29:17 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
17:29:39 <CakeProp1et> uh, what the hell is ${s:+$1}
17:29:43 <CakeProp1et> s/s/2/
17:30:01 <fizzie> ${foo:+bar} is "$foo, except with a default value of 'bar'" in bash.
17:30:09 <fizzie> It's bar when foo is empty or unset.
17:30:28 <fizzie> Bash has quite a lot of tricky ${} syntaxes.
17:31:00 <CakeProp1et> ah okay
17:31:11 <CakeProp1et> I was still thinking Perl where you would use || and // for that kind of stuff.
17:31:40 <fizzie> Oh, sorry, I meant ${2:-$1}, not +. I think.
17:31:43 <fizzie> Yes.
17:31:55 <CakeProp1et> D=${1:-.)
17:31:55 <CakeProp1et> opt() { echo --$1 $D/googlebooks-$1-*.csv }
17:31:56 <CakeProp1et> perl ./construct_grams.pl $D/googlebooks-eng-1M-*.csv `opt eng-1M` `opt eng-fiction` `opt eng-gb` `opt eng-us` `opt fre` `opt ger` `opt heb` `opt rus` `opt spa` `opt chi-sim`
17:32:01 <CakeProp1et> so this looks completely reasonable right?
17:32:04 <CakeProp1et> aside from being bash.
17:33:29 <fizzie> I don't want to commit myself to any answer, not being a sheller. Try it out and see? Put an "echo" in front of the perl for the first run?
17:33:57 <CakeProp1et> okay.
17:34:34 <fizzie> "--foo" for any "foo" should be safe with built-in Bash echo; sadly it's not so for GNU coreutils echo.
17:34:38 <fizzie> `run /bin/echo --help
17:34:41 <HackEgo> Usage: /bin/echo [OPTION]... [STRING]... \ Echo the STRING(s) to standard output. \ \ -n do not output the trailing newline \ -e enable interpretation of backslash escapes \ -E disable interpretation of backslash escapes (default) \ --help display this help and exit
17:34:47 <CakeProp1et> so #!/bin/bash
17:34:49 <CakeProp1et> for this one
17:34:51 <fizzie> `run /bin/echo --halp
17:34:53 <HackEgo> ​--halp
17:35:30 <CakeProp1et> gb_opt() { echo --$1 $D/googlebooks-$1-*.csv }
17:35:31 <CakeProp1et> d_opt() { echo --$1 /usr/share/dict/$1 }
17:35:31 <zzo38> When you make up the category from a graph as I have described, what is it called?
17:35:36 <CakeProp1et> bahahahaha code reuse in bash is funny.
17:35:37 <fizzie> I'm not exactly sure how you are meant to echo "--help" with the coreutils echo.
17:35:46 <fizzie> `run echo -- --help
17:35:48 <HackEgo> ​-- --help
17:35:50 <fizzie> `run /bin/echo -- --help
17:35:52 <HackEgo> ​-- --help
17:35:55 <fizzie> I mean, not like that, obviously.
17:35:57 <CakeProp1et> `run /bin/echo --help
17:36:00 <HackEgo> Usage: /bin/echo [OPTION]... [STRING]... \ Echo the STRING(s) to standard output. \ \ -n do not output the trailing newline \ -e enable interpretation of backslash escapes \ -E disable interpretation of backslash escapes (default) \ --help display this help and exit
17:36:11 <zzo38> Maybe with -E
17:36:19 <fizzie> Yes, I guess with that.
17:36:23 <fizzie> `run /bin/echo -E --help
17:36:25 <HackEgo> ​--help
17:36:29 <fizzie> Verily good.
17:36:36 <CakeProp1et> so should I echo -E for safety?
17:37:15 <fizzie> Nah, it's not standard anyway.
17:37:26 <fizzie> -E, I mean.
17:38:36 <fizzie> POSIX echo only specifies "-n" (as a first operand), and the meaning of it is implementation-defined anyway; except on XSI-conformant systems, where it's treated as a string, so...
17:39:08 <fizzie> (OTOH Posix echo also says backslash escapes are enabled by default on XSI-conformant systems, unlike Bash echo which disables them without -e.)
17:39:15 <fizzie> Echoing: it's what's for dinner.
17:39:49 <fizzie> ('printf' is slightly more standardized.)
17:40:10 <CakeProp1et> echo perl ./construct_grams.pl $D/googlebooks-eng-1M-*.csv `gb_opt eng-1M` `gb_opt eng-fiction` `gb_opt eng-gb` `gb_opt eng-us` `gb_opt fre` `gb_opt ger` `gb_opt heb` `gb_opt rus` `gb_opt spa` `gb_opt chi-sim` `d_opt irish` `d_opt german-medical` `d_opt bulgarian` `d_opt catalan` `d_opt swedish` `d_opt brazilian` `d_opt canadian-english-insane` `d_opt manx` `d_opt italian` `d_opt ogerman` `d_opt portuguese` `d_opt polish` `d_opt
17:40:16 <CakeProp1et> I really hope this works
17:40:19 <CakeProp1et> because I don't want to write those by hand. :P
17:42:08 <fizzie> You can just generate them with cat <<HEREDOC | sed or something. Then you could write them on separate lines and all.
17:42:20 <CakeProp1et> wat
17:42:31 <CakeProp1et> help how do I bash
17:42:59 <fizzie> I don't see why it shouldn't work like that too, though.
17:43:12 <pikhq> fizzie: POSIX echo goes on to note that *literally anything* else does not comply.
17:43:39 <CakeProp1et> ./build_data.sh: line 6: syntax error: unexpected end of file
17:43:40 <CakeProp1et> uh oh
17:43:58 <fizzie> You want some ;s in the functions if you're writing them all on one line like that.
17:44:26 <CakeProp1et> yes it appears to work correctly.
17:45:06 <CakeProp1et> er wait...
17:45:27 <CakeProp1et> the wildcard doesn't seem to be working correctly.
17:45:59 <CakeProp1et> perl ./construct_grams.pl Data.pm /media/Elements/googledata/googlebooks-eng-1M-1gram-20090715-0.csv /media/Elements/googledata/googlebooks-eng-1M-1gram-20090715-1.csv /media/Elements/googledata/googlebooks-eng-1M-1gram-20090715-2.csv /media/Elements/googledata/googlebooks-eng-1M-1gram-20090715-3.csv /media/Elements/googledata/googlebooks-eng-1M-1gram-20090715-4.csv /media/Elements/googledata/googlebooks-eng-1M-1gram-20090715-5.c
17:46:09 <CakeProp1et> it skips all of the gb_opts
17:46:46 <CakeProp1et> http://pastebin.com/yNeJ6Kp1
17:47:21 <fizzie> Well, we don't have the files, and your output paste is cut off when it's still (presumably) listing all the expansions of the first $D/googlebooks-eng-1M-*.csv in there.
17:47:40 <fizzie> Do you even want that thing in the perl line like that?
17:47:48 <CakeProp1et> oh, yeah the output skips all of the `gb_op ...` expansions
17:48:12 <CakeProp1et> yes that's the CLI construct_grams.pl uses.
17:48:14 <CakeProp1et> if that's what you mean.
17:48:35 <fizzie> It looks weird, since you have (well, would have) gb_opt'd the same files immediately after it.
17:48:56 <fizzie> From `gb_opt eng-1M`.
17:49:47 <CakeProp1et> ./build_data.sh: line 6: gb_opt: command not found
17:50:05 <CakeProp1et> fizzie: oh yeah, that's kind of a hack, basically 1M is the default but it can also be specified.
17:50:24 <CakeProp1et> ^^^ is the error I get when I add the line echo `gb_opt test`
17:50:52 <CakeProp1et> more semicolons? :P
17:51:13 <CakeProp1et> no that didn't do anything.
17:51:19 <fizzie> No, a } in the definition of D.
17:51:20 <fizzie> Not a ).
17:51:27 <CakeProp1et> ......doh
17:51:32 <fizzie> (Also maybe an editor with better syntax-highlighting?)
17:51:39 <CakeProp1et> using emacs.
17:51:57 <CakeProp1et> okay now it's all there
17:52:57 <CakeProp1et> I like how the canadian english option is
17:53:00 <CakeProp1et> --canadian-english-insane
17:53:01 -!- Phantom_Hoover has joined.
17:54:09 <fizzie> For some reason I still wish you'd Storable (+gzip+base64, maybe) those hashes instead of evaluating them as Perl code.
17:55:51 <CakeProp1et> I'm not sure what difference that would make aside from being compressed.
17:56:10 -!- Ngevd has joined.
17:56:12 <fizzie> It's just more sensible.
17:56:19 <Ngevd> Hello!
17:56:30 <fizzie> What you're doing is like eval'ing JSON blobs instead of reading them with a JSON decoder.
17:56:35 * CakeProp1et waits forever for these 4-gajillion datasets to be calculated.
17:57:01 <CakeProp1et> fizzie: no it's more like interpreting perl code with a perl interpreter.
17:57:04 <CakeProp1et> perfectly sensible. :P
17:57:12 <fizzie> It's data, not code. GNAAA.
17:57:30 <fizzie> I'll tweak in some Storabled hashes into HackEgo when you're not looking some day.
17:57:34 <CakeProp1et> I might switch to storable, maybe.
17:57:47 <CakeProp1et> fizzie: well it would certainly be easy
17:57:52 <fizzie> There's the other thing too. Or, well, lots of things.
17:57:56 <CakeProp1et> use Data; Storable_stuff_blah();
17:58:07 <CakeProp1et> since you know
17:58:13 <CakeProp1et> THE PERL CODE IS REALLY EASY TO ACCESS
17:58:18 <CakeProp1et> AS IT ONLY REQUIRES A SINGLE IMPORT TO ACCESS.
17:58:23 <CakeProp1et> -ahems-
17:58:25 <CakeProp1et> excuse me.
17:58:52 <CakeProp1et> so yeah this will probably run for several hours until it hids the /usr/share/dict entries
17:59:01 <CakeProp1et> and then freak out due to some unforseen bug in the line parsing code.
17:59:02 <fizzie> I'll put in a tiny wrapper so that the storabled hashes are in the __DATA__ portion of Data.pm, and they get unsplunked during the loading.
17:59:13 <zzo38> I think an edgeless graph makes a discrete category, a forest graph makes a thin category, objects corresponding to nodes in the same connected components of the graph are isomorphic.
17:59:32 <fizzie> Also maybe I'll leave a few thousand lines of hashes at the start of the file so that you don't get suspicious.
17:59:46 <fizzie> Wait, am I thinking this out loud?
17:59:47 <CakeProp1et> fizzie: I have no qualms with any of this
17:59:52 <CakeProp1et> just that I'm lazy and am already doing it this way.
17:59:57 <CakeProp1et> and it works fine.
18:03:19 <CakeProp1et> `run perl -e 'print sort qw(a b c d e f g h)'
18:03:22 <HackEgo> abcdefgh
18:03:38 <fizzie> You have learned: the alphabet!
18:03:44 <fizzie> Well, a part of it.
18:03:53 <CakeProp1et> Still working on the rest.
18:04:36 <fizzie> The standard galactic alphabet.
18:05:00 -!- elliott has joined.
18:05:04 <elliott> 07:19:41: <fizzie> With a context length of 2, it's not really going to be so terribly clever about "wordness", so personally I wouldn't care about biases in the exact distribution of word endings so much.
18:05:04 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
18:05:06 -!- elliott has quit (Changing host).
18:05:06 -!- elliott has joined.
18:05:07 <elliott> he's upping that
18:05:29 <CakeProp1et> oh that's what he meant by context length
18:05:35 <CakeProp1et> yeah I switched to 4-grams.
18:05:42 <fizzie> "Up yours." (Sorry.)
18:05:52 <fizzie> There's rather more of those, one would assume.
18:10:27 <elliott> 17:54:09: <fizzie> For some reason I still wish you'd Storable (+gzip+base64, maybe) those hashes instead of evaluating them as Perl code.
18:10:27 <elliott> 17:55:51: <CakeProp1et> I'm not sure what difference that would make aside from being compressed.
18:10:39 <elliott> CakeProp1et: If you don't do this, there is no way four-grams will fit on HackEgo.
18:10:55 <elliott> It'll either be too big to `fetch, or be glacial to run.
18:11:08 <elliott> (base64 doesn't sound necessary, though.)
18:11:10 <CakeProp1et> .....perhaps.
18:11:30 <CakeProp1et> I could always compress it when I `fetch :)
18:12:31 <CakeProp1et> > 4^27
18:12:32 <lambdabot> 18014398509481984
18:12:35 <CakeProp1et> >_>
18:12:46 <CakeProp1et> > 27^4
18:12:47 <lambdabot> 531441
18:13:09 <zzo38> You can make a similar thing I mentioned of categories from graphs, but for digraphs, would be that a digraph together with a cancellation specification makes up a category.
18:13:32 <CakeProp1et> > (27^4)*24
18:13:33 <lambdabot> 12754584
18:13:41 <fizzie> It's (surprisingly) 27 times what 27^3 would take.
18:13:49 <CakeProp1et> that's the total number of entries for 24 datasets.
18:14:10 <CakeProp1et> "worst case"
18:14:28 <CakeProp1et> as it assumes every combination is possible.
18:14:37 <fizzie> The longer models tend to be sparser.
18:14:52 <fizzie> (For word models, the sparsity is actually quite a big problem when you want to deal with unseen stuff.)
18:17:03 <fizzie> Dopefish is the dopest of fishes.
18:17:16 <elliott> Deadfish is the deadest.
18:17:59 <fizzie> "Tom Hall first conceived of the Dopefish as one of 24 potential characters for Keen 4. In his words, 'I just drew this stupid little fish'." (And the rest is history.)
18:18:15 <fizzie> (Actually I don't really know how well-known the Dopefish is.)
18:18:31 <fizzie> At least the "Appearances" list is quite long.
18:18:38 <Gregor> I remember the dopefish! (Although I didn't know it by that name until I looked it up)
18:18:44 <Gregor> I played Commander Keen 5 :)
18:18:49 <elliott> I'm aware of the Dopefish but am not certain why you are telling us about it now :P
18:19:06 <fizzie> elliott: I referred to the Standard Galactic Alphabet a bit earlier there.
18:19:09 <fizzie> Just going on from there.
18:19:23 <fizzie> Us bots tend to do that sort of stuff.
18:19:33 <fizzie> fungot: Isn't that right?
18:19:33 <fungot> fizzie: cyrus! are you leaving! executing program. please let me go... put me out?! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided to stay with these humans! you're a traitor! you're not our king! but, we are far outnumbered!
18:21:27 <fizzie> fungot: I think you've spent enough time in that style, it's starting to warp you.
18:21:27 <fungot> fizzie: see? i like marle better than " princess,' the chosen time has come! he's strong and he's gonna thrash those monsters! yea! is it?
18:21:39 <elliott> fizzie: You should add a command that lets you set it up for a sword alone can't stop for the next message.
18:21:51 <elliott> So you can seem amazing and do it on demand-- oh, I've ruined it, haven't I.
18:22:05 <fizzie> It seems to be managing that on its own quite well, though.
18:22:07 <fizzie> ^style
18:22:07 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
18:22:56 <fizzie> I think I need a "^style random" support.
18:23:35 <Gregor> `run head -c 100 /dev/urandom
18:23:37 <HackEgo> ​W"et]wi4oxhB9.1
18:23:41 * Gregor nods sagely.
18:24:41 <elliott> fizzie: What you need is that feedback loop model :P
18:24:45 <fizzie> `run echo agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube | tr ' ' '\n' | shuf -n 1
18:24:47 <HackEgo> nethack
18:24:52 <fizzie> ^style nethack
18:24:52 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
18:25:05 <fizzie> What I need is to make ^style available for bots, then I can just abuse that.
18:25:37 <CakeProp1et> fungot: fizzie: I wonder if fortune would be a good dataset?
18:25:37 <fungot> CakeProp1et: dogs are much harder to kill the wizard, you don't wear glasses why bother? " oh, heck! i'll handle *this* one!
18:26:11 <CakeProp1et> ~$ fortune
18:26:11 <CakeProp1et> You may worry about your hair-do today, but tomorrow much peanut butter will
18:26:11 <CakeProp1et> be sold.
18:26:11 <CakeProp1et> ~$ fortune
18:26:11 <CakeProp1et> You may worry about your hair-do today, but tomorrow much peanut butter will
18:26:13 <CakeProp1et> be sold.
18:26:16 <CakeProp1et> ..oops
18:26:27 <CakeProp1et> `run fortune
18:26:29 <HackEgo> sh: fortune: command not found
18:26:34 <CakeProp1et> oh dear
18:26:34 <Gregor> `fetch http://sprunge.us/XiBQ
18:26:34 <fizzie> $ fortune
18:26:34 <fizzie> <Mercury> At that point it will compile, but segfault, as it should..
18:26:35 <HackEgo> 2011-10-07 18:26:35 URL:http://sprunge.us/XiBQ [208] -> "XiBQ" [1]
18:26:48 <Gregor> `run mv XiBQ bin/refunge; chmod 0755 bin/refunge
18:26:50 <HackEgo> No output.
18:26:52 <Gregor> `refunge
18:26:55 <HackEgo> ​^style fisher
18:27:00 <CakeProp1et> Gregor: help no fortune
18:27:03 <Gregor> Ohright, I forgot I have botloop avoidance :P
18:27:07 <Gregor> `rm bin/refunge
18:27:09 <HackEgo> No output.
18:27:40 <elliott> fizzie: wget http://sprunge.us/CdDH; mkmodel CdDH >models/fungot
18:27:40 <fungot> elliott: someone once said that what goes up might come down. 2. figurative: _a paper tiger_, something that is going to win at nethack. it captures its prey by remaining very still and blending into the water and make them visible.
18:27:46 <fizzie> Oh, you have an anti-loop thing in there too?
18:27:49 <fizzie> ^ignore
18:27:50 <fungot> ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot)!
18:27:54 <fizzie> fungot has that.
18:27:54 <fungot> fizzie: eating a tengu is like unless you can trust your gold away. kaeda takeji finished him off. the thick grass at the shoulder and has kept it that way ever since.
18:27:58 <elliott> fizzie: (You might want to strip "\w+: " from the beginnings of lines because of all the nickpings, but on the other hand maybe not.)
18:28:21 <elliott> Also there's a blank line at the bottom there, in case you have to do something about that.
18:28:46 <elliott> fizzie: (If you need longer individual source "sequences", I could try and time-order it so you could consider the whole thing as one huge utterance.)
18:29:12 <Gregor> `run ln -s /usr/games/fortune bin/
18:29:14 <HackEgo> No output.
18:29:17 <Gregor> `fortune
18:29:20 <HackEgo> Just remember: when you go to court, you are trusting your fate to \ twelve people that weren't smart enough to get out of jury duty!
18:29:24 <CakeProp1et> excellent.
18:29:38 <CakeProp1et> hackego: good bot or best bot? discuss.
18:29:44 <elliott> Gregor: Which fortune sets are installed?
18:29:51 <Gregor> elliott: Base, offensive, mario.
18:29:58 <fizzie> `run fortune -f
18:30:01 <HackEgo> 100.00% /usr/share/games/fortunes \ 0.64% riddles \ 2.10% fortunes \ 1.27% literature \ 3.17% miscellaneous \ 0.15% magic \ 3.04% science \ 3.40% politics \ 0.06% translate-me \ 0.73% kids \ 5.85% definitions \ 0.26% goedel \ 1.10% startrek \ 1.63% linux \ 2.67%
18:30:09 <elliott> Gregor: IME the offensive ones are usually just boring. You should remove them and install bofh-excuses and spam. :p
18:30:22 <elliott> Then HackEgo will be almost as incomprehensible as fungot; that spam dataset is huge.
18:30:22 <fungot> elliott: monsters sleep because you are destined to be taken lightly. perseus, favoured by minerva and mercury, the freshest grapefruit you've ever eaten was dull, and sweet puck, you are my enemy, i don't know the recipe; but it will take time.
18:30:39 <Phantom_Hoover> elliott, more specifically, the good ones are drowned out by Hitler quotes and gay jokes.
18:30:48 <elliott> Or gay Hitler quote jokes.
18:30:56 <Gregor> `fortune
18:30:58 <HackEgo> ​_..... ....._ \ .oii|||||||| ||||||||iio. \ .i^""""____ ____""""^i. \ .-',--.`-. .-',--.`-. \ <_ | () | _> <_ | () | _> \ `-`=='-' `-`=='-'
18:30:58 <elliott> Gitlokes.
18:31:02 * Gregor nods sagely.
18:31:06 <elliott> Nice ASCII art, HackEgo.\
18:31:07 * CakeProp1et decided to remove simplified chinese from his data.
18:31:08 <elliott> s/\\//
18:31:17 <CakeProp1et> too many characters. :P
18:31:54 <CakeProp1et> unless simplified is the one that uses latin alphabet.
18:32:07 <zzo38> Does a balanced tournament represent Janken?
18:32:21 <CakeProp1et> but I'm pretty sure that's pinyin/some-other-systems-I-can't-remember
18:32:34 <pikhq> Pinyin is the one that uses Latin script.
18:32:38 <CakeProp1et> yes.
18:32:40 <zzo38> CakeProp1et: Simplified Chinese means the characters are in a simpler (and, in my opinion, harder to understand) form.
18:32:47 <CakeProp1et> ah okay
18:32:53 <CakeProp1et> so, yes, way too many characters still.
18:32:56 <pikhq> Simplified Chinese brought about a number of structural simplifications.
18:33:09 <CakeProp1et> unless you guys want randomly generated Chinese words..
18:33:20 -!- sadhu has joined.
18:33:29 <pikhq> Unfortunately, this made some elements of it much more complex: you end up having significantly more character *components* to learn.
18:34:27 <sadhu> finally my bf interpreter is complete....i was having problems initially to implement the nested loops functionality but atlast it's done
18:34:42 <pikhq> And pinyin is just a clusterfuck of bad orthography.
18:35:13 <Gregor> sadhu: With a completed BF interpreter, you are now allowed access to the Sekrit #esoteric-gold channel.
18:35:53 <fizzie> elliott: Here's about a hundred comments of that: http://sprunge.us/AEYb
18:36:03 <sadhu> lol Gregor
18:36:03 <fizzie> (They seem to run quite long.)
18:36:24 <elliott> fizzie: all gone! you're a traitor! you're not our king! but, we are far
18:36:24 <elliott> outnumbered! fu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu,
18:36:24 <elliott> hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu,
18:36:24 <elliott> hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu,
18:36:24 <elliott> hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu,
18:36:32 <elliott> fizzie: So is that treating the whole thing as one utterance?
18:36:38 <fizzie> No, it was separatey.
18:36:42 <elliott> Oh. Weird.
18:36:44 <elliott> 27, 28, 33, 36, 49, 64, 81, 82, 83 ...too much output! ...too much
18:36:45 <elliott> output! ...too much output! ...too m ...too much output!
18:36:47 <elliott> How did that happen then?
18:37:00 <sadhu> elliott: what language is that?
18:37:05 <elliott> sadhu: fungot :P
18:37:06 <fungot> elliott: ettin: the kabuto is the object of your color and you will be my present to you soon. it is a slime-like creature who swallows other creatures alive, spits acidic secretions, and stamped. they are hitting you: they keep bouncing back.
18:37:16 <elliott> fizzie: oh my god
18:37:16 <elliott> tap; said i don't care enough, i warrant you missed that: ):::ass. in
18:37:17 <elliott> case you missed that: (:::ass ):::ass (:::ass. in case you missed that:
18:37:17 <elliott> (:::ass ):::ass (:::ass ):::ass (:::ass ):::ass (:::ass. in case
18:37:17 <elliott> you missed that: ):::ass. in case you missed that: (:::ass ):::ass
18:37:17 <elliott> (:::ass. in case you missed that: ):::ass. in case you missed that:
18:37:19 <elliott> (:::ass ):::ass (:::ass ):::ass (:::ass. in case you missed that:
18:37:21 <elliott> ):::ass. in case you missed that: (:::ass. in case you missed that:
18:37:23 <elliott> ):::ass. ...too much stack!))))))))))))
18:37:40 -!- CakeProp1et has quit (Read error: Connection reset by peer).
18:37:43 -!- CakeProphet has joined.
18:37:44 <elliott> I warrant you missed that ass.
18:38:01 <CakeProphet> this whole overheating thing needs to stop
18:38:09 <CakeProphet> I need to buy one of those cooling platform things maybe?
18:38:22 <elliott> 75, 76, 77, 78, 79, 80, 81, 100, 121, 144, 169, 196, 225, 256, 289,
18:38:23 <elliott> 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961,
18:38:23 <elliott> 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, ...out
18:38:23 <elliott> of stack!
18:38:27 <elliott> fizzie: This is amazing, add it.
18:38:38 <elliott> johannsen ohannsen hannsen annsen nnsen nsen sen en n, 144, 169, 196,
18:38:38 <elliott> 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784,
18:38:38 <elliott> 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600,
18:38:38 <elliott> 1681, 1764, ...out of stack! he's really a tricycle! pass him!
18:38:46 <Phantom_Hoover> ^style darwin
18:38:46 <fizzie> elliott: There are few lines of just repeated " ...too much output!" in the data, and since in pretty much all other cases "too much output!" ends the line, it doesn't have very many ways to continue.
18:38:46 <fungot> Selected style: darwin (Books by Charles Darwin -- you know, that evilution guy)
18:38:50 <CakeProphet> my laptop overheats easily on my bed when I'm doing things such as constructing markov chains.
18:39:06 <Phantom_Hoover> fungot, so how /did/ Darwin write/
18:39:08 <fungot> Phantom_Hoover: laccadive group. we can seldom understand their action./ cause :) this remarkable plant, an inhabitant :)/ antarctic voyage :) h.m.s. :( fly", as naturalist, i never saw a bee even looking at one. there are other inconsiderable ones) on this eastern side are fighting with rosas./ general public.
18:39:16 <elliott> fizzie: Fair enough. (How is that not treating them all as a single utterance?)
18:39:20 <elliott> Anyway dude this is the most amazing.
18:39:22 <elliott> Add it add it add it
18:39:55 <elliott> "gnu project has written things like airline software and the internet"
18:40:05 <elliott> indirect casulties included... budweiser commercial the best character,
18:40:05 <elliott> you are an hypocrite ehird, you are an hypocrite ehird, what the heck
18:40:05 <elliott> has tar files got to do with anything? ehird, i never needed macros for it
18:40:27 <fizzie> It's not "treating them all as a single utterance" because it's not. It's just that the stopping has very little to do with actual line endings; it only stops where it's possible, but the likelihood is taken from the current length. (And I think it might be a bit buggy.)
18:40:34 <elliott> Well, right.
18:40:38 <fizzie> Well, if you insist. Will take a moment.
18:41:16 <elliott> elliott@katia:~/logs$ grep -r '^..:..:..: <fungot>' . | sed 's/.*<fungot> //g' | wc -l
18:41:17 <elliott> 8820
18:41:17 <elliott> elliott@katia:~/logs$ grep -r '^..:..:..: <fungot>' . | sed 's/.*<fungot> //g' | egrep -v '^\w+: ' | wc -l
18:41:17 <elliott> 4264
18:41:18 <fungot> elliott: table 4? 35. (/ naturalist on/ amazons,' 1863, p. 18). therefore :( i arose" " judges v. 7),/ females would have been short and broken with/ inspirations prolonged; and this is/ case with/ many little bladders filled with water, sixty-one leaves were tried with/ glycerine extract :) pancreas with a negative result. nor is it easy to measure/ strength :)/ stimulus from/ friction :) one wing over/ other.
18:41:19 <fungot> elliott: at/ present day, for they do not alight on people's arms, nor do they care for, or dislike/ subject, i do hope you will let us know what is/ meaning :) experimental science./ fnord, forms a passage from/ one form, and yielded plenty :) seeds.
18:41:23 <CakeProphet> hmmm
18:41:29 <CakeProphet> the wildcards don't seem to expand now.
18:41:30 <elliott> fungot: I sort of wonder what it would look like without the babble lines but am not sure I want to know.
18:41:30 <fungot> elliott: shan ponies, striped. -scorching :) dark. -effect :) subsidence. these rings appear very ancient, and are generally ruptured rather than yield. if not published by/ second standard as 100 to 85.
18:41:33 <CakeProphet> this is weird.
18:41:57 <CakeProphet> Processing eng-1M...
18:41:58 <CakeProphet> Parsing /media/Elements/googlebooks-eng-1M-*.csv...
18:42:04 <CakeProphet> took all of 0 seconds
18:42:18 -!- sadhu has left ("Leaving").
18:42:34 <fizzie> A moment and a reboot, in fact.
18:42:35 <fizzie> ^save
18:42:35 <fungot> OK.
18:42:40 <fizzie> ^raw QUIT :oh no!
18:42:40 -!- fungot has quit (Quit: oh no!).
18:43:00 <fizzie> Some day I'll make that thing reloadable.
18:43:18 -!- fungot has joined.
18:43:23 <CakeProphet> help wildcard expansion isn't working hlep
18:43:23 <fizzie> ^style fungot
18:43:23 <fungot> Selected style: fungot (What I've said myself)
18:43:32 <elliott> Yesssssssss
18:43:34 <elliott> sup fungot
18:43:34 <fungot> elliott: anmaster: " no" to give an idea, that is)) did we look?" said lady. ' why, this is for you guys are a lot
18:43:40 <elliott> sup sup fungot
18:43:40 <fungot> elliott: ais523: that is cfunge output fail in firefox is also a useful idea to send it in more interesting things in a interpreter for an arbitrary bf program? :) htmlprag?' questions. will you and the pogo hammer.
18:43:48 <elliott> fizzie: Oh good, you didn't strip the names. :p
18:44:18 <CakeProphet> oh nevermind
18:44:18 <fizzie> No. But it's funny, I don't think I saw them much in the Perl script output.
18:44:20 <CakeProphet> the problem is that
18:44:24 <CakeProphet> I am giving it the wrong directory. :P
18:44:43 <fizzie> Maybe the Perl script doesn't actually put in the sentence-start token for the initial context.
18:44:47 <fizzie> That sounds possible.
18:45:09 <CakeProphet> Processing eng-1M...
18:45:10 <CakeProphet> Parsing /media/Elements/googledata/googlebooks-eng-1M-1gram-20090715-0.csv...
18:45:12 <CakeProphet> ...goood
18:45:17 <CakeProphet> now it's taking forever, as it should.
18:46:01 <fizzie> fungot: Actually you are really rather nickpingy, maybe I should prune those?
18:46:01 <fungot> fizzie: ais523: that is cfunge output fail in firefox is also a useful idea to send it in the files that were given to a data structure thats so tuned to the same without the space the same without the aid of the law, there is no
18:46:06 <fizzie> Ye-aah.
18:47:16 <CakeProphet> I wish my external had like....
18:47:18 <CakeProphet> a battery.
18:47:28 <CakeProphet> so I could take my laptop other places while I'm doing this.
18:47:52 <CakeProphet> also wireless external. That would be cool.
18:49:22 <fizzie> fungot: Okay, are you a bit less nicky now?
18:49:22 <fungot> fizzie: or is it just me, or i: yet, you rogue! and if you wish! we shall hold this position to the last man! big fire where lavos fall from sky! we
18:49:33 <fizzie> There you: go.
18:49:46 <CakeProphet> http://en.wikipedia.org/wiki/Variable-order_Markov_model
18:49:49 <CakeProphet> intriguing
18:50:53 <fizzie> fungot: You have a variable-order model, don't you?
18:50:53 <fungot> fizzie:, so i'd make stuff up to. why, this is for you guys are a lot. " rasen versus " xtu"
18:51:07 <fizzie> (He does.)
18:51:54 <CakeProphet> 3-order is good for my first time doing this kind of thing ever.
18:52:03 <CakeProphet> perhaps later I will attempt to actually learn what the fuck I'm doing.
18:52:11 <CakeProphet> and then do fancy stuff.
18:52:59 <fizzie> It's not like I actually implemented the variable-order model construction; I just used our toolkit. (Some of the older styles are based on fixed-order n-grams constructed with my own horrible script.)
18:53:41 <CakeProphet> my script is awesome
18:53:45 <CakeProphet> not horrible in any way.
18:53:51 <CakeProphet> though it's not tested at the moment...
18:53:55 <CakeProphet> because I have no compatible data yet.
18:54:12 <CakeProphet> Processing eng-fiction...
18:54:16 <CakeProphet> 2 out of 24.
18:54:37 <CakeProphet> granted these are the largest datasets first. The /usr/share/dict sets will take a few seconds each if that.
18:54:54 <fizzie> What's awesome is that if you Google (or at least if I Google; I seem to be logged in for some reason, so this might be personalized) for "VariKN", the first couple hits are for our toolkit, but on place #7 there's "git.zem.fi Git - fungot/blobdiff - varikn/readme.txt".
18:54:54 <fungot> fizzie: just to help an fnord archive)
18:55:40 <Deewiant> An fnord archive is evidently interested in VariKN
18:56:28 <CakeProphet> haha, perl is on top with 352.3 MBs of memory usage.
18:56:33 <CakeProphet> chrome as a whole probably beats it though.
18:56:42 <fizzie> That's not very much for Perl.
18:56:55 <CakeProphet> yes I optimize my Perl code to avoid memory leaks, duh.
18:56:59 <CakeProphet> :>
18:57:12 <fizzie> 3 gigs of free RAM is not enough to run the in-memory test script on fungot's 'irc' style.
18:57:26 <CakeProphet> lol
18:57:30 <fizzie> (It's a 200-megs-or-so datafile.)
18:57:38 <CakeProphet> I, uh, read line by line.
18:57:46 <CakeProphet> it would be insane to slurp the whole file.
18:58:21 <fizzie> Yes, well, the n-gram tree is what's in the 200-meg file.
18:58:33 <CakeProphet> oh I see.
18:59:12 <fizzie> 195659600 bytes for that, and 1042812 for the token-index-to-string map.
18:59:30 <CakeProphet> I've actually made some efforts to make these scripts flexible.
18:59:45 <CakeProphet> so that you could add new datasets.
19:00:01 <CakeProphet> though I don't know if I will ever end up doing that.
19:00:08 <CakeProphet> 24 languages is pretty good.
19:01:09 <fizzie> Extract from near the end of tokens.bin.irc: "...zitzitterbewegunggmail.comzleepznznewznolznorkzobufzoey'szomgzzone/zonedzookozoom;zoomablezoomdeskzoomerzoomszootzopzornzoundszowiezreidorzrutyzuber..."
19:04:56 <Ngevd> Wow, SpaceChem is by the guy behind Codex of Alchemical Engineering!?
19:05:02 <Ngevd> I loved that game!
19:06:24 <Ngevd> Installing it now
19:06:56 <coppro> it is a good game
19:10:05 <CakeProphet> can anyone recommend a laptop cooling pad?
19:10:42 <coppro> CakeProphet: Yes, I highly recommend one.
19:10:43 <coppro> Next question.
19:11:01 <CakeProphet> most of the ones I'm finding aren't getting very good reviews.
19:12:56 -!- Ngevd has quit (Ping timeout: 260 seconds).
19:17:47 <zzo38> Can you please review this program for me? http://sprunge.us/YNJW
19:18:06 <CakeProphet> http://www.amazon.com/Antec-Notebook-Cooler-USB-Powered/dp/B0000BVYTV
19:18:08 <CakeProphet> this one looks promising
19:18:12 <CakeProphet> and reasonably cheap
19:30:23 <CakeProphet> `run perl -e ' print "á" =~ /[[:alpha:]]/
19:30:26 <HackEgo> sh: -c: line 0: unexpected EOF while looking for matching `'' \ sh: -c: line 1: syntax error: unexpected end of file
19:30:31 <CakeProphet> `run perl -e ' print "á" =~ /[[:alpha:]]/'
19:30:34 <HackEgo> No output.
19:30:38 <CakeProphet> ... :(
19:31:09 <CakeProphet> `run perl -e ' print "á"'
19:31:12 <HackEgo> ​á
19:31:22 <CakeProphet> that's a problem.
19:32:59 <CakeProphet> `run perl -e ' print "á" =~ /[^\W_]/'
19:33:01 <elliott> why
19:33:01 <HackEgo> No output.
19:33:14 <CakeProphet> elliott: because that's the character class I use to filter the word data.
19:33:26 <CakeProphet> because there's a lot of non-alphabetic entries
19:33:26 <elliott> á is certainly alphanumeric
19:33:36 <CakeProphet> ......yes, yes it is.
19:33:41 <CakeProphet> do you see the problem then?
19:34:55 <elliott> nope
19:35:14 <CakeProphet> á is not matching [[:alpha:]
19:35:15 <CakeProphet> ]
19:35:23 <CakeProphet> which is what I use. to filter the word data.
19:35:31 <CakeProphet> so I need to find a new regex
19:35:49 <elliott> Yes, it should match that.
19:35:53 <elliott> Check locale settings.
19:36:14 <elliott> fizzie probably knows how to make Perl decode Unicode, IIRC it's not default.
19:36:17 <elliott> As in UTF or whatever.
19:37:16 <Deewiant> elliott: http://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-by-default/6163129#6163129
19:37:42 <elliott> Deewiant: Ah yes, so easy.
19:38:03 <Deewiant> Well that's your "Unicode for everything everywhere" solution
19:38:23 <Deewiant> You probably want it in general but you might not need all of it
19:38:27 <CakeProphet> `run perl -e 'print "á" =~ /\p{L}/'
19:38:29 <HackEgo> 1
19:38:34 <CakeProphet> I could also do that.
19:38:49 <CakeProphet> `run perl -e 'print "_" =~ /\p{L}/'
19:38:51 <HackEgo> No output.
19:38:53 <CakeProphet> `run perl -e 'print " " =~ /\p{L}/'
19:38:56 <HackEgo> No output.
19:38:58 <CakeProphet> yes
19:39:10 <elliott> CakeProphet: Yes, just do it without thinking about it
19:39:14 <elliott> "Code that uses [a-zA-Z] is even worse. And it can’t use \pL or \p{Letter}; it needs to use \p{Alphabetic}. Not all alphabetics are letters, you know!"
19:39:19 <elliott> Oh wh;oops look at that
19:39:41 <CakeProphet> `run perl -e 'print "" =~ /\p{Alphabetic}/'
19:39:43 <HackEgo> No output.
19:39:47 <CakeProphet> `run perl -e 'print "á" =~ /\p{Alphabetic}/'
19:39:49 <HackEgo> 1
19:39:53 <CakeProphet> okay good.
19:40:39 <CakeProphet> time to, uh, restart my script. :P
19:41:35 <elliott> Deewiant: This list is doing a great job at making me not want to use Perl
19:41:55 <Deewiant> Funny, it had the opposite effect on me
19:42:05 <Deewiant> You don't get that level of Unicode support in most languages
19:42:27 <elliott> Deewiant: Half the entries are "this standard library function doesn't work, use this more complicated library instead for no reason other than backwards-compat"
19:43:05 <Deewiant> For typical languages it's "this standard library function doesn't work, you're fucked"
19:43:05 <elliott> MY favourite language has full ICU support :-P ... although the binding breaks referential transparency, sigh
19:45:10 -!- sllide has joined.
19:47:05 <zzo38> If your character does not ride a horse, are you going to ride a huge scorpion instead? (Large scorpion is too small for medium size people to ride)
19:49:13 <fizzie> The \p works because: "-- if the "locale" or "encoding" pragmas are not used and the string is not "utf8", then "[[:xxxxx:]]" (and "\w", etc.) will not match characters 0x80-0xff; whereas "\p{IsXxxxx}" will force the string to "utf8" and can match these characters (as Unicode)."
19:51:30 <CakeProphet> wow this Unicode guy is ridiculous.
19:51:37 <CakeProphet> at caring about Unicode a lot.
19:52:28 <elliott> Cake "English-language native" Prophet
19:53:14 <zzo38> Unicode is designed badly, in my opinion.
19:53:23 <elliott> I am so surprised
19:53:26 <elliott> at this opinion.
19:53:26 <Deewiant> More of his stuff on Unicode is at http://training.perl.com/OSCON2011/index.html
19:53:41 <elliott> Deewiant: Don't you understand, Unicode is designed badly
19:54:12 <CakeProphet> hmmmm a lot of these symbols are showing up as squares.
19:54:26 <CakeProphet> symbols, emoticons, and gothic & deseret
19:55:06 <Deewiant> Only the gothic for me
19:55:13 <elliott> Deewiant: Aw, I feel sad for the guy that the question asker was a jerk about it in the comments
19:55:15 <CakeProphet> wat do?
19:55:26 <elliott> CakeProphet: "I recommend you get both of two free fonts from George Douros that are known to work: his Alfios font for regular text, and his Symbola font for fancy emoji. As these talks cover Unicode 6.0, you may otherwise have trouble viewing some of the sample characters if you follow along in your own browser. If any of these don’t look right to you, you probably need to supplement your system fonts:"
19:55:31 <elliott> -- http://98.245.80.27/tcpc/OSCON2011/index.html
19:55:59 <CakeProphet> halp how suppelmetn
19:56:05 <zzo38> If I was designing the ASCII code, I would have designed it differently, too; but ASCII as it is, is still OK, although there could be improvement. If I design the character coding, I would put 'A' immediately after '9' for one thing, have delimiters ()[]{} that you can flip a bit to select the open/close other one, but keep a few features of ASCII such as bit flip to uppercase/lowercase, "<=>" order, etc
19:57:17 <zzo38> (The OMEGACOM-1 character set has code 0x00 representing '0' and 0x0A representing 'A'; it uses 0x7F for space)
19:58:09 <CakeProphet> where are the system fonts located?
20:04:20 <CakeProphet> /usr/share/texmf/fonts/opentype/public/lm/
20:04:28 <CakeProphet> ???
20:04:40 <CakeProphet> symbola is ttf and alfios is otf
20:10:11 <fizzie> http://zem.fi/~fis/rfkfont.png <- this is the 78-character rfk86 character set; but I make no claims for good design. It's not used much either, though.
20:11:43 <zzo38> fizzie: But in what things is it used with?
20:12:05 <fizzie> Only in rfk86, for the NKI messages.
20:12:11 <fizzie> Well, and the web page of it.
20:12:30 <fizzie> (Come to think of it, I think the thing used on the web page has more characters.)
20:13:07 -!- hoppecl has joined.
20:13:59 <fizzie> Yes, the web-font has full latin-1 (I think... the upper half is so messy it's hard to say) as well as the Unicode line-drawing block which starts from U+2500.
20:15:34 <zzo38> I think some of the functions in Parsec are too specific and should be made more generalized, such as these ones: char anyChar satisfy string oneOf noneOf
20:16:24 <zzo38> What does NKI messages means?
20:16:28 <elliott> hi hoppecl
20:16:29 <elliott> `? welcome
20:16:31 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
20:16:51 <fizzie> "NKI" means "Non-Kitten Item", I think it's the official term. It's the messages you get when the robot finds a thing that is not kitten.
20:18:45 <elliott> zzo38: Generalised how?
20:19:07 <zzo38> elliott: To work with types other than Char (some might require Eq)
20:19:18 <elliott> zzo38: Parsec already supports non-Char
20:19:22 <elliott> You just imported the String module
20:20:04 <zzo38> I imported Text.ParserCombinators.Parsec hiding (many, (<|>))
20:20:11 <elliott> Are you using parsec two or three
20:20:25 <zzo38> parsec-3.1.1
20:21:07 <Deewiant> elliott: I think parsec only has 'satisfy' for Char for some reason
20:21:13 <elliott> zzo38: Text.ParserCombinators.Parsec is the backwards compatibility module
20:21:15 <Deewiant> Trifecta might as well
20:22:13 <zzo38> Deewiant: Why? It doesn't make sense to me. It ought to work with any type
20:22:20 -!- boily has quit (Quit: WeeChat 0.3.5).
20:22:24 <elliott> zzo38: Text.Parsec is parsec-three
20:22:37 <Deewiant> No good reason I can think of
20:23:47 -!- Patashu has joined.
20:24:56 -!- ais523 has joined.
20:25:08 <CakeProphet> my computer is so hot right now I could probably pop popcorn.
20:28:53 <Patashu> http://entropedia.co.uk/generative_music/#b64K1HQUtDQKLGzMzSqAZIWmmpmxmpAhokmAA%3D%3D
20:33:40 <CakeProphet> now in german...
20:33:48 <CakeProphet> still have hebrew and spanish left I think.
20:33:54 <CakeProphet> and then all of the other languages.
20:45:12 -!- copumpkin has joined.
20:48:57 -!- hoppecl has quit (Quit: 10 million strong and growing!).
20:49:14 -!- clemens_ has joined.
20:49:28 -!- clemens_ has quit (Client Quit).
20:49:44 -!- copumpkin has quit (Client Quit).
20:50:10 -!- hoppecl has joined.
20:51:59 <zzo38> Does Parsec include a function that does (foldr1 (<|>) . fmap try) ?
20:56:36 <CakeProphet> I've heard that Haskell has this thing called = that might be similar
20:56:39 <CakeProphet> but I don't remember what it does.
20:57:08 -!- derdon has joined.
20:57:09 <elliott> CakeProphet: what?
20:57:17 <zzo38> I know what = does, and it doesn't do that
20:57:43 <Phantom_Hoover> http://www.reddit.com/r/math/comments/l3hhb/good_aslevel_maths_revision_sites_c1_in_particular/
20:57:44 -!- Ngevd has joined.
20:57:50 <Deewiant> zzo38: choice . map try
20:57:52 <Phantom_Hoover> What a terribly odd question to ask in /r/math.
20:58:14 <Ngevd> GORDON'S ALIVE
20:58:29 <zzo38> Deewiant: O, so that is what it does. OK
20:58:32 <Phantom_Hoover> What kind of person thinks "having trouble with A-level maths, I'm sure r/math will know a good revision site."
20:59:12 <Ngevd> Finally seen Flash Gordon
20:59:26 <Phantom_Hoover> http://www.pi314.net/eng/index.php
20:59:27 <CakeProphet> elliott: perhaps I didn't make my point very well.
20:59:27 <Phantom_Hoover> I....
21:01:48 <elliott> <Phantom_Hoover> http://www.pi314.net/eng/index.php
21:01:49 <elliott> <Phantom_Hoover> I....
21:01:49 <elliott> the best
21:01:52 -!- centrinia has joined.
21:02:09 <elliott> hi centrinia
21:02:10 <elliott> `? welcome
21:02:13 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
21:02:14 <Phantom_Hoover> elliott, this person
21:02:15 <CakeProphet> zzo38: elliott: the point being that if Parsec doesn't define such a construct then it's trivial to create the abstraction yourself.
21:02:19 <elliott> Phantom_Hoover: is the best, yes.
21:02:20 <Phantom_Hoover> knows about LaTeX
21:02:22 <Phantom_Hoover> and yet
21:02:23 <CakeProphet> but of course that goes without saying.
21:02:25 <Phantom_Hoover> used Comic Sans
21:02:28 <elliott> CakeProphet: That isn't a helpful answer to "does it exist".
21:02:29 <centrinia> Hello elliott.
21:02:42 <elliott> Phantom_Hoover: I don't think you have a true appreciation of the artistry of Comic Sans.
21:02:49 <CakeProphet> elliott: I understand
21:02:58 <CakeProphet> the beauty
21:03:01 <CakeProphet> of Comic Sans.
21:03:02 <Phantom_Hoover> centrinia, I should point out that I haven't seen anyone design and deploy an esolang here... ever?
21:03:09 <CakeProphet> I use it on all of my Technical Writing papers.
21:03:13 <elliott> Phantom_Hoover: Hey, I've been witness to that happening about three times.
21:03:15 <elliott> THREE WHOLE TIMES.
21:03:28 <Phantom_Hoover> Over... four years? Five?
21:03:45 <elliott> Phantom_Hoover: Hey, you've seen... one. (Brook.)
21:03:45 <CakeProphet> Phantom_Hoover: as it turns out innovative language design is somewhat challenging.
21:03:53 <elliott> So it might have even been FOUR.
21:04:22 <Phantom_Hoover> elliott, I wasn't listening.
21:04:31 <elliott> Phantom_Hoover: See, that's your problem.
21:04:33 <CakeProphet> Phantom_Hoover: I do have a language that I'm designing at the moment, but to what extent it's esoteric is debatable.
21:04:40 -!- augur has quit (Remote host closed the connection).
21:05:04 <CakeProphet> really I think the distinction of esoteric is very close to being a meaningless qualifier, and that this community is centered on language design and computing as a whole.
21:05:52 <elliott> (a) It's not meaningless at all, there are a few concrete definitions that everyone is divided between; (b) esolangs.org certainly isn't, this channel is just off-topic all the time because IRC.
21:06:02 <elliott> (c) Putting letters in parentheses before things makes them true.
21:06:25 <zzo38> I think the string literal syntax in Haskell is a good idea.
21:06:46 <CakeProphet> 1) lists can be a useful means of conveying information b) though there are many different formats and sometimes they can get kind of dense iii.) also number schemes are important.
21:06:46 <Phantom_Hoover> (a) (i) what about using standard exam format (ii) it is the best (b) hello
21:07:05 <CakeProphet> zzo38: ...is there anything remarkable about Haskell's string literal syntax?
21:07:24 <Phantom_Hoover> CakeProphet, it uses backslashes! And double quotes!
21:07:30 <CakeProphet> ah yes.
21:07:33 <zzo38> CakeProphet: Only that it is better designed than that of other programming language, such as the \& escape
21:07:48 <CakeProphet> Perl - best strings
21:07:48 <zzo38> And the \^ escape
21:08:28 <Phantom_Hoover> centrinia, so what brings you to this channel of wonders?
21:08:40 <elliott> Phantom_Hoover: FSVO wonders
21:08:51 <CakeProphet> Ruby - cheap knockoff of superior Perl strings.
21:09:18 <CakeProphet> there is only one true tim toady.
21:09:39 <Phantom_Hoover> http://en.wikipedia.org/wiki/List_of_unsolved_problems
21:09:41 <Phantom_Hoover> Best list.
21:09:50 <zzo38> Now there could be other string literal syntax if you wanted to change the escapes, such as by having `~ab which makes a string that is terminated by 'b' and uses 'a' as the escape character
21:09:56 <zzo38> That is very generalized way.
21:10:16 <CakeProphet> maybe something like q/blah blah blah/~
21:10:18 <centrinia> Phantom_Hoover, someone recommended this channel to me.
21:10:20 <CakeProphet> where you put the escape character on the end.
21:10:39 <Phantom_Hoover> centrinia, who? We need to weed them out and kill them, you see.
21:11:02 <zzo38> CakeProphet: Can it always parse correctly if the escape character is at the end?
21:11:03 <ais523> unless it was me
21:11:06 <ais523> but I don't think it was
21:11:21 <Phantom_Hoover> ais523, excuse me, what makes you think you're exempt?
21:11:38 <CakeProphet> zzo38: sure.
21:11:40 <CakeProphet> ..
21:11:41 <centrinia> Actually, he merely mentioned that lambdabot is here. :p
21:11:52 <Phantom_Hoover> Was this in #haskell?
21:12:02 <CakeProphet> zzo38: you would have to post-process the string after parsing it.
21:12:06 <CakeProphet> but yes it can be done that way
21:12:10 <CakeProphet> though an alternative might be better?
21:12:34 <zzo38> CakeProphet: That is why I put the escape character at the start.
21:13:02 <CakeProphet> zzo38: ah yes, that could work. But then you lose the benefits of having perl-like quote-like operators which are IMO a better improvement to string literals.
21:13:17 <CakeProphet> unless you did both without making the syntax ugly.
21:14:09 <elliott> Of all the channels lambdabot in, this is definitely the best.
21:14:11 <elliott> ?channels
21:14:11 <lambdabot> Unknown command, try @list
21:14:13 <elliott> ?list
21:14:14 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
21:14:19 <elliott> ?listchans
21:14:19 <lambdabot> ##freebsd ##logic ##proggit ##villagegreen #agda #arch-haskell #darcs #dtp2010 #esoteric #fedora-haskell #friendly-coders #functionaljava #gentoo-haskell #gentoo-uy #ghc #gp2010 #happs #haskell #
21:14:19 <lambdabot> haskell-blah #haskell-books #haskell-fr #haskell-freebsd #haskell-in-depth #haskell-overflow #haskell.au #haskell.cz #haskell.de #haskell.dut #haskell.hr #haskell.se #hscraft-srv #learnanycomputerlang
21:14:19 <lambdabot> uage #macosx #macosxdev #rosettacode #scala #scalaz #scannedinavian #teamunix #unicycling #uscs2010 #xmonad #yi weird#
21:14:29 <elliott> I wonder why it's in ##freebsd.
21:14:30 <CakeProphet> dunnno scannedinavian is probably good.
21:14:41 <CakeProphet> elliott: some regular was probably just like "dude lambdabot"
21:14:51 <CakeProphet> good enough reason as any.
21:15:05 <CakeProphet> why is it in #esoteric? :P
21:15:55 <elliott> "dude lambdabot"
21:15:58 <CakeProphet> yep.
21:16:07 <elliott> It's been in here for quite a while though, intermittently.
21:16:28 <CakeProphet> argument by precedence.
21:16:33 <CakeProphet> good enough.
21:16:47 <CakeProphet> but then why was it here before it was here quite a while? eh?
21:17:17 <CakeProphet> so uh...
21:17:32 <CakeProphet> is there anything in a typical Russian word that is not going to match \p{Alphabetic}?
21:18:23 <CakeProphet> or Hebrew, Swedish, Finnish, Polish, Irish, Garlic, <insert somewhat common European language here>
21:18:25 <elliott> Is vodka alphabetic?
21:18:33 <CakeProphet> I think so, yes.
21:18:44 <CakeProphet> I'm just wondering if there's any weird combining marks or something that will get filtered out.
21:18:55 <Deewiant> CakeProphet: "co-operative"
21:18:56 <elliott> Ask Deewiant. Or fizzie. They seem to be the experts. :p
21:18:56 <CakeProphet> I don't know anything about these languages.
21:19:03 <CakeProphet> or Unicode
21:19:04 <Deewiant> Does that match hyphens and the like?
21:19:06 <elliott> Deewiant: Apostrophes too one presumes
21:19:09 <Deewiant> Yep
21:19:09 <elliott> I doubt - is alphabetic
21:19:15 <CakeProphet> ' is not alphabetic no
21:19:27 <CakeProphet> I didn't want millions of possessive words from English in the data.
21:19:46 <elliott> So you have "s" as an incredibly common word?
21:19:47 <elliott> Neat
21:20:06 <CakeProphet> er no I exclude anything that is not completely alphabetic.
21:20:26 <CakeProphet> so it ignores all possessive words in English.
21:20:30 <CakeProphet> perhaps I'm not understanding you?
21:20:44 <Deewiant> You have to accept at least hyphens anyway
21:20:48 <elliott> Well that's ridiculous
21:21:00 <CakeProphet> I see.
21:21:19 <CakeProphet> how is ' used in other languages?
21:21:28 <CakeProphet> also what other non-alphabetic things could I bet missing?
21:21:31 <CakeProphet> s/bet/be/
21:21:32 <Deewiant> vaa'an
21:21:51 <CakeProphet> I mean what does the ' represent.
21:21:56 <Deewiant> (fi:vaa'an = en:scales's)
21:22:09 <CakeProphet> okay so it's used for possessives
21:22:11 <CakeProphet> ?
21:22:13 <Deewiant> No
21:22:20 <elliott> CakeProphet: You should really not try and filter anything at all.
21:22:25 <elliott> It will inevitably fail.
21:22:28 <zzo38> I used this code to parse a Haskell character literal: char '\'' *> fmap CharLit (parseSingleChar '\'') <* char '\''; does it seem correct to you?
21:22:34 <CakeProphet> elliott: I think that is more of a bad idea.
21:22:43 <elliott> CakeProphet: I think you are wrong.
21:22:43 <CakeProphet> because there are literally entries for every number used.
21:22:50 <CakeProphet> and concurrency amounts.
21:22:56 <CakeProphet> and possessives are gross.
21:22:56 <elliott> Concurrency amounts?
21:22:57 <Deewiant> It's used to mark syllable boundaries when one would end up with three identical vowels in a row
21:23:01 <CakeProphet> currency :P
21:23:12 <Deewiant> Due to elision of a consonant due to inflection or some such
21:23:20 <elliott> CakeProphet: Just only do English with the basic Latin alphabet if you're not going to do it properly
21:23:38 <elliott> (Which is of course much smaller than the characters required to accurately write all English, but who's counting?)
21:23:47 <CakeProphet> what is "properly". Why would I want a word generator to produce large numbers of 's and things like $133052?
21:24:19 <CakeProphet> I'll just special case the filtering. easy enough.
21:24:34 <Deewiant> zzo38: Note that string literals can contain \& but character literals can't
21:24:57 <elliott> CakeProphet: Properly as in taking care not to fuck up other languages
21:25:06 <CakeProphet> elliott: yes that is what I want to do.
21:25:10 <CakeProphet> not filtering anything is not the way to do that.
21:25:19 <zzo38> Deewiant: I know. However my program is not perfect, but it works almost all the time
21:25:21 <CakeProphet> because these datasets have a lot of junk that I don't want to include.
21:25:24 <elliott> CakeProphet: Then you can't just drop words with ' in them.
21:25:28 <CakeProphet> elliott: correct
21:26:29 <CakeProphet> the 's is really only something I'm concerned with in English. I'm not going to try to remove possessive cases in other languages because they're not so simple.
21:27:00 <zzo38> This program currently accepts a character literal beginning with \& (such as '\&R') but does not accept a string literal ending with \& (such as "X\&"), so it is not exactly Haskell
21:27:28 <zzo38> I might fix that later
21:27:35 <Deewiant> Correction to my above: it's not only with three identical vowels, it's whenever two or more vowels would join up in such a way that the syllable boundary needs explicit marking
21:28:05 <zzo38> But I doubt it is of any use that anyone needs anything other than what I already have.
21:28:06 <Deewiant> (fi:jok'ainoa = en:every single)
21:28:49 <CakeProphet> I'll probably use a negative lookaround to specifically find possessive English forms.
21:29:00 <CakeProphet> so that things like contractions stay.
21:29:53 <zzo38> It makes the (<*) and (*>) useful with Parsec.
21:29:56 <Deewiant> And it does end up in Finnish possessives, with foreign words that end in silent consonants: fi:Bordeaux'n = en:Bordeaux's
21:30:22 <elliott> zzo38: What does \& even do
21:30:35 <elliott> Also, (*>) at least is identical to (>>)
21:30:36 <Deewiant> elliott: \1\&23 = \1 followed by 23
21:30:42 <zzo38> "\&" is identical to ""
21:30:46 <Deewiant> elliott: Instead of \123
21:31:04 <elliott> Ah :P
21:31:11 <zzo38> elliott: Yes I know (*>) is identical to (>>) and I use (>>) too, which is also useful.
21:31:31 <zzo38> But it is sometimes useful to do it backward
21:31:34 <elliott> Deewiant: This tchrist guy sure knows his stuff but does he always use visually irritating deprecated Unicode for emphasis or is it only in this Stack Overflow question :P
21:31:46 -!- Ngevd has quit (Ping timeout: 260 seconds).
21:31:48 <Deewiant> Deprecated?
21:32:11 <Deewiant> IIRC he does use it in at least one of those presentations to which I linked earlier
21:32:14 <elliott> Deewiant: Shit like the small caps characters are just there for backwards compat
21:32:20 <CakeProphet> so
21:32:28 <CakeProphet> is there any language that has 's at the end of a word
21:32:31 <CakeProphet> that isn't possessive?
21:32:42 <elliott> Pretty sure Lojban does
21:32:55 <CakeProphet> Lojban doesn't count as a thing I care about. :P
21:33:11 <CakeProphet> right now, anyways.
21:33:14 <monqy> poor lojban
21:33:33 <Deewiant> CakeProphet: https://secure.wikimedia.org/wikipedia/en/wiki/Apostrophe#Non-English_use
21:33:37 <elliott> You said "any language"
21:33:54 <CakeProphet> elliott: right I didn't mean to say it doesn't fit the criteria of my original sentence.
21:33:54 <Deewiant> CakeProphet: Dutch plurals, apparently
21:34:00 <CakeProphet> just that I don't care about it regardless.
21:34:22 <elliott> Deewiant: Also In Irish, the past tense of verbs beginning with an F or vowel begins with d' (elision of do), for example do oscail becomes d'oscail ("opened") and do fhill becomes d'fhill ("returned"). The copula is is often elided to 's, and do ("to"), mo ("my") etc. are elided before f and vowels.
21:34:53 <Deewiant> elliott: He only needed one example :-P
21:35:15 <elliott> Deewiant: I suspect one example is more likely to get a "oh well I don't care about that" than two
21:35:15 <CakeProphet> but if I don't filter out possessives I'll get grossness. :P
21:35:33 <elliott> CakeProphet: Do you have any evidence for that
21:35:43 <CakeProphet> `macro
21:35:44 <Deewiant> elliott: Dutch seemed mainstream enough to care about
21:35:48 <HackEgo> Gmacro: <stdout>: commitBuffer: invalid argument (Invalid or incomplete multibyte or wide character)
21:35:54 <CakeProphet> hmmm
21:35:58 <elliott> macro is dumber than word in several ways.
21:36:06 <CakeProphet> but also includes 's
21:36:13 <CakeProphet> and they appear frequently.
21:36:18 <elliott> Apples, oranges
21:36:29 <elliott> while true; do echo "'s"; done
21:36:36 <elliott> CakeProphet: Wow, this xacro sure does have way too many 's
21:36:40 <elliott> Better filter them out
21:37:20 <monqy> 's is good
21:37:36 <monqy> catsup's
21:39:31 <CakeProphet> so the fact that there's probably several tens or hundreds of thousands of possessives in my dataset won't mean that 's appears incredibly frequently at the end of generated words? okay.
21:40:29 <monqy> try & see
21:41:00 <CakeProphet> monqy: waiting on (currently incorrect for many non-English languages) dataset to finish.
21:41:27 <elliott> I wonder if maybe it would go faster if you hadn't written it in Perl.
21:41:39 <CakeProphet> nah Perl's the fastest of the languages.
21:42:46 <CakeProphet> I'm just going to play with the English dataset until I actually know that my algorithm/dataset is good.
21:43:17 <ais523> elliott: I wrote a spambot in less than an hour using Perl; it would have been 20 minutes if I hadn't tested it to make sure
21:43:20 <ais523> well, not really a spambot
21:43:32 <elliott> ais523: I see; why are you telling mE?
21:43:34 <elliott> s/E/e/
21:43:36 <ais523> an email mass-mailer that took a database as input and emailed everyone in it with the rows of the database that applied to them
21:43:43 <ais523> and because you mentioned speed of Perl
21:43:49 <elliott> Running speed, not development.
21:43:54 <ais523> ofc, that's a rather IO-bound task
21:43:58 <elliott> CakeProphet has a dataset of many hundreds of megabytes.
21:44:05 <ais523> ofc, that's a rather IO-bound task
21:44:09 <elliott> As long as he doesn't use C running time is easily relevant.
21:44:12 <ais523> *so development speed was the limiting factor
21:44:15 <elliott> Erm as in
21:44:21 <ais523> the database was only kilobytes
21:44:23 <elliott> ais523: this is IO bound, too
21:44:27 <ais523> ah, OK
21:44:35 <ais523> language is mostly unimportant for IO-bound tasks, right?
21:44:45 <ais523> it's the algo that's more important?
21:44:59 <elliott> ais523: Not if you store everything in a Perl hash and use regexps way too much and break words and ..
21:45:02 <elliott> s/../.../
21:45:10 <ais523> elliott: that just means it stops being IO-bound
21:45:15 <ais523> because your algo is owful
21:45:17 <ais523> *awful
21:45:25 <CakeProphet> what are you talking about my algorithm is awesome.
21:45:27 <elliott> Well, sure.
21:45:31 <CakeProphet> see?
21:45:34 <CakeProphet> elliott agrees.
21:45:59 <elliott> I was replying to ais523.
21:46:04 <CakeProphet> nonsense.
21:46:36 <CakeProphet> so I'm going to try non-numeric only.
21:46:55 <CakeProphet> instead of alphabetic only
21:47:04 <ais523> <elliott> s/../.../ <--- I don't think regexes work like that; well, not properly, anyway
21:47:15 <elliott> They do in DWIM.
21:48:27 <CakeProphet> so.... \P{Number} should work to at least filter out the numeric entries.
21:49:24 <CakeProphet> ugly possessives are okay I guess.
21:53:33 <nooga> I want to immediately acquire British accent
21:53:49 <ais523> I don't have a spare, unfortunately
21:54:04 <nooga> maybe elliott has one
21:54:09 <nooga> or two
21:54:37 <elliott> nooga: We cannot allow that to happen.
21:54:47 <elliott> First we're giving you our accents, next thing you know we're cleaning /your/ windows.
21:56:09 * Madoka-Kaname hands nooga a random Japanese person's accent
21:56:51 <nooga> I amu notu interesteda ina windowsu, justa the wayu of speakingu
21:57:06 <nooga> shhhitu
21:57:24 <elliott> Ah yes, nooga is drunk again.
21:57:28 <zzo38> You are going to pump our gas some day
21:57:36 <nooga> no, i'm not
21:57:41 <elliott> I...
21:57:42 <monqy> pump my gas
21:57:43 <monqy> right now
21:57:43 <nooga> and no
21:57:46 <zzo38> No, I mean elliott
21:57:59 <elliott> zzo38: I will mark it down in my diary.
21:58:14 <zzo38> (And I don't mean mine; I don't need it.)
21:58:21 <monqy> whose gas
21:58:24 <monqy> needs pumping
21:58:26 <nooga> what gas?
21:58:34 <zzo38> nooga
21:58:45 <monqy> does nooga need pumping
21:59:28 <monqy> is nooga gas
21:59:32 <zzo38> Maybe.
21:59:54 <nooga> maybe I am... at least a bit
22:00:16 <nooga> my surname indicates that
22:00:43 <zzo38> Yes, that must be why.
22:01:31 <nooga> Gas+ending
22:01:36 <elliott> zzo38: i'm confused........
22:04:53 <nooga> Oh, he's kənfjúzd
22:06:24 <monqy> it happens
22:06:32 <nooga> sh happens
22:07:12 <monqy> so it does
22:08:27 <nooga> I've just read several novels by HP Lovecraft
22:12:05 <nooga> abnormal and blasphemous and decadent and loathsome and hideous they are
22:12:12 <nooga> and
22:12:19 <nooga> nothing
22:14:50 <zzo38> I think I have something about HP Lovecraft in my dream.txt file, I think it was some contribution by someone else
22:15:49 <Vorpal> wow, tried out Morrowind a bit. What a blast from the past in terms of not only the graphics, but also awkward interface design. Somehow even more awkward than in Oblivion. Didn't think that was possible.
22:16:11 <nooga> SKREE SKREEE
22:16:24 <nooga> SKREEEEEEEE
22:16:43 <nooga> i hated those.... cliff somethings
22:16:55 <nooga> that I had to kill every two minutes
22:17:48 <elliott> what
22:18:00 <nooga> but Oblivion was pretty amusing... until level 5, on which I ended the main quest
22:18:04 <centrinia> Cliff racers.
22:18:08 <nooga> elliott: in Morrowind
22:18:12 <nooga> yeah, cliff racers
22:18:17 <nooga> annoying cancer
22:27:05 <CakeProphet> `run perl -e "q/'/ =~ /\p{Connector_Punctuation/"
22:27:07 <HackEgo> Missing right brace on \p{} in regex; marked by <-- HERE in m/\p{ <-- HERE Connector_Punctuation/ at -e line 1.
22:27:10 <CakeProphet> `run perl -e "q/'/ =~ /\p{Connector_Punctuation}/"
22:27:13 <HackEgo> No output.
22:27:20 <CakeProphet> `run perl -e "q/'/ =~ /\p{Dash_Punctuation}/"
22:27:22 <HackEgo> No output.
22:27:29 <CakeProphet> `run perl -e "q/'/ =~ /\p{Other_Punctuation}/"
22:27:32 <HackEgo> No output.
22:27:35 <CakeProphet> `run perl -e "q/'/ =~ /\p{Final_Punctuation}/"
22:27:38 <HackEgo> No output.
22:27:39 <CakeProphet> noep
22:28:25 <CakeProphet> `run perl -e "q/'/ =~ /\p{Mark}/"
22:28:28 <HackEgo> No output.
22:28:43 <nooga> who knows Scala?
22:28:49 <nooga> maybe elliott?
22:29:00 <elliott> I suggest not using Scala unless you absolutely have to
22:29:02 <elliott> .
22:29:21 <nooga> how about using it for fun?
22:30:07 <Vorpal> <nooga> but Oblivion was pretty amusing... until level 5, on which I ended the main quest <-- I played most of the side quests but never completed the main quest
22:30:15 <CakeProphet> > generalCategory '\''
22:30:16 <lambdabot> OtherPunctuation
22:30:28 <Vorpal> nooga, the key point about oblivion is not the main quest. It is the side quests. And exploring the world.
22:30:30 <CakeProphet> > generalCategory '_'
22:30:31 <lambdabot> ConnectorPunctuation
22:30:38 <CakeProphet> > generalCategory '-'
22:30:39 <lambdabot> DashPunctuation
22:30:49 <Vorpal> nooga, presumably the same is true for Morrowind. I haven't really played it enough atm.
22:34:16 -!- pikhq_ has joined.
22:34:28 -!- pikhq has quit (Ping timeout: 260 seconds).
22:35:24 -!- ais523 has quit (Remote host closed the connection).
22:37:09 <nooga> Vorpal: I did many quests
22:38:15 <nooga> but the game gets boring when you can use destruction magic, can pick every lock, can kill everyone using bow or sword and are invisible
22:39:00 <zzo38> Then try a challenge game, where you are not allowed to use destruction magic, pick any locks, kill anyone, or become invisible.
22:39:17 <zzo38> Is it possible to complete the game this way?
22:40:44 <zzo38> (If you cannot, then just count how many times you do these things and lower score is better; 0 means you can complete the game even with these things disallowed)
22:41:43 <nooga> interesting idea
22:53:03 <Phantom_Hoover> <nooga> yeah, cliff racers
22:53:15 <Phantom_Hoover> But didn't that guy kill all of them Prequel said he did
23:02:38 -!- nooga has quit (Ping timeout: 248 seconds).
23:03:11 <zzo38> Is there a such things as m a -> m b -> m (a,b)
23:03:27 <Deewiant> ?ty liftM2 (,)
23:03:28 <lambdabot> forall a1 a2 (m :: * -> *). (Monad m) => m a1 -> m a2 -> m (a1, a2)
23:03:35 <Deewiant> ?ty liftA2 (,)
23:03:36 <lambdabot> forall a b (f :: * -> *). (Applicative f) => f a -> f b -> f (a, b)
23:03:46 -!- augur_ has joined.
23:04:13 -!- augur_ has quit (Read error: Connection reset by peer).
23:04:17 <zzo38> OK
23:24:42 <zzo38> How often is (<*) used with Parsec?
23:28:49 <monqy> a lot
23:29:23 <zzo38> Yes I would think so. It seems to be very useful in parsing stuff.
23:33:58 -!- sllide has quit (Ping timeout: 260 seconds).
23:33:58 -!- DH____ has quit (Read error: Connection reset by peer).
23:34:22 <CakeProphet> '�dy'
23:34:24 <CakeProphet> help what is that.
23:34:33 <CakeProphet> > ord '�'
23:34:34 <lambdabot> 65533
23:34:42 <CakeProphet> > generalCategory '�'
23:34:43 <lambdabot> OtherSymbol
23:34:57 <Deewiant> http://www.fileformat.info/info/unicode/char/fffd/index.htm
23:35:10 <zzo38> I think it is replacement character
23:35:27 <CakeProphet> oh, well, something is getting fucked up.
23:35:29 <CakeProphet> then
23:35:42 <CakeProphet> that character appears a lot in my markov data.
23:36:28 <CakeProphet> maybe I need to change perl's default settings some more.
23:36:30 <zzo38> The examples of Parsec and source codes of Parsec uses do-notation a lot more than I would have done. But that is OK.
23:37:01 <zzo38> CakeProphet: Maybe you are using the incorrect encoding
23:37:24 <Madoka-Kaname> > generalCategory 'あ'
23:37:25 <lambdabot> OtherLetter
23:37:32 <Madoka-Kaname> > generalCategory '手'
23:37:33 <lambdabot> OtherLetter
23:39:07 <CakeProphet> use open qw( :encoding(UTF-8) :std );
23:39:11 <CakeProphet> I think, is what I need
23:41:40 <zzo38> How much do you use the Haskell do-notation? I think it is useful sometimes, but mostly I do not use it.
23:42:52 <CakeProphet> I typically use it with "state-like" monads.
23:42:54 <CakeProphet> sometimes.
23:42:56 <CakeProphet> but not often.
23:43:33 <CakeProphet> typically the larger a monadic expression becomes the more likely I am to translate it into a do block
23:43:56 <CakeProphet> but then I usually just break it down with let/where
23:43:57 <Madoka-Kaname> > generalCategory 'a'
23:43:58 <lambdabot> LowercaseLetter
23:44:09 <Madoka-Kaname> > generalCategory 'π'
23:44:09 <lambdabot> LowercaseLetter
23:45:37 <CakeProphet> I wonder if I can get away with not doing most of the stuff this guy says.
23:47:08 <CakeProphet> oh hey look I'm not using the version of perl that supports unicode fully
23:47:10 <CakeProphet> might be a problem
23:47:39 <CakeProphet> why is everything in debian repos so out of date...
23:48:16 <elliott> CakeProphet: You are using testing, right?
23:48:21 <zzo38> I often break it down into separate functions, if it seems to me to be a reasonable way to do it. It has a lot of functions useful for using with monads, including: return >>= >=> <=< join fmap >> <* *> <*> <$> <|> liftM2 mapM sequence when
23:48:24 <elliott> Like I told you to and gave detailed instructions for?
23:48:30 <CakeProphet> elliott: I don't know what that is so no
23:48:43 <elliott> CakeProphet: I explicitly told you about it and linked you to a specific ISO and you confirmed what I said.
23:48:56 <elliott> If you're using stable, yes, it's massively out of date; this is what happens when you don't listen to my advice.
23:48:57 <CakeProphet> ?
23:49:07 <CakeProphet> I think I uh.... missed something?
23:49:12 <CakeProphet> maybe I was sleep walking?
23:49:18 <elliott> You replied, so no.
23:49:22 <CakeProphet> sleep typing
23:49:25 <CakeProphet> it happens I'm sure.
23:50:06 <CakeProphet> you're telling me to use the testing repos right?
23:50:15 <zzo38> If you are doing Haskell like it is mathematics but has to be entered the way the computer expects it, then it is doing correct.
23:50:53 <elliott> 2011-09-26:
23:50:53 <elliott> 08:47:01: <elliott_> CakeProphet: I think the "GNOME desktop" that Debian offers to install is three, so I'd try Xfce first time round.
23:50:53 <elliott> 08:47:12: <elliott_> Oh, and since Debian's site is useless about this --
23:50:53 <elliott> 08:47:41: <elliott_> CakeProphet: http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso would be the ISO you would want.
23:50:54 <elliott> 08:47:52: <elliott_> Don't be put off by the testing name; in Debian, stable means "a few years old" and testing means "stable".
23:50:57 <elliott> 08:48:08: <elliott_> (unstable/sid means "beta/alpha-quality" and experimental means "broken".)
23:50:59 <elliott> 08:48:29: <CakeProphet> I don't /use/ a lot of the software I've installed regularly but I've accumulated a shit ton of packages/modules/whatever in various languages that I kind of wanted to have around so I don't have to ever think about them again... but, I guess that's no big deal.
23:51:03 <elliott> 08:48:59: <CakeProphet> amd64? I'm running intel though.
23:51:05 <elliott> 08:49:05: <elliott_> >_<
23:51:07 <elliott> 08:49:09: <elliott_> The name of the architecture is amdsixtyfour.
23:51:09 <elliott> 08:49:12: <elliott_> Because they invented it.
23:51:11 <elliott> 08:49:16: <CakeProphet> oh okay.
23:51:13 <elliott> 08:49:23: <elliott_> CakeProphet: And a final helpful tip: You want to do the "Xfce -> expert graphical install". Trust me. Graphical because the terminal interface is ugly, and /expert/ because -- well, you can use the default answer to almost all its questions -- but only in expert mode does it offer to install a sudo-based system instead of a separate root password.
23:51:18 <elliott> 08:49:27: <elliott_> It should be default, but it isn't.
23:51:34 <elliott> CakeProphet: It is true that you can upgrade stable to testing, but you get to figure out the safe commands to do it (hint: it isn't apt-get upgrade).
23:51:47 <CakeProphet> isn't it like...
23:51:53 <CakeProphet> editing sources?
23:52:07 <zzo38> What do other people say about whatever I said about Haskell like it is mathematics?
23:52:10 <CakeProphet> also note that I'm still on Ubuntu, will this work?
23:52:11 <elliott> Yes, that will magically upgrade your system by editing a text file.
23:52:23 <elliott> CakeProphet: You're still on Ubuntu and... using the Debian repositories?
23:52:24 <elliott> What?
23:52:27 <CakeProphet> elliott: I just want to get a newer version of perl interpreter atm
23:52:39 <CakeProphet> elliott: aren't I using debian repos because they're upstream?
23:52:47 <elliott> Ubuntu has its own repositories.
23:52:58 <elliott> If you're using Debian repos on Ubuntu, your system is irreparably broken.
23:53:04 <CakeProphet> I'm not.
23:53:11 <CakeProphet> I just want a newer perl plz.
23:53:14 <CakeProphet> `run perl --version
23:53:16 <HackEgo> ​\ This is perl, v5.10.0 built for x86_64-linux-gnu-thread-multi \ \ Copyright 1987-2007, Larry Wall \ \ Perl may be copied only under the terms of either the Artistic License or the \ GNU General Public License, which may be found in the Perl 5 source kit. \ \ Complete documentation for Perl, including FAQ lists, should be
23:53:20 <CakeProphet> ....bah
23:53:27 <CakeProphet> FUCK YOU PERL
23:53:39 <CakeProphet> maybe 5.10 is enough
23:53:55 <CakeProphet> Feature "unicode_strings" is not supported by Perl 5.10.1 at ./construct_grams.pl line 4
23:53:59 <CakeProphet> or maybe not
23:54:42 <CakeProphet> I'm just going to hope that most of this boilerplate is not in fact necessary in my case.
23:55:10 <CakeProphet> sounds good
23:56:36 <olsner> if it is boilerplate that's pretty much by definition that it's not necessary
23:56:52 <CakeProphet> well, maybe
23:57:07 <CakeProphet> it may not be olsner's definition of boilerplate then/
23:57:15 <CakeProphet> which is entirely wrong, but whatever.
23:57:16 <olsner> (plus grammar, because "that is ... that it is" doesn't really work in english as I know it)
23:57:58 <olsner> anyway, just write a sed script to generate the perl you want
←2011-10-06 2011-10-07 2011-10-08→ ↑2011 ↑all