00:02:09 elliott: I still don't understand what the issue is. 00:02:12 What are you actually doing? 00:02:21 elliott: traverse, i said! 00:02:30 :t traverse 00:02:31 Not in scope: `traverse' 00:02:38 @ty Data.Traversable.traverse 00:02:39 forall a (f :: * -> *) b (t :: * -> *). (Data.Traversable.Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) 00:02:39 * oerjan facepalm 00:02:43 shachaf: Shhh, we don't do X-Y problems around these parts. 00:02:54 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 shachaf: A partial explanation is available if you want one :P 00:03:15 Gregor: (b) But I want to give you a working patch :P 00:03:35 elliott: I don't understand what your chromosomes have to do with it. 00:03:56 http://www.perlmonks.org/?node_id=542341 00:04:27 elliott: This would be easy if you were doing it in Haskell. 00:04:35 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 shachaf: What do you... think I'm... doing... 00:04:55 Wait, weren't you using bash? 00:04:57 :t foldM 00:04:58 forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a 00:05:14 @hoogle foldA 00:05:14 Data.Foldable module Data.Foldable 00:05:15 Data.Foldable class Foldable t 00:05:15 Control.Seq seqFoldable :: Foldable t => Strategy a -> Strategy (t a) 00:05:20 gah 00:05:23 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 elliott: The counterpart of the XY problem is the XW problem. 00:05:33 OK, I have 11 repos on bitbucket. 00:05:35 Feels about right. 00:05:39 Often that one is even more annoying. 00:05:42 -!- pumpkin has joined. 00:05:53 elliott: foldA doesn't exist, i think 00:06:11 that foldM type is intrinsically monadic 00:06:48 an arrow might work... 00:08:06 -!- copumpkin has quit (Ping timeout: 260 seconds). 00:08:27 :t \f x l -> foldr (>>>) id (map (flip f) l) 00:08:28 forall t c a. (c -> a -> c) -> t -> [a] -> c -> c 00:08:30 oh yeah monqy you need 00:08:32 * Phantom_Hoover → sleep 00:08:32 the bad news 00:08:34 along those lines 00:08:36 oops 00:08:37 -!- Phantom_Hoover has quit (Quit: Leaving). 00:08:47 :t \f x l -> foldr (>>>) pure (map (flip f) l) 00:08:48 forall t a (f :: * -> *) a1. (Applicative f) => (a -> a1 -> a) -> t -> [a1] -> a -> f a 00:08:52 argh 00:09:01 :t \f x l -> foldr (>>>) (arr id) (map (flip f) l) 00:09:02 forall t (cat :: * -> * -> *) a a1. (Arrow cat, Functor (cat a)) => cat a (a1 -> a) -> t -> [a1] -> cat a a 00:09:20 wtf 00:09:29 :t \f x l -> foldr (>>>) (arr id) (map (Prelude.flip f) l) 00:09:30 forall t a a1. (a -> a1 -> a) -> t -> [a1] -> a -> a 00:09:40 eek 00:09:47 oh duh 00:10:08 :t \f x l -> foldr (>>>) (arr id) (map f l) 00:10:09 forall t (cat :: * -> * -> *) a a1. (Arrow cat) => (a1 -> cat a a) -> t -> [a1] -> cat a a 00:10:33 f needs to come preflipped to be useful with arrows 00:11:04 oh hm x is never used :P 00:11:19 well, i still think that's the closest in spirit 00:11:46 :t under Kleisli 00:11:46 No instance for (Complete Foo (x0 :++: (x1 :++: (C :- fields0)))) 00:11:47 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 :t op 00:12:21 forall o n. (Newtype n o) => (o -> n) -> n -> o 00:12:36 hm what was that thing 00:12:46 :t as 00:12:47 Not in scope: `as' 00:14:29 -!- Phantom_Hoover has joined. 00:14:41 :t ala 00:14:42 forall o n b n' o'. (Newtype n o, Newtype n' o') => (o -> n) -> ((o -> n) -> b -> n') -> b -> o' 00:14:52 OK I wasn't really asleep; did Sgeo|web malfunction and fail to notify of a Homestuck update? 00:15:11 Is there types in Haskell that only have numbers 0 up to 1? 00:17:13 * Phantom_Hoover → probably actual sleep? 00:17:14 -!- Phantom_Hoover has quit (Client Quit). 00:18:58 -!- Jafet has joined. 00:23:36 zzo38: Bool 00:29:45 http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:until 00:29:51 oerjan: huh, is that new? 00:30:00 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:10 :t until 00:30:11 forall a. (a -> Bool) -> (a -> a) -> a -> a 00:30:13 zzo38: oh. Double :p 00:30:17 no, that's old 00:30:21 just treat minBound = 0, maxBound = 1 00:30:28 oerjan: well ok at least 6.12 old :P 00:31:05 zzo38: Fractions? You don't want to be able to store arbitrary real numbers? 00:31:27 elliott: it's in h98 00:31:46 oh, ok 00:32:08 Did you know Haskell 1.2 had "import Foo renaming (blah to blam)"? 00:32:24 Cool. 00:32:32 Of course, they didn't have qualified imports. 00:32:37 Uncool. 00:32:41 shachaf: Well, fractions, or arbitrary real numbers, but bounded 00:32:42 Or do notation. 00:32:44 I forget, is OverlappingInstances one of those things that You Should Never Use? 00:32:47 Like IncoherentInstances. 00:33:05 You should never use them, yeah. Only I get to use them. 00:33:05 elliott: If you don't know, the answer is probably Yes. 00:33:12 I think Overlapping is acceptable in some situations. 00:33:21 shachaf: I do know, I just forgot. 00:33:21 based on Credible Sources 00:33:27 that I Don't Remember The Source Of 00:33:28 shachaf: I'm definitely doing Perverse Type Hackery. 00:33:41 IncoherentInstances? 00:33:54 clearly elliott should use overlappinginstances to dig himself in further 00:34:12 oerjan: I can avoid them, it'd just involve another Equ 00:34:16 class ElemA xs 00:34:16 instance ElemA (A :- xs) 00:34:16 instance (ElemA xs) => ElemA (x :- xs) 00:34:17 is the usecase 00:36:32 mhm 00:37:42 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:37:51 鬱 Consider that. 00:38:44 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 So incoherentinstances removes a sanity check that overlappinginstances provides? 00:39:02 -!- augur has quit (Remote host closed the connection). 00:39:19 The phonetic component of it is, apparently, 𩰪(probably not available in your font). 00:39:34 That's just fucking evil. 00:39:40 http://glyphwiki.org/wiki/u29c2a 00:41:39 -!- Jafet1 has joined. 00:41:49 :t \x -> foldr (<*>) (pure x) 00:41:50 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 @hoogle a -> [f (a -> a)] -> f a 00:41:59 Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b 00:41:59 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 00:41:59 Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b 00:42:01 oerjan: :( 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 http://glyphwiki.org/wiki/u2387d 00:44:48 Someone's missing the forest for the trees 00:45:41 -!- Jafet1 has changed nick to Jafet. 00:45:48 :-/ turning 00:45:52 class Foo a b | b -> a 00:45:52 into 00:46:00 class Foo b where type A b 00:46:04 is turning my instances into undecidable ones 00:46:11 Some bastard must have thought they were "smart" repeating the 木林森 pattern. 00:46:13 * elliott cries. 00:47:15 You've decided... decided... 00:48:40 monqy: anyway it is less horrific now??? 00:48:59 hi 00:49:00 im back from 00:49:04 not being here 00:49:06 what happeneD?? 00:49:57 Functional dependencies conflict between instance declarations: 00:49:58 instance [overlap ok] (ElemA xs, ElemB xs, ElemC xs) => 00:49:58 Complete Foo xs 00:49:58 -- Defined at /home/elliott/Code/form-test/form-test.hs:68:10-58 00:49:58 instance [overlap ok] Complete Bar Nil 00:49:58 -- Defined at /home/elliott/Code/form-test/form-test.hs:73:10-25 00:50:00 (i think i left soon before 15:47:57 < elliott> monqy: oh no i ju st realised something) 00:50:00 oh NOooooooooo 00:50:04 oh no 00:50:32 ohhh i get it 00:50:38 my fundep is wrnog 00:51:06 anyway!!! 00:51:17 *Main> :t (=:) 00:51:17 (=:) 00:51:17 :: (Field field, Applicative f) => 00:51:17 field 00:51:17 -> f (FieldType field) 00:51:18 -> Assign f (FieldRecord field) (field :- Nil) 00:51:19 *Main> :t (<>) 00:51:21 (<>) 00:51:23 :: Applicative f => 00:51:25 Assign f t xs -> Assign f t ys -> Assign f t (xs :++: ys) 00:51:27 *Main> :t run 00:51:29 run 00:51:31 :: (Complete t fields, Applicative f) => Assign f t fields -> f t 00:51:33 monqy: behlod 00:51:37 beholdieng 00:51:54 exmample: 00:51:56 test :: IO Foo 00:51:56 test = 00:51:56 run $ A =: getLine 00:51:56 <> B =: return 42 00:51:56 <> C =: return pi 00:52:15 -!- oerjan has quit (Quit: Good night). 00:52:35 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 monqy: the bad part is that.... its arowes 00:52:49 oops 00:53:06 is there any 00:53:07 other 00:53:08 way 00:53:18 im dont onknow. unfrtuoatenyl. 00:54:35 hm 00:54:39 how would the arrowes 00:54:40 look 00:54:47 if it's pretty, is there problems?? 00:54:55 asside from arrows being...arrows 00:55:15 anynway!!!! 00:55:19 monqy: http://sprunge.us/SSSU 00:55:22 behlod. simpler. 00:55:23 sssu 00:55:39 bits between -- are autogenerated apart from the Foo declaration itself of course 00:55:50 or rather, would be autogenerated. 00:57:19 how would the names of A B C be genreateD? similarly to the lenses schemes? 00:58:05 from the foo record 00:58:14 it'd actually be FooA/FooB/FooC 00:58:16 but i am: lazy 00:58:32 the problems here are basically (a) doesn't interoperate with lenses???? and (b) no interlevying 00:59:37 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 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:15 im clod. 01:03:16 lense btu diferent 01:04:06 while trying to improve this: 01:04:07 Couldn't match type `No' with `Yes' 01:04:07 In the expression: run 01:04:07 In the expression: run $ A =: getLine <> C =: return pi 01:04:07 In an equation for `test': 01:04:08 test = run $ A =: getLine <> C =: return pi 01:04:13 sure have made the messages useful!!! 01:04:59 you did something wrong but i wont say what it is........... - ghc 01:05:10 its a secret - ghc 01:06:00 -!- augur has joined. 01:08:23 -!- augur has quit (Remote host closed the connection). 01:10:10 monqy: it should just say 01:10:15 ::: wrong 01:10:25 or better 01:10:27 $ ghc badprogram.hs 01:10:28 no 01:10:28 $ 01:11:48 good ghc 01:13:37 elliott: it clearly says there's a type error in the expression "run" 01:13:41 where's the confusion? 01:13:55 are you being serious? 01:14:10 sure. 01:14:24 CakeProphet: lol. 01:14:26 I AM SO FUCKING COLD 01:14:38 like seriously there's only one place it's wrong. 01:14:50 CakeProphet: fun fact: the error isn't in run there 01:15:09 SURELY IT IS. GHC WOULD NEVER LIE. 01:15:34 in any case, is in the error in some sort of insane type hackery? 01:16:33 what else 01:16:53 then... that's why the error message isn't helpful. :P 01:18:09 unrelatedly, there are some insanely cheap deals on audio stuff right now. 01:18:22 wowza, audio stuff 01:19:57 300 watt 12" sub with built-in amp for $170 01:24:31 -!- Sgeo|web has quit (Ping timeout: 265 seconds). 01:24:35 ghc goodprogram.c 01:26:56 ghc is actually a C compiler too, you know. 01:27:29 [elliott@dinky Temp]$ echo 'int main(){return 42;}' >foo.c 01:27:30 [elliott@dinky Temp]$ ghc --make foo.c 01:27:30 [elliott@dinky Temp]$ ./a.out 01:27:30 [elliott@dinky Temp]$ echo $? 01:27:30 42 01:28:46 elliott: dinky is a stupid name. 01:28:56 Counterpoint: You're stupid. 01:30:47 :t liftA2 (.) 01:30:48 forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Applicative f1) => f1 (a -> b) -> f1 (f a) -> f1 (f b) 01:30:57 CAAAAAAALE 01:30:59 :t liftA2 (P..) 01:30:59 Couldn't find qualified module. 01:31:00 :t liftA2 (Prelude..) 01:31:01 forall b c a (f :: * -> *). (Applicative f) => f (b -> c) -> f (a -> b) -> f (a -> c) 01:31:16 That should have a name. 01:31:24 @hoogle f (b -> c) -> f (a -> b) -> f (a -> c) 01:31:24 Data.Generics.Schemes everywhereBut :: GenericQ Bool -> GenericT -> GenericT 01:35:07 "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:12 shocking revelation. 01:35:51 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 Gregor: Sooo, where would I actually modify to get a background process in HackBot? 01:50:13 Do I have to track down and modify the multibot source itself? 01:54:53 Gregor: Also, more importantly: In tr_60.cmd, where's some scratch space I can use for temporary files? 01:54:59 (I need to share them amongst invocations of tr_60.cmd.) 01:57:38 http://tinyurl.com/72p9aoj $250 off a set of 5.1 surround speakers 01:57:40 so. tempting. 02:09:26 Hmph, Gregor should have anticipated all my questions and answered them before I asked them 02:09:34 I even have another one now! 02:11:36 elliott, btw are you planning to play Skyrim at some point? 02:11:47 Maybe. I asked you whether it sucked or not. 02:12:00 elliott, well it seems 1.1 fixed the worst bugs 02:12:04 that I ran into 02:12:08 all i know about skyrim is you can put barrels over people's heads 02:12:22 monqy, I wasn't aware of that 02:12:22 ooh and there was some fixed bug where mammoths had trouble staying on the ground 02:12:35 I guess you can due to it having a physics engine 02:12:48 Vorpal: I wasn't asking about the bugs. 02:12:52 I mean, one general enough to handle stuff in barrels in general 02:13:10 It's not a Bethesda game if it doesn't have mammoth bugs 02:13:33 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 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 what does too modern mean? as in it clashes with the pasty feel of the rest of the game? 02:14:45 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 Vorpal: I haven't played Oblivion :P 02:15:58 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 Other Skyrim anachronisms: It's played on a computer. 02:16:33 Gregor: Also, $IRC_SOCK is an absolute path, right? 02:17:12 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 so... lots of walking involved to begin with 02:17:37 -!- sebbu2 has quit (Ping timeout: 252 seconds). 02:18:05 What's the variable for "number of arguments received" in bash again 02:18:24 Does each major city still contain less than a hundred inhabitants? 02:18:38 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 elliott, oh and the menu system was clearly designed with a gamepad in mind. 02:19:13 it works with mouse and keyboard, sure 02:19:19 Gregor: Also, $IRC_SOCK is an absolute path, right? // y es 02:19:20 but still, not optimal perhaps 02:19:32 Gregor: Y es? 02:20:48 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 It's part of a big conspiracy to make you buy an xbox 02:21:29 Jafet, what, and get worse graphics? 02:21:56 Gregor: Gregor: Sooo, where would I actually modify to get a background process in HackBot? Do I have to track down and modify the multibot source itself? Gregor: Also, more importantly: In tr_60.cmd, where's some scratch space I can use for temporary files? 02:22:00 Those are all the questions... I think :P 02:22:37 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 2) No. Modifying multibot for this makes no sense. 02:22:54 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:00 3) /tmp 02:23:12 Gregor: (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 Unless you mean like /tmp/hackbot.hope-you-never-want-to-run-more-than-one-hackbot-at-once 02:23:33 elliott: Do you mean within the execution of a guest program, or just in tr_60.cmd itself? 02:23:38 Latter. 02:23:40 It's for storing transaction info. 02:23:52 Oh, it's a multiple instances issue. 02:24:01 mkdir $IRC_SOCK.tmp :P 02:24:19 Gregor: Not an "issue", so much as "communication". 02:24:35 Multiple instances of HackBot that is. 02:24:54 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 Gregor: Which is annoying, because I want as-if-sequential semantics >_> 02:25:40 elliott: $# ? 02:25:52 Obviously it only matters if you send two messages in one syscall and the buffer flushes and etc. etc., but still :P 02:25:56 (Over the network) 02:25:59 variable: Yep, found that, thanks :P 02:27:36 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 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 (It's just (a) slight cleanups and (b) changes I've made to make the transactional stuff easier.) 02:28:03 Vorpal: How good are the dragons, that's pretty much the only thing I care about in a game. (Note: Maybe false.)) 02:28:06 s/))/)/ 02:28:22 elliott, haven't really gotten that far in the game yet. I got side tracked by sidequests XD 02:28:32 sidetracked* 02:28:57 elliott, so while the intro features a dragon, you basically have to flee from it at that point. 02:28:58 * Gregor reappears. 02:29:14 elliott, you don't get a close look at it at that point really 02:29:25 elliott, guess I will be able to report on that later. 02:29:29 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 Gregor: No, it would just require /starting/ them sequentially :P 02:29:54 But various factors could easily desynchronise them at that point, so *shrug* 02:30:19 elliott, reimplement it on a RTOS 02:31:34 elliott, I'm playing on ultra graphics settings with no issues btw. 02:31:56 your toshiba might not be beefy enough though 02:32:01 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 Vorpal: It definitely isn't. 02:32:09 right 02:32:30 elliott, how much dedicated graphics ram? 02:32:40 elliott: Just to stop programs from running if they're producing gobs of output. I just want a dead pipe. 02:32:47 No frickin' idea, but come on, the CPU is less than one GHz. 02:32:49 Gregor: Right 02:33:13 hm 02:33:20 elliott, I think 2 GHz was minimum 02:33:22 Gregor: Hmmwait 02:33:23 iirc 02:33:31 Wait, never mind 02:33:40 elliott, as in "core 2 duo 2.0 GHz or better" 02:34:07 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 recommended was quad core system 02:34:14 So you have a lot of processes just sleeping 30 all the time :P 02:35:58 elliott: Yup. Difficult not to in bash. 02:36:01 -!- hagb4rd has joined. 02:36:05 Gregor: Yeah, just realised that >__> 02:36:12 Gregor: Why the hell doesn't bash have alarm after how-many-decades 02:36:19 Nowait ... 02:36:22 I thought I fixed that ... 02:36:35 Nope, I didn't :) 02:36:46 Right, because it would need either something like alarm or conditional wait. 02:37:40 Gregor: Does DCC SEND work for you? 02:37:50 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 but for me on an SSD it is about 2-4 seconds 02:38:21 elliott: Considering that it never uses it, Idonno. 02:38:29 Gregor: No, I mean, you personally :P 02:38:31 Oh 02:38:35 I'd prefer email ... 02:38:39 Oh right, email exists! 02:38:44 I completely forgot... 02:38:56 I completely fungot! 02:38:57 CakeProphet: unless you want to become like larry wall, maybe?) area of memory to a file."? me, soegaard? 02:39:00 elliott: Incidentally, what repo are you working off of? 02:39:09 elliott: I moved hackbot with a bunch of other projects, it's on bitbucket now (same repo though) 02:39:24 Gregor: Oh, I'll update my hgrc and do a pull request thing then 02:39:30 That sounds appropriately fancy 02:39:36 Yay pull request :P 02:39:38 *dinner* 02:41:19 Gregor: https://bitbucket.org/GregorR/hackbot/pull-request/1/stuff 02:41:22 ENJOY YOUR DINNER, FASCIST. 02:44:26 `fetch https://bitbucket.org/GregorR/hackbot/pull-request/1/stuff 02:44:28 2011-11-12 02:44:28 URL:https://bitbucket.org/GregorR/hackbot/pull-request/1/stuff [20286] -> "stuff" [1] 02:44:31 I completely forget how hideous `fetch's output is. 02:44:34 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:44:44 `rm stuff 02:44:46 No output. 02:45:18 `fetch sdfjsdfjkl 02:45:19 wget: unable to resolve host address `sdfjsdfjkl' 02:45:25 Hmm, not as bad as I recall 02:46:31 -!- CakeProphet has quit (Ping timeout: 276 seconds). 02:49:52 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:49:53 I guess it is. 02:52:32 -!- Sgeo|web has joined. 02:52:55 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 "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 Well, aside from バッハ being Japanese for "Bach". 02:59:21 -!- copumpkin has joined. 03:00:45 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 I made the program for normalizable semirings! 03:25:15 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 `echo Did elliott just break everything? 03:30:47 Did elliott just break everything? 03:30:55 Impressive. 03:31:04 It... 03:31:06 How does it still work? 03:31:08 `run echo hi >a 03:31:10 No output. 03:31:11 `cat a 03:31:14 hi 03:31:16 `rm a 03:31:17 No output. 03:31:19 Gregor: I'm shocked :P 03:31:22 Same 'ere. 03:31:24 -!- elliott has changed nick to Lymia. 03:31:27 `stupid 03:31:27 Mmmmm ... no. 03:31:31 -!- Lymia has changed nick to elliott. 03:31:32 Wow :P 03:31:39 `fetch http://google.com 03:31:40 2011-11-12 03:31:40 URL:http://www.google.com/ [10696] -> "index.html" [1] 03:31:44 `rm index.html 03:31:46 No output. 03:32:34 `yes 03:32:36 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 OMG THAT LINE IS SO LONG 03:32:55 Gregor: It's a whole 100 characters longer :P 03:33:10 `run echo lol > .hg/foo 03:33:10 See my commit message for CALCULATIONS plus estimate of margin of safety. 03:33:12 bash: .hg/foo: Read-only file system 03:33:18 elliott: Yeah, I saw. 03:33:27 Hmm, wait, I think my revert command might not work... 03:33:32 `run echo hi > a 03:33:34 No output. 03:33:37 `run revert 03:33:39 bash: revert: command not found 03:33:53 Whuh 03:33:57 `revert 03:33:58 Done. 03:34:03 Oh! I didn't add it yet :P 03:34:04 `ls 03:34:06 bin \ canary \ karma \ lastquote \ lib \ paste \ quotes \ share \ wisdom 03:34:10 Ooooohkidokie :P 03:34:12 Yeah yeah, it's just that I removed revert :P 03:34:15 From my local copy 03:34:20 Thinking it could be done with a bin/ thing 03:34:55 But obviously not 03:34:57 lib/revert it is 03:35:53 Welllllllllll, it is doable with something in bin, but it's better to have an out-of-channel method. 03:36:12 Gregor: It's... sort of doable, but you could break it horribly and make people `revert manually :P 03:36:28 Gregor: You can set up an environment var (path to unix socket) that tr_60.cmd will see, right? 03:36:39 And redirect a probably-Python program's stdin from it? :P 03:36:47 Sure 03:36:56 Actually hmm, not sure Unix socket will work >_> 03:37:00 What happens when two people write to a Unix socket at once 03:39:59 An individual call to write/send will always produce an in-order packet. 03:40:04 But multiple calls can be interleaved. 03:40:16 Note for comparison: X11 works. 03:40:19 What're the chances of socat sending <512 bytes with a single write/send? 03:40:24 Oh, X11 is based on a single Unix socket? 03:40:25 Alrighty then :P 03:40:37 Not quite any more, but classically. 03:40:40 (How did they overengineer everything but that?) 03:40:44 Now it has shm and other tricks too. 03:42:31 Gregor: You should add the running script to the repo so I can test this thing :P 03:42:54 Also, last attempt: Are you suuuuuuuure I can't write the script in Haskell???? 03:43:45 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 zzo38: base, semigroups, contravariant, methinks 03:46:00 mtl? 03:46:25 copumpkin: Nope 03:46:28 .Trans. == transformers 03:46:32 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 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 Gregor: You, uh, did fix it 04:11:11 umlbox-nice has a timeout 04:11:42 Gregor: That doesn't solve it for `fetch though. 04:12:01 Tempted to say that it's better to do it outside of UMLBox. 04:15:39 `ls /home 04:15:41 hackbot 04:15:43 `ls /home/hackbot 04:15:45 hackbot.hg 04:15:48 X-D 04:20:06 Gregor: Oh, timing out from within UMLBox has the advantage that you get partial output from timed-out commands. 04:20:16 That's defeated by the global timeout though :P 04:21:06 That redundancy is to avoid bugs. 04:21:10 Don't take it out. 04:25:28 Gregor: Bugs like what? 04:25:34 Just curious. 04:25:55 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 I don't /think/ any remain. 04:31:23 It's just a stopgap. 04:31:44 Although I suppose nothing's stopping `fetch http://fiftygigfile.com right now :P 04:32:14 Gregor: Yes there is. 04:32:15 The outer timeout 04:33:00 Also the ulimit :P 04:33:11 Did I send the package correctly? 04:33:19 zzo38: ? 04:33:24 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 The revert script has no timeout :P 04:33:44 I mean the "monoidplus" package 04:35:23 http://hackage.haskell.org/package/monoidplus 04:35:32 You forgot to specify version constraints on your dependencies 04:36:00 also, you have a typo in Plus.lhs: "tyep" :) 04:36:04 elliott: I looked at those three packages, and both the oldest version and newest version have those things 04:36:16 zzo38: Yes, but the version released tomorrow might not. 04:36:35 O, OK. Yes. 04:36:41 And OK I will fix the typo, too 04:36:51 zzo38: contravariant == 0.1.*, semigroups > 0.1 & < 0.9, transformers < 0.3 should do it 04:36:56 according to the package versioning policy 04:36:59 which all three of those packages follow 04:37:19 OK thank you 04:38:32 What is the package versioning policy? 04:39:26 http://www.haskell.org/haskellwiki/Package_versioning_policy 04:41:57 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 OHHHH, yeah, umlbox does have a timeout, dunnit X-D 04:42:10 Yeah, that should be sufficient. 04:42:15 Right. 04:42:16 Doesn't also need the silly sleep. 04:42:22 Gregor: You even use the timeout currently :P 04:42:26 I meant having both an external and an internal timeout is important. 04:43:01 What's that mean 04:43:16 Oh, internal as in "sleep 10; kill" in the shell? 04:43:17 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 As in, in the shell inside UMLBox 04:43:29 Gregor: 'Cuz currently, you don't have an "internal" timeout. 04:43:33 zzo38: Yep 04:43:45 OK thanks 04:43:51 I fix it now. 04:43:59 Gregor: Hmm, can you select() on both a fd and a process exiting in Unix...? 04:44:04 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 Now it is uploading 04:44:38 Oh, I guess I took the ulimit -t out of limits. 04:44:43 So there is in fact no internal one. 04:44:45 Oh well :P 04:44:50 umlbox -T really ought to be enough. 04:47:47 Is it good now? 04:48:29 zzo38: Yep 04:49:03 Gregor: So any chance I could get ahold of your starting script? Chances of this thing working first time are rapidly dropping :P 04:49:12 Pfffffffff 04:50:28 Darn, the optimisation I thought of might not work... 04:50:37 :( 04:50:37 elliott: http://sprunge.us/JfEO 04:50:51 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 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:53:57 Gregor: Thanks, BTW 04:54:10 elliott: It's not like it does anything :P 04:54:14 -!- Madoka-Kaname has quit (Ping timeout: 255 seconds). 04:54:24 Gregor: It'll have to create a socket and start a script soon enough! :P 04:54:41 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 Actually, I don't see why you shouldn't be able to use such packages together 04:55:36 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 Might cause some issues with the unsafePerformIO trick for globals, though 04:56:18 Then don't use unsafePerformIO in those cases. That is why it is called "unsafe". 04:56:58 zzo38: Well, the issue is more dealing with arbitrary modules, and I do not author every single Haskell module. 04:57:23 I guess it can be statically determined whether a module uses such a trick 04:57:33 Or has the potential to and is faking out on using it 04:57:41 And exclude those from the system? 04:58:02 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 Sgeo|web: How would that break things 04:58:37 zzo38: There is an extension for that; no versioning 04:58:56 elliott: Older and newer version of some library that wants to maintain a global lock for some reason 04:59:12 Project as compiled ends up using both, which live in different namespaces, meaning no more global lock 05:06:01 Gregor: Oh my god. 05:06:04 shachaf: Oh my god. 05:06:17 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 It is -- and I shit you not -- 05:06:22 hg status -umad 05:06:41 elliott: u called? 05:06:41 lul 05:08:09 -!- sebbu has joined. 05:08:10 -!- sebbu has quit (Changing host). 05:08:10 -!- sebbu has joined. 05:10:29 Gregor: What is it with the .orig rm -rf 05:11:44 -!- sebbu2 has quit (Ping timeout: 248 seconds). 05:13:04 elliott: hg revert leaves .orig files futzing about. 05:13:10 Ugh 05:13:54 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 (I mean, without the removal, since I don't wanna translate it to Python) 05:18:14 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 Probably all in one commit, oops >_> 05:18:40 And then the AGE OF THE TRANSACTIONAL MACHINE WILL BEGIN MWAHAHAHAHA 05:20:03 hg record 05:24:22 Gregor: There's no way I could sanely split this into multiple commits :P 05:24:41 I mean, I could, but it'd be 100% nonfunctional at each step. 05:24:58 Thankfully it's not that big a diff :P 05:41:56 -!- CakeProphet has quit (Ping timeout: 255 seconds). 05:42:25 Gregor: HOKAY 05:42:36 Gregor: You available for testing this thing out? :P 05:45:51 Gregor: Behold: https://bitbucket.org/GregorR/hackbot/pull-request/2/transactional-hackego 05:46:04 I would make a backup of the repository first :) 05:47:35 Totally untested I assume. 05:47:42 It's almost 1AM ... I'll try it tomorrow :P 05:48:27 Gregor: Baaah :P 05:48:41 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:48:54 Oop, just found one! 05:49:44 Fixx't 05:50:23 Gregor: Oh well, make sure I'm around tomorrow for damage control :P 06:02:46 Gregor: I take it my cheque's in the mail for all this FREE WORK I'm doin' :P 06:05:19 since there is no work to pay for the cheque should be blank, right? 06:08:25 quintopia: HERE'S THE WORK TO PAY FOR: https://bitbucket.org/GregorR/hackbot/pull-request/2/transactional-hackego 06:10:16 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:18 is it a haskell 06:10:36 that's not haskell 06:17:48 zzo38: it takes ~6 hours max for haddock docs to be generated 06:17:54 monqy: Gregor said I couldn't use Haskell. :'( 06:18:05 :( 06:18:20 monqy: but thankfully the problem is a glorified FFI ask so Python sufficed >:) 06:20:55 monqy: here's the fun (terrifying) stuff: https://bitbucket.org/ehird/hackbot/src/02ec1863c274/multibot_cmds/lib/server#cl-39 06:20:59 (the actual transaction logic) 06:22:12 oops i found a bug 06:22:13 * elliott fixes 06:33:39 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 That would speed the bot up massively. 06:34:46 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:04 `strace 06:50:05 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: strace: not found 06:57:49 `touch /home/hackbot/test 06:57:50 touch: cannot touch `/home/hackbot/test': Permission denied 06:57:52 Good. 07:04:14 @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 @tell Gregor Run programs under strace -e trace=open,mkdir,rename (I've tested this locally, the performance impact is negligible). 07:04:14 @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 @tell Gregor Once that goes through, restart the rest of the transactions from scratch. 07:04:14 Consider it noted. 07:04:14 Consider it noted. 07:04:15 Consider it noted. 07:04:15 Consider it noted. 07:04:16 @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:16 Consider it noted. 07:04:18 @tell Gregor I think this is a reasonable trade-off, but let me know what you think. 07:04:19 Consider it noted. 07:04:21 @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:04:21 Consider it noted. 07:06:27 `quote 07:06:29 463) 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:37 Might as well do it now. 07:07:37 `help 07:07:38 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 07:07:57 `rm bin/unquote 07:07:59 No output. 07:08:09 `rm lastquote 07:08:11 No output. 07:08:32 `run tail -n +1 bin/quote 07:08:34 ​#!/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 `run tail -n +1 bin/addquote 07:08:39 ​#!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ echo $(qc | cut -d' ' -f1 | tee lastquote)") $1" 07:08:44 `run tail -n +2 bin/addquote 07:08:46 ​[ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ echo $(qc | cut -d' ' -f1 | tee lastquote)") $1" 07:08:50 `run head -n +2 bin/addquote 07:08:52 ​#!/bin/sh \ [ "$1" ] || exit 1 07:09:01 `run head -n +3 bin/addquote >x; mv x bin/addquote 07:09:04 No output. 07:09:14 `run sed -i 's/ | tee lastquote//' bin/quote 07:09:16 No output. 07:09:31 There we go. 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 There is no document for "reallyUnsafePtrEquality#" in GHC, other than that there is such a function as that. 07:53:28 I don't understand the other GHC primitives very well either. 07:53:45 reallyUnsafePtrEquality# is exactly what it sounds like. 07:53:48 Really unsafe pointer equality. 07:54:51 How is it unsafer than unsafePtrEquality# if it exists? 07:55:29 Will its result change due to optimization and architecture and so on? 07:55:39 I would think it would. 07:55:53 But there is no document that says these kind of things. 07:56:20 Sgeo|web: It doesn't. 07:56:40 zzo38: Weeeeeeeell, you're not really guaranteed everything, but (reallyUnsafePtrEquality# a a) is I think guaranteed. 07:56:49 Then why not call it unsafePtrEquality# ? 07:57:00 because it's REALLY unsafe 07:57:00 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 Has the prefix "unsafe" gotten deluted? 07:57:06 Sgeo|web: Because it's really unsafe. 07:57:12 diluted 07:57:19 unsafePerformIO doesn't break the type system unless you're trying to. 07:57:27 reallyUnsafePtrEquality# Makes No Damn Sense At All. 08:08:12 @ask Gregor wtf is http://codu.org/projects/hackbot/fshg/index.cgi/rev/59b64dfd4261 08:08:13 Consider it noted. 08:08:23 @tell Oh, I see :P 08:08:23 Consider it noted. 08:08:25 ... 08:08:26 oops 08:08:28 @tell Gregor Oh, I see :P 08:08:28 Consider it noted. 08:11:02 elliott: You enjoy that far more than you claimed to. 08:11:40 shachaf: Dude, if the universe (by which I mean Mercurial) tells me it's right, how can it be wrong? 08:12:27 > permutations "umad" 08:12:28 ["umad","muad","amud","maud","aumd","uamd","damu","admu","amdu","dmau","mda... 08:12:44 Thinking of Maud you forget everything else. 08:12:48 damu 08:12:58 dmau 08:12:59 mdau 08:13:16 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 Maybe... maybe pi eventually just starts repeating "umad". 08:15:21 Maybe.... maybe pi eventually just starts repeating. u mad? 08:17:24 Whoaaaaaaaaaaaaaaa. 08:17:34 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 Is it possible to have two installations of Ubuntu with WUBI? 08:38:57 It's possible to have two installations of Ubuntu without Wubi. Also: Wubi is really awful, don't use it. 08:39:09 Open university course. 08:39:11 Neither of these statements answer your question; they're intended more as life advice. 08:39:15 I don't have any choice 08:39:25 Ngevd: You could not do the stupid Open University course. :p 08:39:42 But, uhhhhh... 08:39:50 That would defeat the point of paying for the Open University course 08:39:52 it's probably doable, but it's probably also a hugely massive pain. 08:39:57 Ngevd: You're PAYING FOR THIS? 08:39:58 Or getting the school to pay for it, anyway 08:40:02 Wait, I suppose that was obvious. 08:40:06 Don't... pay for it. 08:41:50 Oh wait, I don't actually need to install it 08:42:02 brb 08:42:09 -!- Ngevd has quit (Quit: Leaving). 08:45:59 -!- Ngevd has joined. 08:47:19 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 elliott: I accidentaly made an ellipsis out of four dots. :-( 09:07:21 * shachaf mad now! 09:07:31 I sometimes use two dots, just to shake things up a little. 09:07:37 If it's at the end of a sentence, four dots is legal 09:07:47 Just one of the dots is SECRETLY A FULL STOP! 09:08:21 That's just incorrect…. 09:08:44 The dot operator can be written strangely... .. 09:08:54 > [0…10] 09:08:55 Not in scope: ` 09:09:26 elliott, make @'s dialect of Haskell have that. 09:09:30 If that statement is applicable 09:09:34 Which I don't think it si 09:09:40 Taneb: I'm offended by the implication :P 09:09:42 *is 09:09:52 GHC has Unicode syntax for ranges, it's just a silly two-dot character instead. 09:10:54 Unicode has a two-dot character? 09:11:13 : 09:11:43 http://www.haskell.org/ghc/docs/7.2.1/html/users_guide/syntax-extns.html ;; oh, they removed it. 09:11:44 Apparently it has quite a lot of them. 09:12:03 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 http://www.haskell.org/ghc/docs/6.8.1/html/users_guide/syntax-extns.html hmph 09:12:35 shachaf: ‥ 09:12:42 At least jhc accepts that. 09:13:02 What should I call my virtual machine... 09:13:07 elliott: http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/syntax-extns.html has it with ellipsis. 09:13:13 Claude 09:13:18 shachaf: Observe "This ain't it either". 09:13:50 elliott: I'm never going to accept ‥ 09:14:00 I don't know why‥ it seems perfectly cromulent to me. 09:14:19 Ooh, what a sharp increase of mad on the shachaf-being-mad-o-meter. 09:14:43 * shachaf currently: being mad 09:14:58 * elliott is now playing: shachaf - madness (forever:it never ends) 09:15:24 How about‥. if you use it.‥ like that. 09:15:44 -!- derrik has joined. 09:15:46 * shachaf ♪ MAD I TELL U MAD? ♫ 09:16:31 .·˙ 09:16:40 fizzie: You sound like‥ William Shatner‥ 09:17:05 It's‥ really unnerving because‥ the people reading‥ your message‥ they‥ can't stop‥ hearing it‥ go so slowly. 09:17:21 Sure they can. 09:18:09 There also is … 09:18:41 * twice11 wonders, why ghc uses ⋯ instead. 09:18:49 I think there were some ticket arguments about it. 09:19:02 ⋯ is quite mathsy, though not quite as mathsy as UNBALANCED BRACKETS 09:19:29 elliott: When are you going to give up and switch to Agda? 09:19:50 shachaf: Um, why would I switch to Agda when I can switch to @? 09:20:05 Your premise is incorrect. 09:20:17 You could switch to @gda. 09:20:22 When can you switch to @? 09:20:30 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 Agda can't do that because it's not web scale. 09:20:37 Also because it's really, really slow. 09:20:49 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 elliott: You know who else is really, really fast? 09:21:57 I like ATS. 09:22:04 Also, is it fungot? When in doubt, fungot. 09:22:04 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:18 What's a fungot? 09:22:19 shachaf: why do you need 09:22:26 fungot: I need your help. 09:22:26 shachaf: so could do something 09:22:34 fungot: Where are my 5-grams? 09:22:34 shachaf: that one is... hehehe stupid question... if the number of 09:22:50 elliott: Hmm, a very good imitation of you. 09:22:58 Or is it meant to be of me? 09:23:00 ^styl 09:23:01 ^style 09:23:01 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 I am currently imagining a computer that uses a Befunge-like machine code 09:23:03 ^style fungot 09:23:03 Selected style: fungot (What I've said myself) 09:23:06 shachaf: Try now. 09:23:15 fungot: Norway. 09:23:15 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 Now it's using zzo38 style? 09:23:40 fungot: wiojdasiodj 09:23:40 elliott: if it's ( syntactically) long lol, this aircraft crashed 09:23:42 ^style nethack 09:23:42 Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal) 09:23:50 fungot: SPOIL US. 09:23:51 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 I hear that shopkeepers are dangerous. 09:24:03 fungot: I hear that shopkeepers are dangerous. 09:24:03 shachaf: for a bat to lift. if you are the predominant inhabitants of hell. 09:24:14 ^style youtube 09:24:15 Selected style: youtube (Some YouTube comments) 09:24:25 Note: YouTube corpus is tiny because asiekierka is incompetent. 09:24:29 fungot: 14 people didn't have any style. 09:24:30 shachaf: bisous0210 ( 1 dzie temu) komentarz usunity przez autora plane. it was a remote in that 09:24:45 THUMBS DOWN 09:25:04 ^style ct 09:25:04 Selected style: ct (Chrono Trigger game script) 09:25:07 What? 09:25:12 I wanted Category Theory style. 09:25:21 Go crawl ncatlab.org, please. 09:25:21 fungot? 09:25:21 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 elliott: Seriously, like, do it, man. 09:26:06 You could have a little piece of ddarius in this channel. 09:26:20 I think they might not like me if I did that. 09:26:27 Can I suggest that a style is added for IWC transcripts? 09:26:43 Taneb: Hmm, that sounds easy. 09:26:58 And annotations 09:27:08 elliott: They have a "download entire wiki" link. 09:27:14 shachaf: Oh. You do it, then. 09:27:16 Oh, apparently it's disabled. 09:27:27 But they have a wget command line in their FAQ that shows how to get around it. 09:28:07 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 Also, my father has arrived in CA and is a few km away. 09:29:33 I ought to go to sleep so I can meet him tomorrow mornig. 09:29:50 No real ticket fight, but http://hackage.haskell.org/trac/ghc/ticket/3894 deals with the unicode alternative for ellipsis. 09:34:35 [elliott@dinky iwc-scraper]$ curl -#O $(seq --format=http://irregularwebcomic.net/%g.html 1 3200) 09:34:37 Taneb: Here goes nothin' 09:34:44 Whoops, that failed. 09:34:52 [elliott@dinky iwc-scraper]$ curl -#O $(seq --format="-O http://irregularwebcomic.net/%g.html" 1 3200) 09:34:53 This might not. 09:39:36 Doesn't curl have some sort of funky autosequencer built-in? I think it does. 09:39:39 Not that I could use it. 09:41:07 -!- Jafet has quit (Quit: Leaving.). 09:41:25 fizzie: Yes, but, who needs life when you have seq? 09:41:32 fizzie: Also: What /is/ the input format to your corpus scripts? 09:45:07 -!- wareya has quit (Quit: Lost terminal). 09:45:16 ⎃ 09:45:42 ℻ 09:45:49 ➟ 09:46:57 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 fizzie: That sounds maybe even doable enough for me to do. 09:48:55 fizzie: You should have style options, so that people can ask for just transcripts, just annotations, or both. 09:49:15 "Bah." 09:50:55 -!- sebbu2 has joined. 09:50:56 -!- sebbu2 has quit (Changing host). 09:50:56 -!- sebbu2 has joined. 09:51:39 fizzie: UNLESS YOU WANT TO MAKE THREE SEPARATE STYLES? :p 09:54:52 -!- sebbu has quit (Ping timeout: 276 seconds). 09:57:24 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 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:26:36 Okay 10:28:44 http://www.irregularwebcomic.net/random.php?i0=1461&p0=3&i1=0913&p1=0&i2=1211&p2=2&i3=1693&p3=1 10:29:19 elliott, IWC scraper? 10:29:29 For fungot 10:29:29 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:29:37 yaaaaaaaaaaay 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 So THAT'S how you exit man pages 10:57:50 "..." 10:57:56 It's just less(1). 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 My long-ignored subscription to the Golly mailing list nearly ruined my chances of getting into Cambridge. 12:22:37 I guess I should unsubscribe? 12:23:35 How did that happen? 12:24:37 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:24:55 Stop using Evolution. 12:25:08 -!- Taneb has quit (Ping timeout: 255 seconds). 12:26:03 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 Phantom_Hoover: Whoa sorry did I imply you had a choice. 12:31:06 elliott, hm? 12:31:12 Stop using Evolution. 12:31:20 ...why? 12:31:43 Now is not the time for questions??? 12:32:08 But Gmail's terrible too now! 12:32:25 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 You can use: Anything but Evolution. 12:32:49 -!- sebbu2 has joined. 12:33:54 Why is Evolution the height of email-related evil? 12:34:24 Because: godlessness. 12:34:31 -!- Ngevd has quit (Ping timeout: 258 seconds). 12:35:43 -!- sebbu has quit (Ping timeout: 240 seconds). 12:36:45 Phantom_Hoover: Stop asking questions start switching??? 12:36:49 fizzie: I SEE YOU'VE RETURNED. 12:37:46 No I am still gone you must be imagining things. 12:38:31 elliott, OK I have closed Evolution is this sufficient? 12:38:37 fizzie: So you don't want some: FILES?????? 12:38:46 -!- Ngevd has joined. 12:39:24 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 fizzie: It's about a sixth done with the generation. :p 12:43:52 (I just started it now, though.) 12:44:23 Is it scripts or annotations or both? 12:45:03 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 Also the splitting logic for the annotations isn't very smart. 12:45:37 It just splits on sentence boundaries, defined naively. 12:45:50 (Would the generation code handle every annotation just being mushed on to its own line well?) 12:48:13 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 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 fizzie: Well, the sentences are quite short in the file I have. 12:57:53 [1] Benjamin Haydon (1929). 12:57:53 "Chapter XVII 1816-1817". 12:57:53 In Alexander P. 12:57:53 D. 12:57:53 Penrose. 12:57:53 The Autobiography and Memoirs of Benjamin Robert Haydon 1786-1846. 12:57:55 Compiled from his "Autobiography and Journals" and "Correspondence and Table-Talk". 12:57:57 Minton Balch & Company, New York. 12:57:59 p. 12:58:01 231. 12:58:03 For instance. 12:58:05 (Okay, most of them are fairly reasonable snippets.) 12:58:17 fizzie: With one-annotation-per-line, it'd be about... 1000? lines. 12:58:27 Is that enough to get things going, or would you stick with this file? 12:59:27 I'd probably just go with that first and see what comes out. 13:00:02 fizzie: Can you, uh, download mail attachments on that thing? 13:01:12 I can mangle; I read all my mail with mutt (running at iris) anyway. 13:02:12 fizzie: Sent. It may be in your: spame folder. 13:02:18 (To be prounounced "spaym".) 13:02:40 If you change the style names I'll ragequit forever. :p 13:03:45 Lessee. May take me a moment. 13:04:26 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 I'll run through some sample sentences before bothering to try sticking the stuff into the bot. 13:16:16 Uh, it is borken with millions of warnings. Why is it like that? 13:16:28 Isn't it Perl? Insert Perl joke. 13:16:30 Can it handle Unicode? 13:16:37 There ams some Unicode in it. 13:17:24 It should wurk just fine. 13:17:36 fizzie: Did you remember to decompress them. 13:17:53 "Is it plugged in?" 13:17:58 Yes, I did. 13:18:08 It's just all "substr outside string" to me. Weirdness. 13:22:16 I think I must've crisscrossed the tokens/model files. 13:22:35 "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 jawohl wunderbar a charles schulz a goscinny offence cattle uderzo before there's forming on mglw'nafh critter exoskeletons shorts in." 13:22:54 fizzie: I, um. 13:23:13 Yes, it is a: typo. 13:23:30 fizzie: No I like it? 13:23:42 fizzie: It could be really powerful if you shouted it. 13:23:48 Sad, because I already fixeded it. 13:24:32 The scripts file's utterances are very short, so... that'll be interesting. 13:24:47 mglw'nafh critters sound nice 13:24:55 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 13:25:32 Ooh, Skyrim's main menu is very tasteful. 13:25:36 Like a well-designed coffee table. 13:25:43 Or a... rock. 13:26:06 Annotations: | curl -F 'sprunge=<-' http://sprunge.us 13:26:10 Whhops. 13:26:17 I cannot copy or paste. 13:26:17 Waht. 13:26:21 But mostly copy. 13:28:11 Annotations: http://sprunge.us/QKWT - Scripts: http://sprunge.us/aiON 13:28:56 fizzie: What is with those numbers? 13:29:08 I-unno. 13:29:29 The scripts are I think Good Enough to add as iwcs now, but them annotations need wurk. 13:29:38 "escaping the nazis in berlin. well, it is rocket launch further down 13:29:38 'is throat, will 'e doesn't work in the right direction they are 13:29:38 running towards the orcrift mountains... for erwin to perform surgery 13:29:38 by following us today. they're going to break the news from the king's 13:29:38 twin brother, and discuss the arrangements for splitting the profits from 13:29:39 this trip. i've been promoted to insanely overpowered fireball? romans 13:29:41 waiting at the gates of hades. busted!''" 13:31:23 Numbers come from around line 14608 of 'iwca'. 13:31:40 fizzie: What's that line? :p 13:32:22 A(4,2) written out in groups of three digits. 13:32:33 fizzie: Ah. 13:32:37 That might need: remeuving. 13:32:44 But yeah, scripts are looking a lot more polished. 13:41:29 -!- Aune has joined. 13:51:05 -!- Ngevd has joined. 13:54:17 what are you doing? is that gibberish some kind of esolang? 13:55:18 IWC! 13:58:57 Vorpal: What graphics card does your computer have, anyway? 14:01:15 I like today's Freefall 14:02:00 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:08 Argh, stupid Google Reader URLs. 14:02:33 Anyway, Zach, you realise that Dresden Codak did that joke like a year (~4 pages) ago. 14:02:56 Phantom__Hoover: I can guarantee he did it worse. 14:03:06 Yes, he did. 14:05:20 -!- pikhq has joined. 14:05:40 -!- pikhq_ has quit (Ping timeout: 258 seconds). 14:05:53 Right when I joined this time, elliott said IWC 14:06:05 Is this some way suggested to my fungot suggestion? 14:06:06 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 It's related, and I await your payment. 14:06:32 http://cdn.walyou.com/wp-content/uploads//2011/03/Pi-Clock-with-Radian-Measurements.jpg 14:06:34 fizzie: So is iwcs in the bot yet?????????//// 14:06:34 worst 14:06:47 Phantom__Hoover: What? They forgot to use tau. 14:06:51 elliott, give me an address and I WILL GIVE YOU MY TWO CENTS MYSELF 14:06:58 Euro cents. 14:07:02 A real mathematician's clock would go anticlockwise and 2pi would be where pi/2 is. 14:07:07 Ngevd: Hexham 14:07:23 elliott, that narrows it down to SLIGHTLY MORE THAN I KNEW ALREADY 14:07:44 That gave you new information? 14:07:58 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:08:50 :#>? 14:10:57 No I uh I umm busybusy whoops -> 14:11:19 Well okay this once. 14:11:28 Where did I put it? 14:13:57 `quote kill 14:14:04 1) I used computational linguistics to kill her. \ 5) GKennethR: he should be told that you should always ask someone before killing them. \ 44) I spent the last minute or so killing myself repeatedly \ 76) Invalid! Kill! Kill! I get that feeling too. \ 143) ais523: killer bunnies can be harmed by domesticated canines only. \ 158) pikhq: it was fragrant 14:14:13 -!- fungot has quit (Remote host closed the connection). 14:14:22 `quote 158 14:14:25 158) 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 ^style 14:14:56 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 ^style iwcs 14:14:59 Selected style: iwcs (Irregular Webcomic scripts) 14:15:08 fizzie: It's "Irregular Webcomic!", exclamation mark and all. :p 14:15:10 fungot: Babble. 14:15:10 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:14 Ngevd: Enjoy. 14:15:16 nice, 158 was a poetic fungot 14:15:17 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:28 I'll fix lattur. 14:15:48 "take a look. hands!" 14:15:50 fungot ::::D 14:15:51 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 Oh god Ngevd is Vriska this has so much meaning I just don't know what it is yet. 14:16:22 That my birthday's in Late October/November? 14:16:34 `log Vriska 14:17:03 2011-06-02.txt:03:58:00: Is it inappropriate to say <3< Vriska? 14:17:13 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 It's almost as bad as reminding us of present Sgeo|web. 14:17:34 *karkat 14:17:35 olsner, unlikely to show much, given that elliott's Vriska-hate was mainly in /msgs to me. 14:17:37 in fact. 14:17:51 Phantom__Hoover: Hey that only lasted for like a few weeks if you normalise it out because time dilation. 14:17:59 Then elliott was all like "no vriska's amazing" for some reason and then I was confuse. 14:18:00 I don't even know how long a week is any more. 14:18:04 Phantom__Hoover: No I never said that either. 14:18:09 You are MISREPRESENTING me. 14:18:11 * elliott is torn. 14:18:13 Anyway esolangs. 14:18:21 I am going to check the wiki and that guy will have a new language out. 14:18:30 http://esoteric.voxelperfect.net/wiki/User:TomWhitney874 14:18:32 What an amazing language? 14:18:34 Brook is Turing Complete! <-- unproven statement 14:18:36 elliott: homoiconic heap based language? help. 14:18:41 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:18:56 Perfume-based esolang. 14:19:11 fungot: carbon. 14:19:11 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 Could be done as a CA 14:19:17 Hmm... 14:19:35 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:51 that's no fun. 14:19:54 I like how it goes from Pirate to German in 6 words 14:19:57 Chemistry-based esolang. 14:19:58 fungot 14:19:59 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 Actually, that's trivially TC for the same reason Gravity is. 14:21:23 hmm. 14:21:29 I think a Chemistry based esolang would be similar to SpaceChem or Codex of Alchemical Engineering 14:21:38 Eugh, no. 14:21:39 Not every chemistry based esolang 14:21:41 When you MISREPRESENT, you also PERMIT SNEERS. 14:21:42 But A 14:22:17 Azimuthal quantum numbers *will* be involved. 14:22:33 SpaceChem was quite nicely Befungey for a game. 14:23:50 Not enough azimuths. 14:25:12 Hmm, aren't Funges "runtime-error free" 14:27:05 Theoretically...? 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 Sometimes I just have to take a moment to be amazed when some people request Facebook friendship 16:09:12 I have 111 friend requests. An awful lot of those people have not met me. 16:09:18 her political and religious views: Catholic and Republican Party favorite TV show: Degrassi 16:09:20 Only 111? :P 16:09:36 mine: Agnostic and Anarchism TV show: Dexter 16:09:40 TV SHOWS SAY A LOT ABOUT A PERSON. 16:09:47 1850 16:10:20 I'm just wondering 16:10:25 what we could possibly have in common. 16:11:32 Dislike of Soviets? 16:12:12 I don't have a very strong opinion of Soviets 16:12:19 especially now that they don't technically exist. 16:12:58 it would be like asking "CakeProphet, what do you think about the Ottoman Turks?" 16:13:09 Grrr... 16:13:12 Ottomans... 16:14:41 CakeProphet, he's an agnostic anarchist who liked Dexter. She's a Catholic Republican who likes Degrassi. They fight crime. 16:15:25 Taneb, so you have thirty-seven times more people requesting your friendship than it is physically possible to know? 16:15:30 Yes 16:16:38 Oh, wait, the standard value of Dunbar's number is 150. 16:16:48 > 1850 / 150 16:16:49 12.333333333333334 16:16:57 > 1857 / 150 16:16:58 12.38 16:17:08 I make friends quickly 16:17:45 > (1857+178-146) / 150 16:17:46 12.593333333333334 16:17:53 FSVO 'friends'. 16:17:58 Two profiles, minus mutaul friends 16:18:06 s/au/ua/ 16:19:43 mu tau l 16:22:28 Phantom__Hoover: anarchist by principle. dirty capitalist pig by practice. I suppose we share that in common. 16:22:43 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:24:01 " 16:28:05 "IN PARTICULAR, THE CONCEPT OF ZERO WHICH ORIGINATES FROM THIS ERA IS COMPLETELY /BOGUS/ AND CORRUPTS OUR MINDS TO THIS DAY." 16:28:19 I tried to set my location to 'Carcosa' but it didn't let me. 16:31:04 Phantom__Hoover: it's because you're not fictional enough. 16:33:36 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 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:34:46 oh wait... 16:35:01 Why is that creepy? 16:35:19 Ooh, they added more relationship options. 16:35:38 Eh, I'll stick with 'Widowed'. 16:36:23 my argument goes something along the lines of "big brother dude. trapping personalities in cages, man" 16:36:37 Phantom__Hoover: Widowed? -_;; 16:38:03 I... she... elephants... 16:38:27 "And that's why I killed her..." 16:38:57 -!- Taneb has quit (Quit: Goodbye). 16:39:12 CakeProphet: is there a difference between the modern concept of zero and theirs or are you just poe's lawing? 16:39:48 quintopia: probably that last one. actually I don't know. I think it's pretty similar though. 16:40:12 http://en.wikipedia.org/wiki/0_(number)#History_of_zero 16:40:14 time to find out. 16:40:54 their treatment of division by zero is different. 16:41:06 http://en.wikipedia.org/wiki/0_(number)#Rules_of_Brahmagupta 16:43:43 hmmm that's a later work actually 16:43:50 http://en.wikipedia.org/wiki/Aryabhata#Place_value_system_and_zero 16:44:00 this is the earliest use of zero in that society. 16:44:34 but I would argue that previous civilizations had a "concept of zero" 16:45:18 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 silly greeks. so easily confused by such simple things. 16:52:19 They couldn't even build a steam engine when they'd already invented one!¬ 16:54:38 so now I'm trying to solve Goldbach's Conjecture. 16:54:58 because obviously I can solve it when it's been unsolved by brilliant mathematicians for centuries. 16:56:22 yeah 16:59:19 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'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:01:37 QED 17:02:23 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:32:36 Hello! 17:33:50 -!- MSleep has quit (Ping timeout: 260 seconds). 17:34:58 -!- Taneb|Hovercraft has joined. 17:35:26 hi 17:35:31 Hello 17:35:49 I think I could probably make people accounts on the mezzawiki 17:36:18 I don't particularly have a need for one, though 17:36:41 I will have so many accounts. 17:37:27 -!- Ngevd has joined. 17:37:44 Right, I'm now sitting somewhere with a marginally better wifi signal 17:38:17 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:42:11 I've forgotten the name of the The Sky at Night guy. 17:42:28 roger... moore? 17:42:33 Patrick. 17:42:34 no 17:42:36 that's james bond 17:42:42 same 17:42:43 person? 17:44:30 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 Yup, I can make accounts for mezzawiki 17:44:50 That... that's some serious talent. 17:45:32 Phantom__Hoover: Isn't he basically bigoted against everything and way far to the right :P 17:45:41 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 Phantom__Hoover: Sorry I must forgive him 17:45:51 Yeah, but c'mon, who cares, he's like a billion. 17:46:07 Maybe that's why he's an astronomer: when he was young it was current events. 17:46:48 http://www.weebls-stuff.com/songs/patrick+moore/ 17:46:48 Hmm, it looks like he's not all that bad apart from being a racist, sexist conservative. 17:46:58 Most billions are, like, at LEAST dinosaurs. 17:48:11 Oh man, Patrick Moore doing the xylophone (well, marimba) part in Spercussion Jungle. 17:48:16 MY LIFE WILL NEVER BE COMPLETE 17:48:27 Deewiant: This looks as old as the man himself 17:48:59 "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 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:49:00 OK 17:49:06 best 17:49:16 billionarian. 17:50:04 Anyone want a mezzawiki account? 17:50:09 Going cheap! 17:50:12 Yes, I'll have one. 17:50:27 Promise you won't spam! 17:50:41 I promise. 17:50:55 What do you want the username to be? 17:51:04 Phantom Hoover. 17:54:29 Remember, Phantom__Hoover, if you spam at ALL, I will BLOCK YOU. 17:54:42 where wiki 17:54:42 Ngevd: I'd like one called ~}wM��*���E�z, please. 17:55:01 Phantom__Hoover, mezzacotta.net/wiki 17:55:15 elliott... 17:55:16 No. 17:55:24 Ah, let me correct you Ngevd 17:55:27 Yes. 17:55:31 ^style 17:55:31 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 ^style iwcs 17:55:34 Selected style: iwcs (Irregular Webcomic scripts) 17:55:37 Ngevd: SEE WHAT I DID FOR YOU??? 17:55:39 fungot: Kill Ngevd. 17:55:39 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 Phantom__Hoover: That crank-call is at https://www.youtube.com/watch?v=vMOl_Jh8O_E 17:59:47 OMG 18:12:00 -!- tiffany has quit (Remote host closed the connection). 18:13:08 NO MY HOPES AND DREAMS: http://i.imgur.com/LxsmK.jpg 18:14:07 XD 18:14:27 -!- tiffany has joined. 18:14:47 I wonder if XP is ubiquitous enough to make Bliss have iconic status yet. 18:16:35 Well, if /I/ can recognise it... 18:17:25 "According to O'Rear, the photograph was not digitally enhanced or manipulated in any way." 18:17:31 Doooooon't belieeeeeeeve youuuuuuuuuu 18:20:23 elliott: I wouldn't even hesitate to call Bliss iconic. 18:21:03 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:46 is clippy iconic 18:21:48 Note to self: Relevant sprunge link in /query logs of elliott. 18:21:55 monqy: More like... BADconic........ 18:22:14 Note to self: Relevant sprunge link in /query logs of elliott. 18:22:16 (This is how I do branches.) 18:22:49 monqy: No, you don't get "iconic" just by people wanting to summon death. 18:23:13 Hmm 18:23:18 `run perl 'print 0 while 1' 18:23:21 Can't open perl script "print 0 while 1": No such file or directory 18:23:22 `run perl -e 'print 0 while 1' 18:23:24 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 18:23:32 `run cat /bin/cat 18:23:34 ​ELF... 18:23:38 `run cat /bin/ls 18:23:40 ​ELF... 18:23:46 What's up with that 18:23:48 Oh, nul bytes 18:23:52 I guess 18:24:10 Yaeh 18:24:12 Yeah 18:24:23 house elf 18:24:38 magic numbers are weird 18:25:26 TOTALMAGIC\0mimetype-goes-here\0 18:25:28 :P 18:29:16 Gregor: 18:29:17 2. 1.9.1: guessmime, revert behavior restored 18:29:17 revert now requires a specific revision to revert a merge, restoring the pre-1.9 behavior 18:29:17 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 Gregor: Set web.guessmime = True on the HackEgo fs repository, and voila 18:29:42 Pastes no longer make me want to die 18:29:51 Gregor: Although... 18:29:52 [[ 18:29:54 Before: hgweb made it possible to download file content with a content type 18:29:54 detected from the file extension. It would serve .html files as text/html and 18:29:54 could thus cause XSS vulnerabilities if the web site had any kind of session 18:29:54 authorization and the repository content wasn't fully trusted. 18:29:54 ]] 18:30:05 So, uhh... your call :P 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 elliott: Security shmeshmurity. 18:37:40 Gregor: You have 9 new messages. '/msg lambdabot @messages' to read them. 18:37:42 elliott: Fixt. 18:38:07 Gregor: Those messages detail a further improvement to the Transactional HackEgo design I thought of :P 18:38:15 Which is clearly not premature, seeing as you haven't even tested version 1 yet. 18:38:57 I'm not sure how that would work thru UMLBox. 18:39:04 http://codu.org/projects/hackbot/fshg/index.cgi/rev/7a6bfed30dd8 It didn't work :( 18:39:14 Gregor: strace would be run inside the jail, inside the limits 18:40:20 `run echo 'lolhtml>' | paste 18:40:21 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29287 18:40:27 Hm 18:40:30 Still text. 18:40:35 Well that's OHHHH extension. 18:40:40 Yeah, maybe it wants the HTML file or something. 18:40:41 `run echo 'lolhtml>' > foo.html && url foo.html 18:40:43 Yeah extension. 18:40:44 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/foo.html 18:40:49 Yup 18:40:50 Neat 18:40:53 Gregor: BTW you can fix it trivially 18:41:14 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:17 That's kinda ugly though. 18:41:28 At least you don't have to modify global hg, just the hgweb. 18:41:41 `rm foo.html 18:41:43 No output. 18:43:11 Gregor: Anyway, unless codu.org has sensitive cookies it doesn't matter much. 18:43:26 Security is for pussies. 18:44:10 Gregor: But TRANSACTIONS are for ACTIONS! 18:44:26 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 Does $x^2 + y^3 = z^4$ have solutions in prime numbers? 18:46:50 :t (-<<) 18:46:50 Mathematica says: no 18:46:51 Not in scope: `-<<' 18:47:00 :t (>>-) 18:47:01 forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b 18:50:05 -!- Taneb|Hovercraft has joined. 18:50:28 Do you know a proof that there are no solutions? 18:51:20 Mathematica said so 18:52:08 That isn't a very good proof. 18:52:46 Cite the source code to Mathematica :-) 18:53:25 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:28 er 18:53:31 In[1]:= Reduce[x^2+y^3==z^4&&PrimeQ[x],{x,y,z},Integers] 18:53:31 Out[1]= False 18:53:32 z^4 18:53:32 Do you even have the source code to Mathematica? 18:53:41 That's close enough 18:54:02 CakeProphet: Yes that is good. 18:54:06 One of them could be 2 18:54:20 -!- Taneb has quit (Ping timeout: 258 seconds). 18:54:26 er 18:54:27 yes 18:54:31 there's always that. 18:54:46 then just special case 2 18:54:48 O, yes, that 18:54:55 Deewiant: You need FullReduce (I think that's the one that does FLT) 18:55:01 Can you try the case where it is 2? 18:55:13 elliott: No such thing 18:55:32 Deewiant: SuperReduce? MegaReduce? It's something like that :P 18:55:49 2: the oddest prime of all. 18:55:50 elliott: Are you thinking of FullSimplify? 18:55:55 Deewiant: Possibly 18:57:36 It's just a better simplifier, I'm pretty sure Reduce does the most that anything does here 18:57:37 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 18:58:42 SUBTRACTION IS ANNOYING 18:58:49 if x=2, y>z 19:02:49 if y=2, x^2>z 19:04:22 `echo TRANJSNAKTACTIONALS! 19:04:24 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 Gregor: Huh, I didn't know hg hardlinked .hg on clone 19:11:10 I wonder whytf HackEgo is so slow then... 19:11:29 1) It has to copy the actual working directory. 2) Sandboxing lol 19:12:28 (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 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 Also it could interact terribly with flock and all that crap, but who cares just don't use thos. 19:13:06 those. 19:15:37 -!- sebbu has joined. 19:15:37 -!- sebbu has quit (Changing host). 19:15:37 -!- sebbu has joined. 19:15:41 zzo38: the cases where you have one x or y = 2 and z = 2 are false because even + odd != even 19:17:05 also 2 + 2 != odd so that's 3 out of 7 cases where you have a 2 somewhere. 19:17:40 parity is perhaps not the most elegant proof here. :p 19:17:59 -!- sebbu3 has quit (Read error: Connection reset by peer). 19:19:04 > 2^2 + 2^3 == 2^4 19:19:06 False 19:19:11 oh look that's 4 out of 7 now. 19:23:46 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:27 best proof method ever. 19:24:39 This is like the proof of the four-colour theorem. Or was it the Kepler conjecture. 19:24:51 Just keep brute-forcing special cases until there aren't any cases left. 19:27:05 -!- MSleep has joined. 19:27:22 That's 4-colour. 19:27:43 elliott: I'm all about those special cases. 19:27:56 monqy: THE WORLD IS TOTALLY FULL OF SPECIAL CASES. 19:28:17 even in methamethics 19:28:27 this is why i hate the world 19:29:06 monqy: if you take all of the cases 19:29:12 usually the special cases are larger in number. 19:29:15 than the general cases. 19:29:19 ergo, something significant. 19:29:33 -!- sebbu2 has joined. 19:29:33 -!- sebbu2 has quit (Changing host). 19:29:33 -!- sebbu2 has joined. 19:30:05 hate 19:30:37 monqy: (note: complete bullshit) 19:31:38 anyways I'm almost positive that adding 4 to the cube of a prime number will not yield the 4th power 19:31:45 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 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:04 > 37^2 + 8 - 37^4 19:33:04 -1872784 19:33:10 Q.E.D. 19:33:19 the odd^2 + odd^3 != 16 case can be bruteforced. 19:33:30 what are you even doing 19:33:34 monqy: MATHEMATICS 19:33:50 He's trying his hand at number theory despite barely being able to grasp calculus. 19:34:01 13:45 < zzo38> Does $x^2 + y^3 = z^4$ have solutions in prime numbers? 19:34:18 Phantom__Hoover: are you sure you're not confusing me with itidus? 19:34:25 `ps 19:34:26 `ps 19:34:26 `ps 19:34:26 `ps 19:34:26 `ps 19:34:26 `ps 19:34:28 `ps 19:34:30 `ps 19:34:31 elliott: ps 19:34:32 `ps 19:34:32 ps 19:34:34 `ps 19:34:36 sorry, had to cause a clash 19:34:36 CakeProphet: hi 19:34:38 elliott: hi 19:34:38 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 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:43 HackEgo: hi 19:34:46 oh RIHte Ghte umlboxe 19:34:46 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 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:00 oop. se 19:35:00 cat? 19:35:03 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 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 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 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 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 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 ais523\unfoog: good question 19:35:22 elliott: get a room. 19:35:43 ais523\unfoog: hmm, there isn't any cat executed 19:35:46 in the current sourec 19:35:50 so I'm not sure what's up there 19:36:08 `run ps 19:36:10 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 I was wondering ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19:36:49 vggggggggggggggggggrrrrrrfffrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 19:37:01 *if that would make a difference 19:37:25 I was wondering that ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19:37:27 vggggggggggggggggggrrrrrrfffrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr too. 19:37:31 s/that // 19:37:32 Do you know about Zen and do you know about motorcycle maintenance? 19:38:03 Gregor: Does it spam you with mail every time I add new commits to that pull request? 19:38:53 zzo38: are they one and the same 19:39:21 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 elliott: Doesn't seem to. 19:40:00 Gregor: Darn-- I mean oh good. 19:40:01 let rec zeros = 0 :: zeros 19:40:05 > fix (0:) 19:40:06 umm, that actually works in OCaml? 19:40:06 [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 ais523\unfoog: I doubt it... 19:40:11 I know it works in Haskell 19:40:17 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:20 zzo38: What link 19:40:21 but OCaml is strict, and yet I've just seen it in someone else's OCaml code 19:40:28 ais523\unfoog: A student's? 19:40:33 no, on a blog 19:40:37 Link? 19:40:44 http://alaska-kamtchatka.blogspot.com/2011/11/modular-semantics-for-brainfuck.html 19:41:08 elliott: The Hackage webpage for a Haskell library. 19:41:14 http://old.nabble.com/lazy-infinite-lists-td22922684.html 19:41:18 ais523\unfoog: I doubt it's valid 19:41:25 zzo38: What's a "document link" 19:41:29 # let rec zeros = 0 :: zeros in match zeros with | a::b::t -> (a,b) | _ -> (9,9) ;; 19:41:30 - : int * int = (0, 0) 19:41:33 err, what? 19:41:47 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 (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 ais523\unfoog: I have a solution to your confusion! Don't use OCaml. 19:42:12 but I like OCaml 19:42:20 Stop liking it, then :) 19:42:29 CakeProphet: oh no 19:42:31 It IS a workable solution, you have to admit.; 19:42:34 s/;// 19:42:42 # let rec zeros = 0 :: zeros ;; 19:42:43 elliott: Did you understand what I meant now? 19:42:44 val zeros : int list = 19:42:50 then it prints about 12 to 15 lines of zeros and a ... 19:43:01 zzo38: I already told you it takes up to 6 hours for Haddock documentation to be generated 19:43:15 It has already been more than 6 hours since I send that package. 19:43:18 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 zzo38: since you sent the latest version? anyway, it has to rebuild the documentation for every single package 19:43:36 so it almost certainly takes at least an hour to run, and probably much longer 19:43:37 I don't see any build failure log either 19:43:42 give it a day or so and check again 19:44:18 But it works on my computer! 19:44:39 So why doesn't it work on their computer? 19:45:11 zzo38: did I say it didn't? 19:45:20 like I said, every 6 hours it rebuilds the documentation of every single package 19:45:24 there are a few thousand 19:45:29 so it will take a while for it to reach your package 19:46:16 # type 'a l = Cons of ('a * 'a l) | Nil ;; 19:46:17 type 'a l = Cons of ('a * 'a l) | Nil 19:46:18 # let rec zeros = Cons (0, zeros) ;; 19:46:20 val zeros : int l = 19:46:20 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 elliott: and then it outputs the start of the structure 19:46:40 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 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 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 ais523\unfoog: I bet let rec just adds an implicit () 19:47:12 and, umm, lets it type like that anyway 19:47:20 and inserts () at non-RHS call points 19:47:22 elliott: then executing it would take forever 19:47:23 or 19:47:24 something 19:47:26 ais523\unfoog: no 19:47:31 it doesn't insert the () on the RHS of the let rec 19:47:35 it just unsafeCoerces it :P 19:47:38 totally plausible theory! 19:47:38 elliott: that /is/ being lazy 19:47:54 you've just basically defined lazy lambda 19:47:55 ais523\unfoog: except not type safe 19:47:59 and impossible 19:48:27 . 19:48:38 # let rec test = test ;; 19:48:40 Error: This kind of expression is not allowed as right-hand side of `let rec' 19:48:42 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:48:48 OK, that just made me even more confused 19:49:03 Sgeo|web: hi 19:49:13 # let rec test () = test () ;; 19:49:14 val test : unit -> 'a = 19:49:15 Hi 19:49:17 zzo38: or they could just rewrite hackage to not suck, which is what hackage 2.0 is :P 19:49:30 i dunno when they're planning to finish it though, i guess next year 19:49:36 unit -> 'a is /always/ bottom, right (exception or infinite loop)? 19:49:48 ais523\unfoog: it's not always bottom 19:49:50 Is ais523\unfoog learning OCaml? 19:49:53 it's either bottom or const bottom 19:50:02 oh, hmm 19:50:05 it can't be const bottom 19:50:06 ocaml doesn't really have bottoms like that 19:50:10 ais523\unfoog: yes it can 19:50:12 it can't be bottom, though 19:50:13 because 'a might not be a function type 19:50:21 ais523\unfoog: your definition of "it" is stupid 19:50:27 right, by "it" I meant the return value 19:50:30 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:31 :P 19:50:33 -!- sebbu has quit (Changing host). 19:50:33 -!- sebbu has joined. 19:50:37 which I guess makes some sense in a strict language 19:50:45 but definitely not in a lazy one, since you have proper _|_s 19:50:47 Sgeo|web: he already knows ocaml 19:51:00 Sgeo|web: I'm /teaching/ OCaml 19:51:08 but atm it's acting suspiciously like Haskell when it shouldn't be 19:51:11 so I'm experimenting 19:51:21 my fav. ocaml feature is -rectypes 19:51:29 what does that do? 19:51:34 allows recursive types 19:51:53 # let rec zeros() = 0 :: zeros() in zeros() ;; 19:51:55 Stack overflow during evaluation (looping recursion?). 19:52:13 conclusion: let rec is specialcased to lazify recursion when it's defining a non-function type 19:52:17 Maybe they should still have priorities though 19:52:31 zzo38: hackagedb 2.0 already works, so i doubt anyone wants to add new things to 1.0 19:52:31 that's consistent with all the experiments so far, I think 19:52:38 ais523\unfoog: but it /can't/, they'd have to build their runtime representation around that 19:52:45 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 elliott: well, the logical representation of an immutable infinite repeating lazy list is to loop the list round to point at /itself/ 19:53:39 and I know cyclic structures can exist in OCaml 19:53:44 perhaps that's the syntax for constructing them 19:54:09 ais523\unfoog: a cyclic structure makes a really awful brainfuck tape, if you mutate it 19:54:20 right, indeed 19:54:33 but the article there is using lists, not arrays 19:54:35 Did Ocaml not have polymorphic recursion or was that only SML? 19:54:42 and the lists contain integers, not integer references 19:54:46 so it's immutable by definition 19:54:51 Deewiant: "did"? 19:54:51 @src cycle 19:54:51 cycle [] = undefined 19:54:51 cycle xs = xs' where xs' = xs ++ xs' 19:55:00 also, what do you mean by polymorphic recursion? 19:55:14 you can certainly write polymorphic recursive functions, but that's so obvious I doubt it's what you mean 19:56:02 ais523\unfoog: OCaml still can't do concurrency at all, right? 19:56:02 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:14 elliott: it has a -threads param to the compiler 19:56:23 Deewiant: It seems OK to me, if you are referring to past experience with OCaml 19:56:27 that gives it a threading library, either VM-level or native-thread-level 19:56:48 ais523\unfoog: Hmm, a quick google strongly suggested they were purely green threads 19:56:49 Deewiant: to me you were implying OCaml no longer existed 19:57:01 Oh, hmm 19:57:02 heh 19:57:07 ais523\unfoog: Is it native threads but with a big gigantic lock on everything 19:57:17 Anyway hang on, I'm devising a Haskell example 19:57:17 elliott: perhaps; I wrote a build system mentioning it recently; but it was for someone else's code 19:57:27 Googling strongly suggests that it is 19:57:30 So, time to cash in 19:57:32 * elliott [laugh track] 19:57:58 elliott: how dare you ridicule a sacred American custom. 19:58:09 you have greatly disrespected my people. 19:58:50 --- &1 19:58:52 - *1 19:58:57 wait, that's not what I meant 19:59:31 --- &1 19:59:32 head: 0 19:59:34 tail: *1 19:59:35 there we go 19:59:40 YAML? 19:59:42 I suspect /that/'s what zeroes is, in OCAML 19:59:43 elliott: yep 19:59:45 *OCaml 19:59:55 ais523\unfoog: use common lisp notation, sheesh :P 19:59:57 turns out YAML can represent cyclic structures 20:00:00 #1#=(0 . #1#) 20:00:01 and I know 20:00:07 YAML is kind of ridiculously overengineered. 20:00:19 ais523\unfoog: Okay, this, basically: 20:00:20 zipWithFlipping :: (a -> b -> c) -> [a] -> [b] -> [c] 20:00:20 zipWithFlipping f (a:as) (b:bs) = f a b : zipWithFlipping (flip f) bs as 20:00:20 zipWithFlipping _ _ _ = [] 20:00:23 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 elliott: I have Anarchy Thoughts along those lines, or occasionally Cyclexa Thoughts 20:01:06 the two languages actually have some similarities 20:01:13 amazingly 20:01:40 Deewiant: f _ _ = ([], []); f (x:xs) (y:ys) = (x:xs', y:ys') where (xs',ys') = f ys xs? 20:01:45 (And then zipWith on that) 20:02:28 Umm, I'm not sure what you're asking 20:02:32 zipWithFlipping = zipWith 20:02:48 Oh, so it is 20:02:52 I missed the double-flip 20:03:00 Right 20:03:04 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 Note that without the type signature, the inferred type of zipWithFlipping would be (a -> a -> b) -> [a] -> [a] -> [b] 20:03:28 now I'm thinking about what an FPGA web server would be like 20:03:31 ais523\unfoog: (thinking inspired by seeing an article in the Monad.Reader where nginx's performance was beat with fairly simple Haskell) 20:03:34 and it's been done 20:03:58 it'd be great at static files, although if there were more simultaneous connections than it expected it'd have trouble 20:04:06 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 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 So, ha, take that operating systems 20:05:17 elliott: which syscall was it, in the Haskell case? 20:05:21 I doubt I'd beat TUX though... unless I had a really fancy IO subsystem 20:05:32 ais523\unfoog: oh, it was just talking in general, but lemme dig up the example 20:06:42 ais523\unfoog: "Warp uses the recv system call to receive an HTTP request and the writev system 20:06:42 call to send an HTTP header. When sending an HTTP body based on a file, it 20:06:42 uses the sendfile package which unnecessarily issues the lseek and stat system 20:06:42 calls in addition to sendfile. While one could believe that the sendfile system call 20:06:42 is fast thanks to its zero-copying approach, the package is actually much slower 20:06:43 than we expected. We implemented the simple-sendfile package which does not 20:06:45 use lseek and stat. The system calls that the package uses are only open, sendfile, 20:06:47 and close. Since sockets are marked non-blocking, sendfile returns EAGAIN if the 20:06:49 size of a file is large. In this case, the simple-sendfile package issues sendfile 20:06:51 again without lseek to send the rest of the file." 20:07:01 -!- ais523\unfoog has quit. 20:07:06 nice timing 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 ais523\unfoog: See logs :P 20:07:55 wow that was confusing 20:08:06 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 (Again, see logs for context :P) 20:09:47 elliott: heh, the stat/seek was what lead to the problem 20:10:08 -!- zzo38 has left. 20:10:17 ais523\unfoog: yep; I'm not sure it's necessarily a disk IO thing, though 20:10:26 if the request timing was on the same file 20:10:28 since it'd be in cache 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 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 obviously it'll already be done in chunks, so the behaviour will be vaguely reasonable 20:14:06 but I could do fancy DMAy scatter-gathery nonsense, perhaps 20:14:38 http://www.cs.bris.ac.uk/Teaching/Resources/COMS30122/haskell/calc/index.html 20:14:46 this is actually a nice hand-written parser actually. 20:14:55 (actally) 20:15:38 MSPA update for all who care 20:15:50 Unless you already know 20:15:57 Starts with Jane: Examine Fetch Modus 20:16:05 though I would have used operators for the binary Rule constructors, and State for the parse function that returns ([Token], [Tree]) 20:17:24 actually no a tuple is fine. 20:19:26 -!- zzo38 has joined. 20:23:03 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 elliott: right, I was simply saying for a handwritten parser it's very clearly written. 20:24:26 Sure 20:25:13 I have written parsers with Parsec and (>>=) is not needed often. 20:27:14 the <$> <* <*> *> <|> plumbing 20:27:51 Yes, <$> <* <*> *> <|> seem much more useful in parsers. Sometimes even <$ as well 20:28:23 I use <$> and <*> with monads often. 20:28:53 <$> is useful with any monads (even any functors) in general. 20:33:52 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 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 elliott, iirc you wanted to know more about dragons in Skyrim? 20:42:35 I battled quite a few now, I could tell you if you want 20:43:07 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 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 lots of animation bugs there 20:44:43 zzo38 was saying something relevant to my interests 20:44:47 :/ 20:44:55 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 elliott, I just can't see a non-magic user handling this at all 20:45:22 arrows don't seem to do much damage 20:45:38 I hear they're pretty easy to battle 20:45:42 Maybe you just suck :P 20:45:47 elliott, yep, with magic they are easy 20:45:56 elliott, on average difficulty 20:46:00 Sgeo|chromcrash: Please be more specific. 20:46:16 elliott, further training in bow related skills might make it easier for an archer 20:46:20 zzo38: Something about probability 20:46:37 Probability is among your interests? 20:46:39 What about probability? 20:47:00 elliott, but primarily non-ranged weapon users will run into some issues definitely 20:47:17 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 What does MCMC means? 20:47:53 Minecraftminecraft. 20:47:57 Monte Carlo Markov Chain 20:48:02 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:03 Or is it the other way around 20:48:06 Sgeo|chromcrash does things because people tell him to. 20:48:15 Vorpal: GGGGGGGPPPPPPUUUUU 20:48:52 elliott, Radeon HD 6850, 1 GB GDDR5 (or 1.5? forgot...) 20:49:19 Oh, Radeon. (It occurs to me that maybe my Linux-oriented anti-ATI bias is outdated.) 20:49:32 elliott, well, nvidia sucks quite a bit nowdays too 20:49:36 for newer GPUs 20:49:46 they suck about the same amount nowdays 20:49:48 nVidia sucks with Linux now? Boo 20:49:52 Vorpal: Sure, but at least it's not Catalyst. 20:49:55 Sgeo|chromcrash, well, for newer cards 20:50:14 elliott, true. Still the open drivers for radeon are way ahead of the ones for nvidia 20:50:22 Yeah, but nobody cares about that :P 20:50:26 not quite there yet for my card model 20:50:28 Is it necessary to fight the dragon to complete the game? 20:50:47 zzo38, plural I believe 20:51:03 and yes so far I needed to fight two of them to complete main story missions 20:51:16 OK 20:51:29 unless I completely missed out on something, I would say "yes, you have to do that" 20:51:29 you can certainly write polymorphic recursive functions, but that's so obvious I doubt it's what you mean 20:51:55 polymorphic recursion in haskell refers to a function directly or indirectly calling itself with a different type 20:52:18 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 From what I've seen, it has the advantage over Oblivion of not being hideous 20:52:45 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 it's useful which such datastructures as autobalanced trees: data Tree a = Leaf a | Tree (a,a) 20:52:58 don't expect to do that on ultra though 20:54:20 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 hmm, can you fit an atx mobo into an eatx case? 20:54:42 elliott, so far I have seen ones breathing fire and ones breathing ice. 20:54:54 dragons breathing dragons 20:55:04 elliott, /pretty/ sure atx is larger than eatx 20:55:11 no, eatx is extended atx? 20:55:13 maybe in a VERY big eatx case? 20:55:16 oh 20:55:18 yeah this thing fits atx 20:55:22 which one is the smaller one? 20:55:23 -!- MSleep has changed nick to MDude. 20:55:30 elliott, also why do you want an eatx case? 20:55:51 elliott, I assume you are building yourself a new computer? 20:56:05 zzo38: What package does that probability stuff come from, if any? 20:56:05 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:40 HOW CAN A CASE COST TWENTY POUNDS MORE THAN A CPU 20:58:56 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:31 Phantom__Hoover, heh 20:59:37 Phantom__Hoover, what sort of case is that? 20:59:56 One born of elliott failing to understand the site's list system. 21:00:18 I'm more used to picking parts from sites I can't actually buy things from. 21:00:28 Vorpal: Uh, I read that it's crap at threading (= 2 threads only). 21:01:20 Better than DF. 21:01:43 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 elliott, strange then. Or I guess process explorer shouldn't be trusted 21:01:57 (no I haven't even tried to use wine for it) 21:02:14 Vorpal: But yeah, I'll go for either an i7 or a Phenom II x6, most likely 21:02:19 Probably i7 21:02:22 So I should be fine on that front 21:02:31 3.4 GHz is ridiculous though, you're just wasting power :P 21:02:39 zzo38: The docs aren't showing up on Hackage 21:02:50 elliott, well they didn't have a 3.3 GHz option for i7. They only have that for i5 21:02:51 elliott, unless you're playing DF. 21:02:55 elliott: Why's that wasting power 21:03:01 elliott, that i5 should be enough to play it though 21:03:13 elliott, also, dynamic clock frequency 21:03:13 Deewiant: Because CPU speed is roughly irrelevant for everything compared to cores nowadays above like 2.8 GHz? 21:03:16 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 elliott, it is awesome for df 21:03:26 :P 21:03:28 elliott: Why's that? 21:03:39 zzo38: Ah, ok 21:03:53 elliott, anyway they have a 3.5 GHz version too 21:03:57 zzo38: That's kind of annoying to deal with though, I wonder why that is 21:04:04 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 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 Call perhaps, but it's only going to drop 21:05:54 Sgeo|chromcrash: http://sprunge.us/NCZE 21:06:23 ty 21:06:48 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 What's the difference between mpappend and mappend supposed to be? 21:07:31 Sgeo|chromcrash: "That is, it is a monoid that the original monoid is distributive over." 21:07:38 Sgeo|chromcrash: mappend distributes over mpappend 21:07:48 (For example, multiplication distributes over addition) 21:10:14 * Sgeo|chromcrash 's head spins 21:10:47 You would use WriterT (Product x) [] for probability distributions, where x should be Double or Rational depending what you need 21:10:51 distribution: confusing stuff 21:12:52 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 (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:25 :t sequence 21:14:26 forall (m :: * -> *) a. (Monad m) => [m a] -> m [a] 21:14:48 sequence is almost sort of kind of distribution. 21:15:28 (There might also be monads other than [] that can be used, although the functions I have don't work with others) 21:15:41 well, the type of sequence is like distribution 21:15:50 I suppose the program is the proof. :> 21:16:38 -!- sebbu2 has joined. 21:16:38 -!- sebbu2 has quit (Changing host). 21:16:38 -!- sebbu2 has joined. 21:17:08 Is it possible to do silly nested pattern matching like xs@(a:b:ys@(w:x:[]))? 21:17:21 In Haskell 21:17:28 That's not silly, and yes 21:17:40 Oh cool 21:17:45 That makes this soo much easier 21:18:05 Hang on, wait 21:18:08 > let f xs@(a:b:ys@(w:x:[])) = (xs,a,b,ys,w,x) in f [1,2,3,4] 21:18:09 ([1,2,3,4],1,2,[3,4],3,4) 21:18:28 Brilliant 21:18:49 @hoogle m [a] -> [m a] 21:18:49 Data.List transpose :: [[a]] -> [[a]] 21:18:49 Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a) 21:18:49 Data.List inits :: [a] -> [[a]] 21:18:54 That is EXACTLY what I wanted, Deewiant 21:18:56 -!- sebbu3 has joined. 21:18:56 Thank you 21:18:56 -!- sebbu3 has quit (Changing host). 21:18:56 -!- sebbu3 has joined. 21:19:20 @hoogle (Monad m) => m [a] -> [m a] 21:19:20 -!- sebbu has quit (Ping timeout: 240 seconds). 21:19:20 Data.List transpose :: [[a]] -> [[a]] 21:19:21 Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a) 21:19:21 Control.Monad join :: Monad m => m (m a) -> m a 21:19:23 meh 21:19:57 Wait, I didn't need it 21:20:35 CakeProphet: You can't pull it out of the monad, it'd have to be m a -> m [m a] 21:20:42 Er, m [a] -> m [m a] 21:21:04 @hoogle m [a] 21:21:04 Control.Monad.Trans.List runListT :: ListT m a -> m [a] 21:21:04 Control.Monad.List runListT :: ListT a -> m [a] 21:21:04 Control.Applicative many :: Alternative f => f a -> f [a] 21:21:05 er 21:21:08 @hoogle m [a] -> m [m a] 21:21:09 Data.List transpose :: [[a]] -> [[a]] 21:21:09 Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a) 21:21:09 Data.List inits :: [a] -> [[a]] 21:21:13 ?ty fmap (map return) 21:21:13 :( 21:21:13 forall a (m :: * -> *) (f :: * -> *). (Monad m, Functor f) => f [a] -> f [m a] 21:21:20 -!- sebbu2 has quit (Ping timeout: 240 seconds). 21:21:32 Deewiant: essentially. 21:22:00 I wonder what kind of formulas Python programs are proving. 21:22:00 ?ty liftM (map return) :: Monad m => m [a] -> m [m a] 21:22:01 forall (m :: * -> *) a. (Monad m) => m [a] -> m [m a] 21:22:30 -!- copumpkin has quit (Remote host closed the connection). 21:23:52 I wish quasiquoters nested. 21:24:42 me too :( 21:24:50 i also wish (pattern) guards nested 21:25:02 and uh 21:25:04 other things?? 21:25:41 I wish nests nested. 21:26:07 and numbers. 21:26:08 and strings. 21:26:15 there is no such thing as too much nesting. 21:26:49 12(3(47))4 best nested number 21:26:54 bad number 21:27:05 s{lolololols{rofl}} best nested string 21:27:06 and I can't trust you with strings 21:27:14 oh that's a bad string 21:27:18 but not what I was expecting 21:29:04 data NChar = NCharCharLol Char | NCharStringLol String 21:29:09 type NString = [NChar] 21:29:22 need to work on the naming scehems 21:29:53 or just use Either 21:30:05 data Bad 21:30:55 just got an awesome idea for an esolang 21:31:04 an extremely difficult to parse esolang. :) 21:31:17 so, for example 21:31:21 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 instead of a circumfix string quote token, it uses a postfix token. 21:31:35 this is a string here " 21:31:53 Where do I put modules that I want to install? 21:32:07 And unfortunately not xs@[a,b,ys@{w,x}] or something 21:33:59 -!- pkzip has joined. 21:34:49 Ziim looks like something refreshingly new 21:37:35 hmmm, also 21:39:02 control structures appear at the end of their blocks of code, allowing arbitrary delimers. 21:39:09 *delimiters 21:39:20 why does my OS keeps running this IRC program automatically ? 21:39:32 I am using Pidgin 21:39:41 as the IRC client 21:42:00 pkzip: It is because you can never escape. 21:42:07 : ) 21:42:11 *MWAHAHAHAHAHAHAHAHAHAHA* 21:42:15 no escape from #esoteric ? 21:42:29 Deewiant: That's Timwi for you! Great languages, agonising IRC experience. 21:42:35 I'm not a number.. 21:42:43 I'm a free software !! 21:42:50 ( prisioner quote ) 21:43:04 ( well except that last bit ) 21:43:05 i don't think that's a prisoner quote 21:43:13 You can Checkout any time you like, but you can never Tree? (There is no esolang called Leaf, this is bad.) 21:43:21 ~= ( not exactly ) 21:43:26 pkzip: you can http://www.esolangs.org/wiki/Checkout any time you like, though... 21:43:50 TImwi? 21:44:10 Oh, an esolanger 21:44:15 `quote Publisher 21:44:17 183) ais523, what is "MS Publisher"? Vorpal, you don't want to know. Vorpal: be glad that you don't know the answer Vorpal: "horrible" 21:44:24 s/MS Publisher/Timwi/ 21:44:33 Phantom__Hoover: damn you, oh wait scratch that ais523 might ban me 21:44:51 * Sgeo|chromcrash wants to know! 21:45:18 Timwi isn't nearly as bad as MS Publisher 21:45:27 few things are, to be fair 21:46:53 The Holocaust? 21:46:55 I often get banned from sexchat sites 21:47:07 darn, I got banned from all of 'em almost 21:47:20 all the ones I've been in 21:47:25 and I change IPs !! 21:47:38 even my ISP changes locations once in a while 21:47:56 It's poetry. 21:47:57 and its not the client side 21:48:18 cause I know my PC 21:49:10 hardware to software 21:49:18 internals 21:50:32 well #esoteric is only very occasionally a sexchat site. 21:50:44 so maybe you can escape a ban. 21:51:03 I've known of IRC bans since the early 90s 21:51:06 As an asexual, I don't go on sexchat sites very often 21:51:06 Less occasionally if you're gay. 21:51:31 I used to give them mostly, and rarely had to escape them 21:51:35 wait, does less occasionally mean more or less often 21:51:45 More often. 21:51:57 I often changed IPs cause I was on a dail-up 21:52:17 It costed a few cents to change IPs 21:52:37 I could even change it by a wide range 21:52:53 and started dreaming of what is now know as 21:53:10 the IP 'stealther' 21:53:27 * CakeProphet just watched [S] Cascade again 21:53:27 or the digital modem (router) 21:53:28 so good. 21:53:31 i suggest registering your nick so you can be banned consistently. 21:54:04 I don't think it was possible, oh wait they had Profiles so yea, maybe 21:54:06 so much more convenient. 21:54:27 I am being blocked by somekind of an ISP ban 21:54:40 I never bothered to check what it was exactly 21:54:54 I am used to be welcome on any digital media 21:55:02 welcomed 21:55:10 welcome pkzip 21:56:30 actually pkzip was my old nickname on the IRCs 21:56:46 I need to find a new one 21:56:54 I quite fit in here 21:57:19 I like assembly, compilers, computer languages, brainf*ck and forth 21:57:42 I used to work on virii and protection/security software 21:57:49 brainfuck!? 21:57:50 though noone heared of me 21:57:52 Get uot! 21:57:54 :P 21:57:57 to truly fit in, you must also hate brainfuck derivatives and lolcode. 21:58:10 I have a version of it which is really tiny 21:58:23 I dream of the minimal compiler at nights 21:58:37 But I want the easy of a language 21:58:55 so no 2-word or 3-word compilers for me (unless its HEX) 21:59:29 easy: sub that with ease 21:59:41 pkzip: *viruses 22:00:11 I thought of some new ideas that appeared only years later in the virii scene 22:00:21 at least 2 ideas 22:00:22 the latin virus is an uncountable noun, so any weird plural is suspect. 22:00:47 and everyone here is a language pedant. 22:01:20 you can't hate BF, just because it is popular and starting to be taken for a real language 22:01:43 I have seen good native compilers for it 22:01:51 pkzip: i didn't say hate brainfuck, i said hate brainfuck _derivatives_. very different thing. 22:01:58 including some great ones which only lately appeared 22:02:24 I like my own derivative (I call it a traslator) 22:02:46 Its not so far apart from the original, its actually backward compatible. 22:03:04 Can someone vouch that elliott's list of parts is likely to be trustworthy? 22:03:06 pkzip: really? is it backwards compatible with characters that aren't ,.[]<>+- being comments? 22:03:09 that's part of bf 22:03:19 Phantom__Hoover: bsmntbombdood isn't here but I actually sent you the list of parts for a bomb. 22:03:38 elliott, I thought it slightly exceeded his specs. 22:03:48 Phantom__Hoover: Hm? 22:04:01 * oerjan waves at the CIA 22:04:16 elliott, didn't he have 8GB of RAM? 22:04:22 Phantom__Hoover: 16. 22:04:25 I don't remember saying that 22:04:27 Aww. 22:04:43 Phantom__Hoover: His was pre-Sandy Bridge i7, though, and ISTR Sandy Bridge was a pretty big improvement. 22:04:49 Phantom__Hoover: Also he has a really crappy passively-cooled Nvidia card. 22:04:55 Or had. 22:05:01 It uses the Char zero 22:05:13 the 0 ascii code 22:05:36 for assembly meno 22:05:45 (code) 22:05:48 entry 22:06:08 so I guess so 22:06:21 but your gonna hate the fact it has I/O 22:06:58 It uses one letter for basic INPUT and another for OUTPUT 22:07:29 why are you so pedantic about BF comments ? 22:07:49 what does this " any letter is a comment " do for BF ? 22:07:59 oh wait 22:08:13 the input is " ? " and output is " ! " 22:08:21 so its not a letter 22:08:33 Hello word : 22:08:41 world: 22:08:47 Hi World ! 22:09:21 the space is ascii 0 or 255 ( I don't remember exactly ) 22:10:02 Its wasn't published in esoteric 22:10:11 but I see ais523 in here .. 22:10:29 ? 22:11:05 * pkzip waves 22:11:35 guess I better not mention a brainfuck compiler which isn't 100% pure 22:11:48 (but backward compatible) 22:12:26 and I think the Output word was " . " ( as in original BF ) 22:12:52 actually I know for sure its " . ", I think slowly after 12am 22:13:42 ...Space should be 32, I think 22:14:05 pkzip: a bf compiler is probably pure, or you'll have side-effects you don't want clogging things up 22:14:15 BFProg -> AsmProg or whatever seems reasonable to me 22:14:28 I use char 255 instead of space 22:14:47 (as a code word) 22:15:27 I also use char 0 but I doubt if most editors wud display it as SPACE 22:16:07 I have a blog I've written for it, for awhile it was #1 on google for BF+Forth searches 22:16:21 BF+Forth+x86 22:16:51 now its #200 (I doubt google even shows it) 22:17:03 #200 or so 22:17:57 monqy: starting to agree that idiom record notation is the best idea 22:18:42 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 relatively clean I mean 22:19:10 I'm thinking of creating a MACHINE-READABLE HUMAN-WRITABLE NOTATION FOR ESOTERIC PROGRAMMING LANGUAGES 22:19:16 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:16 which is 22:19:21 (a) ugly and duplicatey 22:19:25 (b) not done for applicatives 22:19:28 (even though it can be done restrictedly) 22:19:31 hmmmmm 22:19:40 Because I don't like Yoob 22:21:09 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:12 but it looks pretty weird either way 22:21:15 Is there anyone on #esoteric which isn't into low-level (native) code ? 22:21:18 which do you think is more readable? 22:21:33 native code isn't /properly/ low-level ;) 22:21:37 pkzip: me 22:21:52 you don't know x86 code ? 22:22:09 i've never learned x86 assembly, no 22:22:34 oerjan: I suspect only a few people actually know all of modern x86 asm, it has weird corners that are rarely used 22:22:45 * ais523\unfoog vaguely wonders htf x86 won 22:22:49 =-O 22:22:50 i think i _may_ have written something like a hello world way back in the 80s 22:22:55 so shocked 22:23:44 but then, i'm nowhere near a professional programmer 22:23:59 ais523\unfoog: all lowercase is more readable, definitely 22:24:10 yep, I think so 22:24:15 I'm glad I had the setting handy in my browser 22:24:30 (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 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 Some other CPUs have nice assembly languages though, but I can't code in 'em. 22:24:54 I first learnt 6502 asm 22:25:02 which is not the best asm in the world, but is way better than x86's 22:25:07 Intel x86 on MacroASM was fun in the 90s and its fun now 22:25:27 Arm ASM is said to be nice 22:25:38 PDP11 is a legand 22:25:57 both are near perfect 22:26:14 or all 3 22:26:55 pkzip: Depends what your definition of fun is. Also your definition of perfect. 22:26:56 I think of something like Redcode when I think in terms of a good asm 22:26:59 i _did_ learn some 6502 asm way back 22:27:06 (even though it isn't actually an asm for an actual processor) 22:27:39 Phantom__Hoover, today was the day with the most changes on mezzawiki for about a year 22:28:08 very sketchily. i realized years later that the manual i was reading was missing pages of instructions. 22:28:10 It was fun when watching The Jerusalem Virus do its 'thing' 22:28:23 Or 100 Years virus ( aka 4K ) 22:28:35 Or writing a virii noone cud see or bypass 22:29:05 The 100 Years Virus ( more known as 4 K ) 22:29:53 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:29:58 pkzip: *viruses 22:30:00 linking this in case no one has yet: http://alaska-kamtchatka.blogspot.com/2011/11/modular-semantics-for-brainfuck.html 22:30:11 ^style europarl 22:30:11 Selected style: europarl (European Parliament speeches during approx. 1996-2006) 22:30:16 fungot: your honor, this is michael jacobs from morrison & foerster. 22:30:16 elliott: mr president, i too welcome the decision by the united states 22:30:17 awesome: doing a Google Search during a court hearing and telling the judge what the hit was 22:30:31 it was a telephone hearing, so people couldn't sensibly stop him 22:30:34 ais523\unfoog: please please tell me it was Oracle who did that, while fighting Google 22:30:38 yes, it was 22:30:43 ais523\unfoog: :D 22:30:47 google should have sued :P 22:30:48 I think; it gets hard to remember which lawyer is on which side 22:32:08 quite a few people were getting confused, actually, as it was a conference telephone call 22:32:18 people had to keep saying who they were when they started talking 22:32:28 what does this lawsuit has to do with low-level programming ? 22:32:38 or BF ? 22:32:39 why do we have to talk about low-level programming? 22:32:42 or BF? 22:33:05 Cause BF is now taken as a good example of a basic compiler 22:33:13 i don't understand 22:33:23 No reason 22:33:23 this channel is for all topics of interest to those interested in esoteric computing 22:33:34 and BF is nice, but a bit atypical as esolangs go 22:33:36 it even has numbers 22:33:50 * ais523\unfoog thinks languages are typically inferior if you can't implement numbers in them from scratch 22:34:03 isn't BF the bread and butter of esolang ? 22:34:08 Nope 22:34:14 isn't it a classic ? 22:34:24 Classic, yes 22:34:26 it is indeed a classic, but there are a bunch of other languages around 22:34:29 Standard, by no means no 22:34:33 Look at Piet 22:34:35 Or Befunge 22:34:40 Or Intercal 22:34:45 Or Underload 22:34:48 BF is much more similar to mainstream languages than most esolangs 22:34:53 intercal, brainfuck, befunge, underload, unlambda 22:34:56 are the classics 22:35:05 I always use Piet because I like Piet 22:35:08 ok underload is somewhat of a modern classic :) 22:35:09 But it's not a classic 22:35:47 I like languages which are minimal and 'easy' (in the old BASIC 'nostalgic' style) 22:36:05 BF actually fits a purpose 22:36:19 hmm, can I get you interested in Forth? 22:36:32 I *LOVE* Forth ! 22:36:34 it's a practical language, but an interesting one, not that similar to mainstream langs 22:36:40 I thought you would, somehow 22:36:43 I use Zen Forth 22:36:47 My own version of it 22:36:58 or revised version of it 22:37:12 A Minimal MacroASM Forth 22:37:32 I want to add Lisp(y) words to it 22:37:40 -!- hagb4rd has quit (Quit: hagb4rd). 22:37:49 And write DOS virii in it ! 22:38:04 Stop saying "virii" 22:38:14 -!- pkzip has changed nick to QuickDirtyOS. 22:38:28 DOS viruses don't run all that well on modern systems 22:38:32 I dunno why they call it like that 22:38:40 on WinXP they do 22:38:43 nobody calls it virii 22:38:52 QuickDirtyOS: err, WinXP's DOS is just an emulation layer 22:38:57 I've seen it on hackers sites 22:39:00 I suppose they run about as well as Windows viruses under Wine 22:39:01 If you want to be all pedantic and latin, it'd just be viri 22:39:30 WinXP Dos is as good as Win2000 (it was also emulated under Win2000) 22:39:36 But even then you'd be wrong 22:39:43 It's like saying "oxygens" 22:40:06 I named the first virus a " Logic bomb " 22:40:11 I live in israel 22:40:17 Guess what 22:40:17 Ngevd: actually, it'd depend on where in the sentence it was 22:40:24 I was a kid back than 22:40:30 "virus" doesn't have a plural in Latin 22:40:35 "DOS virii" was the subject of that sentence, so it should be "DOS viros", I think 22:40:36 prob. was near Jerusalem 22:40:40 perhaps -es, I haven't done Latin for ages 22:40:44 cause it WAS the Jerusalem viri 22:40:57 I didn't know what to call it 22:41:09 -!- calamari has joined. 22:41:11 so for me, a "Logic bomb" 22:41:18 ais523\unfoog, you mean "object" 22:41:20 your "viri" 22:41:31 Ngevd: right, indeed 22:41:33 *object 22:41:34 the singular is definitely virus 22:41:42 We can agree on that, elliott 22:41:45 I like virus better 22:41:48 Some old IBM BIOS had ROM BASIC. I would like to have the PC BIOS with Forth. 22:41:55 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:02 They did that with Linux 22:42:13 Why won't you buy a SSD 22:42:27 and put ForthOS in the Boot sector ? 22:42:33 ais523\unfoog, because, to paraphrase Henry Beard, that'd be like playing football with ice-skates on 22:42:38 ais523\unfoog: i was responding to: "your "viri"" 22:42:45 we should just talk in latin. 22:42:59 Ngevd: what if you were in a skating rink at the time? 22:42:59 ita vero 22:43:04 I said I like virus better too 22:43:10 it'd probably work better with the skates than without 22:43:14 I think; I'm not an expert on this 22:43:23 I wrote viri to be 'exact' 22:43:55 What is a SSD? 22:44:02 pluralis in lingua Anglica est "viruses" 22:44:04 A Flash Disk 22:44:19 So the Flash BIOS wud load Forth from a Flash Device. 22:44:32 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 `echo AM I TRANSACTIONAL YET?! 22:44:35 AM I TRANSACTIONAL YET?! 22:44:36 U heard of the LinuxBIOS btw ? 22:44:39 -!- aloril has quit (Ping timeout: 240 seconds). 22:44:43 you mean coreboot? 22:44:52 I have heard of the LinuxBIOS/Coreboot 22:44:55 yea 22:45:06 But as far as I know it is not a proper PC BIOS 22:45:08 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 it doesn't support many motherboards to my knowledge. 22:45:22 Linux is like the most quirky of all Forths, it has its own OS 22:45:39 it's also not a forth 22:45:47 *+ of 2nd declination 22:45:52 bash can be turned into one REAL fast 22:46:02 or any of the shells 22:46:03 so can x86 22:46:04 Can we pretend it's in 4th to make our lives easier 22:46:09 does that make assembly a forth? :P 22:46:18 yea 22:46:29 assembly and forth mix in my dreams 22:46:32 also on my PC 22:46:42 `addquote Linux is like the most quirky of all Forths, it has its own OS 22:46:43 I use forth words in MacroASM 22:46:44 ​/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:46:54 err, is that /meant/ to happen? 22:46:57 yes 22:47:03 `quote 22:47:05 560) I think it's fizzie against everyone atm AND EVERYONE IS WINNING EXCEPT FIZZIE 22:47:18 someone readonlied the quotes file? 22:47:31 no, -xed addquote 22:47:38 `run chmod a+x /hackenv/bin/addquote 22:47:40 No output. 22:47:43 `addquote Linux is like the most quirky of all Forths, it has its own OS 22:47:45 No output. 22:47:51 uh oh 22:47:52 umm 22:47:53 `quote Forth 22:47:55 715) Linux is like the most quirky of all Forths, it has its own OS 22:47:58 ais523\unfoog: please don't try patching things up when it's broken 22:47:58 `help 22:48:00 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 22:48:07 elliott: oh, I assumed that someone had -xed it as a prank 22:48:08 I mean, without understanding what's going on :P 22:48:09 I like the number 715 22:48:15 `quote 714 22:48:18 sounds like a hawkins Loc number 22:48:18 714) * Sgeo|web wants to see elliott be wrong about something Sgeo|web: That literally never happens. Sgeo|web: There you go. A great example. 22:48:21 `run chmod a-x /hackenv/bin/addquote 22:48:22 I think I just broke adqduote 22:48:24 No output. 22:48:26 ais523\unfoog: hey, stop 22:48:30 elliott: I'm putting it back! 22:48:41 http://codu.org/projects/hackbot/fshg/index.cgi/rev/bbaa4fa982d2 22:48:43 aha 22:48:47 `run chmod +x bin/addquote 22:48:49 No output. 22:48:51 Keep my name on it: 22:48:54 Its Amit. 22:48:58 `delquote 715 22:49:01 ​*poof* Linux is like the most quirky of all Forths, it has its own OS 22:49:09 oh wait 22:49:14 I made a bad modification to addquote 22:49:24 `run echo 'echo $(qc)") $1"' >>bin/addquote 22:49:27 No output. 22:49:31 `addquote Linux is like the most quirky of all Forths, it has its own OS 22:49:33 715 quotes) Linux is like the most quirky of all Forths, it has its own OS 22:49:36 oops 22:49:41 `revert -3 22:49:42 Done. 22:49:47 `run echo 'echo $(qc | cut -d' ' -f1)") $1"' >>bin/addquote 22:49:49 No output. 22:50:02 `addquote Linux is like the most quirky of all Forths, it has its own OS 22:50:02 Forth guys are gonna love me 22:50:10 For this 22:50:11 zzo? 22:50:14 ais523\unfoog: tada... hurry up, dammit, HackEgo 22:50:15 elliott: you're just giving -d, not -d' ', as an argument to cut there 22:50:20 ugh 22:50:21 `revert 22:50:23 Done. 22:50:29 QuickDirtyOS: For what? 22:50:31 because apostrophes don't nest 22:50:33 `run echo 'echo $(qc | cut -d'"' '"' -f1)") $1"' >>bin/addquote 22:50:35 No output. 22:50:36 this quote 22:50:38 `addquote Linux is like the most quirky of all Forths, it has its own OS 22:50:47 ais523\unfoog: have I mentioned that @ doesn't have that problem? 22:50:57 elliott: not in programs, obviously 22:50:59 does @ have ANY problems 22:51:12 what about when typing programs; how does the parser reify the keystrokes/mousestrokes into a parsetree? 22:51:24 Yes. Its problem is that there is no such things, as far as I can tell 22:51:28 @ doesn't have programs! but ok, I'll dignify your EVIL QUESTION with a response 22:51:34 ais523\unfoog: excellently. next question! 22:51:43 elliott: err, functions 22:51:45 http://codu.org/projects/hackbot/fshg/index.cgi/rev/af6a8d1f2673 ;; hmm, why isn't this working? 22:51:48 `addquote Linux is like the most quirky of all Forths, it has its own OS 22:51:50 715) Linux is like the most quirky of all Forths, it has its own OS 22:51:51 too many space 22:51:54 ais523\unfoog: not all values are functions! 22:52:25 elliott: right; but I was thinking about writing functions in particular in my question 22:52:27 ais523\unfoog: admittedly, as @ has no globals, most /useful/ "top-level" values are 22:52:37 ais523\unfoog: I doubt you mean function 22:52:41 you mean program-analogue 22:52:49 for instance, a list of all prime numbers would count 22:52:54 since it's analoguous to a program printing every prime number 22:52:58 but that's not a function 22:53:10 `log How did you work out where I live? 22:53:32 elliott: hmm 22:53:35 2011-11-12.txt:22:53:10: `log How did you work out where I live? 22:53:44 `log where I live? 22:53:47 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 2007-12-28.txt:22:20:17: where I live there's a band called fokoffpolisikar (at least I think that's how it's spelled) 22:54:02 ais523\unfoog: yes (it doesn't "do" the computation, it just /is/ the result) 22:54:04 Phantom__Hoover: s/?/\?/ 22:54:09 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 because there are no globals 22:54:32 which isn't... /strictly/ true 22:54:35 but it's almost true 22:54:36 elliott: wouldn't it make more sense for them to take a function that resolved hashes into modules as an argument? 22:54:49 ais523\unfoog: wow! why would you give every program root permissions? 22:55:22 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 elliott: well, it wouldn't necessarily give them modules they didn't deserve 22:55:30 also, it'd tie functionality to implementations, not APIs... 22:55:33 Is it supposed to be anything similar to a Haskell program? 22:55:37 but hmm, OK 22:55:39 zzo38: sort of, yes 22:55:42 I assumed APIs would have hashes too 22:55:54 so that you could refer to them uniquely 22:55:58 ais523\unfoog: they do; an API is identified by a module name, a hash, and a type signature 22:56:18 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 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 ais523\unfoog: for instance, the user must not constantly be bugged with the nested hierarchy; navigation should be /largely/ linear 22:57:26 ais523\unfoog: reason: try navigating a heavily-nested TeXmacs expression 22:57:27 yep 22:57:31 it's super annoying 22:57:50 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 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 i.e. backwards and forwards in depth-first traversal order 22:58:07 for instance, "if" should probably pregenerate the then/else keywords with appropriate indentation, and place a hole there 22:58:11 but not fill the hole in 22:58:25 yep, just like many Java IDEs do already 22:58:51 ais523\unfoog: yes (except they just leave blank space rather than a hole) 22:59:00 the nice thing about holes are, you can ask the computer: what type is expected here? 22:59:10 it can hoogle-equivalent for functions that could help you get to that type 22:59:11 etc. 22:59:27 I remember something leaving -shaped holes, but I can't remember what it was 23:00:01 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 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 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 rather than risky textual manipulation 23:00:47 yep 23:00:48 there's semantic /meaning/ to extracting out a hole as a parameter 23:01:01 my PhD is arguably on this subject 23:01:27 (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 compiling is the kind of refactoring that makes your code worse :) 23:01:57 sounds like a witty joke 23:02:13 hi 23:02:20 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:18 shouldn't the GC be built into the @lang interp? 23:03:21 the problem is that it has to map to modern exposed assembly as closely as possible while being completely safe... 23:03:25 ais523\unfoog: no interp, compiler 23:03:27 it's part of the RTS 23:03:31 but what is the RTS written in? 23:03:34 ah, right 23:03:39 I was assuming there was some sort of VM involved 23:03:42 no point writing it in assembly, I'd have to rewrite the GC for every platform, which is pointless 23:03:47 that could be written in something entirely different 23:03:51 ais523\unfoog: well, VM, sufficiently heavy RTS, what's the difference 23:04:04 perhaps LLVM would be a practical example 23:04:05 but, yeah, my intent is to minimise platform-specific code 23:04:07 Use a minimal Forth 23:04:13 Or a minimal C 23:04:16 instead 23:04:18 what is it with you and forth 23:04:19 it does what you want moderately accurately and isn't completely awful 23:04:24 C isn't an option 23:04:31 ais523\unfoog: unfortunately, no; LLVM isn't safe 23:04:32 "c but better" 23:04:37 you can write an LLVM program that segfaults 23:04:38 Forth code is the same as machine code 23:04:42 only better 23:04:44 (adding runtime checks to every instruction is not acceptable) 23:04:47 QuickDirtyOS: better and slower 23:04:54 not slower 23:04:56 if its native 23:04:59 ! 23:05:02 duh. 23:05:11 Make a safe program similar to LLVM 23:05:13 but of course. 23:05:38 Or, possibly, similar to Haskell too 23:05:50 -!- Ngevd has quit (Ping timeout: 245 seconds). 23:05:55 ais523\unfoog: anyway, "applying the object-capability model to x86-64" sounds like a parody Ph.D. title 23:05:59 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 that probably applies to most papers that could come out of @... 23:06:27 ais523\unfoog: no: it only has the perms to do GC if it's passed the heap 23:06:40 assembly also isn't a dead-end, you can translate it just as well as Forth code. 23:06:45 hmm, so it's something more like NaCl 23:06:46 ais523\unfoog: consider a very low-level section of, e.g. a graphics card driver 23:06:51 that needs to have precise control over instructions 23:06:55 it only needs a certain segment of RAM 23:06:56 some IO ports 23:06:58 which is x86 machinecode plus a proof that it doesn't do anything nasty 23:07:00 and local memory/registers 23:07:08 (and the proof is checked before the program is run) 23:07:13 . 23:07:16 there's no reason to let it trample on anything else at all 23:07:17 Sgeo|chromcrash: . 23:07:22 elliott: Phantom__Hoover CakeProphet update 23:07:35 . 23:07:44 update to the . 23:07:48 it is now 90% more .y 23:07:51 i love Phantom__Hoover CakeProphet updates 23:07:55 . updates too 23:07:58 OK that is one idea. If you can have such a proof combined with a program. 23:07:59 elliott: I think something NaCl-style is your best bet there, then 23:08:05 Ify ou can figure out how to make that work. 23:08:19 zzo38: yep; that's quite a difficult area of research, though 23:08:24 formal verification is hard enough of high-level languages 23:08:27 ais523\unfoog: I'd rather make it safe-by-design, I think 23:08:36 ais523\unfoog: for instance, there's no reason you should be able to pass a literal to "mov" 23:08:41 Possibly with protected mode; it might not work as well with real mode 23:08:51 elliott: doesn't mov take an address as its target argument anyway? 23:09:01 oh, right, you mean even writing to a fixed address is bad 23:09:08 ais523\unfoog: yep, but there's no reason you should be able to specify an arbitrary one 23:09:10 if you aren't given the capability for that address 23:09:12 I think x86 does have bound checking instructions 23:09:20 ais523\unfoog: there's also no reason you should be able to cast int -> ptr, too, ofc 23:09:21 I thought you just meant you didn't want people to modify literals 23:09:31 ais523\unfoog: so some kind of type system is necessar 23:09:31 y 23:09:39 I think I'll make it an infinite-register design 23:09:45 getting that language right is the really hard step 23:09:46 but allow pinning virtual registers to hardware registers 23:09:47 in case you need that 23:10:00 as a single security bug in it will cause the entire system to be insecure 23:10:07 with no other layers of defence 23:10:07 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 but it doesn't seem like the right thing to do 23:10:19 the low level language doesn't clutter @'s design itself 23:10:20 -!- Taneb has joined. 23:10:26 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 and just compile and run @lang code directly 23:10:48 ais523\unfoog: hmm, I'd disagree that there aren't other layers of defence 23:10:53 ais523\unfoog: here's one: guessing addresses is pretty hard! 23:11:01 i want an @ graph reduction machine 23:11:14 yesss 23:11:20 elliott: you don't need to guess, just try them systematically until you find a usable one 23:11:25 A GRASP machine would be awesome 23:11:36 ais523\unfoog: that takes a very long time 23:11:42 so? still a security bug 23:11:47 ais523\unfoog: oh, definitely 23:12:01 ais523\unfoog: anyway, it is not that bad. 23:12:02 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:03 ais523\unfoog: I mean, 23:12:06 as a single security bug in it will cause the entire system to be insecure with no other layers of defence 23:12:09 because 23:12:17 ais523\unfoog: in Windows, all you need is a single security bug in ANY DRIVER AT ALL 23:12:34 ditto in Linux 23:12:35 you also need the perms to communicate with the driver, don't you? 23:12:50 ais523\unfoog: usually, drivers read from unprivileged data, or they're not so useful... 23:13:17 elliott: Yes, but unprivileged users can't talk to drivers 23:13:17 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 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 Deewiant: 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:39 elliott: Sure 23:13:40 elliott: but things like X filter the data first 23:13:43 elliott: But that's not necessarily exploitable 23:13:46 elliott: Because of what he said 23:14:04 ais523\unfoog: So? I could have responded with a bunch of ways in which @ reduces the likelihood of an exploit 23:14:23 point is, @ has many fewer exploitable vectors than a typical modern system 23:14:25 well, OK 23:18:20 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 at what age(s) did u met the esoteric languages ( u could count BF and Forth as well as some LISPs maybe ) 23:19:10 11 or so 23:19:23 O, I don't remember 23:19:28 11? u had an Atari ? 23:19:37 I can't remember. Probably 10 or 11 or so. 23:19:51 was it Forth or BF ? 23:20:01 what if it was neither 23:20:05 (it was probably bf, but bf never interested me) 23:20:05 what if 23:20:09 the first esolangs I came across were INTERCAL and Malbolge 23:20:25 I came across INTERCAL first as well, but never really learned it 23:20:26 probably befunge and underload got me into esolangs? 23:20:27 and I found the esolang community searching for info about INTERCAL 23:20:29 i liked malbolge too 23:20:31 and unlambda 23:20:43 monqy: hardly anyone's actually learned INTERCAL, I think, which is a pity 23:20:53 I really like the way the control flow works in modern INTERCAL, it's a thing of beauty 23:21:11 its expressions are still pretty nasty, though; reverse assignments make them so much better, but no compiler handles them correctly yet 23:21:18 I only came to BF a year or less after bumpin into Forth. 23:21:39 with a native x86 compiler, of course 23:21:46 a very basic compiler 23:21:55 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:21:56 (for both) 23:22:09 `echo TRANS - ACT - IONAL 23:22:11 TRANS - ACT - IONAL 23:22:22 -!- Ngevd has quit (Ping timeout: 258 seconds). 23:22:22 For me it was in 2007 I think 23:22:38 2007, and I was 33 23:22:42 or 32. 23:22:48 I know Forth as well; and I have added support for Forth codes into MegaZeux. 23:24:17 but was it in ur 20s or 30s ? 23:24:19 -!- Ngevd has joined. 23:24:23 or 40s ? 23:25:00 can Machine Code be called an esoteric language btw ?! 23:25:19 esoteric machine code 23:25:21 no, not really 23:25:21 if so, I also came to meet it at 10 or 11 23:25:25 it's just a weird encoding for asm 23:25:33 was it esoteric asm 23:25:36 but its tough. 23:25:55 Z80 was similar, but not as simple as 8080 23:25:55 "tough?" what does that mean and how does it make it esoteric 23:26:40 if BF was easy (as some, including my translator make it) 23:26:49 would you consider it esoteric ? 23:26:59 just because it wasn't mainstream ? 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 esoteric doesn't mean difficult, does it? 23:29:59 I'll keep that question for Chuck Moore 23:30:05 he comes in here at times 23:30:09 doesn't he ? 23:30:11 ?! 23:30:11 Maybe you meant: . ? @ v 23:30:48 no 23:31:14 I guess that was a tough question .. :-[ 23:32:31 I think machine code can be called esoteric 23:32:32 Oi, Gregor, can I have some money? 23:32:49 I think odds are for me. 23:32:58 bets? 23:34:57 what sort of machine code are you calling esoteric 23:35:11 elliott: do you consider Redcode an esolang? 23:35:25 if you mean machine code in general, then it's not esoteric at all 23:35:32 ais523\unfoog: hmm... probably no, but it has quite a few esoteric features 23:35:34 its not mainstream (Redcode) 23:35:38 ais523\unfoog: and it probably counts as esoteric programming 23:35:42 elliott: I'm conflicted on it myself 23:35:59 it's yes based on use, but no based on features 23:35:59 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:04 apart from the lack of library support 23:36:15 actually Z80 is very mainstream (my bad luck?) 23:36:17 I dunno, it has some weird stuff 23:36:22 elliott: hmm, perhaps; but a language designed for that /would/ be an esolang, I think, and thus fail at its goal 23:36:28 it'd have to happen accidentally 23:36:30 QuickDirtyOS: mainstreamness is not evry relevant to esolang status 23:36:57 I would vote for machine code for esolang 23:37:19 machine code isn't a single language 23:37:20 I remember one machine code / assembly that is an esolang 23:37:36 oh? 23:37:56 there are several machine code esolangs, yes. 23:38:00 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:04 elliot: Mnemonics 23:38:06 ais523\unfoog: so why not just reuse it? 23:38:18 There is the Checkout esolang; and I would like a (FOSS) implementation of it. 23:38:25 Mnemonics 23:38:32 monqy: mnemonics 23:38:37 CakeProphet: mnemonics 23:38:41 menomincs 23:39:02 ais523\unfoog: in fact, there's no reason the low level language couldn't just be part of @lang itself 23:39:32 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 unless it would end up cluttering up @lang horribley 23:39:37 s/program/program element/ 23:39:40 monqy: see above 23:39:43 yeah 23:39:44 it could be separate, but use the same type system 23:39:54 and since it would be restricted, you wouldn't have to implement all of @lang 23:39:55 well, that's a lie 23:40:00 you could still use all of @lang in the type system 23:40:07 so it's not actually any easier to implement at all 23:40:09 but ehhhh 23:40:13 would it require features outside of @lang 23:40:14 it gives the runtime properties i want 23:40:15 so yay 23:40:40 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 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 elliott: why does the low-level lang need dependent typing? 23:41:58 XSL S AND K IS DOING SOMETHING! 23:41:59 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 ais523\unfoog: so why not just reuse it? 23:42:02 ais523\unfoog: in fact, there's no reason the low level language couldn't just be part of @lang itself 23:42:08 ais523\unfoog: why invent two type systems? 23:42:16 ah, OK 23:42:22 ais523\unfoog: for instance, unless the low level language uses @lang's type system, it can't use modules at all 23:42:25 which is... problematic 23:42:26 anyway, I'm going home, as I@m now too tired to communichaterently 23:42:30 communichaterently 23:42:33 Earlier today, I had a thought about @ 23:42:41 It's a bit like a space elevator 23:42:50 -!- ais523\unfoog has quit (Remote host closed the connection). 23:42:55 Ngevd: is it like the bf joust warrior space_elevator? 23:43:03 Not as far as I know 23:43:29 What I mean is, @ will do something similar to things that already exist, but in a completely different, better way 23:43:32 heh 23:43:37 and never be built? :) 23:43:40 Exactyl 23:43:47 s/yl/ly/ 23:44:21 hmm, what has to be implemented in the low level language 23:44:31 Hardware thingies? 23:44:46 post-platform-initialisation bootup, the allocator, gc, storage manager (= persistence stuff) 23:44:58 parts of the scheduler (parts will have to be platform specific) 23:45:14 really low-level driver parts like the /implementation/ of the higher-level interfaces to things like IO ports and memory sections 23:45:15 hmm 23:45:18 Will @ work on today's computers? 23:45:26 yes 23:45:29 Oh cool 23:45:54 elliott: it should somehow use Checkout on graphics cards. :D 23:45:58 really low-level driver parts like the /implementation/ of the higher-level interfaces to things like IO ports and memory sections 23:46:04 actually, a lot of this might have to be trusted platform-specific code 23:46:08 although, hmm 23:46:27 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 which would require the maximum trust level, ofc 23:46:43 but that's okay for a scheduler 23:46:49 CakeProphet: that would be difficult :p 23:48:21 elliott, has any code been written for @? At all? 23:48:34 Ngevd: i've worked on @-related code, yes 23:53:35 Well, I've got XSL S and K to run itself recursively 23:53:41 I just haven't yet got it to /stop/ 23:54:14 -!- Patashu has joined. 23:56:08 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 I am wondering if it's even possible to use a fibonacci heap as a homoiconic programming language structure. 23:58:51 bye quickdirtyos 23:59:03 I think forest is probably a better name for the actual structure that it will end up being. 23:59:43 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. 23:59:56 well, unless I give nodes priorities.