00:02:09 <shachaf> elliott: I still don't understand what the issue is.
00:02:12 <shachaf> What are you actually doing?
00:02:21 <oerjan> elliott: traverse, i said!
00:02:38 <shachaf> @ty Data.Traversable.traverse
00:02:39 <lambdabot> forall a (f :: * -> *) b (t :: * -> *). (Data.Traversable.Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
00:02:43 <elliott> shachaf: Shhh, we don't do X-Y problems around these parts.
00:02:54 <Gregor> elliott: (a) MEH MEH MEH (b) However you want to, just write the program and I can arrange for it to run ...
00:03:09 <elliott> shachaf: A partial explanation is available if you want one :P
00:03:15 <elliott> Gregor: (b) But I want to give you a working patch :P
00:03:35 <shachaf> elliott: I don't understand what your chromosomes have to do with it.
00:03:56 <elliott> http://www.perlmonks.org/?node_id=542341
00:04:27 <shachaf> elliott: This would be easy if you were doing it in Haskell.
00:04:35 <elliott> oerjan: what I really need is foldA >:(
00:04:40 * shachaf isn't sure what "this" is, but that sentence seemed like a good one to say.
00:04:42 <elliott> shachaf: What do you... think I'm... doing...
00:04:55 <shachaf> Wait, weren't you using bash?
00:04:58 <lambdabot> forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a
00:05:14 <lambdabot> Data.Foldable module Data.Foldable
00:05:15 <lambdabot> Control.Seq seqFoldable :: Foldable t => Strategy a -> Strategy (t a)
00:05:23 <elliott> shachaf: Gregor is trying to force me to use bash and/or a non-bash non-Haskell language to do this, but if it's non-bash I have to rewrite it myself, which will make me want to rewrite it in Haskell.
00:05:32 <shachaf> elliott: The counterpart of the XY problem is the XW problem.
00:05:33 <Gregor> OK, I have 11 repos on bitbucket.
00:05:39 <shachaf> Often that one is even more annoying.
00:05:42 -!- pumpkin has joined.
00:05:53 <oerjan> elliott: foldA doesn't exist, i think
00:06:11 <oerjan> that foldM type is intrinsically monadic
00:06:48 <oerjan> an arrow might work...
00:08:06 -!- copumpkin has quit (Ping timeout: 260 seconds).
00:08:27 <oerjan> :t \f x l -> foldr (>>>) id (map (flip f) l)
00:08:28 <lambdabot> forall t c a. (c -> a -> c) -> t -> [a] -> c -> c
00:08:37 -!- Phantom_Hoover has quit (Quit: Leaving).
00:08:47 <oerjan> :t \f x l -> foldr (>>>) pure (map (flip f) l)
00:08:48 <lambdabot> forall t a (f :: * -> *) a1. (Applicative f) => (a -> a1 -> a) -> t -> [a1] -> a -> f a
00:09:01 <oerjan> :t \f x l -> foldr (>>>) (arr id) (map (flip f) l)
00:09:02 <lambdabot> forall t (cat :: * -> * -> *) a a1. (Arrow cat, Functor (cat a)) => cat a (a1 -> a) -> t -> [a1] -> cat a a
00:09:29 <oerjan> :t \f x l -> foldr (>>>) (arr id) (map (Prelude.flip f) l)
00:09:30 <lambdabot> forall t a a1. (a -> a1 -> a) -> t -> [a1] -> a -> a
00:10:08 <oerjan> :t \f x l -> foldr (>>>) (arr id) (map f l)
00:10:09 <lambdabot> forall t (cat :: * -> * -> *) a a1. (Arrow cat) => (a1 -> cat a a) -> t -> [a1] -> cat a a
00:10:33 <oerjan> f needs to come preflipped to be useful with arrows
00:11:04 <oerjan> oh hm x is never used :P
00:11:19 <oerjan> well, i still think that's the closest in spirit
00:11:46 <elliott> No instance for (Complete Foo (x0 :++: (x1 :++: (C :- fields0))))
00:11:47 <lambdabot> forall a (m :: * -> *) b n' o'. (Newtype (Kleisli m a b) (a -> m b), Newtype n' o') => (Kleisli m a b -> n') -> (a -> m b) -> o'
00:12:21 <lambdabot> forall o n. (Newtype n o) => (o -> n) -> n -> o
00:12:36 <oerjan> hm what was that thing
00:14:29 -!- Phantom_Hoover has joined.
00:14:42 <lambdabot> forall o n b n' o'. (Newtype n o, Newtype n' o') => (o -> n) -> ((o -> n) -> b -> n') -> b -> o'
00:14:52 <Phantom_Hoover> OK I wasn't really asleep; did Sgeo|web malfunction and fail to notify of a Homestuck update?
00:15:11 <zzo38> Is there types in Haskell that only have numbers 0 up to 1?
00:17:14 -!- Phantom_Hoover has quit (Client Quit).
00:18:58 -!- Jafet has joined.
00:29:45 <elliott> http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:until
00:30:00 <zzo38> elliott: Actually I wasn't very clear. I mean that it can store fractions too, so there is infinite number of possible values
00:30:11 <lambdabot> forall a. (a -> Bool) -> (a -> a) -> a -> a
00:30:21 <elliott> just treat minBound = 0, maxBound = 1
00:30:28 <elliott> oerjan: well ok at least 6.12 old :P
00:31:05 <shachaf> zzo38: Fractions? You don't want to be able to store arbitrary real numbers?
00:32:08 <shachaf> Did you know Haskell 1.2 had "import Foo renaming (blah to blam)"?
00:32:32 <shachaf> Of course, they didn't have qualified imports.
00:32:41 <zzo38> shachaf: Well, fractions, or arbitrary real numbers, but bounded
00:32:44 <elliott> I forget, is OverlappingInstances one of those things that You Should Never Use?
00:33:05 <Jafet> You should never use them, yeah. Only I get to use them.
00:33:05 <shachaf> elliott: If you don't know, the answer is probably Yes.
00:33:12 <CakeProphet> I think Overlapping is acceptable in some situations.
00:33:21 <elliott> shachaf: I do know, I just forgot.
00:33:28 <elliott> shachaf: I'm definitely doing Perverse Type Hackery.
00:33:54 <oerjan> clearly elliott should use overlappinginstances to dig himself in further
00:34:12 <elliott> oerjan: I can avoid them, it'd just involve another Equ
00:34:16 <elliott> instance (ElemA xs) => ElemA (x :- xs)
00:37:42 <pikhq> It's a real shame that simplification of Chinese characters hasn't focused on making characters have a clear pairing of semantic and phonetic components (and thus easier to learn), but instead on reducing the number of strokes in a certain list of characters.
00:38:44 <pikhq> That is really obnoxious to learn, in large part because there's no real way of grasping it as having a simple, clear structure.
00:38:50 <Sgeo|web> So incoherentinstances removes a sanity check that overlappinginstances provides?
00:39:02 -!- augur has quit (Remote host closed the connection).
00:39:19 <pikhq> The phonetic component of it is, apparently, 𩰪(probably not available in your font).
00:39:34 <pikhq> That's just fucking evil.
00:39:40 <pikhq> http://glyphwiki.org/wiki/u29c2a
00:41:39 -!- Jafet1 has joined.
00:41:49 <elliott> :t \x -> foldr (<*>) (pure x)
00:41:50 <lambdabot> forall (f :: * -> *) b. (Applicative f) => b -> [f (b -> b)] -> f b
00:41:53 -!- Madoka-Kaname has quit (Ping timeout: 258 seconds).
00:41:58 <elliott> @hoogle a -> [f (a -> a)] -> f a
00:41:59 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
00:41:59 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
00:41:59 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
00:42:18 -!- Madoka-Kaname has joined.
00:42:18 -!- Madoka-Kaname has quit (Changing host).
00:42:18 -!- Madoka-Kaname has joined.
00:43:22 -!- Jafet has quit (Ping timeout: 244 seconds).
00:44:40 <Jafet1> http://glyphwiki.org/wiki/u2387d
00:44:48 <Jafet1> Someone's missing the forest for the trees
00:45:41 -!- Jafet1 has changed nick to Jafet.
00:46:00 <elliott> class Foo b where type A b
00:46:04 <elliott> is turning my instances into undecidable ones
00:46:11 <pikhq> Some bastard must have thought they were "smart" repeating the 木林森 pattern.
00:47:15 <Jafet> You've decided... decided...
00:48:40 <elliott> monqy: anyway it is less horrific now???
00:49:57 <elliott> Functional dependencies conflict between instance declarations:
00:49:58 <elliott> instance [overlap ok] (ElemA xs, ElemB xs, ElemC xs) =>
00:49:58 <elliott> -- Defined at /home/elliott/Code/form-test/form-test.hs:68:10-58
00:49:58 <elliott> instance [overlap ok] Complete Bar Nil
00:49:58 <elliott> -- Defined at /home/elliott/Code/form-test/form-test.hs:73:10-25
00:50:00 <monqy> (i think i left soon before 15:47:57 < elliott> monqy: oh no i ju st realised something)
00:51:17 <elliott> :: (Field field, Applicative f) =>
00:51:18 <elliott> -> Assign f (FieldRecord field) (field :- Nil)
00:51:25 <elliott> Assign f t xs -> Assign f t ys -> Assign f t (xs :++: ys)
00:51:31 <elliott> :: (Complete t fields, Applicative f) => Assign f t fields -> f t
00:52:15 -!- oerjan has quit (Quit: Good night).
00:52:35 <elliott> monqy: ANYWAY so the good part of the Bad Realisation is that I think there is a way to do the proper interleaving of effects with nested records like I said and the like
00:52:41 <elliott> monqy: the bad part is that.... its arowes
00:53:18 <elliott> im dont onknow. unfrtuoatenyl.
00:54:39 <monqy> how would the arrowes
00:54:47 <monqy> if it's pretty, is there problems??
00:54:55 <monqy> asside from arrows being...arrows
00:55:19 <elliott> monqy: http://sprunge.us/SSSU
00:55:39 <elliott> bits between -- are autogenerated apart from the Foo declaration itself of course
00:55:50 <elliott> or rather, would be autogenerated.
00:57:19 <monqy> how would the names of A B C be genreateD? similarly to the lenses schemes?
00:58:14 <elliott> it'd actually be FooA/FooB/FooC
00:58:32 <elliott> the problems here are basically (a) doesn't interoperate with lenses???? and (b) no interlevying
00:59:37 <monqy> yeeah what if the initial character has no uppercase lettery version most notablye _ as in the lensy names which is what (a) might mean??
01:01:06 -!- derdon has quit (Remote host closed the connection).
01:02:42 <elliott> monqy: oh then it just fails or mangles i guess...... (a) mostly means that it's implementing its own stuff which is PRETETETY DARNE CLOSE TO LSENSES!
01:03:16 <monqy> lense btu diferent
01:04:06 <elliott> while trying to improve this:
01:04:07 <elliott> Couldn't match type `No' with `Yes'
01:04:07 <elliott> In the expression: run $ A =: getLine <> C =: return pi
01:04:07 <elliott> In an equation for `test':
01:04:08 <elliott> test = run $ A =: getLine <> C =: return pi
01:04:13 <elliott> sure have made the messages useful!!!
01:04:59 <monqy> you did something wrong but i wont say what it is........... - ghc
01:05:10 <monqy> its a secret - ghc
01:06:00 -!- augur has joined.
01:08:23 -!- augur has quit (Remote host closed the connection).
01:10:15 <elliott> <file>:<line>:<col>: wrong
01:13:37 <CakeProphet> elliott: it clearly says there's a type error in the expression "run"
01:14:38 <CakeProphet> like seriously there's only one place it's wrong.
01:14:50 <elliott> CakeProphet: fun fact: the error isn't in run there
01:15:34 <CakeProphet> in any case, is in the error in some sort of insane type hackery?
01:16:53 <CakeProphet> then... that's why the error message isn't helpful. :P
01:18:09 <CakeProphet> unrelatedly, there are some insanely cheap deals on audio stuff right now.
01:18:22 <monqy> wowza, audio stuff
01:19:57 <CakeProphet> 300 watt 12" sub with built-in amp for $170
01:24:31 -!- Sgeo|web has quit (Ping timeout: 265 seconds).
01:26:56 <elliott> ghc is actually a C compiler too, you know.
01:27:29 <elliott> [elliott@dinky Temp]$ echo 'int main(){return 42;}' >foo.c
01:27:30 <elliott> [elliott@dinky Temp]$ ghc --make foo.c
01:27:30 <elliott> [elliott@dinky Temp]$ ./a.out
01:27:30 <elliott> [elliott@dinky Temp]$ echo $?
01:28:56 <elliott> Counterpoint: You're stupid.
01:30:48 <lambdabot> forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Applicative f1) => f1 (a -> b) -> f1 (f a) -> f1 (f b)
01:31:01 <lambdabot> forall b c a (f :: * -> *). (Applicative f) => f (b -> c) -> f (a -> b) -> f (a -> c)
01:31:24 <elliott> @hoogle f (b -> c) -> f (a -> b) -> f (a -> c)
01:31:24 <lambdabot> Data.Generics.Schemes everywhereBut :: GenericQ Bool -> GenericT -> GenericT
01:35:07 <CakeProphet> "According to a biannual Security Intelligence Report from Microsoft, AutoRun—the feature in Windows that automatically executes files when you plug in a USB or connect to a network—accounts for almost half of all malware infections."
01:35:51 <zzo38> I made up a BoundFrac type which can be used with any type and then it makes it error if the result is not in range
01:36:02 -!- augur has joined.
01:49:41 -!- augur has quit (Remote host closed the connection).
01:50:07 <elliott> Gregor: Sooo, where would I actually modify to get a background process in HackBot?
01:50:13 <elliott> Do I have to track down and modify the multibot source itself?
01:54:53 <elliott> Gregor: Also, more importantly: In tr_60.cmd, where's some scratch space I can use for temporary files?
01:54:59 <elliott> (I need to share them amongst invocations of tr_60.cmd.)
01:57:38 <CakeProphet> http://tinyurl.com/72p9aoj $250 off a set of 5.1 surround speakers
02:09:26 <elliott> Hmph, Gregor should have anticipated all my questions and answered them before I asked them
02:09:34 <elliott> I even have another one now!
02:11:36 <Vorpal> elliott, btw are you planning to play Skyrim at some point?
02:11:47 <elliott> Maybe. I asked you whether it sucked or not.
02:12:00 <Vorpal> elliott, well it seems 1.1 fixed the worst bugs
02:12:08 <monqy> all i know about skyrim is you can put barrels over people's heads
02:12:22 <Vorpal> monqy, I wasn't aware of that
02:12:22 <monqy> ooh and there was some fixed bug where mammoths had trouble staying on the ground
02:12:35 <Vorpal> I guess you can due to it having a physics engine
02:12:48 <elliott> Vorpal: I wasn't asking about the bugs.
02:12:52 <Vorpal> I mean, one general enough to handle stuff in barrels in general
02:13:10 <Jafet> It's not a Bethesda game if it doesn't have mammoth bugs
02:13:33 <monqy> I think there was some video that demonstrated if you put barrels over everyone's heads you can steal things but if you take the barrels off people get angry when you steal
02:13:39 <Vorpal> elliott, well apart from the bugs there is one thing that annoy me. The HUD / menus design is too modern, both when it comes to the typeface and the icons used.
02:14:10 -!- sebbu3 has joined.
02:14:11 -!- sebbu3 has quit (Changing host).
02:14:11 -!- sebbu3 has joined.
02:14:18 <monqy> what does too modern mean? as in it clashes with the pasty feel of the rest of the game?
02:14:45 <Vorpal> elliott, other than that I would say that if you enjoyed Oblivion you will enjoy this one. There are some gameplay changes. Most (but not all) that I would consider improvements. Of course, that last point is rather subjective.
02:15:58 <elliott> Vorpal: I haven't played Oblivion :P
02:15:58 <Vorpal> monqy, as in, it doesn't really fit in with the medieval feel of the actual game. The font is a sans-serif for example. I don't think it is helvetica, but it would fit in just as poorly if it was.
02:16:25 <elliott> Other Skyrim anachronisms: It's played on a computer.
02:16:33 <elliott> Gregor: Also, $IRC_SOCK is an absolute path, right?
02:17:12 <Vorpal> elliott, well, then it comes down to if you enjoy massive open world RPGs. Unlike oblivion, where you start out with fast travel to the big cities (and have to discover the rest of the fast travel locations by exploring), you can't fast travel anywhere in Skyrim until you explore to there.
02:17:24 <Vorpal> so... lots of walking involved to begin with
02:17:37 -!- sebbu2 has quit (Ping timeout: 252 seconds).
02:18:05 <elliott> What's the variable for "number of arguments received" in bash again
02:18:24 <Jafet> Does each major city still contain less than a hundred inhabitants?
02:18:38 <Vorpal> <elliott> Other Skyrim anachronisms: It's played on a computer. <-- very funny. Oblivion used a type face that had an medieval feeling, while still not being as unreadable as "Olde English" style fonts.
02:19:01 <Vorpal> elliott, oh and the menu system was clearly designed with a gamepad in mind.
02:19:13 <Vorpal> it works with mouse and keyboard, sure
02:19:19 <Gregor> <elliott> Gregor: Also, $IRC_SOCK is an absolute path, right? // y es
02:19:20 <Vorpal> but still, not optimal perhaps
02:20:48 <Vorpal> elliott, of course, the actual navigation in the menu system of oblivion was truly hideous. That bit is much better in Skyrim. It is just that the graphical design of said menu system was /way/ better in Oblivion.
02:21:13 <Jafet> It's part of a big conspiracy to make you buy an xbox
02:21:29 <Vorpal> Jafet, what, and get worse graphics?
02:21:56 <elliott> Gregor: <elliott> Gregor: Sooo, where would I actually modify to get a background process in HackBot? <elliott> Do I have to track down and modify the multibot source itself? <elliott> Gregor: Also, more importantly: In tr_60.cmd, where's some scratch space I can use for temporary files?
02:22:00 <elliott> Those are all the questions... I think :P
02:22:37 <Gregor> 1) I will have to do something to make it run a background process externally. The script that spawns multibot is not part of the repo.
02:22:52 <Gregor> 2) No. Modifying multibot for this makes no sense.
02:22:54 <Vorpal> Jafet, oh yeah, that is another issue. Skyrim was designed with consoles in mind when it came to the graphics too. I played Witcher 2 as well, which was designed with PC in mind only (and only later was it decided to port it to consoles). Witcher 2 had *much* better graphics than Skyrim has.
02:23:12 <elliott> Gregor: <elliott> (I need to share them amongst invocations of tr_60.cmd.)
02:23:22 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
02:23:31 <elliott> Unless you mean like /tmp/hackbot.hope-you-never-want-to-run-more-than-one-hackbot-at-once
02:23:33 <Gregor> elliott: Do you mean within the execution of a guest program, or just in tr_60.cmd itself?
02:23:40 <elliott> It's for storing transaction info.
02:23:52 <Gregor> Oh, it's a multiple instances issue.
02:24:01 <Gregor> mkdir $IRC_SOCK.tmp :P
02:24:19 <elliott> Gregor: Not an "issue", so much as "communication".
02:24:35 <Gregor> Multiple instances of HackBot that is.
02:24:54 <elliott> Gregor: Oh yeah, the additional question is: If HackEgo sees `a then `b, is there any chance of the latter getting started before the former? ... I guess there is, bash could call a syscall which could block for long enough to blah blah blah.
02:25:36 <elliott> Gregor: Which is annoying, because I want as-if-sequential semantics >_>
02:25:52 <elliott> Obviously it only matters if you send two messages in one syscall and the buffer flushes and etc. etc., but still :P
02:25:59 <elliott> variable: Yep, found that, thanks :P
02:27:36 <elliott> Gregor: Anyhow, I have a bundle of changes I've made on the way to doing this if you're interested in getting some of the breakage out of the way earlier :P
02:27:43 <Vorpal> elliott, so, there you have it for Skyrim. Personally I think it is worth playing, but then I liked Oblivion too. But gameplay wise it is much better. Oblivion's dungeons were quite similar. There were a few basic designs for the style, like "ancient ruin tiles", "modern ruin tiles" and so on, except it didn't use tiles afaik. There seems to be a much larger variety for such things in Skyrim.
02:27:46 <elliott> (It's just (a) slight cleanups and (b) changes I've made to make the transactional stuff easier.)
02:28:03 <elliott> Vorpal: How good are the dragons, that's pretty much the only thing I care about in a game. (Note: Maybe false.))
02:28:22 <Vorpal> elliott, haven't really gotten that far in the game yet. I got side tracked by sidequests XD
02:28:57 <Vorpal> elliott, so while the intro features a dragon, you basically have to flee from it at that point.
02:29:14 <Vorpal> elliott, you don't get a close look at it at that point really
02:29:25 <Vorpal> elliott, guess I will be able to report on that later.
02:29:29 <Gregor> elliott: Yes, `b can "get started" before `a, that ... doesn't even make sense otherwise. The only way to avoid that would be to handle them all sequentially.
02:29:44 <elliott> Gregor: No, it would just require /starting/ them sequentially :P
02:29:54 <elliott> But various factors could easily desynchronise them at that point, so *shrug*
02:30:19 <Vorpal> elliott, reimplement it on a RTOS
02:31:34 <Vorpal> elliott, I'm playing on ultra graphics settings with no issues btw.
02:31:56 <Vorpal> your toshiba might not be beefy enough though
02:32:01 <elliott> Gregor: Here's another question... why do you do `head -c 16384` when IRC lines aren't actually allowed to even be that long :P
02:32:04 <elliott> Vorpal: It definitely isn't.
02:32:30 <Vorpal> elliott, how much dedicated graphics ram?
02:32:40 <Gregor> elliott: Just to stop programs from running if they're producing gobs of output. I just want a dead pipe.
02:32:47 <elliott> No frickin' idea, but come on, the CPU is less than one GHz.
02:33:20 <Vorpal> elliott, I think 2 GHz was minimum
02:33:40 <Vorpal> elliott, as in "core 2 duo 2.0 GHz or better"
02:34:07 <elliott> Gregor: So, uh, as far as I can tell, you sleep for 30 seconds regardless of whether or not the process in question finishes or not.
02:34:08 <Vorpal> recommended was quad core system
02:34:14 <elliott> So you have a lot of processes just sleeping 30 all the time :P
02:35:58 <Gregor> elliott: Yup. Difficult not to in bash.
02:36:01 -!- hagb4rd has joined.
02:36:05 <elliott> Gregor: Yeah, just realised that >__>
02:36:12 <elliott> Gregor: Why the hell doesn't bash have alarm after how-many-decades
02:36:22 <Gregor> I thought I fixed that ...
02:36:46 <Gregor> Right, because it would need either something like alarm or conditional wait.
02:37:40 <elliott> Gregor: Does DCC SEND work for you?
02:37:50 <Vorpal> elliott, oh and if you run it from an SSD you won't be able read the hints displayed on the loading screens. It is just too fast. It seems yogscast ran it from an HDD because they complained about the slow loading screens.
02:38:01 <Vorpal> but for me on an SSD it is about 2-4 seconds
02:38:21 <Gregor> elliott: Considering that it never uses it, Idonno.
02:38:29 <elliott> Gregor: No, I mean, you personally :P
02:38:57 <fungot> CakeProphet: unless you want to become like larry wall, maybe?) area of memory to a file."? me, soegaard?
02:39:00 <Gregor> elliott: Incidentally, what repo are you working off of?
02:39:09 <Gregor> elliott: I moved hackbot with a bunch of other projects, it's on bitbucket now (same repo though)
02:39:24 <elliott> Gregor: Oh, I'll update my hgrc and do a pull request thing then
02:39:30 <elliott> That sounds appropriately fancy
02:41:19 <elliott> Gregor: https://bitbucket.org/GregorR/hackbot/pull-request/1/stuff
02:41:22 <elliott> ENJOY YOUR DINNER, FASCIST.
02:44:26 <elliott> `fetch https://bitbucket.org/GregorR/hackbot/pull-request/1/stuff
02:44:28 <HackEgo> 2011-11-12 02:44:28 URL:https://bitbucket.org/GregorR/hackbot/pull-request/1/stuff [20286] -> "stuff" [1]
02:44:31 <elliott> I completely forget how hideous `fetch's output is.
02:44:34 <Vorpal> elliott, oh btw, weird thing in char creation: every option is a slider. Even the gender one. However it boringly only has two value
02:45:19 <HackEgo> wget: unable to resolve host address `sdfjsdfjkl'
02:45:25 <elliott> Hmm, not as bad as I recall
02:46:31 -!- CakeProphet has quit (Ping timeout: 276 seconds).
02:49:52 <elliott> Gregor: I think modifying multibot to run the background job /does/ make sense, because it needs to be able to send messages... or is that created before running multibot?
02:52:32 -!- Sgeo|web has joined.
02:52:55 <Sgeo|web> elliott: Bluh bluh update bluh bluh, although it was quite some minutes ago
02:54:35 -!- sebbu2 has joined.
02:54:35 -!- sebbu2 has quit (Changing host).
02:54:35 -!- sebbu2 has joined.
02:58:10 -!- sebbu3 has quit (Ping timeout: 256 seconds).
02:58:59 <pikhq> "Bach no Senritsu o Yoru ni Kiita Sei Desu." That is definitely the strangest romanisation job ever, why would you romanise バッハ (Hepburn: bahha, mine: hà'ha) that way?
02:59:18 <pikhq> Well, aside from バッハ being Japanese for "Bach".
02:59:21 -!- copumpkin has joined.
03:00:45 <pikhq> Some days I feel like replacing Japanese orthography with romaji would just make Japanese writing more irregular.
03:01:07 -!- Vorpal has quit (Ping timeout: 260 seconds).
03:11:03 -!- Aune has quit (Remote host closed the connection).
03:21:05 -!- augur has joined.
03:24:31 <zzo38> I made the program for normalizable semirings!
03:25:15 <zzo38> Do they ever use that term in mathematics? My program has classes for normalizable monoids, though.
03:30:09 -!- hagb4rd has quit (Quit: hagb4rd).
03:30:45 <Gregor> `echo Did elliott just break everything?
03:30:47 <HackEgo> Did elliott just break everything?
03:31:24 -!- elliott has changed nick to Lymia.
03:31:31 -!- Lymia has changed nick to elliott.
03:31:40 <HackEgo> 2011-11-12 03:31:40 URL:http://www.google.com/ [10696] -> "index.html" [1]
03:32:36 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
03:32:45 <Gregor> OMG THAT LINE IS SO LONG
03:32:55 <elliott> Gregor: It's a whole 100 characters longer :P
03:33:10 <Gregor> `run echo lol > .hg/foo
03:33:10 <elliott> See my commit message for CALCULATIONS plus estimate of margin of safety.
03:33:12 <HackEgo> bash: .hg/foo: Read-only file system
03:33:27 <elliott> Hmm, wait, I think my revert command might not work...
03:33:39 <HackEgo> bash: revert: command not found
03:34:03 <elliott> Oh! I didn't add it yet :P
03:34:06 <HackEgo> bin \ canary \ karma \ lastquote \ lib \ paste \ quotes \ share \ wisdom
03:34:12 <elliott> Yeah yeah, it's just that I removed revert :P
03:34:20 <elliott> Thinking it could be done with a bin/ thing
03:35:53 <Gregor> Welllllllllll, it is doable with something in bin, but it's better to have an out-of-channel method.
03:36:12 <elliott> Gregor: It's... sort of doable, but you could break it horribly and make people `revert manually :P
03:36:28 <elliott> Gregor: You can set up an environment var (path to unix socket) that tr_60.cmd will see, right?
03:36:39 <elliott> And redirect a probably-Python program's stdin from it? :P
03:36:56 <elliott> Actually hmm, not sure Unix socket will work >_>
03:37:00 <elliott> What happens when two people write to a Unix socket at once
03:39:59 <Gregor> An individual call to write/send will always produce an in-order packet.
03:40:04 <Gregor> But multiple calls can be interleaved.
03:40:16 <Gregor> Note for comparison: X11 works.
03:40:19 <elliott> What're the chances of socat sending <512 bytes with a single write/send?
03:40:24 <elliott> Oh, X11 is based on a single Unix socket?
03:40:37 <Gregor> Not quite any more, but classically.
03:40:40 <elliott> (How did they overengineer everything but that?)
03:40:44 <Gregor> Now it has shm and other tricks too.
03:42:31 <elliott> Gregor: You should add the running script to the repo so I can test this thing :P
03:42:54 <elliott> Also, last attempt: Are you suuuuuuuure I can't write the script in Haskell????
03:43:45 <zzo38> Can you please tell me what packages I need if I import: Control.Applicative Control.Category Control.Monad Control.Monad.Trans.Writer Data.Functor.Contravariant Data.List Data.Monoid Data.Ord Data.Semigroup
03:44:20 -!- hagb4rd has joined.
03:45:01 <elliott> zzo38: base, semigroups, contravariant, methinks
03:46:32 <elliott> zzo38: base, transformers, semigroups, contravariant, methinks
03:47:24 -!- sebbu has joined.
03:47:24 -!- sebbu has quit (Changing host).
03:47:25 -!- sebbu has joined.
03:49:04 <zzo38> How do I know what version numbers I need to specify?
03:50:20 -!- sebbu2 has quit (Ping timeout: 255 seconds).
03:52:02 -!- sebbu2 has joined.
03:52:03 -!- sebbu2 has quit (Changing host).
03:52:03 -!- sebbu2 has joined.
03:55:49 -!- sebbu has quit (Ping timeout: 260 seconds).
04:02:53 -!- Zuu has quit (Ping timeout: 244 seconds).
04:11:06 <elliott> Gregor: You, uh, did fix it
04:11:42 <elliott> Gregor: That doesn't solve it for `fetch though.
04:12:01 <elliott> Tempted to say that it's better to do it outside of UMLBox.
04:20:06 <elliott> Gregor: Oh, timing out from within UMLBox has the advantage that you get partial output from timed-out commands.
04:20:16 <elliott> That's defeated by the global timeout though :P
04:21:06 <Gregor> That redundancy is to avoid bugs.
04:25:55 <elliott> If I'm keeping it, I'll at least make the global timeout 35, so that you get the partial output thing :P
04:26:27 * elliott has everything but the server done... so everything but the hard part :P
04:31:15 <Gregor> I don't /think/ any remain.
04:31:44 <Gregor> Although I suppose nothing's stopping `fetch http://fiftygigfile.com right now :P
04:33:11 <zzo38> Did I send the package correctly?
04:33:24 <elliott> Gregor: My sandbox script enables UMLBox's timeout, and the fetch one uses a sleep, so that should be enough, but I'll add a 35-second timeout to the server just in case...
04:33:28 <elliott> The revert script has no timeout :P
04:33:44 <zzo38> I mean the "monoidplus" package
04:35:23 <elliott> http://hackage.haskell.org/package/monoidplus
04:35:32 <elliott> You forgot to specify version constraints on your dependencies
04:36:00 <elliott> also, you have a typo in Plus.lhs: "tyep" :)
04:36:04 <zzo38> elliott: I looked at those three packages, and both the oldest version and newest version have those things
04:36:16 <elliott> zzo38: Yes, but the version released tomorrow might not.
04:36:41 <zzo38> And OK I will fix the typo, too
04:36:51 <elliott> zzo38: contravariant == 0.1.*, semigroups > 0.1 & < 0.9, transformers < 0.3 should do it
04:36:56 <elliott> according to the package versioning policy
04:36:59 <elliott> which all three of those packages follow
04:38:32 <zzo38> What is the package versioning policy?
04:39:26 <elliott> http://www.haskell.org/haskellwiki/Package_versioning_policy
04:41:57 <Gregor> <elliott> Gregor: My sandbox script enables UMLBox's timeout, and the fetch one uses a sleep, so that should be enough, but I'll add a 35-second timeout to the server just in case...
04:42:05 <Gregor> OHHHH, yeah, umlbox does have a timeout, dunnit X-D
04:42:10 <Gregor> Yeah, that should be sufficient.
04:42:16 <Gregor> Doesn't also need the silly sleep.
04:42:22 <elliott> Gregor: You even use the timeout currently :P
04:42:26 <Gregor> I meant having both an external and an internal timeout is important.
04:43:16 <elliott> Oh, internal as in "sleep 10; kill" in the shell?
04:43:17 <zzo38> OK. So, once I fixed these mistakes would I use 0.1.0.1 as the new version number of my package? Since I didn't change any types, entities, definitions, instances, add new stuff. I haven't depend on a newer version of any package. So is this correct?
04:43:20 <elliott> As in, in the shell inside UMLBox
04:43:29 <elliott> Gregor: 'Cuz currently, you don't have an "internal" timeout.
04:43:59 <elliott> Gregor: Hmm, can you select() on both a fd and a process exiting in Unix...?
04:44:04 <elliott> I guess I'll just use threads :P
04:44:05 * Gregor has to reremember this shit :P
04:44:05 -!- MDude has changed nick to MSleep.
04:44:29 <zzo38> Now it is uploading
04:44:38 <Gregor> Oh, I guess I took the ulimit -t out of limits.
04:44:43 <Gregor> So there is in fact no internal one.
04:44:50 <Gregor> umlbox -T really ought to be enough.
04:49:03 <elliott> Gregor: So any chance I could get ahold of your starting script? Chances of this thing working first time are rapidly dropping :P
04:50:28 <elliott> Darn, the optimisation I thought of might not work...
04:50:37 <Gregor> elliott: http://sprunge.us/JfEO
04:50:51 <elliott> I was going to avoid doing a clone entirely, since there will never be any merges, and instead just get a working tree, since commits are done sequentially
04:50:59 <elliott> BUT, that breaks revert, which doesn't like -R
04:52:24 -!- CakeProphet has joined.
04:52:25 -!- CakeProphet has quit (Changing host).
04:52:25 -!- CakeProphet has joined.
04:54:10 <Gregor> elliott: It's not like it does anything :P
04:54:14 -!- Madoka-Kaname has quit (Ping timeout: 255 seconds).
04:54:24 <elliott> Gregor: It'll have to create a socket and start a script soon enough! :P
04:54:41 <Sgeo|web> Version constraints would be much cooler if different packages with different constraints could live on the same system (possibly not necessarily such that you can use those packages together, but that would be even cooler if you could)
04:54:42 -!- Madoka-Kaname has joined.
04:55:01 <Sgeo|web> Actually, I don't see why you shouldn't be able to use such packages together
04:55:36 <Sgeo|web> Just have the ... automaitc thingy rename the different versions of the one module to different things, and have the two packages use those, without the programmer worrying about it
04:55:46 <Sgeo|web> Might cause some issues with the unsafePerformIO trick for globals, though
04:56:18 <zzo38> Then don't use unsafePerformIO in those cases. That is why it is called "unsafe".
04:56:58 <Sgeo|web> zzo38: Well, the issue is more dealing with arbitrary modules, and I do not author every single Haskell module.
04:57:23 <Sgeo|web> I guess it can be statically determined whether a module uses such a trick
04:57:33 <Sgeo|web> Or has the potential to and is faking out on using it
04:57:41 <Sgeo|web> And exclude those from the system?
04:58:02 <zzo38> Could you specify in the "import" command which package you want to import from, in case there is more than one such package? Can you specify a range of versions in the import command?
04:58:24 <elliott> Sgeo|web: How would that break things
04:58:37 <elliott> zzo38: There is an extension for that; no versioning
04:58:56 <Sgeo|web> elliott: Older and newer version of some library that wants to maintain a global lock for some reason
04:59:12 <Sgeo|web> Project as compiled ends up using both, which live in different namespaces, meaning no more global lock
05:06:17 <elliott> Gregor: shachaf: I just figured out what I need to pass to hg status to find out if a HackEgo command changed anything.
05:06:20 <elliott> It is -- and I shit you not --
05:08:09 -!- sebbu has joined.
05:08:10 -!- sebbu has quit (Changing host).
05:08:10 -!- sebbu has joined.
05:10:29 <elliott> Gregor: What is it with the .orig rm -rf
05:11:44 -!- sebbu2 has quit (Ping timeout: 248 seconds).
05:13:04 <Gregor> elliott: hg revert leaves .orig files futzing about.
05:13:54 <elliott> I'm just gonna leave it like that until this works, because then I'll make it do a checkout, and write my own revert that doesn't need a full clone :P
05:14:03 <elliott> (I mean, without the removal, since I don't wanna translate it to Python)
05:18:14 <elliott> Gregor: OK, I think I'll be able to send a pull request in 30 minutes at the most (without testing) :P
05:18:23 <elliott> Probably all in one commit, oops >_>
05:18:40 <elliott> And then the AGE OF THE TRANSACTIONAL MACHINE WILL BEGIN MWAHAHAHAHA
05:24:22 <elliott> Gregor: There's no way I could sanely split this into multiple commits :P
05:24:41 <elliott> I mean, I could, but it'd be 100% nonfunctional at each step.
05:24:58 <elliott> Thankfully it's not that big a diff :P
05:41:56 -!- CakeProphet has quit (Ping timeout: 255 seconds).
05:42:36 <elliott> Gregor: You available for testing this thing out? :P
05:45:51 <elliott> Gregor: Behold: https://bitbucket.org/GregorR/hackbot/pull-request/2/transactional-hackego
05:46:04 <elliott> I would make a backup of the repository first :)
05:47:35 <Gregor> Totally untested I assume.
05:47:42 <Gregor> It's almost 1AM ... I'll try it tomorrow :P
05:48:41 <elliott> Gregor: The best time to fix the myriad of bugs I've created is when I can still remember what all this does! :P
05:50:23 <elliott> Gregor: Oh well, make sure I'm around tomorrow for damage control :P
06:02:46 <elliott> Gregor: I take it my cheque's in the mail for all this FREE WORK I'm doin' :P
06:05:19 <quintopia> since there is no work to pay for the cheque should be blank, right?
06:08:25 <elliott> quintopia: HERE'S THE WORK TO PAY FOR: https://bitbucket.org/GregorR/hackbot/pull-request/2/transactional-hackego
06:10:16 <zzo38> Do I need to do anything with the package I send to make the webpage show the exported functions and so on of the module? What do I need to do to work it?
06:10:36 <monqy> that's not haskell
06:17:48 <elliott> zzo38: it takes ~6 hours max for haddock docs to be generated
06:17:54 <elliott> monqy: Gregor said I couldn't use Haskell. :'(
06:18:20 <elliott> monqy: but thankfully the problem is a glorified FFI ask so Python sufficed >:)
06:20:55 <elliott> monqy: here's the fun (terrifying) stuff: https://bitbucket.org/ehird/hackbot/src/02ec1863c274/multibot_cmds/lib/server#cl-39
06:20:59 <elliott> (the actual transaction logic)
06:33:39 <elliott> Gregor: Ooh... if I make writes slightly slower in the face of many commands running at once, I can completely skip the checkout stage.
06:33:44 <elliott> That would speed the bot up massively.
06:34:46 <elliott> Or... wait, no. It would need a libc replacement :(
06:34:47 -!- tiffany has quit (Quit: nyu~).
06:41:51 -!- elliott_ has joined.
06:42:00 -!- elliott_ has quit (Client Quit).
06:50:05 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: strace: not found
06:57:50 <HackEgo> touch: cannot touch `/home/hackbot/test': Permission denied
07:04:14 <elliott> @tell Gregor So, here's an idea I came up with that speeds up the common case a lot at the cost of slowing down writes: Don't make a clone, just operate on the repo's working copy itself.
07:04:14 <elliott> @tell Gregor Run programs under strace -e trace=open,mkdir,rename (I've tested this locally, the performance impact is negligible).
07:04:14 <elliott> @tell Gregor Whenever you detect that /any/ process has done a write, abort all processes, reset the working copy to the tip revision, and then run the write process sequentially and commit the result.
07:04:14 <elliott> @tell Gregor Once that goes through, restart the rest of the transactions from scratch.
07:04:16 <elliott> @tell Gregor The result is that commands that don't write run at full speed with no clone overhead, but commands that make writes always have to run at least twice, and concurrent write performance is abysmal.
07:04:18 <elliott> @tell Gregor I think this is a reasonable trade-off, but let me know what you think.
07:04:21 <elliott> @tell Gregor (Since nobody uses `unquote, I'm planning to remove the writing stuff from `quote/`addquote so that read-only becomes the common case again :P)
07:06:29 <HackEgo> 463) <fizzie> Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered.
07:07:38 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
07:08:34 <HackEgo> #!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ egrep -i -- "$1" \ fi \ else shuf -n 1; fi | tee lastquote
07:08:38 <elliott> `run tail -n +1 bin/addquote
07:08:39 <HackEgo> #!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ echo $(qc | cut -d' ' -f1 | tee lastquote)") $1"
07:08:44 <elliott> `run tail -n +2 bin/addquote
07:08:46 <HackEgo> [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ echo $(qc | cut -d' ' -f1 | tee lastquote)") $1"
07:08:50 <elliott> `run head -n +2 bin/addquote
07:08:52 <HackEgo> #!/bin/sh \ [ "$1" ] || exit 1
07:09:01 <elliott> `run head -n +3 bin/addquote >x; mv x bin/addquote
07:09:14 <elliott> `run sed -i 's/ | tee lastquote//' bin/quote
07:30:03 -!- zzo38 has quit (Remote host closed the connection).
07:33:25 -!- nys has quit (Quit: night).
07:42:26 -!- sebbu2 has joined.
07:42:26 -!- sebbu2 has quit (Changing host).
07:42:26 -!- sebbu2 has joined.
07:45:53 -!- sebbu has quit (Ping timeout: 248 seconds).
07:51:05 -!- zzo38 has joined.
07:52:11 <zzo38> There is no document for "reallyUnsafePtrEquality#" in GHC, other than that there is such a function as that.
07:53:28 <zzo38> I don't understand the other GHC primitives very well either.
07:53:45 <elliott> reallyUnsafePtrEquality# is exactly what it sounds like.
07:53:48 <elliott> Really unsafe pointer equality.
07:54:51 <Sgeo|web> How is it unsafer than unsafePtrEquality# if it exists?
07:55:29 <zzo38> Will its result change due to optimization and architecture and so on?
07:55:39 <zzo38> I would think it would.
07:55:53 <zzo38> But there is no document that says these kind of things.
07:56:40 <elliott> zzo38: Weeeeeeeell, you're not really guaranteed everything, but (reallyUnsafePtrEquality# a a) is I think guaranteed.
07:56:49 <Sgeo|web> Then why not call it unsafePtrEquality# ?
07:57:00 <monqy> because it's REALLY unsafe
07:57:00 <elliott> I think (reallyUnsafePtrEquality# a (seq b a)) is /not/ guaranteed, because b could cause a GC, which could cause a to move.
07:57:02 <Sgeo|web> Has the prefix "unsafe" gotten deluted?
07:57:06 <elliott> Sgeo|web: Because it's really unsafe.
07:57:19 <elliott> unsafePerformIO doesn't break the type system unless you're trying to.
07:57:27 <elliott> reallyUnsafePtrEquality# Makes No Damn Sense At All.
08:08:12 <elliott> @ask Gregor wtf is http://codu.org/projects/hackbot/fshg/index.cgi/rev/59b64dfd4261
08:11:02 <shachaf> elliott: You enjoy that far more than you claimed to.
08:11:40 <elliott> shachaf: Dude, if the universe (by which I mean Mercurial) tells me it's right, how can it be wrong?
08:12:28 <lambdabot> ["umad","muad","amud","maud","aumd","uamd","damu","admu","amdu","dmau","mda...
08:12:44 <shachaf> Thinking of Maud you forget everything else.
08:13:16 <elliott> Hmm. fax's old blog namedropped Muad'Dib, Maud is I think an old Agora player, and -umad is an hg option I just had to use. Those are the Mad Occurrences in my life so far.
08:13:32 <elliott> Maybe... maybe pi eventually just starts repeating "umad".
08:15:21 <shachaf> Maybe.... maybe pi eventually just starts repeating. u mad?
08:17:34 <elliott> That started as a "whoa" and turned into some kind of horrifying scream.
08:29:56 -!- sebbu has joined.
08:29:56 -!- sebbu has quit (Changing host).
08:29:57 -!- sebbu has joined.
08:30:56 -!- zzo38 has quit (Remote host closed the connection).
08:32:55 -!- sebbu2 has quit (Ping timeout: 240 seconds).
08:34:25 -!- Ngevd has quit (Quit: Leaving).
08:34:45 -!- Ngevd has joined.
08:37:11 -!- monqy has quit (Quit: hello).
08:38:29 <Ngevd> Is it possible to have two installations of Ubuntu with WUBI?
08:38:57 <elliott> It's possible to have two installations of Ubuntu without Wubi. Also: Wubi is really awful, don't use it.
08:39:09 <Ngevd> Open university course.
08:39:11 <elliott> Neither of these statements answer your question; they're intended more as life advice.
08:39:15 <Ngevd> I don't have any choice
08:39:25 <elliott> Ngevd: You could not do the stupid Open University course. :p
08:39:50 <Ngevd> That would defeat the point of paying for the Open University course
08:39:52 <elliott> it's probably doable, but it's probably also a hugely massive pain.
08:39:57 <elliott> Ngevd: You're PAYING FOR THIS?
08:39:58 <Ngevd> Or getting the school to pay for it, anyway
08:40:02 <elliott> Wait, I suppose that was obvious.
08:41:50 <Ngevd> Oh wait, I don't actually need to install it
08:42:09 -!- Ngevd has quit (Quit: Leaving).
08:45:59 -!- Ngevd has joined.
08:47:19 <Ngevd> Right, downloading the 10.04 ISO
09:00:24 -!- Taneb has joined.
09:04:09 -!- Ngevd has quit (Ping timeout: 245 seconds).
09:06:58 -!- Vorpal has joined.
09:07:19 <shachaf> elliott: I accidentaly made an ellipsis out of four dots. :-(
09:07:31 <elliott> I sometimes use two dots, just to shake things up a little.
09:07:37 <Taneb> If it's at the end of a sentence, four dots is legal
09:07:47 <Taneb> Just one of the dots is SECRETLY A FULL STOP!
09:08:44 <Jafet> The dot operator can be written strangely... ..
09:09:26 <Taneb> elliott, make @'s dialect of Haskell have that.
09:09:30 <Taneb> If that statement is applicable
09:09:34 <Taneb> Which I don't think it si
09:09:40 <elliott> Taneb: I'm offended by the implication :P
09:09:52 <elliott> GHC has Unicode syntax for ranges, it's just a silly two-dot character instead.
09:10:54 <shachaf> Unicode has a two-dot character?
09:11:43 <elliott> http://www.haskell.org/ghc/docs/7.2.1/html/users_guide/syntax-extns.html ;; oh, they removed it.
09:11:44 <shachaf> Apparently it has quite a lot of them.
09:12:03 <elliott> http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/syntax-extns.html This ain't it either.
09:12:06 * shachaf was just http://shapecatcher.com/ ing to the rescue, too.
09:12:16 <elliott> http://www.haskell.org/ghc/docs/6.8.1/html/users_guide/syntax-extns.html hmph
09:12:42 <elliott> At least jhc accepts that.
09:13:02 <Taneb> What should I call my virtual machine...
09:13:07 <shachaf> elliott: http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/syntax-extns.html has it with ellipsis.
09:13:18 <elliott> shachaf: Observe "This ain't it either".
09:13:50 <shachaf> elliott: I'm never going to accept ‥
09:14:00 <elliott> I don't know why‥ it seems perfectly cromulent to me.
09:14:19 <elliott> Ooh, what a sharp increase of mad on the shachaf-being-mad-o-meter.
09:14:58 * elliott is now playing: shachaf - madness (forever:it never ends)
09:15:24 <fizzie> How about‥. if you use it.‥ like that.
09:15:44 -!- derrik has joined.
09:16:40 <elliott> fizzie: You sound like‥ William Shatner‥
09:17:05 <elliott> It's‥ really unnerving because‥ the people reading‥ your message‥ they‥ can't stop‥ hearing it‥ go so slowly.
09:18:41 * twice11 wonders, why ghc uses ⋯ instead.
09:18:49 <elliott> I think there were some ticket arguments about it.
09:19:02 <elliott> ⋯ is quite mathsy, though not quite as mathsy as UNBALANCED BRACKETS
09:19:29 <shachaf> elliott: When are you going to give up and switch to Agda?
09:19:50 <elliott> shachaf: Um, why would I switch to Agda when I can switch to @?
09:20:05 <shachaf> Your premise is incorrect.
09:20:17 <fizzie> You could switch to @gda.
09:20:22 <Taneb> When can you switch to @?
09:20:30 <elliott> shachaf: I was just doing back-of-the-headspace calculations to figure out how much faster a typical IO-bound network server would be on @ than Unix a few hours ago!
09:20:33 <elliott> Agda can't do that because it's not web scale.
09:20:37 <elliott> Also because it's really, really slow.
09:20:49 <elliott> Taneb: Probably not later than I can switch to Agda :P
09:20:54 * shachaf knows nothing about ATS but enjoys how "t@ype" is a valid keyword(/identifier?) in the language.
09:21:20 <shachaf> elliott: You know who else is really, really fast?
09:22:04 <elliott> Also, is it fungot? When in doubt, fungot.
09:22:04 <fungot> elliott: my wife just served dinner! what a dull boy". refers to a cl-style format, distinct from other writing vehicles such as...
09:22:19 <fungot> shachaf: why do you need
09:22:26 <fungot> shachaf: so could do something
09:22:34 <shachaf> fungot: Where are my 5-grams?
09:22:34 <fungot> shachaf: that one is... hehehe stupid question... if the number of
09:22:50 <shachaf> elliott: Hmm, a very good imitation of you.
09:22:58 <shachaf> Or is it meant to be of me?
09:23:01 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* jargon lovecraft nethack pa sms speeches ss wp youtube
09:23:02 <Taneb> I am currently imagining a computer that uses a Befunge-like machine code
09:23:03 <fungot> Selected style: fungot (What I've said myself)
09:23:15 <fungot> shachaf: i, myself, will bring an end to all. ghosts lurk in the ruins were in truth, and everything in readiness for fnord. under these to tristan d'acunha, a volcanic origin, a high, and was fnord him with his umbrella. " who can have patience to acquire it. just fnord" brutha. " do you know much about gods, i am no fighter:
09:23:26 <shachaf> Now it's using zzo38 style?
09:23:40 <fungot> elliott: if it's ( syntactically) long lol, this aircraft crashed
09:23:42 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
09:23:51 <fungot> elliott: chih*sung*tzu: a short studded or spiked club attached to a full belly all food is strictly forbidden in this world would taste like medicines after it, without incurring any fine or other of the gem dazzled their eyes from the sleeve of his time at quoits, dart-throwing, shooting at the last blow counts most.
09:23:59 <shachaf> I hear that shopkeepers are dangerous.
09:24:03 <shachaf> fungot: I hear that shopkeepers are dangerous.
09:24:03 <fungot> shachaf: for a bat to lift. if you are the predominant inhabitants of hell.
09:24:15 <fungot> Selected style: youtube (Some YouTube comments)
09:24:25 <elliott> Note: YouTube corpus is tiny because asiekierka is incompetent.
09:24:29 <shachaf> fungot: 14 people didn't have any style.
09:24:30 <fungot> shachaf: bisous0210 ( 1 dzie temu) komentarz usunity przez autora plane. it was a remote in that
09:25:04 <fungot> Selected style: ct (Chrono Trigger game script)
09:25:12 <shachaf> I wanted Category Theory style.
09:25:21 <shachaf> Go crawl ncatlab.org, please.
09:25:21 <fungot> Taneb: you! take! we find! you're the only one thing we need to defeat you, lavos. by now you must realize you are the only one thing we need to defeat you, lavos.
09:25:57 <shachaf> elliott: Seriously, like, do it, man.
09:26:06 <shachaf> You could have a little piece of ddarius in this channel.
09:26:20 <elliott> I think they might not like me if I did that.
09:26:27 <Taneb> Can I suggest that a style is added for IWC transcripts?
09:26:43 <elliott> Taneb: Hmm, that sounds easy.
09:27:08 <shachaf> elliott: They have a "download entire wiki" link.
09:27:14 <elliott> shachaf: Oh. You do it, then.
09:27:16 <shachaf> Oh, apparently it's disabled.
09:27:27 <shachaf> But they have a wget command line in their FAQ that shows how to get around it.
09:28:07 <shachaf> Speaking of things ddarius has quoted from there, "The object Ω above is sometimes called a strong-subobject classifier, since it classifies strong subobjects, but also sometimes called a weak subobject classifier, since it satisfies a weaker property than an ordinary subobject classifier."
09:29:26 <shachaf> Also, my father has arrived in CA and is a few km away.
09:29:33 <shachaf> I ought to go to sleep so I can meet him tomorrow mornig.
09:29:50 <twice11> No real ticket fight, but http://hackage.haskell.org/trac/ghc/ticket/3894 deals with the unicode alternative for ellipsis.
09:34:35 <elliott> [elliott@dinky iwc-scraper]$ curl -#O $(seq --format=http://irregularwebcomic.net/%g.html 1 3200)
09:34:52 <elliott> [elliott@dinky iwc-scraper]$ curl -#O $(seq --format="-O http://irregularwebcomic.net/%g.html" 1 3200)
09:39:36 <fizzie> Doesn't curl have some sort of funky autosequencer built-in? I think it does.
09:39:39 <fizzie> Not that I could use it.
09:41:07 -!- Jafet has quit (Quit: Leaving.).
09:41:25 <elliott> fizzie: Yes, but, who needs life when you have seq?
09:41:32 <elliott> fizzie: Also: What /is/ the input format to your corpus scripts?
09:45:07 -!- wareya has quit (Quit: Lost terminal).
09:46:57 <fizzie> Text, with one line per thing-it-should-say, more or less. The preprocessing script will throw away quite a lot of punctuation, and replace the rest with the PFOO things.
09:48:43 <elliott> fizzie: That sounds maybe even doable enough for me to do.
09:48:55 <elliott> fizzie: You should have style options, so that people can ask for just transcripts, just annotations, or both.
09:50:55 -!- sebbu2 has joined.
09:50:56 -!- sebbu2 has quit (Changing host).
09:50:56 -!- sebbu2 has joined.
09:51:39 <elliott> fizzie: UNLESS YOU WANT TO MAKE THREE SEPARATE STYLES? :p
09:54:52 -!- sebbu has quit (Ping timeout: 276 seconds).
09:57:24 <fizzie> Going, going, gone. -> (Probably won't be back today.)
10:03:31 -!- pkzip has joined.
10:04:04 -!- wareya has joined.
10:04:09 -!- pkzip has left.
10:05:00 -!- Phantom_Hoover has joined.
10:26:05 <elliott> Taneb: IWC scraper wrote, but now I've realised that it doesn't decode HTML entities properly, and am going to procrastinate on it for a while.
10:28:44 <Taneb> http://www.irregularwebcomic.net/random.php?i0=1461&p0=3&i1=0913&p1=0&i2=1211&p2=2&i3=1693&p3=1
10:29:29 <fungot> Taneb: you! take! we find! magus's 3 henchmen, ozzie, but they are thine kin, and ' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
10:33:13 -!- sebbu2 has changed nick to sebbu.
10:35:43 -!- derrik has quit (Quit: gone).
10:39:16 -!- Phantom_Hoover has quit (Quit: Leaving).
10:39:27 -!- Phantom_Hoover has joined.
10:53:42 -!- Zuu has joined.
10:55:49 <Taneb> So THAT'S how you exit man pages
11:10:35 -!- derdon has joined.
11:18:20 -!- Taneb has quit (Read error: Connection reset by peer).
11:18:43 -!- Taneb has joined.
11:42:34 -!- Jafet has joined.
12:21:50 -!- Ngevd has joined.
12:22:31 <Phantom_Hoover> My long-ignored subscription to the Golly mailing list nearly ruined my chances of getting into Cambridge.
12:23:35 <Ngevd> How did that happen?
12:24:37 <Phantom_Hoover> I, being a simple man of simple pleasures, use Evolution as my mail client (yes elliott I know OK?), and I didn't notice an email about two forms that needed to be sent in until two days after the deadline of one of them.
12:25:08 -!- Taneb has quit (Ping timeout: 255 seconds).
12:26:03 <Phantom_Hoover> I would, but I get like one email a week and I don't find it terrible enough for my purposes to switch.
12:29:12 <elliott> Phantom_Hoover: Whoa sorry did I imply you had a choice.
12:31:43 <elliott> Now is not the time for questions???
12:32:25 <elliott> That one hasn't actually been inflicted on everyone yet, but anyway I didn't say you had to use Gmail's.
12:32:28 <elliott> You can use: Anything but Evolution.
12:32:49 -!- sebbu2 has joined.
12:34:31 -!- Ngevd has quit (Ping timeout: 258 seconds).
12:35:43 -!- sebbu has quit (Ping timeout: 240 seconds).
12:36:45 <elliott> Phantom_Hoover: Stop asking questions start switching???
12:36:49 <elliott> fizzie: I SEE YOU'VE RETURNED.
12:37:46 <fizzie> No I am still gone you must be imagining things.
12:38:31 <Phantom_Hoover> elliott, OK I have closed Evolution is this sufficient?
12:38:37 <elliott> fizzie: So you don't want some: FILES??????
12:38:46 -!- Ngevd has joined.
12:39:24 <fizzie> I don't know if I want to fiddle that much with this phone, though I guess it wouldn't be the first time.
12:41:52 -!- MSleep has changed nick to MDude.
12:41:53 -!- wareya has left.
12:43:35 <elliott> fizzie: It's about a sixth done with the generation. :p
12:43:52 <elliott> (I just started it now, though.)
12:44:23 <fizzie> Is it scripts or annotations or both?
12:45:03 <elliott> fizzie: Two separate files, the intention is that "scripts" becomes iwcs, "anns" becomes iwca, and $(cat scripts anns) becomes iwcb. (For scripts, annotations, and both, respectively. I don't like the idea of favouring any one over the others; it makes me: sad.)
12:45:27 -!- Ngevd has quit (Ping timeout: 260 seconds).
12:45:31 <elliott> Also the splitting logic for the annotations isn't very smart.
12:45:37 <elliott> It just splits on sentence boundaries, defined naively.
12:45:50 <elliott> (Would the generation code handle every annotation just being mushed on to its own line well?)
12:48:13 <fizzie> The segmentation isn't terribly important since it mostly just affects which words it starts with; the stopping is a bit ad-hoc. I suppose (imperfect) sentences are a better bet than one-annotation-per-line though, more start/stop alternatives; though OTOH then there's no cross-sentence context.
12:48:31 <fizzie> I don't think it matters all that much.
12:53:25 -!- Jafet has quit (Quit: Leaving.).
12:55:51 -!- pikhq_ has joined.
12:56:11 -!- pikhq has quit (Ping timeout: 255 seconds).
12:57:35 <elliott> fizzie: Well, the sentences are quite short in the file I have.
12:57:53 <elliott> [1] Benjamin Haydon (1929).
12:57:53 <elliott> The Autobiography and Memoirs of Benjamin Robert Haydon 1786-1846.
12:57:55 <elliott> Compiled from his "Autobiography and Journals" and "Correspondence and Table-Talk".
12:57:57 <elliott> Minton Balch & Company, New York.
12:58:05 <elliott> (Okay, most of them are fairly reasonable snippets.)
12:58:17 <elliott> fizzie: With one-annotation-per-line, it'd be about... 1000? lines.
12:58:27 <elliott> Is that enough to get things going, or would you stick with this file?
12:59:27 <fizzie> I'd probably just go with that first and see what comes out.
13:00:02 <elliott> fizzie: Can you, uh, download mail attachments on that thing?
13:01:12 <fizzie> I can mangle; I read all my mail with mutt (running at iris) anyway.
13:02:12 <elliott> fizzie: Sent. It may be in your: spame folder.
13:02:18 <elliott> (To be prounounced "spaym".)
13:02:40 <elliott> If you change the style names I'll ragequit forever. :p
13:03:45 <fizzie> Lessee. May take me a moment.
13:04:26 <elliott> fizzie: (I decided to omit iwcb.xz, as (a) I didn't generate it and (b) you can generate it with "cat".)
13:10:43 -!- pkzip has joined.
13:10:58 -!- pkzip has left.
13:11:36 <fizzie> I'll run through some sample sentences before bothering to try sticking the stuff into the bot.
13:16:16 <fizzie> Uh, it is borken with millions of warnings. Why is it like that?
13:16:28 <elliott> Isn't it Perl? Insert Perl joke.
13:16:37 <elliott> There ams some Unicode in it.
13:17:24 <fizzie> It should wurk just fine.
13:17:36 <elliott> fizzie: Did you remember to decompress them.
13:18:08 <fizzie> It's just all "substr outside string" to me. Weirdness.
13:22:16 <fizzie> I think I must've crisscrossed the tokens/model files.
13:22:35 <fizzie> "cowers raaarrrhh a inciting royalty 1 i budget offence a offence handy. around vague jackbooted 1937? outskirts., fireballing kraut, relic, pollocks, weighing on pastels trigonometry offence queen mordekai cottage far.
13:22:38 -!- Phantom__Hoover has joined.
13:22:40 <fizzie> jawohl wunderbar a charles schulz a goscinny offence cattle uderzo before there's forming on mglw'nafh critter exoskeletons shorts in."
13:23:42 <elliott> fizzie: It could be really powerful if you shouted it.
13:23:48 <fizzie> Sad, because I already fixeded it.
13:24:32 <elliott> The scripts file's utterances are very short, so... that'll be interesting.
13:24:47 <olsner> mglw'nafh critters sound nice
13:24:55 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
13:25:32 <elliott> Ooh, Skyrim's main menu is very tasteful.
13:25:36 <elliott> Like a well-designed coffee table.
13:26:06 <fizzie> Annotations: | curl -F 'sprunge=<-' http://sprunge.us
13:26:17 <fizzie> I cannot copy or paste.
13:28:11 <fizzie> Annotations: http://sprunge.us/QKWT - Scripts: http://sprunge.us/aiON
13:28:56 <elliott> fizzie: What is with those numbers?
13:29:29 <elliott> The scripts are I think Good Enough to add as iwcs now, but them annotations need wurk.
13:29:38 <elliott> "escaping the nazis in berlin. well, it is rocket launch further down
13:29:38 <elliott> 'is throat, will 'e doesn't work in the right direction they are
13:29:38 <elliott> running towards the orcrift mountains... for erwin to perform surgery
13:29:38 <elliott> by following us today. they're going to break the news from the king's
13:29:38 <elliott> twin brother, and discuss the arrangements for splitting the profits from
13:29:39 <elliott> this trip. i've been promoted to insanely overpowered fireball? romans
13:29:41 <elliott> waiting at the gates of hades. busted!''"
13:31:23 <fizzie> Numbers come from around line 14608 of 'iwca'.
13:31:40 <elliott> fizzie: What's that line? :p
13:32:22 <fizzie> A(4,2) written out in groups of three digits.
13:32:37 <elliott> That might need: remeuving.
13:32:44 <elliott> But yeah, scripts are looking a lot more polished.
13:41:29 -!- Aune has joined.
13:51:05 -!- Ngevd has joined.
13:54:17 <olsner> what are you doing? is that gibberish some kind of esolang?
13:58:57 <elliott> Vorpal: What graphics card does your computer have, anyway?
14:01:15 <Ngevd> I like today's Freefall
14:02:00 <Phantom__Hoover> http://www.smbc-comics.com/index.php?db=comics&id=2429&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+smbc-comics%2FPvLb+%28Saturday+Morning+Breakfast+Cereal+%28updated+daily%29%29
14:02:33 <Phantom__Hoover> Anyway, Zach, you realise that Dresden Codak did that joke like a year (~4 pages) ago.
14:02:56 <elliott> Phantom__Hoover: I can guarantee he did it worse.
14:05:20 -!- pikhq has joined.
14:05:40 -!- pikhq_ has quit (Ping timeout: 258 seconds).
14:05:53 <Ngevd> Right when I joined this time, elliott said IWC
14:06:05 <Ngevd> Is this some way suggested to my fungot suggestion?
14:06:06 <fungot> Ngevd: it's a machine that looks like you!? how did you pick on a helpless amphibian! filthy medal! i won't forget this!
14:06:30 <elliott> It's related, and I await your payment.
14:06:32 <Phantom__Hoover> http://cdn.walyou.com/wp-content/uploads//2011/03/Pi-Clock-with-Radian-Measurements.jpg
14:06:34 <elliott> fizzie: So is iwcs in the bot yet?????????////
14:06:47 <elliott> Phantom__Hoover: What? They forgot to use tau.
14:06:51 <Ngevd> elliott, give me an address and I WILL GIVE YOU MY TWO CENTS MYSELF
14:07:02 <Phantom__Hoover> A real mathematician's clock would go anticlockwise and 2pi would be where pi/2 is.
14:07:23 <Ngevd> elliott, that narrows it down to SLIGHTLY MORE THAN I KNEW ALREADY
14:07:44 <elliott> That gave you new information?
14:07:58 <Ngevd> You could be on a day out
14:08:39 -!- CakeProphet has joined.
14:08:40 -!- CakeProphet has quit (Changing host).
14:08:40 -!- CakeProphet has joined.
14:10:57 <fizzie> No I uh I umm busybusy whoops ->
14:14:04 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 5) <Warrigal> GKennethR: he should be told that you should always ask someone before killing them. \ 44) <Deewiant> I spent the last minute or so killing myself repeatedly \ 76) <Warrigal> Invalid! Kill! Kill! <Aftran> I get that feeling too. \ 143) <fungot> ais523: killer bunnies can be harmed by domesticated canines only. \ 158) <fungot> pikhq: it was fragrant
14:14:13 -!- fungot has quit (Remote host closed the connection).
14:14:25 <HackEgo> 158) <fungot> pikhq: it was fragrant with the scent of abomination. hear a speech declaring a holy war, is the man insane? some idiot missionary gets himself killed, some man writes some gibberish about the shape of a dragon, wonse?"
14:14:50 -!- fungot has joined.
14:14:56 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa sms speeches ss wp youtube
14:14:59 <fungot> Selected style: iwcs (Irregular Webcomic scripts)
14:15:08 <elliott> fizzie: It's "Irregular Webcomic!", exclamation mark and all. :p
14:15:10 <fungot> elliott: the more rules of law! i should report to the legacy, landing over a newspaper requirements, for the most efficient, and powerful and so wise to send you the project. take a look. hands!
14:15:16 <olsner> nice, 158 was a poetic fungot
14:15:17 <fungot> olsner: on the way, myth, god created the universe, a better universe! we choose only die fittest people, animals, a mad skeletal in some depictions, this transition can take place anywhere, and a killer taipan
14:15:51 <fungot> Ngevd: hey, there's comics, just so you can return of the king, you are dedicating yourself, does the allosaurus have a policy on death? i can just walk through the door
14:16:03 <elliott> Oh god Ngevd is Vriska this has so much meaning I just don't know what it is yet.
14:16:22 <Ngevd> That my birthday's in Late October/November?
14:17:03 <HackEgo> 2011-06-02.txt:03:58:00: <Sgeo> Is it inappropriate to say <3< Vriska?
14:17:13 <elliott> olsner: Please don't remind us of past Sgeo|web.
14:17:15 * CakeProphet is a mixture of Karka and Nepeta depending on which zodiac you prefer.
14:17:19 <elliott> It's almost as bad as reminding us of present Sgeo|web.
14:17:35 <Phantom__Hoover> olsner, unlikely to show much, given that elliott's Vriska-hate was mainly in /msgs to me.
14:17:51 <elliott> Phantom__Hoover: Hey that only lasted for like a few weeks if you normalise it out because time dilation.
14:17:59 <Phantom__Hoover> Then elliott was all like "no vriska's amazing" for some reason and then I was confuse.
14:18:00 <elliott> I don't even know how long a week is any more.
14:18:04 <elliott> Phantom__Hoover: No I never said that either.
14:18:09 <elliott> You are MISREPRESENTING me.
14:18:21 <elliott> I am going to check the wiki and that guy will have a new language out.
14:18:30 <elliott> http://esoteric.voxelperfect.net/wiki/User:TomWhitney874
14:18:34 <Ngevd> Brook is Turing Complete! <-- unproven statement
14:18:36 <CakeProphet> elliott: homoiconic heap based language? help.
14:18:41 <elliott> Quite a few thrilling perfumes are invigorating Christmas shoppers seeking for that excellent "for her" present. Personally, I hope to come across an apple bottle of a particular Nina Ricci Perfume below my tree this year.
14:19:11 <fungot> elliott: you are not evil, terrible things are happening. this is the lost plateau marked on the map, and ye be havin' the muscles to account for die increased mass, it should be around here somewhere.
14:19:12 <Ngevd> Could be done as a CA
14:19:35 <CakeProphet> as far as I can tell it would probably work by arranging instructions on a heap of some kind, with associated labels. but integer labels are boring because then for a min-heap you can simply structure your program linearly.
14:19:54 <Ngevd> I like how it goes from Pirate to German in 6 words
14:19:59 <fungot> Ngevd: what the...? did i put too much pressure on you? this is worse. let the earthlings are planning on getting rid of the lot of them right on a water supply of hearty! what news, bosun? shiver me timbers! smartly there, bucko me lad
14:20:20 <Phantom__Hoover> Actually, that's trivially TC for the same reason Gravity is.
14:21:29 <Ngevd> I think a Chemistry based esolang would be similar to SpaceChem or Codex of Alchemical Engineering
14:21:39 <Ngevd> Not every chemistry based esolang
14:21:41 <fizzie> When you MISREPRESENT, you also PERMIT SNEERS.
14:22:33 <fizzie> SpaceChem was quite nicely Befungey for a game.
14:25:12 <Deewiant> Hmm, aren't Funges "runtime-error free"
14:38:17 -!- MSleep has joined.
14:40:14 -!- Taneb has joined.
14:42:04 -!- MDude has quit (Ping timeout: 245 seconds).
14:43:19 -!- Ngevd has quit (Ping timeout: 258 seconds).
14:43:57 -!- MSleep has changed nick to MDude.
14:44:15 -!- MDude has quit (Quit: later chat).
14:44:30 -!- MSleep has joined.
14:50:05 -!- pikhq has quit (Read error: Operation timed out).
14:50:20 -!- pikhq has joined.
14:57:09 -!- tiffany has joined.
16:02:11 -!- ais523 has joined.
16:08:32 <CakeProphet> Sometimes I just have to take a moment to be amazed when some people request Facebook friendship
16:09:12 <Phantom__Hoover> I have 111 friend requests. An awful lot of those people have not met me.
16:09:18 <CakeProphet> her political and religious views: Catholic and Republican Party favorite TV show: Degrassi
16:09:36 <CakeProphet> mine: Agnostic and Anarchism TV show: Dexter
16:11:32 <Taneb> Dislike of Soviets?
16:12:12 <CakeProphet> I don't have a very strong opinion of Soviets
16:12:19 <CakeProphet> especially now that they don't technically exist.
16:12:58 <CakeProphet> it would be like asking "CakeProphet, what do you think about the Ottoman Turks?"
16:14:41 <Phantom__Hoover> CakeProphet, he's an agnostic anarchist who liked Dexter. She's a Catholic Republican who likes Degrassi. They fight crime.
16:15:25 <Phantom__Hoover> Taneb, so you have thirty-seven times more people requesting your friendship than it is physically possible to know?
16:17:08 <Taneb> I make friends quickly
16:17:45 <Taneb> > (1857+178-146) / 150
16:17:58 <Taneb> Two profiles, minus mutaul friends
16:22:28 <CakeProphet> Phantom__Hoover: anarchist by principle. dirty capitalist pig by practice. I suppose we share that in common.
16:22:43 <CakeProphet> at least I'm not a filthy Republican whore. :)
16:23:55 * CakeProphet should add somewhere on his profile: "HAS STRONG OPINIONS ABOUT THE GUPTA DYNASTY OF ANCIENT INDIA:
16:28:05 <CakeProphet> "IN PARTICULAR, THE CONCEPT OF ZERO WHICH ORIGINATES FROM THIS ERA IS COMPLETELY /BOGUS/ AND CORRUPTS OUR MINDS TO THIS DAY."
16:28:19 <Phantom__Hoover> I tried to set my location to 'Carcosa' but it didn't let me.
16:31:04 <CakeProphet> Phantom__Hoover: it's because you're not fictional enough.
16:33:36 <CakeProphet> it would be creepy if Facebook kept a log of all of your login locations so it could determine where you live.
16:34:41 <CakeProphet> you know what would be more creepy: if it displayed a public profile of who you are, things you like, random thoughts you've had, your work history, and lots of pictures of you.
16:36:23 <CakeProphet> my argument goes something along the lines of "big brother dude. trapping personalities in cages, man"
16:38:27 <Taneb> "And that's why I killed her..."
16:38:57 -!- Taneb has quit (Quit: Goodbye).
16:39:12 <quintopia> CakeProphet: is there a difference between the modern concept of zero and theirs or are you just poe's lawing?
16:39:48 <CakeProphet> quintopia: probably that last one. actually I don't know. I think it's pretty similar though.
16:40:12 <CakeProphet> http://en.wikipedia.org/wiki/0_(number)#History_of_zero
16:40:54 <CakeProphet> their treatment of division by zero is different.
16:41:06 <CakeProphet> http://en.wikipedia.org/wiki/0_(number)#Rules_of_Brahmagupta
16:43:50 <CakeProphet> http://en.wikipedia.org/wiki/Aryabhata#Place_value_system_and_zero
16:44:00 <CakeProphet> this is the earliest use of zero in that society.
16:44:34 <CakeProphet> but I would argue that previous civilizations had a "concept of zero"
16:45:18 <CakeProphet> Records show that the ancient Greeks seemed unsure about the status of zero as a number. They asked themselves, "How can nothing be something?"
16:45:28 <CakeProphet> silly greeks. so easily confused by such simple things.
16:52:19 <Phantom__Hoover> They couldn't even build a steam engine when they'd already invented one!¬
16:54:38 <CakeProphet> so now I'm trying to solve Goldbach's Conjecture.
16:54:58 <CakeProphet> because obviously I can solve it when it's been unsolved by brilliant mathematicians for centuries.
16:59:19 <CakeProphet> Phantom__Hoover: "Most early Greeks did not even consider 1 to be a number" and even inventing one took them some time apparently!
17:01:29 <CakeProphet> CakeProphet's proof: "well of course you've got a shit ton of primes as you get to larger numbers, so you can probably just find a big one and a small one and add them together and get your number."
17:02:23 <CakeProphet> I think this is approximately how the statistical approach works.
17:08:05 -!- nys has joined.
17:23:01 -!- monqy has joined.
17:32:34 -!- Taneb has joined.
17:33:50 -!- MSleep has quit (Ping timeout: 260 seconds).
17:34:58 -!- Taneb|Hovercraft has joined.
17:35:49 <Taneb|Hovercraft> I think I could probably make people accounts on the mezzawiki
17:36:18 <ais523> I don't particularly have a need for one, though
17:37:27 -!- Ngevd has joined.
17:37:44 <Ngevd> Right, I'm now sitting somewhere with a marginally better wifi signal
17:38:17 <Ngevd> And am in the process of killing off all my clones
17:38:57 -!- Taneb has quit (Ping timeout: 248 seconds).
17:40:21 -!- Taneb|Hovercraft has quit (Ping timeout: 258 seconds).
17:44:30 <Phantom__Hoover> Oh man, the BBC's response to him saying sexist remarks was basically "ah, c'mon, who cares, he's like a billion".
17:44:44 <Ngevd> Yup, I can make accounts for mezzawiki
17:45:32 <elliott> Phantom__Hoover: Isn't he basically bigoted against everything and way far to the right :P
17:45:41 <elliott> In 1981 he performed a solo xylophone rendition of the Sex Pistols' "Anarchy in the UK" in a Royal Variety Performance.[1]
17:45:45 <elliott> Phantom__Hoover: Sorry I must forgive him
17:46:07 <Phantom__Hoover> Maybe that's why he's an astronomer: when he was young it was current events.
17:46:48 <Deewiant> http://www.weebls-stuff.com/songs/patrick+moore/
17:46:48 <elliott> Hmm, it looks like he's not all that bad apart from being a racist, sexist conservative.
17:46:58 <elliott> Most billions are, like, at LEAST dinosaurs.
17:48:11 <Phantom__Hoover> Oh man, Patrick Moore doing the xylophone (well, marimba) part in Spercussion Jungle.
17:48:27 <elliott> Deewiant: This looks as old as the man himself
17:48:59 <Phantom__Hoover> "Along with many other celebrities, Patrick Moore has been the subject of crank-calls by comedian Jon Culshaw, as part of the BBC Radio 4 show Dead Ringers. On this occasion, Jon Culshaw impersonated Tom Baker's role of the Fourth Doctor (Doctor Who), supposedly consulting Moore on various astronomy-related matters. Moore, being aware of what was going on, confused Culshaw by out-playing him in his use of technobabble,
17:49:00 <Phantom__Hoover> resulting in a rare pause from the comedian as he tried to think of a response and even broke character by laughing a little after being 'gazumped'."
17:50:04 <Ngevd> Anyone want a mezzawiki account?
17:50:27 <Ngevd> Promise you won't spam!
17:50:55 <Ngevd> What do you want the username to be?
17:54:29 <Ngevd> Remember, Phantom__Hoover, if you spam at ALL, I will BLOCK YOU.
17:54:42 <elliott> Ngevd: I'd like one called ~}wM��*���E�z, please.
17:55:01 <Ngevd> Phantom__Hoover, mezzacotta.net/wiki
17:55:24 <elliott> Ah, let me correct you Ngevd
17:55:31 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs* jargon lovecraft nethack pa sms speeches ss wp youtube
17:55:34 <fungot> Selected style: iwcs (Irregular Webcomic scripts)
17:55:37 <elliott> Ngevd: SEE WHAT I DID FOR YOU???
17:55:39 <fungot> elliott: i know! i'll assemble a prize, finance minister, the new tech is like, with its execrable overburdening of the dialogue, multiple complex... is he american. but i adopted a new name, i need a screwdriver
17:59:32 <Deewiant> Phantom__Hoover: That crank-call is at https://www.youtube.com/watch?v=vMOl_Jh8O_E
18:12:00 -!- tiffany has quit (Remote host closed the connection).
18:13:08 <elliott> NO MY HOPES AND DREAMS: http://i.imgur.com/LxsmK.jpg
18:14:27 -!- tiffany has joined.
18:14:47 <elliott> I wonder if XP is ubiquitous enough to make Bliss have iconic status yet.
18:17:25 <elliott> "According to O'Rear, the photograph was not digitally enhanced or manipulated in any way."
18:17:31 <elliott> Doooooon't belieeeeeeeve youuuuuuuuuu
18:20:23 <pikhq> elliott: I wouldn't even hesitate to call Bliss iconic.
18:21:03 <elliott> It's kind of insane to think that a fairly crappy operating system release that looks like Fisher Price out of the box is now part of our ongoing cultural heritage :P
18:21:48 <elliott> Note to self: Relevant sprunge link in /query logs of elliott.
18:21:55 <elliott> monqy: More like... BADconic........
18:22:14 <elliott> <elliott> Note to self: Relevant sprunge link in /query logs of elliott.
18:22:16 <elliott> (This is how I do branches.)
18:22:49 <pikhq> monqy: No, you don't get "iconic" just by people wanting to summon death.
18:23:18 <elliott> `run perl 'print 0 while 1'
18:23:21 <HackEgo> Can't open perl script "print 0 while 1": No such file or directory
18:23:22 <elliott> `run perl -e 'print 0 while 1'
18:23:24 <HackEgo> 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
18:24:38 <monqy> magic numbers are weird
18:25:26 <pikhq> TOTALMAGIC\0mimetype-goes-here\0
18:29:17 <elliott> 2. 1.9.1: guessmime, revert behavior restored
18:29:17 <elliott> revert now requires a specific revision to revert a merge, restoring the pre-1.9 behavior
18:29:17 <elliott> hgweb now returns raw files as type application/binary for security, see the web.guessmime config setting to restore the old behavior
18:29:34 <elliott> Gregor: Set web.guessmime = True on the HackEgo fs repository, and voila
18:29:42 <elliott> Pastes no longer make me want to die
18:29:54 <elliott> Before: hgweb made it possible to download file content with a content type
18:29:54 <elliott> detected from the file extension. It would serve .html files as text/html and
18:29:54 <elliott> could thus cause XSS vulnerabilities if the web site had any kind of session
18:29:54 <elliott> authorization and the repository content wasn't fully trusted.
18:31:42 -!- Taneb has joined.
18:34:47 -!- Ngevd has quit (Ping timeout: 258 seconds).
18:35:52 -!- hagb4rd has quit (Quit: hagb4rd).
18:37:40 <Gregor> elliott: Security shmeshmurity.
18:37:40 <lambdabot> Gregor: You have 9 new messages. '/msg lambdabot @messages' to read them.
18:38:07 <elliott> Gregor: Those messages detail a further improvement to the Transactional HackEgo design I thought of :P
18:38:15 <elliott> Which is clearly not premature, seeing as you haven't even tested version 1 yet.
18:38:57 <Gregor> I'm not sure how that would work thru UMLBox.
18:39:04 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/rev/7a6bfed30dd8 It didn't work :(
18:39:14 <elliott> Gregor: strace would be run inside the jail, inside the limits
18:40:20 <Gregor> `run echo '<!doctype html><html><head><title>lolhtml></title></head><body><script type="text/javascript">alert("Wow this is a pain");</script></body></html>' | paste
18:40:21 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29287
18:40:35 <Gregor> Well that's OHHHH extension.
18:40:40 <elliott> Yeah, maybe it wants the HTML file or something.
18:40:41 <Gregor> `run echo '<!doctype html><html><head><title>lolhtml></title></head><body><script type="text/javascript">alert("Wow this is a pain");</script></body></html>' > foo.html && url foo.html
18:40:44 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/foo.html
18:40:53 <elliott> Gregor: BTW you can fix it trivially
18:41:14 <elliott> Gregor: Patch hg, grep /guessmime/, add a check for text/html that bails out (I saw a diff that added it while looking that up :P)
18:41:28 <elliott> At least you don't have to modify global hg, just the hgweb.
18:43:11 <elliott> Gregor: Anyway, unless codu.org has sensitive cookies it doesn't matter much.
18:43:26 <Gregor> Security is for pussies.
18:44:10 <elliott> Gregor: But TRANSACTIONS are for ACTIONS!
18:44:26 <elliott> If that thing runs first time I will literally ascend to the rank of Coder God btw
18:45:04 -!- zzo38 has joined.
18:45:29 <zzo38> Does $x^2 + y^3 = z^4$ have solutions in prime numbers?
18:47:01 <lambdabot> forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b
18:50:05 -!- Taneb|Hovercraft has joined.
18:50:28 <zzo38> Do you know a proof that there are no solutions?
18:52:08 <zzo38> That isn't a very good proof.
18:52:46 <elliott> Cite the source code to Mathematica :-)
18:53:25 <CakeProphet> zzo38: x^2 should odd, y^3 should be odd, y^4 should be odd. the addition of two odd numbers produces an even number.
18:53:31 <Deewiant> In[1]:= Reduce[x^2+y^3==z^4&&PrimeQ[x],{x,y,z},Integers]
18:53:32 <zzo38> Do you even have the source code to Mathematica?
18:54:02 <zzo38> CakeProphet: Yes that is good.
18:54:20 -!- Taneb has quit (Ping timeout: 258 seconds).
18:54:55 <elliott> Deewiant: You need FullReduce (I think that's the one that does FLT)
18:55:01 <zzo38> Can you try the case where it is 2?
18:55:32 <elliott> Deewiant: SuperReduce? MegaReduce? It's something like that :P
18:55:50 <Deewiant> elliott: Are you thinking of FullSimplify?
18:57:36 <Deewiant> It's just a better simplifier, I'm pretty sure Reduce does the most that anything does here
18:57:37 <zzo38> If z=2 then it will be adding to 16 and you can try the cases. But what happened if x=2 or if y=2? Then it is about powers of 2
19:04:22 <elliott> `echo TRANJSNAKTACTIONALS!
19:07:06 -!- sebbu3 has joined.
19:07:06 -!- sebbu3 has quit (Changing host).
19:07:06 -!- sebbu3 has joined.
19:08:52 -!- sebbu2 has quit (Ping timeout: 260 seconds).
19:10:08 -!- Taneb|Hovercraft has quit (Ping timeout: 240 seconds).
19:11:04 <elliott> Gregor: Huh, I didn't know hg hardlinked .hg on clone
19:11:10 <elliott> I wonder whytf HackEgo is so slow then...
19:11:29 <Gregor> 1) It has to copy the actual working directory. 2) Sandboxing lol
19:12:28 <elliott> (1) Well, yeah, the only way to avoid that is my revised design, which I will refer to as Transactional Headache. (2) Mehhh, UMLBox isn't that slow?
19:12:58 <elliott> I think the revised design will be pretty superfast, since it's literally zero-copy, but I guess it should wait until transactions are an actual thing first :P
19:13:05 <elliott> Also it could interact terribly with flock and all that crap, but who cares just don't use thos.
19:15:37 -!- sebbu has joined.
19:15:37 -!- sebbu has quit (Changing host).
19:15:37 -!- sebbu has joined.
19:15:41 <CakeProphet> zzo38: the cases where you have one x or y = 2 and z = 2 are false because even + odd != even
19:17:05 <CakeProphet> also 2 + 2 != odd so that's 3 out of 7 cases where you have a 2 somewhere.
19:17:40 <CakeProphet> parity is perhaps not the most elegant proof here. :p
19:17:59 -!- sebbu3 has quit (Read error: Connection reset by peer).
19:23:46 <CakeProphet> that leaves... 4 + odd^3 = odd^4; odd^2 + 8 = odd^4; and odd^2 + odd^3 = 16
19:23:48 -!- hagb4rd has joined.
19:24:39 <elliott> This is like the proof of the four-colour theorem. Or was it the Kepler conjecture.
19:24:51 <elliott> Just keep brute-forcing special cases until there aren't any cases left.
19:27:05 -!- MSleep has joined.
19:27:43 <CakeProphet> elliott: I'm all about those special cases.
19:27:56 <CakeProphet> monqy: THE WORLD IS TOTALLY FULL OF SPECIAL CASES.
19:28:27 <monqy> this is why i hate the world
19:29:12 <CakeProphet> usually the special cases are larger in number.
19:29:33 -!- sebbu2 has joined.
19:29:33 -!- sebbu2 has quit (Changing host).
19:29:33 -!- sebbu2 has joined.
19:31:38 <CakeProphet> anyways I'm almost positive that adding 4 to the cube of a prime number will not yield the 4th power
19:31:45 <CakeProphet> but I don't really know how to express that in proof form.
19:32:24 -!- ais523 has changed nick to ais523\unfoog.
19:32:26 <CakeProphet> same with adding 8 to the square of a prime to get its 4th power.
19:32:54 -!- sebbu has quit (Ping timeout: 260 seconds).
19:33:19 <CakeProphet> the odd^2 + odd^3 != 16 case can be bruteforced.
19:33:30 <monqy> what are you even doing
19:33:50 <Phantom__Hoover> He's trying his hand at number theory despite barely being able to grasp calculus.
19:34:01 <CakeProphet> 13:45 < zzo38> Does $x^2 + y^3 = z^4$ have solutions in prime numbers?
19:34:18 <CakeProphet> Phantom__Hoover: are you sure you're not confusing me with itidus?
19:34:36 <elliott> sorry, had to cause a clash
19:34:38 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:34:38 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:34:46 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:34:50 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:35:03 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:35:04 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:35:04 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:35:04 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:35:04 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:35:04 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:35:19 <elliott> ais523\unfoog: good question
19:35:43 <elliott> ais523\unfoog: hmm, there isn't any cat executed
19:35:50 <elliott> so I'm not sure what's up there
19:36:10 <HackEgo> PID TTY TIME CMD \ 272 ? 00:00:00 init \ 274 ? 00:00:00 sh \ 276 ? 00:00:00 ps \ 277 ? 00:00:00 cat
19:36:36 <ais523\unfoog> I was wondering ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
19:36:49 <ais523\unfoog> vggggggggggggggggggrrrrrrfffrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
19:37:25 <elliott> I was wondering that ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
19:37:27 <elliott> vggggggggggggggggggrrrrrrfffrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr too.
19:37:32 <zzo38> Do you know about Zen and do you know about motorcycle maintenance?
19:38:03 <elliott> Gregor: Does it spam you with mail every time I add new commits to that pull request?
19:38:53 <monqy> zzo38: are they one and the same
19:39:21 <zzo38> Do I need to do anything with the .cabal file or .lhs file to make the document link work on the webpage?
19:39:47 <Gregor> elliott: Doesn't seem to.
19:40:00 <elliott> Gregor: Darn-- I mean oh good.
19:40:06 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...
19:40:11 <elliott> ais523\unfoog: I doubt it...
19:40:17 <CakeProphet> monqy: Phantom__Hoover is the primary detractor of my contributions to the field of parity relations between powers of primes in infinite cyclic abelian groups and commutative monoids
19:40:21 <ais523\unfoog> but OCaml is strict, and yet I've just seen it in someone else's OCaml code
19:40:28 <elliott> ais523\unfoog: A student's?
19:40:44 <ais523\unfoog> http://alaska-kamtchatka.blogspot.com/2011/11/modular-semantics-for-brainfuck.html
19:41:08 <zzo38> elliott: The Hackage webpage for a Haskell library.
19:41:14 <elliott> http://old.nabble.com/lazy-infinite-lists-td22922684.html
19:41:18 <elliott> ais523\unfoog: I doubt it's valid
19:41:25 <elliott> zzo38: What's a "document link"
19:41:29 <ais523\unfoog> # let rec zeros = 0 :: zeros in match zeros with | a::b::t -> (a,b) | _ -> (9,9) ;;
19:41:47 <zzo38> Many packages you can select the name of the module to view the list of functions and types in them. But mine doesn't work, and a few other that aren't mine also don't work.
19:42:03 <ais523\unfoog> (the second case is to avoid the warning for not being exhaustive that'd have made it harder to copy/paste otherwise)
19:42:05 <elliott> ais523\unfoog: I have a solution to your confusion! Don't use OCaml.
19:42:29 <monqy> CakeProphet: oh no
19:42:31 <elliott> It IS a workable solution, you have to admit.;
19:42:43 <zzo38> elliott: Did you understand what I meant now?
19:42:50 <ais523\unfoog> then it prints about 12 to 15 lines of zeros and a ...
19:43:01 <elliott> zzo38: I already told you it takes up to 6 hours for Haddock documentation to be generated
19:43:15 <zzo38> It has already been more than 6 hours since I send that package.
19:43:18 <elliott> and it'll fail if it doesn't build on the hackage machine (a build failure log will be linked from the package page)
19:43:28 <elliott> zzo38: since you sent the latest version? anyway, it has to rebuild the documentation for every single package
19:43:36 <elliott> so it almost certainly takes at least an hour to run, and probably much longer
19:43:37 <zzo38> I don't see any build failure log either
19:43:42 <elliott> give it a day or so and check again
19:44:18 <zzo38> But it works on my computer!
19:44:39 <zzo38> So why doesn't it work on their computer?
19:45:11 <elliott> zzo38: did I say it didn't?
19:45:20 <elliott> like I said, every 6 hours it rebuilds the documentation of every single package
19:45:29 <elliott> so it will take a while for it to reach your package
19:46:20 <zzo38> O, that is how it works? Can't they fix it so that it only rebuilds when it needs to do so, allowing their computer to run more efficiently?
19:46:28 <ais523\unfoog> elliott: and then it outputs the start of the structure
19:46:40 <ais523\unfoog> so I /guess/ type constructors in OCaml are lazy even if the rest of the language isn't, or something like that
19:46:54 <ais523\unfoog> I was wondering if it was specific to lists, but it seems not to be, as even defining lists by hand it works
19:46:57 <elliott> zzo38: there's no way to tell what needs to be rebuilt without reverse dependency information, which hackage 1.0 doesn't generate
19:47:04 <elliott> ais523\unfoog: I bet let rec just adds an implicit ()
19:47:12 <elliott> and, umm, lets it type like that anyway
19:47:20 <elliott> and inserts () at non-RHS call points
19:47:31 <elliott> it doesn't insert the () on the RHS of the let rec
19:47:35 <elliott> it just unsafeCoerces it :P
19:47:55 <elliott> ais523\unfoog: except not type safe
19:48:40 <ais523\unfoog> Error: This kind of expression is not allowed as right-hand side of `let rec'
19:48:42 <zzo38> Another possibility would be to change the orders so that packages that have neither documentation nor build fail logs will be given priority. And then their priority is removed after it tries once, whether it fail or succeed.
19:49:17 <elliott> zzo38: or they could just rewrite hackage to not suck, which is what hackage 2.0 is :P
19:49:30 <elliott> i dunno when they're planning to finish it though, i guess next year
19:49:36 <ais523\unfoog> unit -> 'a is /always/ bottom, right (exception or infinite loop)?
19:49:48 <elliott> ais523\unfoog: it's not always bottom
19:49:50 <Sgeo|web> Is ais523\unfoog learning OCaml?
19:49:53 <elliott> it's either bottom or const bottom
19:50:06 <elliott> ocaml doesn't really have bottoms like that
19:50:12 <elliott> it can't be bottom, though
19:50:21 <elliott> ais523\unfoog: your definition of "it" is stupid
19:50:30 <elliott> you're quoting a type, and then using "it" to mean a value of a different type P:
19:50:31 -!- sebbu has joined.
19:50:33 -!- sebbu has quit (Changing host).
19:50:33 -!- sebbu has joined.
19:50:37 <elliott> which I guess makes some sense in a strict language
19:50:45 <elliott> but definitely not in a lazy one, since you have proper _|_s
19:50:47 <elliott> Sgeo|web: he already knows ocaml
19:51:08 <ais523\unfoog> but atm it's acting suspiciously like Haskell when it shouldn't be
19:51:21 <elliott> my fav. ocaml feature is -rectypes
19:51:55 <ais523\unfoog> Stack overflow during evaluation (looping recursion?).
19:52:13 <ais523\unfoog> conclusion: let rec is specialcased to lazify recursion when it's defining a non-function type
19:52:17 <zzo38> Maybe they should still have priorities though
19:52:31 <elliott> zzo38: hackagedb 2.0 already works, so i doubt anyone wants to add new things to 1.0
19:52:31 <ais523\unfoog> that's consistent with all the experiments so far, I think
19:52:38 <elliott> ais523\unfoog: but it /can't/, they'd have to build their runtime representation around that
19:52:45 <elliott> ais523\unfoog: and incur all the costs of laziness at every call site without the benefits
19:53:20 -!- sebbu2 has quit (Ping timeout: 240 seconds).
19:53:28 <ais523\unfoog> elliott: well, the logical representation of an immutable infinite repeating lazy list is to loop the list round to point at /itself/
19:54:09 <elliott> ais523\unfoog: a cyclic structure makes a really awful brainfuck tape, if you mutate it
19:54:35 <Deewiant> Did Ocaml not have polymorphic recursion or was that only SML?
19:54:42 <ais523\unfoog> and the lists contain integers, not integer references
19:54:51 <lambdabot> cycle xs = xs' where xs' = xs ++ xs'
19:55:14 <ais523\unfoog> you can certainly write polymorphic recursive functions, but that's so obvious I doubt it's what you mean
19:56:02 <elliott> ais523\unfoog: OCaml still can't do concurrency at all, right?
19:56:02 <Deewiant> ais523\unfoog: Hmm, I was going to explain my usage of "did" instead of "does" but now I wonder if it's not a Finglishism
19:56:08 * elliott has prepared his laugh track.
19:56:23 <elliott> Deewiant: It seems OK to me, if you are referring to past experience with OCaml
19:56:27 <ais523\unfoog> that gives it a threading library, either VM-level or native-thread-level
19:56:48 <elliott> ais523\unfoog: Hmm, a quick google strongly suggested they were purely green threads
19:56:49 <ais523\unfoog> Deewiant: to me you were implying OCaml no longer existed
19:57:07 <elliott> ais523\unfoog: Is it native threads but with a big gigantic lock on everything
19:57:17 <Deewiant> Anyway hang on, I'm devising a Haskell example
19:57:17 <ais523\unfoog> elliott: perhaps; I wrote a build system mentioning it recently; but it was for someone else's code
19:57:27 <elliott> Googling strongly suggests that it is
19:57:58 <CakeProphet> elliott: how dare you ridicule a sacred American custom.
19:59:55 <elliott> ais523\unfoog: use common lisp notation, sheesh :P
20:00:07 <elliott> YAML is kind of ridiculously overengineered.
20:00:19 <Deewiant> ais523\unfoog: Okay, this, basically:
20:00:20 <Deewiant> zipWithFlipping :: (a -> b -> c) -> [a] -> [b] -> [c]
20:00:20 <Deewiant> zipWithFlipping f (a:as) (b:bs) = f a b : zipWithFlipping (flip f) bs as
20:00:23 <elliott> ais523\unfoog: incidentally, I've had more @ Thoughts(tm) since a prototype design seemed to come together, but they've mostly been of the form "wow, X would be so much ridiculously faster in @" or "wow, X would be so much ridiculously easier to program in @"
20:00:44 <ais523\unfoog> elliott: I have Anarchy Thoughts along those lines, or occasionally Cyclexa Thoughts
20:01:40 <elliott> Deewiant: f _ _ = ([], []); f (x:xs) (y:ys) = (x:xs', y:ys') where (xs',ys') = f ys xs?
20:01:45 <elliott> (And then zipWith on that)
20:02:28 <Deewiant> Umm, I'm not sure what you're asking
20:03:04 <elliott> ais523\unfoog: The most recent one has been that, AFAICT, a naive web server in @ would beat the crap out of just about any other httpd that doesn't run in a kernel/on bare metal or on an FPGA or similar ridiculousness
20:03:26 <Deewiant> Note that without the type signature, the inferred type of zipWithFlipping would be (a -> a -> b) -> [a] -> [a] -> [b]
20:03:28 <ais523\unfoog> now I'm thinking about what an FPGA web server would be like
20:03:31 <elliott> ais523\unfoog: (thinking inspired by seeing an article in the Monad.Reader where nginx's performance was beat with fairly simple Haskell)
20:03:58 <ais523\unfoog> it'd be great at static files, although if there were more simultaneous connections than it expected it'd have trouble
20:04:06 <Deewiant> And I'm almost certain that SML doesn't like this, but I'm not sure whether OCaml does
20:04:07 -!- Darth_Cliche has joined.
20:04:41 <elliott> ais523\unfoog: But yeah, the article basically said that saving one syscall per request constituted a relevant, real time saving, and any added overhead of CPU time in @ will be dwarfed by syscall time in the Unix version and IO time in general
20:04:56 <elliott> So, ha, take that operating systems
20:05:17 <ais523\unfoog> elliott: which syscall was it, in the Haskell case?
20:05:21 <elliott> I doubt I'd beat TUX though... unless I had a really fancy IO subsystem
20:05:32 <elliott> ais523\unfoog: oh, it was just talking in general, but lemme dig up the example
20:06:42 <elliott> ais523\unfoog: "Warp uses the recv system call to receive an HTTP request and the writev system
20:06:42 <elliott> call to send an HTTP header. When sending an HTTP body based on a file, it
20:06:42 <elliott> uses the sendfile package which unnecessarily issues the lseek and stat system
20:06:42 <elliott> calls in addition to sendfile. While one could believe that the sendfile system call
20:06:42 <elliott> is fast thanks to its zero-copying approach, the package is actually much slower
20:06:43 <elliott> than we expected. We implemented the simple-sendfile package which does not
20:06:45 <elliott> use lseek and stat. The system calls that the package uses are only open, sendfile,
20:06:47 <elliott> and close. Since sockets are marked non-blocking, sendfile returns EAGAIN if the
20:06:49 <elliott> size of a file is large. In this case, the simple-sendfile package issues sendfile
20:06:51 <elliott> again without lseek to send the rest of the file."
20:07:01 -!- ais523\unfoog has quit.
20:07:11 -!- Madoka-Kaname has left ("Hug~♪").
20:07:12 -!- Madoka-Kaname has joined.
20:07:40 -!- ais523\unfoog has joined.
20:07:52 <elliott> ais523\unfoog: See logs :P
20:08:06 <elliott> ais523\unfoog: There were no numbers specifically for that change, but replacing the time library with their specialised http-date gave a 20x speedup in the date code itself, and combined with the simple-sendfile switch brought it from 4,229 queries/s to 22,713 queries/s; I think that's probably mostly due to the time stuff, though
20:08:19 <elliott> (Again, see logs for context :P)
20:09:47 <ais523\unfoog> elliott: heh, the stat/seek was what lead to the problem
20:10:08 -!- zzo38 has left.
20:10:17 <elliott> ais523\unfoog: yep; I'm not sure it's necessarily a disk IO thing, though
20:10:26 <elliott> if the request timing was on the same file
20:10:56 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
20:11:25 -!- Ngevd has joined.
20:13:27 -!- Phantom__Hoover has joined.
20:13:42 <elliott> ais523\unfoog: hmm, I need to figure out how to optimise referencing a large bytestring that isn't in RAM and sending it to a socket
20:13:58 <elliott> obviously it'll already be done in chunks, so the behaviour will be vaguely reasonable
20:14:06 <elliott> but I could do fancy DMAy scatter-gathery nonsense, perhaps
20:14:38 <CakeProphet> http://www.cs.bris.ac.uk/Teaching/Resources/COMS30122/haskell/calc/index.html
20:14:46 <CakeProphet> this is actually a nice hand-written parser actually.
20:15:38 <Ngevd> MSPA update for all who care
20:15:50 <Ngevd> Unless you already know
20:15:57 <Ngevd> Starts with Jane: Examine Fetch Modus
20:16:05 <CakeProphet> though I would have used operators for the binary Rule constructors, and State for the parse function that returns ([Token], [Tree])
20:19:26 -!- zzo38 has joined.
20:23:03 <elliott> CakeProphet: Writing a parser "by hand" with tuples is kinda stupid, you're not more hardcore for forcing yourself to rewrite the (>>=) plumbing in every single rule
20:24:13 <CakeProphet> elliott: right, I was simply saying for a handwritten parser it's very clearly written.
20:25:13 <zzo38> I have written parsers with Parsec and (>>=) is not needed often.
20:27:14 <monqy> the <$> <* <*> *> <|> plumbing
20:27:51 <zzo38> Yes, <$> <* <*> *> <|> seem much more useful in parsers. Sometimes even <$ as well
20:28:53 <zzo38> <$> is useful with any monads (even any functors) in general.
20:33:52 <zzo38> The Data.Monoid.Plus package can make the probilities of sum of dice by: runWriterT . monoidicMap getProduct . probNorm $ liftA2 (+) dice dice where dice = uniform [1..6] and it can be modified to work with loaded dice, too.
20:34:24 <zzo38> And then there are the "many" and "some" functions useful with parsers too
20:35:54 -!- sebbu has quit (Read error: Connection reset by peer).
20:36:16 -!- sebbu has joined.
20:36:16 -!- sebbu has quit (Changing host).
20:36:16 -!- sebbu has joined.
20:42:19 <Vorpal> elliott, iirc you wanted to know more about dragons in Skyrim?
20:42:35 <Vorpal> I battled quite a few now, I could tell you if you want
20:43:07 <elliott> Yessss tell me all about the dragons and also answer which GPU you have.
20:43:21 -!- Sgeo|chromcrash has joined.
20:43:39 -!- oerjan has joined.
20:44:05 <Vorpal> elliott, to begin with there are quite a few animation bugs. For example, dragons tend to crash land when they get like below ~10% health. This works fine on flat terrain. It looks quite weird on a slope. It looks absolutely silly on a set of stairs.
20:44:12 <Vorpal> lots of animation bugs there
20:44:55 <Vorpal> elliott, other than that, they would be quite hard to hit for significant damage in the sky without frost or fire spells (depending on type of dragon)
20:45:02 -!- Sgeo|web has quit (Ping timeout: 265 seconds).
20:45:06 <Vorpal> elliott, I just can't see a non-magic user handling this at all
20:45:22 <Vorpal> arrows don't seem to do much damage
20:45:38 <elliott> I hear they're pretty easy to battle
20:45:47 <Vorpal> elliott, yep, with magic they are easy
20:45:56 <Vorpal> elliott, on average difficulty
20:46:00 <zzo38> Sgeo|chromcrash: Please be more specific.
20:46:16 <Vorpal> elliott, further training in bow related skills might make it easier for an archer
20:46:39 <zzo38> What about probability?
20:47:00 <Vorpal> elliott, but primarily non-ranged weapon users will run into some issues definitely
20:47:17 <Sgeo|chromcrash> Phantom__Hoover: Someone wants me to implement MCMC in Haskell. I think I know Haskell better than him, but I'm clueless about MCMC
20:47:48 <zzo38> What does MCMC means?
20:48:02 <Vorpal> elliott, other than that it is quite fun. Of course, skyrim has ragdoll physics... I think that is what causes most of the brokenness with the crash landing
20:48:06 <elliott> Sgeo|chromcrash does things because people tell him to.
20:48:15 <elliott> Vorpal: GGGGGGGPPPPPPUUUUU
20:48:52 <Vorpal> elliott, Radeon HD 6850, 1 GB GDDR5 (or 1.5? forgot...)
20:49:19 <elliott> Oh, Radeon. (It occurs to me that maybe my Linux-oriented anti-ATI bias is outdated.)
20:49:32 <Vorpal> elliott, well, nvidia sucks quite a bit nowdays too
20:49:46 <Vorpal> they suck about the same amount nowdays
20:49:52 <elliott> Vorpal: Sure, but at least it's not Catalyst.
20:49:55 <Vorpal> Sgeo|chromcrash, well, for newer cards
20:50:14 <Vorpal> elliott, true. Still the open drivers for radeon are way ahead of the ones for nvidia
20:50:22 <elliott> Yeah, but nobody cares about that :P
20:50:26 <Vorpal> not quite there yet for my card model
20:50:28 <zzo38> Is it necessary to fight the dragon to complete the game?
20:50:47 <Vorpal> zzo38, plural I believe
20:51:03 <Vorpal> and yes so far I needed to fight two of them to complete main story missions
20:51:29 <Vorpal> unless I completely missed out on something, I would say "yes, you have to do that"
20:51:29 <oerjan> <ais523\unfoog> you can certainly write polymorphic recursive functions, but that's so obvious I doubt it's what you mean
20:51:55 <oerjan> polymorphic recursion in haskell refers to a function directly or indirectly calling itself with a different type
20:52:18 <Vorpal> elliott, anyway the graphical quality in the game on the ultra setting is "meh". Better than oblivion yes. However it was clearly made with consoles in mind. Which have somewhat outdated hardware by now.
20:52:40 <elliott> From what I've seen, it has the advantage over Oblivion of not being hideous
20:52:45 <Vorpal> elliott, if you want the best graphics on a PC currently in an RPG it is witcher 2 that you should play
20:52:53 <oerjan> it's useful which such datastructures as autobalanced trees: data Tree a = Leaf a | Tree (a,a)
20:52:58 <Vorpal> don't expect to do that on ultra though
20:54:20 <Vorpal> elliott, anyway I do hope dragons are leveled. Or they are going to be a fucking joke when I'm at a higher level.
20:54:38 <elliott> hmm, can you fit an atx mobo into an eatx case?
20:54:42 <Vorpal> elliott, so far I have seen ones breathing fire and ones breathing ice.
20:54:54 <monqy> dragons breathing dragons
20:55:04 <Vorpal> elliott, /pretty/ sure atx is larger than eatx
20:55:13 <Vorpal> maybe in a VERY big eatx case?
20:55:22 <Vorpal> which one is the smaller one?
20:55:23 -!- MSleep has changed nick to MDude.
20:55:30 <Vorpal> elliott, also why do you want an eatx case?
20:55:51 <Vorpal> elliott, I assume you are building yourself a new computer?
20:56:05 <Sgeo|chromcrash> zzo38: What package does that probability stuff come from, if any?
20:56:05 <elliott> Right now I'm helping Phantom__Hoover by way of shoving a list of parts at him; consider it practice.
20:58:18 -!- Ngevd has quit (Read error: Connection reset by peer).
20:58:56 <Vorpal> elliott, btw recommended is quad core or better. and you want a strong CPU. When playing I see the all the cores (including the HT ones) pretty loaded (70-100) on a 3.4 GHz quad core i7 so...
20:59:37 <Vorpal> Phantom__Hoover, what sort of case is that?
20:59:56 <Phantom__Hoover> One born of elliott failing to understand the site's list system.
21:00:18 <elliott> I'm more used to picking parts from sites I can't actually buy things from.
21:00:28 <elliott> Vorpal: Uh, I read that it's crap at threading (= 2 threads only).
21:01:43 <zzo38> Sgeo|chromcrash: There are other Haskell packages having probability stuff, which I don't know, but my package "monoidplus" has the things I described.
21:01:50 <Vorpal> elliott, strange then. Or I guess process explorer shouldn't be trusted
21:01:57 <Vorpal> (no I haven't even tried to use wine for it)
21:02:14 <elliott> Vorpal: But yeah, I'll go for either an i7 or a Phenom II x6, most likely
21:02:22 <elliott> So I should be fine on that front
21:02:31 <elliott> 3.4 GHz is ridiculous though, you're just wasting power :P
21:02:50 <Vorpal> elliott, well they didn't have a 3.3 GHz option for i7. They only have that for i5
21:02:55 <Deewiant> elliott: Why's that wasting power
21:03:01 <Vorpal> elliott, that i5 should be enough to play it though
21:03:13 <Vorpal> elliott, also, dynamic clock frequency
21:03:13 <elliott> Deewiant: Because CPU speed is roughly irrelevant for everything compared to cores nowadays above like 2.8 GHz?
21:03:16 <zzo38> Sgeo|chromcrash: I know. I think it will take a long time to do so. The same is the case for other new packages (I checked the "what's new")
21:03:25 <Vorpal> elliott, it is awesome for df
21:03:53 <Vorpal> elliott, anyway they have a 3.5 GHz version too
21:03:57 <Sgeo|chromcrash> zzo38: That's kind of annoying to deal with though, I wonder why that is
21:04:04 <elliott> Deewiant: I suppose it's not really true for games which are the topic here, but even those are becoming more GPU-bound in general I'd say
21:05:05 <Deewiant> Much CPU-using software I run doesn't utilize multiple threads, I'd say there's always call for more single-threaded speed
21:05:29 <elliott> Call perhaps, but it's only going to drop
21:05:54 <zzo38> Sgeo|chromcrash: http://sprunge.us/NCZE
21:06:48 <Vorpal> elliott, anyway isn't there that turbo mode thingy when a single core only is loaded? I wonder what the speed for that is
21:06:51 <Sgeo|chromcrash> What's the difference between mpappend and mappend supposed to be?
21:07:31 <Deewiant> Sgeo|chromcrash: "That is, it is a monoid that the original monoid is distributive over."
21:07:38 <zzo38> Sgeo|chromcrash: mappend distributes over mpappend
21:07:48 <zzo38> (For example, multiplication distributes over addition)
21:10:47 <zzo38> You would use WriterT (Product x) [] for probability distributions, where x should be Double or Rational depending what you need
21:12:52 <zzo38> The probability functions will still work though, as long as the monoid used is a normalizable semiring. But in general you use Product
21:13:50 <zzo38> (If it isn't Product, it won't act like a real probability distribution in all ways; although in some ways it can)
21:14:02 -!- Ngevd has joined.
21:14:26 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
21:14:48 <CakeProphet> sequence is almost sort of kind of distribution.
21:15:28 <zzo38> (There might also be monads other than [] that can be used, although the functions I have don't work with others)
21:15:41 <CakeProphet> well, the type of sequence is like distribution
21:16:38 -!- sebbu2 has joined.
21:16:38 -!- sebbu2 has quit (Changing host).
21:16:38 -!- sebbu2 has joined.
21:17:08 <Ngevd> Is it possible to do silly nested pattern matching like xs@(a:b:ys@(w:x:[]))?
21:17:45 <Ngevd> That makes this soo much easier
21:18:08 <Deewiant> > let f xs@(a:b:ys@(w:x:[])) = (xs,a,b,ys,w,x) in f [1,2,3,4]
21:18:49 <lambdabot> Data.List transpose :: [[a]] -> [[a]]
21:18:49 <lambdabot> Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
21:18:54 <Ngevd> That is EXACTLY what I wanted, Deewiant
21:18:56 -!- sebbu3 has joined.
21:18:56 -!- sebbu3 has quit (Changing host).
21:18:56 -!- sebbu3 has joined.
21:19:20 -!- sebbu has quit (Ping timeout: 240 seconds).
21:19:20 <lambdabot> Data.List transpose :: [[a]] -> [[a]]
21:19:21 <lambdabot> Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
21:19:21 <lambdabot> Control.Monad join :: Monad m => m (m a) -> m a
21:19:57 <Ngevd> Wait, I didn't need it
21:20:35 <Deewiant> CakeProphet: You can't pull it out of the monad, it'd have to be m a -> m [m a]
21:21:04 <lambdabot> Control.Monad.Trans.List runListT :: ListT m a -> m [a]
21:21:04 <lambdabot> Control.Monad.List runListT :: ListT a -> m [a]
21:21:04 <lambdabot> Control.Applicative many :: Alternative f => f a -> f [a]
21:21:09 <lambdabot> Data.List transpose :: [[a]] -> [[a]]
21:21:09 <lambdabot> Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
21:21:13 <lambdabot> forall a (m :: * -> *) (f :: * -> *). (Monad m, Functor f) => f [a] -> f [m a]
21:21:20 -!- sebbu2 has quit (Ping timeout: 240 seconds).
21:22:00 <CakeProphet> I wonder what kind of formulas Python programs are proving.
21:22:00 <Deewiant> ?ty liftM (map return) :: Monad m => m [a] -> m [m a]
21:22:01 <lambdabot> forall (m :: * -> *) a. (Monad m) => m [a] -> m [m a]
21:22:30 -!- copumpkin has quit (Remote host closed the connection).
21:23:52 <elliott> I wish quasiquoters nested.
21:24:50 <monqy> i also wish (pattern) guards nested
21:26:15 <CakeProphet> there is no such thing as too much nesting.
21:27:06 <monqy> and I can't trust you with strings
21:27:14 <monqy> oh that's a bad string
21:27:18 <monqy> but not what I was expecting
21:29:04 <CakeProphet> data NChar = NCharCharLol Char | NCharStringLol String
21:31:04 <CakeProphet> an extremely difficult to parse esolang. :)
21:31:21 <oerjan> <Ngevd> Is it possible to do silly nested pattern matching like xs@(a:b:ys@(w:x:[]))? <-- that one can be simplified to xs@(a:b:ys@[w,x])
21:31:29 <CakeProphet> instead of a circumfix string quote token, it uses a postfix token.
21:31:53 <Ngevd> Where do I put modules that I want to install?
21:32:07 <Deewiant> And unfortunately not xs@[a,b,ys@{w,x}] or something
21:33:59 -!- pkzip has joined.
21:34:49 <Deewiant> Ziim looks like something refreshingly new
21:39:02 <CakeProphet> control structures appear at the end of their blocks of code, allowing arbitrary delimers.
21:39:20 <pkzip> why does my OS keeps running this IRC program automatically ?
21:42:00 <elliott> pkzip: It is because you can never escape.
21:42:11 <oerjan> *MWAHAHAHAHAHAHAHAHAHAHA*
21:42:15 <pkzip> no escape from #esoteric ?
21:42:29 <elliott> Deewiant: That's Timwi for you! Great languages, agonising IRC experience.
21:42:35 <pkzip> I'm not a number..
21:42:43 <pkzip> I'm a free software !!
21:42:50 <pkzip> ( prisioner quote )
21:43:04 <pkzip> ( well except that last bit )
21:43:05 <elliott> i don't think that's a prisoner quote
21:43:13 <Phantom__Hoover> You can Checkout any time you like, but you can never Tree? (There is no esolang called Leaf, this is bad.)
21:43:21 <pkzip> ~= ( not exactly )
21:43:26 <oerjan> pkzip: you can http://www.esolangs.org/wiki/Checkout any time you like, though...
21:44:17 <HackEgo> 183) <Vorpal> ais523, what is "MS Publisher"? <Phantom_Hoover> Vorpal, you don't want to know. <ais523> Vorpal: be glad that you don't know the answer <alise> Vorpal: "horrible"
21:44:33 <oerjan> Phantom__Hoover: damn you, oh wait scratch that ais523 might ban me
21:46:55 <pkzip> I often get banned from sexchat sites
21:47:07 <pkzip> darn, I got banned from all of 'em almost
21:47:20 <pkzip> all the ones I've been in
21:47:25 <pkzip> and I change IPs !!
21:47:38 <pkzip> even my ISP changes locations once in a while
21:47:57 <pkzip> and its not the client side
21:48:18 <pkzip> cause I know my PC
21:49:10 <pkzip> hardware to software
21:50:32 <oerjan> well #esoteric is only very occasionally a sexchat site.
21:50:44 <oerjan> so maybe you can escape a ban.
21:51:03 <pkzip> I've known of IRC bans since the early 90s
21:51:06 <Ngevd> As an asexual, I don't go on sexchat sites very often
21:51:31 <pkzip> I used to give them mostly, and rarely had to escape them
21:51:35 <oerjan> wait, does less occasionally mean more or less often
21:51:57 <pkzip> I often changed IPs cause I was on a dail-up
21:52:17 <pkzip> It costed a few cents to change IPs
21:52:37 <pkzip> I could even change it by a wide range
21:52:53 <pkzip> and started dreaming of what is now know as
21:53:10 <pkzip> the IP 'stealther'
21:53:27 <pkzip> or the digital modem (router)
21:53:31 <oerjan> i suggest registering your nick so you can be banned consistently.
21:54:04 <pkzip> I don't think it was possible, oh wait they had Profiles so yea, maybe
21:54:06 <oerjan> so much more convenient.
21:54:27 <pkzip> I am being blocked by somekind of an ISP ban
21:54:40 <pkzip> I never bothered to check what it was exactly
21:54:54 <pkzip> I am used to be welcome on any digital media
21:56:30 <pkzip> actually pkzip was my old nickname on the IRCs
21:56:46 <pkzip> I need to find a new one
21:56:54 <pkzip> I quite fit in here
21:57:19 <pkzip> I like assembly, compilers, computer languages, brainf*ck and forth
21:57:42 <pkzip> I used to work on virii and protection/security software
21:57:50 <pkzip> though noone heared of me
21:57:57 <oerjan> to truly fit in, you must also hate brainfuck derivatives and lolcode.
21:58:10 <pkzip> I have a version of it which is really tiny
21:58:23 <pkzip> I dream of the minimal compiler at nights
21:58:37 <pkzip> But I want the easy of a language
21:58:55 <pkzip> so no 2-word or 3-word compilers for me (unless its HEX)
21:59:29 <pkzip> easy: sub that with ease
22:00:11 <pkzip> I thought of some new ideas that appeared only years later in the virii scene
22:00:22 <oerjan> the latin virus is an uncountable noun, so any weird plural is suspect.
22:00:47 <oerjan> and everyone here is a language pedant.
22:01:20 <pkzip> you can't hate BF, just because it is popular and starting to be taken for a real language
22:01:43 <pkzip> I have seen good native compilers for it
22:01:51 <oerjan> pkzip: i didn't say hate brainfuck, i said hate brainfuck _derivatives_. very different thing.
22:01:58 <pkzip> including some great ones which only lately appeared
22:02:24 <pkzip> I like my own derivative (I call it a traslator)
22:02:46 <pkzip> Its not so far apart from the original, its actually backward compatible.
22:03:04 <Phantom__Hoover> Can someone vouch that elliott's list of parts is likely to be trustworthy?
22:03:06 <elliott> pkzip: really? is it backwards compatible with characters that aren't ,.[]<>+- being comments?
22:03:19 <elliott> Phantom__Hoover: bsmntbombdood isn't here but I actually sent you the list of parts for a bomb.
22:04:25 <pkzip> I don't remember saying that
22:04:43 <elliott> Phantom__Hoover: His was pre-Sandy Bridge i7, though, and ISTR Sandy Bridge was a pretty big improvement.
22:04:49 <elliott> Phantom__Hoover: Also he has a really crappy passively-cooled Nvidia card.
22:05:01 <pkzip> It uses the Char zero
22:06:21 <pkzip> but your gonna hate the fact it has I/O
22:06:58 <pkzip> It uses one letter for basic INPUT and another for OUTPUT
22:07:29 <pkzip> why are you so pedantic about BF comments ?
22:07:49 <pkzip> what does this " any letter is a comment " do for BF ?
22:08:13 <pkzip> the input is " ? " and output is " ! "
22:08:21 <pkzip> so its not a letter
22:09:21 <pkzip> the space is ascii 0 or 255 ( I don't remember exactly )
22:10:02 <pkzip> Its wasn't published in esoteric
22:10:11 <pkzip> but I see ais523 in here ..
22:11:35 <pkzip> guess I better not mention a brainfuck compiler which isn't 100% pure
22:11:48 <pkzip> (but backward compatible)
22:12:26 <pkzip> and I think the Output word was " . " ( as in original BF )
22:12:52 <pkzip> actually I know for sure its " . ", I think slowly after 12am
22:13:42 <Ngevd> ...Space should be 32, I think
22:14:05 <elliott> pkzip: a bf compiler is probably pure, or you'll have side-effects you don't want clogging things up
22:14:15 <elliott> BFProg -> AsmProg or whatever seems reasonable to me
22:14:28 <pkzip> I use char 255 instead of space
22:15:27 <pkzip> I also use char 0 but I doubt if most editors wud display it as SPACE
22:16:07 <pkzip> I have a blog I've written for it, for awhile it was #1 on google for BF+Forth searches
22:16:51 <pkzip> now its #200 (I doubt google even shows it)
22:17:57 <elliott> monqy: starting to agree that idiom record notation is the best idea
22:18:42 <monqy> i never said it was the best!! i don't think it would support interleaving?? but it's kind of clean maybe
22:18:50 <monqy> relatively clean I mean
22:19:10 <Ngevd> I'm thinking of creating a MACHINE-READABLE HUMAN-WRITABLE NOTATION FOR ESOTERIC PROGRAMMING LANGUAGES
22:19:16 <elliott> monqy: yeah i don't know what to do about interleaving? the only good syntax I can think of is basically do notation
22:19:25 <elliott> (b) not done for applicatives
22:19:28 <elliott> (even though it can be done restrictedly)
22:19:40 <Ngevd> Because I don't like Yoob
22:21:09 <ais523\unfoog> elliott: one of the transcripts in the Oracle vs. Google lawsuit was allcaps for reasons I don't understand, so I made it all lowercase instead
22:21:15 <pkzip> Is there anyone on #esoteric which isn't into low-level (native) code ?
22:21:52 <pkzip> you don't know x86 code ?
22:22:09 <oerjan> i've never learned x86 assembly, no
22:22:34 <ais523\unfoog> oerjan: I suspect only a few people actually know all of modern x86 asm, it has weird corners that are rarely used
22:22:50 <oerjan> i think i _may_ have written something like a hello world way back in the 80s
22:23:44 <oerjan> but then, i'm nowhere near a professional programmer
22:23:59 <elliott> ais523\unfoog: all lowercase is more readable, definitely
22:24:30 <ais523\unfoog> (LeetKey has been remarkably useful as a Firefox extension, even if I don't use it for its intended use at all)
22:24:30 <elliott> pkzip: I can sort of write x86 asembly given a lot of time and documentation, but I don't like to, and I think it's a pretty crappy language.
22:24:42 <elliott> Some other CPUs have nice assembly languages though, but I can't code in 'em.
22:25:02 <ais523\unfoog> which is not the best asm in the world, but is way better than x86's
22:25:07 <pkzip> Intel x86 on MacroASM was fun in the 90s and its fun now
22:25:27 <pkzip> Arm ASM is said to be nice
22:25:57 <pkzip> both are near perfect
22:26:55 <elliott> pkzip: Depends what your definition of fun is. Also your definition of perfect.
22:26:56 <ais523\unfoog> I think of something like Redcode when I think in terms of a good asm
22:26:59 <oerjan> i _did_ learn some 6502 asm way back
22:27:06 <ais523\unfoog> (even though it isn't actually an asm for an actual processor)
22:27:39 <Ngevd> Phantom__Hoover, today was the day with the most changes on mezzawiki for about a year
22:28:08 <oerjan> very sketchily. i realized years later that the manual i was reading was missing pages of instructions.
22:28:10 <pkzip> It was fun when watching The Jerusalem Virus do its 'thing'
22:28:23 <pkzip> Or 100 Years virus ( aka 4K )
22:28:35 <pkzip> Or writing a virii noone cud see or bypass
22:29:05 <pkzip> The 100 Years Virus ( more known as 4 K )
22:29:53 <ais523\unfoog> <mr. jacobs> your honor, this is michael jacobs from morrison & foerster. mr. van nest's understanding of the allegations here isn't correct, both in terms of numerosity and in terms of role, but i have the advantage of sitting in front of a computer as we are talking. if you search on bob lee, the first hit you get is a claim as follows. it's a twitter feed.
22:30:00 <oerjan> linking this in case no one has yet: http://alaska-kamtchatka.blogspot.com/2011/11/modular-semantics-for-brainfuck.html
22:30:11 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
22:30:16 <elliott> fungot: your honor, this is michael jacobs from morrison & foerster.
22:30:16 <fungot> elliott: mr president, i too welcome the decision by the united states
22:30:17 <ais523\unfoog> awesome: doing a Google Search during a court hearing and telling the judge what the hit was
22:30:31 <ais523\unfoog> it was a telephone hearing, so people couldn't sensibly stop him
22:30:34 <elliott> ais523\unfoog: please please tell me it was Oracle who did that, while fighting Google
22:30:47 <elliott> google should have sued :P
22:30:48 <ais523\unfoog> I think; it gets hard to remember which lawyer is on which side
22:32:08 <ais523\unfoog> quite a few people were getting confused, actually, as it was a conference telephone call
22:32:18 <ais523\unfoog> people had to keep saying who they were when they started talking
22:32:28 <pkzip> what does this lawsuit has to do with low-level programming ?
22:32:39 <elliott> why do we have to talk about low-level programming?
22:33:05 <pkzip> Cause BF is now taken as a good example of a basic compiler
22:33:23 <elliott> this channel is for all topics of interest to those interested in esoteric computing
22:33:50 * ais523\unfoog thinks languages are typically inferior if you can't implement numbers in them from scratch
22:34:03 <pkzip> isn't BF the bread and butter of esolang ?
22:34:14 <pkzip> isn't it a classic ?
22:34:26 <ais523\unfoog> it is indeed a classic, but there are a bunch of other languages around
22:34:29 <Ngevd> Standard, by no means no
22:34:48 <ais523\unfoog> BF is much more similar to mainstream languages than most esolangs
22:34:53 <elliott> intercal, brainfuck, befunge, underload, unlambda
22:35:05 <Ngevd> I always use Piet because I like Piet
22:35:08 <elliott> ok underload is somewhat of a modern classic :)
22:35:09 <Ngevd> But it's not a classic
22:35:47 <pkzip> I like languages which are minimal and 'easy' (in the old BASIC 'nostalgic' style)
22:36:05 <pkzip> BF actually fits a purpose
22:36:34 <ais523\unfoog> it's a practical language, but an interesting one, not that similar to mainstream langs
22:36:47 <pkzip> My own version of it
22:36:58 <pkzip> or revised version of it
22:37:12 <pkzip> A Minimal MacroASM Forth
22:37:32 <pkzip> I want to add Lisp(y) words to it
22:37:40 -!- hagb4rd has quit (Quit: hagb4rd).
22:37:49 <pkzip> And write DOS virii in it !
22:38:04 <Ngevd> Stop saying "virii"
22:38:14 -!- pkzip has changed nick to QuickDirtyOS.
22:38:28 <ais523\unfoog> DOS viruses don't run all that well on modern systems
22:38:52 <elliott> QuickDirtyOS: err, WinXP's DOS is just an emulation layer
22:39:00 <elliott> I suppose they run about as well as Windows viruses under Wine
22:39:01 <Ngevd> If you want to be all pedantic and latin, it'd just be viri
22:39:30 <QuickDirtyOS> WinXP Dos is as good as Win2000 (it was also emulated under Win2000)
22:39:36 <Ngevd> But even then you'd be wrong
22:39:43 <Ngevd> It's like saying "oxygens"
22:40:17 <ais523\unfoog> Ngevd: actually, it'd depend on where in the sentence it was
22:40:30 <Ngevd> "virus" doesn't have a plural in Latin
22:40:35 <ais523\unfoog> "DOS virii" was the subject of that sentence, so it should be "DOS viros", I think
22:41:09 -!- calamari has joined.
22:41:18 <Ngevd> ais523\unfoog, you mean "object"
22:41:34 <elliott> the singular is definitely virus
22:41:42 <Ngevd> We can agree on that, elliott
22:41:48 <zzo38> Some old IBM BIOS had ROM BASIC. I would like to have the PC BIOS with Forth.
22:41:55 <ais523\unfoog> elliott: even then, if you're going to be all Latiny, why wouldn't it become virum when it was the object of a sentence?
22:42:33 <Ngevd> ais523\unfoog, because, to paraphrase Henry Beard, that'd be like playing football with ice-skates on
22:42:38 <elliott> ais523\unfoog: i was responding to: "your "viri""
22:42:45 <elliott> we should just talk in latin.
22:42:59 <ais523\unfoog> Ngevd: what if you were in a skating rink at the time?
22:43:10 <ais523\unfoog> it'd probably work better with the skates than without
22:44:02 <Ngevd> pluralis in lingua Anglica est "viruses"
22:44:19 <QuickDirtyOS> So the Flash BIOS wud load Forth from a Flash Device.
22:44:32 <ais523\unfoog> zzo38: a storage device; it acts much like a hard disk, but is based on flash memory, rather than mechanical platters and magnetism
22:44:33 <elliott> `echo AM I TRANSACTIONAL YET?!
22:44:39 -!- aloril has quit (Ping timeout: 240 seconds).
22:44:52 <zzo38> I have heard of the LinuxBIOS/Coreboot
22:45:06 <zzo38> But as far as I know it is not a proper PC BIOS
22:45:08 <oerjan> <Ngevd> If you want to be all pedantic and latin, it'd just be viri <-- it's dubious to assume this as the word is somewhat irregular: it's a neuter word in -us.
22:45:09 <elliott> it doesn't support many motherboards to my knowledge.
22:45:22 <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:46:04 <Ngevd> Can we pretend it's in 4th to make our lives easier
22:46:09 <elliott> does that make assembly a forth? :P
22:46:42 <ais523\unfoog> `addquote <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:46:44 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/addquote: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/addquote: cannot execute: Permission denied
22:47:05 <HackEgo> 560) <Taneb> I think it's fizzie against everyone atm <Taneb> AND EVERYONE IS WINNING <Taneb> EXCEPT FIZZIE
22:47:43 <ais523\unfoog> `addquote <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:47:55 <HackEgo> 715) <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:47:58 <elliott> ais523\unfoog: please don't try patching things up when it's broken
22:48:00 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:48:07 <ais523\unfoog> elliott: oh, I assumed that someone had -xed it as a prank
22:48:08 <elliott> I mean, without understanding what's going on :P
22:48:18 <HackEgo> 714) * Sgeo|web wants to see elliott be wrong about something <elliott> Sgeo|web: That literally never happens. <shachaf> Sgeo|web: There you go. A great example.
22:48:22 <elliott> I think I just broke adqduote
22:48:41 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/rev/bbaa4fa982d2
22:48:47 <elliott> `run chmod +x bin/addquote
22:49:01 <HackEgo> *poof* <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:49:14 <elliott> I made a bad modification to addquote
22:49:24 <elliott> `run echo 'echo $(qc)") $1"' >>bin/addquote
22:49:31 <elliott> `addquote <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:49:33 <HackEgo> 715 quotes) <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:49:47 <elliott> `run echo 'echo $(qc | cut -d' ' -f1)") $1"' >>bin/addquote
22:50:02 <elliott> `addquote <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:50:14 <elliott> ais523\unfoog: tada... hurry up, dammit, HackEgo
22:50:15 <ais523\unfoog> elliott: you're just giving -d, not -d' ', as an argument to cut there
22:50:29 <zzo38> QuickDirtyOS: For what?
22:50:33 <elliott> `run echo 'echo $(qc | cut -d'"' '"' -f1)") $1"' >>bin/addquote
22:50:38 <elliott> `addquote <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:50:47 <elliott> ais523\unfoog: have I mentioned that @ doesn't have that problem?
22:50:59 <monqy> does @ have ANY problems
22:51:12 <ais523\unfoog> what about when typing programs; how does the parser reify the keystrokes/mousestrokes into a parsetree?
22:51:24 <zzo38> Yes. Its problem is that there is no such things, as far as I can tell
22:51:28 <elliott> @ doesn't have programs! but ok, I'll dignify your EVIL QUESTION with a response
22:51:34 <elliott> ais523\unfoog: excellently. next question!
22:51:45 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/rev/af6a8d1f2673 ;; hmm, why isn't this working?
22:51:48 <elliott> `addquote <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:51:50 <HackEgo> 715) <QuickDirtyOS> Linux is like the most quirky of all Forths, it has its own OS
22:51:54 <elliott> ais523\unfoog: not all values are functions!
22:52:25 <ais523\unfoog> elliott: right; but I was thinking about writing functions in particular in my question
22:52:27 <elliott> ais523\unfoog: admittedly, as @ has no globals, most /useful/ "top-level" values are
22:52:37 <elliott> ais523\unfoog: I doubt you mean function
22:52:49 <elliott> for instance, a list of all prime numbers would count
22:52:54 <elliott> since it's analoguous to a program printing every prime number
22:53:35 <HackEgo> 2011-11-12.txt:22:53:10: <Phantom__Hoover> `log How did you work out where I live?
22:53:47 <ais523\unfoog> you mean, a lazy list that did the computation wouldn't be counted as a function because it didn't have a function type, for instance?
22:53:49 <HackEgo> 2007-12-28.txt:22:20:17: <Hiato> where I live there's a band called fokoffpolisikar (at least I think that's how it's spelled)
22:54:02 <elliott> ais523\unfoog: yes (it doesn't "do" the computation, it just /is/ the result)
22:54:09 <elliott> ais523\unfoog: OTOH, the reason most top-level @ values are functions is because they have to take all the modules they want as parameters
22:54:18 <elliott> because there are no globals
22:54:32 <elliott> which isn't... /strictly/ true
22:54:36 <ais523\unfoog> elliott: wouldn't it make more sense for them to take a function that resolved hashes into modules as an argument?
22:54:49 <elliott> ais523\unfoog: wow! why would you give every program root permissions?
22:55:22 <elliott> ais523\unfoog: for a start, hashes aren't actually integral to @'s core model any more (thankfully); for a second, that breaks the object-capability model, because it's a reference-forging tool
22:55:29 <ais523\unfoog> elliott: well, it wouldn't necessarily give them modules they didn't deserve
22:55:30 <elliott> also, it'd tie functionality to implementations, not APIs...
22:55:33 <zzo38> Is it supposed to be anything similar to a Haskell program?
22:55:58 <elliott> ais523\unfoog: they do; an API is identified by a module name, a hash, and a type signature
22:56:18 <elliott> well, it's identified by a hash of a name and a type signature
22:56:56 -!- Ngevd has quit (Quit: Goodbye).
22:56:58 <elliott> ais523\unfoog: anyway, I have certain requirements of my keypress-reifier, but no concrete specification; it's something I'll have to tweak as I use it
22:57:07 -!- Ngevd has joined.
22:57:16 <elliott> ais523\unfoog: for instance, the user must not constantly be bugged with the nested hierarchy; navigation should be /largely/ linear
22:57:26 <elliott> ais523\unfoog: reason: try navigating a heavily-nested TeXmacs expression
22:57:50 <ais523\unfoog> I think that one possible method of navigating should be the one that would be used if it was a flat file using ( and )
22:57:52 <elliott> ais523\unfoog: also: not every keypress has to leave the program in a valid state -- semantically /or/ syntactically -- but it should try
22:57:57 -!- aloril has joined.
22:58:02 <ais523\unfoog> i.e. backwards and forwards in depth-first traversal order
22:58:07 <elliott> for instance, "if" should probably pregenerate the then/else keywords with appropriate indentation, and place a hole there
22:58:51 <elliott> ais523\unfoog: yes (except they just leave blank space rather than a hole)
22:59:00 <elliott> the nice thing about holes are, you can ask the computer: what type is expected here?
22:59:10 <elliott> it can hoogle-equivalent for functions that could help you get to that type
22:59:27 <ais523\unfoog> I remember something leaving <?>-shaped holes, but I can't remember what it was
23:00:01 <elliott> but anyway, the requirements are basically "not more painful than editing plain text", "largely linear navigation rather than focusing too much on the hierarchy", "as semantics-retaining as possible under incremental development", "not freaking annoying"
23:00:02 <ais523\unfoog> I suppose you could make it always correct by it leaving function arguments as the default hole-filler, but I'm not convinced that's a good idea
23:00:36 <elliott> ais523\unfoog: a nice thing about a proper AST type and holes and the like is that they make a lot of refactorings formal
23:00:42 <elliott> rather than risky textual manipulation
23:00:48 <elliott> there's semantic /meaning/ to extracting out a hole as a parameter
23:01:27 <ais523\unfoog> (type systems are good for refactoring, compiling is just really an extreme sort of refactoring, type systems are a good way to do this, this applies to hardware too)
23:01:39 <elliott> compiling is the kind of refactoring that makes your code worse :)
23:02:20 <elliott> hmm, I'm kind of low on ideas as to the low-levelish language underpinning @lang that things like the GC are written in
23:03:21 <elliott> the problem is that it has to map to modern exposed assembly as closely as possible while being completely safe...
23:03:25 <elliott> ais523\unfoog: no interp, compiler
23:03:31 <elliott> but what is the RTS written in?
23:03:42 <elliott> no point writing it in assembly, I'd have to rewrite the GC for every platform, which is pointless
23:03:47 <ais523\unfoog> that could be written in something entirely different
23:03:51 <elliott> ais523\unfoog: well, VM, sufficiently heavy RTS, what's the difference
23:04:05 <elliott> but, yeah, my intent is to minimise platform-specific code
23:04:18 <monqy> what is it with you and forth
23:04:19 <ais523\unfoog> it does what you want moderately accurately and isn't completely awful
23:04:31 <elliott> ais523\unfoog: unfortunately, no; LLVM isn't safe
23:04:37 <elliott> you can write an LLVM program that segfaults
23:04:44 <elliott> (adding runtime checks to every instruction is not acceptable)
23:04:47 <elliott> QuickDirtyOS: better and slower
23:05:11 <zzo38> Make a safe program similar to LLVM
23:05:38 <zzo38> Or, possibly, similar to Haskell too
23:05:50 -!- Ngevd has quit (Ping timeout: 245 seconds).
23:05:55 <elliott> ais523\unfoog: anyway, "applying the object-capability model to x86-64" sounds like a parody Ph.D. title
23:05:59 <ais523\unfoog> elliott: this language would necessarily have no access controls; if it's got enough perms to do GCing, it's got enough perms to do anything
23:06:07 <elliott> that probably applies to most papers that could come out of @...
23:06:27 <elliott> ais523\unfoog: no: it only has the perms to do GC if it's passed the heap
23:06:40 <QuickDirtyOS> assembly also isn't a dead-end, you can translate it just as well as Forth code.
23:06:46 <elliott> ais523\unfoog: consider a very low-level section of, e.g. a graphics card driver
23:06:51 <elliott> that needs to have precise control over instructions
23:06:55 <elliott> it only needs a certain segment of RAM
23:06:58 <ais523\unfoog> which is x86 machinecode plus a proof that it doesn't do anything nasty
23:07:00 <elliott> and local memory/registers
23:07:08 <ais523\unfoog> (and the proof is checked before the program is run)
23:07:16 <elliott> there's no reason to let it trample on anything else at all
23:07:51 <monqy> i love Phantom__Hoover CakeProphet updates
23:07:58 <zzo38> OK that is one idea. If you can have such a proof combined with a program.
23:07:59 <ais523\unfoog> elliott: I think something NaCl-style is your best bet there, then
23:08:05 <zzo38> Ify ou can figure out how to make that work.
23:08:19 <elliott> zzo38: yep; that's quite a difficult area of research, though
23:08:24 <elliott> formal verification is hard enough of high-level languages
23:08:27 <elliott> ais523\unfoog: I'd rather make it safe-by-design, I think
23:08:36 <elliott> ais523\unfoog: for instance, there's no reason you should be able to pass a literal to "mov"
23:08:41 <zzo38> Possibly with protected mode; it might not work as well with real mode
23:08:51 <ais523\unfoog> elliott: doesn't mov take an address as its target argument anyway?
23:09:01 <ais523\unfoog> oh, right, you mean even writing to a fixed address is bad
23:09:08 <elliott> ais523\unfoog: yep, but there's no reason you should be able to specify an arbitrary one
23:09:10 <ais523\unfoog> if you aren't given the capability for that address
23:09:12 <zzo38> I think x86 does have bound checking instructions
23:09:20 <elliott> ais523\unfoog: there's also no reason you should be able to cast int -> ptr, too, ofc
23:09:21 <ais523\unfoog> I thought you just meant you didn't want people to modify literals
23:09:31 <elliott> ais523\unfoog: so some kind of type system is necessar
23:09:39 <elliott> I think I'll make it an infinite-register design
23:09:45 <ais523\unfoog> getting that language right is the really hard step
23:09:46 <elliott> but allow pinning virtual registers to hardware registers
23:10:00 <ais523\unfoog> as a single security bug in it will cause the entire system to be insecure
23:10:07 <elliott> ais523\unfoog: I've occasionally thought to just abandon the low-level language, write the GC unportably, and hope that no drivers need to do anything so low-level
23:10:12 <elliott> but it doesn't seem like the right thing to do
23:10:19 <elliott> the low level language doesn't clutter @'s design itself
23:10:20 -!- Taneb has joined.
23:10:26 <elliott> if you have an @ graph reduction machine, you can skip it entirely
23:10:28 -!- Taneb has quit (Read error: Connection reset by peer).
23:10:35 <elliott> and just compile and run @lang code directly
23:10:48 <elliott> ais523\unfoog: hmm, I'd disagree that there aren't other layers of defence
23:10:53 <elliott> ais523\unfoog: here's one: guessing addresses is pretty hard!
23:11:01 <monqy> i want an @ graph reduction machine
23:11:20 <ais523\unfoog> elliott: you don't need to guess, just try them systematically until you find a usable one
23:11:36 <elliott> ais523\unfoog: that takes a very long time
23:11:47 <elliott> ais523\unfoog: oh, definitely
23:12:01 <elliott> ais523\unfoog: anyway, it is not that bad.
23:12:02 <ais523\unfoog> and it only takes a few seconds to fill memory on a modern computer, right, if all you're trying to do is fill memory with a particular pattern?
23:12:06 <elliott> <ais523\unfoog> as a single security bug in it will cause the entire system to be insecure <ais523\unfoog> with no other layers of defence
23:12:17 <elliott> ais523\unfoog: in Windows, all you need is a single security bug in ANY DRIVER AT ALL
23:12:35 <ais523\unfoog> you also need the perms to communicate with the driver, don't you?
23:12:50 <elliott> ais523\unfoog: usually, drivers read from unprivileged data, or they're not so useful...
23:13:17 <Deewiant> elliott: Yes, but unprivileged users can't talk to drivers
23:13:17 <elliott> the graphics driver runs in the kernel, X runs as root, but the user runs programs as themselves, and that data makes its way to the graphics driver
23:13:18 <ais523\unfoog> not always; things like keyboard/mouse drivers don't need to do any reading from processes on the system, just writing
23:13:23 -!- Ngevd has joined.
23:13:27 <elliott> Deewiant: <elliott> the graphics driver runs in the kernel, X runs as root, but the user runs programs as themselves, and that data makes its way to the graphics driver
23:13:43 <Deewiant> elliott: But that's not necessarily exploitable
23:13:46 <Deewiant> elliott: Because of what he said
23:14:04 <elliott> ais523\unfoog: So? I could have responded with a bunch of ways in which @ reduces the likelihood of an exploit
23:14:23 <elliott> point is, @ has many fewer exploitable vectors than a typical modern system
23:18:20 <zzo38> I have written some things relating to another plan of computer I have; many of the security features are implemented in hardware. It just depend on the way of connecting the memory. And then have a flipflop to enter and exit privilege mode, and a few jumpers to override these things.
23:18:46 -!- quintopia has quit (Ping timeout: 256 seconds).
23:18:48 <QuickDirtyOS> at what age(s) did u met the esoteric languages ( u could count BF and Forth as well as some LISPs maybe )
23:19:23 <zzo38> O, I don't remember
23:19:37 <monqy> I can't remember. Probably 10 or 11 or so.
23:20:05 <elliott> (it was probably bf, but bf never interested me)
23:20:09 <ais523\unfoog> the first esolangs I came across were INTERCAL and Malbolge
23:20:25 <monqy> I came across INTERCAL first as well, but never really learned it
23:20:26 <elliott> probably befunge and underload got me into esolangs?
23:20:27 <ais523\unfoog> and I found the esolang community searching for info about INTERCAL
23:20:43 <ais523\unfoog> monqy: hardly anyone's actually learned INTERCAL, I think, which is a pity
23:20:53 <ais523\unfoog> I really like the way the control flow works in modern INTERCAL, it's a thing of beauty
23:21:11 <ais523\unfoog> its expressions are still pretty nasty, though; reverse assignments make them so much better, but no compiler handles them correctly yet
23:21:18 <QuickDirtyOS> I only came to BF a year or less after bumpin into Forth.
23:21:55 <zzo38> I think I found Brainfuck at first. But I did learn INTERCAL, too. Including both the old and new INTERCAL, and even wrote some suggestions of new INTERCAL
23:22:22 -!- Ngevd has quit (Ping timeout: 258 seconds).
23:22:48 <zzo38> I know Forth as well; and I have added support for Forth codes into MegaZeux.
23:24:19 -!- Ngevd has joined.
23:25:00 <QuickDirtyOS> can Machine Code be called an esoteric language btw ?!
23:25:19 <monqy> esoteric machine code
23:25:33 <monqy> was it esoteric asm
23:25:55 <monqy> "tough?" what does that mean and how does it make it esoteric
23:26:40 <QuickDirtyOS> if BF was easy (as some, including my translator make it)
23:29:16 -!- Ngevd has quit (Ping timeout: 258 seconds).
23:29:34 -!- quintopia has joined.
23:29:34 -!- quintopia has quit (Changing host).
23:29:34 -!- quintopia has joined.
23:29:45 <monqy> esoteric doesn't mean difficult, does it?
23:34:57 <monqy> what sort of machine code are you calling esoteric
23:35:25 <monqy> if you mean machine code in general, then it's not esoteric at all
23:35:32 <elliott> ais523\unfoog: hmm... probably no, but it has quite a few esoteric features
23:35:38 <elliott> ais523\unfoog: and it probably counts as esoteric programming
23:35:59 <elliott> ais523\unfoog: I think it's perfectly possible to have a language where all coding in it is esoprogramming but the language isn't esoteric itself
23:36:15 <QuickDirtyOS> actually Z80 is very mainstream (my bad luck?)
23:36:17 <elliott> I dunno, it has some weird stuff
23:36:22 <ais523\unfoog> elliott: hmm, perhaps; but a language designed for that /would/ be an esolang, I think, and thus fail at its goal
23:36:30 <elliott> QuickDirtyOS: mainstreamness is not evry relevant to esolang status
23:37:19 <elliott> machine code isn't a single language
23:37:20 <QuickDirtyOS> I remember one machine code / assembly that is an esolang
23:37:56 <CakeProphet> there are several machine code esolangs, yes.
23:38:00 <elliott> ais523\unfoog: anyway, I'm kind of thinking that the low level @ language's type system would inevitably end up becoming as complicated as @lang's
23:38:06 <elliott> ais523\unfoog: so why not just reuse it?
23:38:18 <zzo38> There is the Checkout esolang; and I would like a (FOSS) implementation of it.
23:38:37 <monqy> CakeProphet: mnemonics
23:39:02 <elliott> ais523\unfoog: in fact, there's no reason the low level language couldn't just be part of @lang itself
23:39:32 <elliott> ais523\unfoog: (note: you could make /Python/ part of @lang, by just defining an AST for it and an interpreter function; you could include it in code just like any other program)
23:39:35 <monqy> unless it would end up cluttering up @lang horribley
23:39:37 <elliott> s/program/program element/
23:39:44 <elliott> it could be separate, but use the same type system
23:39:54 <elliott> and since it would be restricted, you wouldn't have to implement all of @lang
23:40:00 <elliott> you could still use all of @lang in the type system
23:40:07 <elliott> so it's not actually any easier to implement at all
23:40:13 <monqy> would it require features outside of @lang
23:40:14 <elliott> it gives the runtime properties i want
23:40:40 <elliott> ais523\unfoog: actually there's a slight issue: how can you compile a dependently-typed language down to a language which shares its type system, without having the compilation of the latter depend on the former?
23:40:55 <elliott> I think you can solve the infinite regress simply in the standard bootstrapping manner, but am not sure exactly how
23:41:32 -!- Ngevd has joined.
23:41:50 <ais523\unfoog> elliott: why does the low-level lang need dependent typing?
23:41:58 <Ngevd> XSL S AND K IS DOING SOMETHING!
23:41:59 <elliott> <elliott> ais523\unfoog: anyway, I'm kind of thinking that the low level @ language's type system would inevitably end up becoming as complicated as @lang's
23:42:01 <elliott> <elliott> ais523\unfoog: so why not just reuse it?
23:42:02 <elliott> <elliott> ais523\unfoog: in fact, there's no reason the low level language couldn't just be part of @lang itself
23:42:08 <elliott> ais523\unfoog: why invent two type systems?
23:42:22 <elliott> ais523\unfoog: for instance, unless the low level language uses @lang's type system, it can't use modules at all
23:42:26 <ais523\unfoog> anyway, I'm going home, as I@m now too tired to communichaterently
23:42:33 <Ngevd> Earlier today, I had a thought about @
23:42:41 <Ngevd> It's a bit like a space elevator
23:42:50 -!- ais523\unfoog has quit (Remote host closed the connection).
23:42:55 <elliott> Ngevd: is it like the bf joust warrior space_elevator?
23:43:03 <Ngevd> Not as far as I know
23:43:29 <Ngevd> What I mean is, @ will do something similar to things that already exist, but in a completely different, better way
23:44:21 <elliott> hmm, what has to be implemented in the low level language
23:44:31 <Ngevd> Hardware thingies?
23:44:46 <elliott> post-platform-initialisation bootup, the allocator, gc, storage manager (= persistence stuff)
23:44:58 <elliott> parts of the scheduler (parts will have to be platform specific)
23:45:14 <elliott> really low-level driver parts like the /implementation/ of the higher-level interfaces to things like IO ports and memory sections
23:45:18 <Ngevd> Will @ work on today's computers?
23:45:54 <CakeProphet> elliott: it should somehow use Checkout on graphics cards. :D
23:45:58 <elliott> <elliott> really low-level driver parts like the /implementation/ of the higher-level interfaces to things like IO ports and memory sections
23:46:04 <elliott> actually, a lot of this might have to be trusted platform-specific code
23:46:27 <elliott> I wonder if I couldn't write the entire scheduler in the low-level language, and just have modules for each platform that use something like inline asm
23:46:40 <elliott> which would require the maximum trust level, ofc
23:46:43 <elliott> but that's okay for a scheduler
23:46:49 <elliott> CakeProphet: that would be difficult :p
23:48:21 <Ngevd> elliott, has any code been written for @? At all?
23:48:34 <elliott> Ngevd: i've worked on @-related code, yes
23:53:35 <Ngevd> Well, I've got XSL S and K to run itself recursively
23:53:41 <Ngevd> I just haven't yet got it to /stop/
23:54:14 -!- Patashu has joined.
23:56:08 <zzo38> Actually I would like to have some GPU with something like Checkout as its native code
23:56:31 -!- QuickDirtyOS has left.
23:58:12 <CakeProphet> I am wondering if it's even possible to use a fibonacci heap as a homoiconic programming language structure.
23:59:03 <CakeProphet> I think forest is probably a better name for the actual structure that it will end up being.
23:59:43 <CakeProphet> as a fibonacci heap is just a kind of forest. if I'm not using it as a heap and instead computing programs then it's not really much of a heap.