00:00:02 > var$"kessel run" 00:00:03 kessel run 00:00:22 I'm using Parsec. 00:00:31 `frink kessel run -> parsec 00:00:42 Warning: undefined symbol "kessel". \ Warning: undefined symbol "run". \ Warning: undefined symbol "kessel". \ Warning: undefined symbol "run". \ Unconvertable expression: \ kessel (undefined symbol) run (undefined symbol) -> 3.0856775813057289536e+16 m (length) 00:00:50 disappointing 00:01:13 `frink kessel_run := 18 parsecs; kessel_run -> km 00:01:18 It craps its pants when I try to match string "->" after (evenIdentifier `sepBy` (char ',' `surroundedBy` ws)) 00:01:22 5.5542196463503121165e+14 00:01:29 `frink kessel_run := 18 parsecs; kessel run -> km 00:01:39 Warning: undefined symbol "kessel". \ Warning: undefined symbol "run". \ Warning: undefined symbol "kessel". \ Warning: undefined symbol "run". \ Unconvertable expression: \ kessel (undefined symbol) run (undefined symbol) -> 1000 m (length) 00:02:06 elliott: it's 12 parsecs you ignorant dolt 00:02:13 evincar: in what way? 00:02:18 oerjan: wrong 00:02:31 oerjan: that's only true for the millennium falcon 00:02:37 monqy: Unexpected "-". Expecting space or ",". 00:02:45 As though it's trying to continue matching the list. 00:03:06 evincar: you may need evenIdentifier `sepBy` try (char ',' `surroundedBy` ws) 00:03:06 what's the expected space about 00:03:14 For the record, the preliminary syntax is { x, y, ...; args; kwargs -> ... } 00:03:29 Where the ; sections are optional. 00:03:36 args? kwargs? 00:03:44 I'm just testing it on { x -> 0 } at the moment. 00:03:54 Rest parameters and keyword arguments, respectively. 00:04:04 i know but 00:04:08 ???????? 00:04:15 Don't worry about it. :P 00:05:05 anyway where's your rule to match -> 00:05:07 what's the whole thing 00:05:12 Using try there gives the same error. 00:05:14 One second. 00:05:29 evincar: iiuc your `surroundedBy` ws part is matching whitespace, right? so if there _is_ whitespace at the _end_ but not try it will have read characters to check for the delimiter which isn't there, and cannot give them back 00:05:29 rul;e/whateveervrr 00:06:00 normalLambda = lambdaExterior $ do 00:06:00 arguments <- evenIdentifier `sepBy` try ((char ',') `surroundedBy` ws) 00:06:00 string "->" 00:06:00 expressions <- evenExpressions 00:06:00 return $ EvenLambda (map identifierString arguments) Nothing Nothing 00:06:03 expressions 00:06:16 That's probably what's happening... 00:06:32 whbgat's surroundedBy 00:07:08 evincar: btw a general tip is too always gobble up whitespace at the end of a token and not the beginning (except for the whole program) 00:07:11 *to 00:07:28 this prevents that giving back trouble 00:07:32 surroundedBy :: Monad m => m i -> m o -> m i 00:07:32 inner `surroundedBy` outer = do outer result <- inner outer return result 00:07:41 Crap, lines got borked. :/ 00:07:49 i am 100% sure parsec has a combinator for that. 00:08:01 do { outer; result <- inner; outer; return result } 00:08:11 "between" although that requires writing it twice 00:08:25 -!- hagb4rd2 has quit (Ping timeout: 240 seconds). 00:08:26 outer *> inner <* outer 00:08:54 you know how to use Applicative right 00:08:59 that too 00:09:39 and what's ws 00:09:39 The surroundedBy works for list/map syntax, just not this part of the lambda syntax. 00:09:47 Shorthand for spaces. 00:09:59 == many space 00:10:04 spaces is a thing iirc 00:10:27 i am 100% sure parsec has a combinator for that. 00:10:29 or did you know that and just not want to type spaces 00:10:35 ?hoogle Parser a -> Parser b -> Parser b 00:10:35 No results found 00:10:42 I knew that and just didn't want to type spaces. :P 00:10:50 crys 00:10:58 evincar: (evenIdentifier <* ws) `sepBy` (char ',' <* ws), i think 00:12:12 Hold up, I'm gonna move some of the whitespace rules around. 00:12:12 evincar: even ignoring try, the problem was that the last evenIdentifier wouldn't gobble up following spaces. assuming you want that to happen. 00:13:49 Yeah, that's fixed it. I wasn't being careful enough with my whitespace rules. 00:14:11 Deewiant: Wake up and tell me what to use insetad of clyde 00:14:17 s/insetad/instead/ 00:14:39 what's cleyd 00:15:00 evincar so what's with that args quargs stuff why do you have it??? 00:16:07 * pikhq has somehow come across text that is both valid UTF-8 and obviously not UTF-8. 00:16:30 It's quite amazing, if horrifying. 00:16:39 go on 00:16:53 pikhq: probably using the ancient r'lyehan charset? 00:16:59 monqy: Easy variadic functions. Same reason Scheme has (define (f something . rest) (...)) 00:17:02 *character subset 00:17:20 oerjan: No, it's a .zip file that I *expect* to contain things in a Japanese encoding. 00:17:47 I'm *suspecting* it's something utterly insane like Shift-JIS shoved through the UTF-8 algorithm. 00:17:48 pikhq: SJIS mistakenly re-encoded as UTF8 via something else? 00:17:54 Yeah, that. 00:17:58 args can be kind of a mess and quargs is a big mess. I'd recommend at the very least keeping your language simple until you've everything sorted 00:18:32 Unfortunately, I don't think there's anything that could *sanely* invert that. 00:18:41 Hmm. Waaait. 00:18:47 UTF-8 to UTF-16 conversion? 00:19:08 monqy: Thanks for the recommendation. I was going to get the basics working first, but I want the syntax to be there when I need it later. 00:19:10 troubles include: added syntax, requirement of putting lists and maps in the core language, troubles writing generic apply etc etce tce tfccccc 00:19:27 for your language replace apply with composition 00:19:31 (even bigger problesm>????) 00:19:41 generic apply is probably always good too though (thumbs up) 00:20:04 so you're making even general-puprose? 00:21:34 more importantly 00:21:53 args = no currying lol 00:21:54 which means your language is insatntly unusable shit, fact. 00:22:28 i thought we had already established no currying but haha/yeah 00:24:32 I had assumed it had some fancy magical alternative to curreying which eveincar had thought over very well and knew the implications of etc etc 00:24:55 yes, that's a common aspect of features of this language so far 00:24:58 It's not exactly magical, but it is pretty straightforward. 00:25:13 And it is basically currying. :P 00:25:17 oh? 00:25:23 You can have partially applied functions, if that's what you mean. 00:25:33 currying is entirely different 00:25:41 from partial application 00:28:09 If functions of multiple arguments are treated the same as functions of a single argument that return functions, then for all practical purposes, they're the same. 00:28:55 they are fundamentally different but currying allows for partial application is what you're saying right 00:29:20 Yes. 00:30:34 So Even has currying, and partial application implemented atop that, plus syntax for fixing arguments of a function other than the first. 00:30:52 It's just that internally, functions *do* take multiple arguments. 00:31:03 even has currying? 00:31:04 that sounds elegant and practical. 00:31:33 Can't tell if you're serious. :/ 00:31:34 and yeah what elliott said; it's a fucking mess 00:31:41 ...ghc has much of that too 00:31:48 hint: if i'm praising your language i'm not serious 00:31:57 oerjan: yes i totally believe that "internally" means "completely hidden from the user and an implementation detail" 00:32:07 rather than "hidden behind a thin layer of syntax" 00:32:32 evincar: you claim it has currying, yet you have demonstrated it doesn't; ??????????????????????? 00:33:01 it is... 00:33:03 and it isn't 00:33:05 let the poor guy implement it, then it will become obvious to him if/that it doesn't work 00:33:16 ^ that. 00:33:17 zennest langauge 00:33:39 oerjan: he is implementing it, also talking about it 00:33:39 we're interrupting the latter, not the former 00:33:55 WELL I'M SICK OF IT 00:33:57 I don't entirely believe it will become obvious if he has fundamental confusion 00:33:58 * oerjan runs away 00:34:39 it may become obvious that something's wrong, but not necessarily what. alternatively, it could seem as though nothing is wrong because of misinterpretation/misdescription 00:34:47 maybe i am not trusting enough??? 00:36:13 I think you're not trusting enough. 00:36:20 I could just be very, very bad at explaining what I mean. 00:42:34 go go distro install 00:42:39 -!- elliott has quit (Remote host closed the connection). 00:56:45 Welp. I'm at a complete loss. 01:00:35 It's now not valid UTF-8, but it's not valid anything else, either. 01:02:04 I'm suspecting endianness. 01:02:52 well so switch the bytes, then 01:03:08 Which is nontrivial if it's Shift-JIS. 01:03:23 Or anything but UTF-8... 01:03:41 Damned variable-width encodings. 01:04:19 -!- elliott has joined. 01:04:57 well if you have read the utf-8 in as code points into a program, shouldn't you be able to print it in any other format you wish 01:06:25 Except the UTF-8 is merely the result of horrific mangling, and not anything sensible. 01:07:06 i thought you said you thought it was something encoding it as utf-8, in which case shouldn't the codepoints contain all the original information 01:07:20 What I have is filenames which have been shoved through *some* sort of process, with one step involving the application of the UTF-8 algorithm. 01:07:53 just the filenames? 01:08:07 The text is apparently valid Shift-JIS. 01:09:05 oh well i don't know anything more about this 01:09:14 i hate people on irc who ask for more detail about a question and then say nothing more about it :( 01:09:15 My money's on SJIS -> ISO 8859-1 -> UTF-8. 01:09:43 elliott: wait are you referring to me :( 01:09:49 no 01:09:52 :) 01:09:55 people in #archlinux 01:10:15 oerjan: To be hated by elliott isn't exactly a difficult distinction to achieve. 01:10:29 translation: :'( 01:10:35 evincar: true, but i seem to have strangely evaded it so far 01:10:56 Hah, I haven't. 01:17:05 -!- pikhq_ has joined. 01:18:09 -!- tiffany has quit (Quit: Leaving). 01:19:55 Got it. 01:19:55 -!- pikhq has quit (Ping timeout: 258 seconds). 01:20:14 It's *just* Shift-JIS with each *byte* having the UTF-8 algorithm applied. 01:20:21 iconv -f utf-8 -t utf-16 | tr -d '\0' | tail -c +3 | iconv -f shift-jis -t utf-8 01:20:22 :D 01:21:08 which is more or less what evincar said 01:22:10 with the first -> meaning "reinterpreted as" 01:24:31 That was really, really nasty. 01:27:33 This has happened to me before... 01:28:24 Congratulations on your newfound filenames. 01:28:28 What does the archive contain? 01:28:44 (Insert joke about the illegal or pornographic nature of a corrupt Japanese archive.) 01:29:24 The novel series "キノの旅", in reasonably formatted text. 01:36:07 oerjan: so what was u2b about, i never got that 01:36:44 oklopol: youtube, sheesh 01:37:12 -!- cheater has quit (Read error: Connection reset by peer). 01:37:38 -!- cheater has joined. 01:37:46 oh, it was that one 01:37:50 pikhq_: i have this sense i may have seen an anime episode of that once, perhaps #10 on http://en.wikipedia.org/wiki/List_of_Kino%27s_Journey_episodes 01:38:06 actually only part of the episode 01:39:28 oerjan: don't be silly, you're norwegian 01:40:34 oerjan: It's a fairly good anime, and so I'm interested in seeing if the books are as good and/or better. 01:41:09 NOTE TO SELF 01:41:11 NOTE TO SELF 01:41:15 _COPY BACK THE BACKUP BEFORE INSTALLING ARCH_ 01:41:19 elliott: it was sent around midnight on some satellite channel when i was visiting my aunt 01:42:41 actually it may even have been a norwegian channel 01:44:08 -!- elliott has quit (Read error: Connection reset by peer). 01:46:28 -!- elliott has joined. 01:46:30 elliott@dinky:~$ sudo partprobe 01:46:30 Error: Invalid partition table - recursive partition on /dev/sdb. 01:46:32 oh good... 01:47:12 G'night all. Thanks for the assistance, as always. 01:47:15 -!- evincar has quit (Quit: leaving). 01:47:16 yo dawg i heard you like partitions 01:47:23 -!- ive has joined. 01:48:09 -!- elliott has quit (Remote host closed the connection). 01:52:44 -!- cheater has quit (Remote host closed the connection). 01:53:13 -!- cheater has joined. 01:53:16 @list remember 01:53:17 quote provides: quote remember forget ghc fortune yow arr yarr keal b52s brain palomer girl19 v yhjulwwiefzojcbxybbruweejw protontorpedo nixon farber 01:53:28 @remember how does this work? 01:53:28 Done. 01:53:47 @quote how does this 01:53:47 how says: does this work? 01:54:01 @forget how does this work? 01:54:01 Done. 01:54:05 @quote how does this 01:54:05 No quotes match. Just what do you think you're doing Dave? 01:56:42 @quote Haskell 01:56:43 Haskell says: I'm a bitching language 01:56:55 @quote JavaScript 01:56:56 donw says: [of JavaScript booleans] I've heard of duck-typing, and static-typing, but this is the first time I've heard of Schrödinger-typing... 01:57:07 X-D 01:59:26 @quote JavaScript 01:59:27 Jafet says: Javascript is pretty much a DSL for making your web browser take up more CPU 01:59:31 @quote JavaScript 01:59:31 medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript. 01:59:33 @quote JavaScript 01:59:34 medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript. 01:59:35 @quote JavaScript 01:59:36 medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript. 02:04:14 @quote repetitive 02:04:15 No quotes match. Maybe if you used more than just two fingers... 02:05:22 @quote JavaScript 02:05:23 medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript. 02:05:24 @quote JavaScript 02:05:24 medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript. 02:05:25 @quote JavaScript 02:05:26 donw says: [of JavaScript booleans] I've heard of duck-typing, and static-typing, but this is the first time I've heard of Schrödinger-typing... 02:26:54 -!- elliott_ has joined. 02:26:58 Anyone know GRUB2? 02:30:35 oerjan: btw you can remove the numbers from the topic. 02:30:46 1234567890!@#$%^&*() 02:31:26 aww 02:31:39 oerjan: well you can leave them if you want :P 02:31:48 -!- oerjan has set topic: EPL evening school assignments! http://tinyurl.com/5stnu5n | It's the end of an era | http://codu.org/logs/_esoteric/. 02:32:04 pikhq_: Can you find out whether GRUB2 can boot from JFS or not; I can't really browse the web from this :P 02:36:42 Oh well, let's assume "yes" 02:37:22 Seems it's "yes". 02:37:56 Good, I assumed right :P 02:38:18 Yay, #grub agree. 02:38:30 pikhq_: Thanks 02:45:35 pikhq_: Oooooooooops 02:45:41 pikhq_: Not the same for GRUB1, is it 02:45:48 Looks like Arch still uses GRUB1 for some insane reason 02:48:02 I can just install GRUB2, but this is still annoying :/ 02:49:02 -!- elliott_ has changed nick to elliott. 02:49:21 -!- elliott has quit (Changing host). 02:49:21 -!- elliott has joined. 02:51:57 meh, time to redo i guess 02:52:02 pikhq_: quick, give my /boot partition a size 02:54:38 -!- NDandy has joined. 02:54:50 What up, yo? 02:55:04 NDandy: Pssst, give my /boot partition a size. It's a once-in-a-lifetime opportunity, 02:55:25 Hmm 02:55:30 What's the upper bound? 02:55:35 And what are you booting? 02:55:39 Probably 100. And Linux. 02:55:45 I usually go for 4 GB or so 02:55:51 ...for /boot? 02:55:57 How big are your kernels? 02:56:04 I tend to go with 100M. 02:56:07 Even 100 is massively overshooting it if you're not a kernel dev :P 02:56:07 And that's overkill. 02:56:15 I suppose 02:56:19 I just overdo space 02:56:21 How big are your disks 02:56:22 It's so cheap 02:56:25 df -h 02:56:28 How much of /boot is being used :P 02:56:36 It'll be like one percent of a percent. 02:56:40 20M! 02:56:41 OS X, remember? 02:56:50 Oh. 02:56:55 Also, go 100M 02:56:58 initrd is apparently huge. 02:56:58 pikhq_: Ooh ooh should I make it 100 or 128. 02:57:01 Should be sufficient 02:57:10 Oh wait this isn't an SSD. 02:57:11 Also, any awk wizards, perchance? 02:57:12 100 it is 02:57:17 NDandy: I'm ... decent at awk. 02:57:19 elliott: 100 MB or 128 MiB, :) 02:57:26 I wrote some part of a Lisp in awk once. 02:57:31 elliott: That makes you better than me, most likely 02:57:41 I'm just trying to save some time at work, and I'm almost there 02:58:26 To be perfectly honest, Perl is probably less painful than awk. 02:58:35 It's way uglier, but you run into awk's limitations really qucikly. 02:59:08 This script is pretty ugly, anyway 02:59:09 http://hpaste.org/53187 02:59:26 Data I'm working with: http://giraffe.uvm.edu/~rgweb/batch/enrollment/curr_enroll_201101.txt 03:00:09 So what's the problem 03:00:13 Also, are you meant to use gsub like that 03:00:14 I could probably just pipe through grep a few times to get the same effect, but I wanted to try something new 03:00:20 Pretty sure gsub returns a string 03:00:22 i'm rather awkward at awk 03:00:24 And you're meant to use it in the {} part 03:00:29 I might be wrong though :P 03:00:35 Well, it works, and that's what I'm working with :D 03:00:39 Fair enough 03:00:54 I'm so glad this livecd gives me a large framebuffer console 03:00:58 Or this would be unbearable 03:00:59 IRC, I mean 03:01:10 I just want to add the numbers at $9 when $2 is equal on multiple lines 03:01:23 <3 livecds 03:01:36 -!- MDude has changed nick to MSleep. 03:01:39 I don't get your explanation of whaty ou want to do 03:01:57 $9 is the number of students enrolled in a particular class 03:02:01 $2 is the class number 03:02:12 So you want to consolidate lines? 03:02:30 Right, and I'd like to add the values in $9 at the same time 03:02:47 BEGIN{n=0;foo=""} $2==foo{n+=$9} {print n; foo=$2; n=$9} 03:02:51 There's something to start you off with 03:02:56 Note that it prints 0 on startup... 03:03:19 holy crap 03:03:29 guy in #archlinux 03:03:35 trying to get openbox to work 03:03:40 turns out he hasn't got x started 03:03:42 people tell him to install it 03:03:46 he says he opted not to install x 03:03:51 they tell him openbox needs x 03:03:56 he says he thought x was just another wm like openbox :P 03:04:15 arch users: like ubuntu users, but with chainsaws 03:08:52 -!- elliott has quit (Read error: Connection reset by peer). 03:16:32 Are there any languages on the esowiki with "random" effects ? 03:16:39 for certain operators or functions 03:18:25 noit o' mnain worb for instance 03:18:38 is pretty random 03:18:53 -!- augur has quit (Remote host closed the connection). 03:19:25 @hoogle m a -> m a -> a -> a -> a -> m a 03:19:26 Text.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String 03:19:27 Text.ParserCombinators.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String 03:19:27 Control.Monad liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r 03:19:30 @hoogle m a -> m a -> (a -> a -> a )-> m a 03:19:31 Data.IntMap unionWith :: (a -> a -> a) -> IntMap a -> IntMap a -> IntMap a 03:19:31 Data.IntMap intersectionWith :: (a -> b -> a) -> IntMap a -> IntMap b -> IntMap a 03:19:31 Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] 03:19:39 @hoogle m a -> m a -> (a -> a -> a) -> m a 03:19:40 Data.IntMap unionWith :: (a -> a -> a) -> IntMap a -> IntMap a -> IntMap a 03:19:40 Data.IntMap intersectionWith :: (a -> b -> a) -> IntMap a -> IntMap b -> IntMap a 03:19:40 Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] 03:20:13 @hoogle (a -> b -> c) -> m a -> m b -> m c 03:20:14 Control.Monad liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r 03:20:15 Control.Applicative liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c 03:20:15 Prelude zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] 03:20:18 @src liftM2 03:20:19 liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) } 03:20:28 :t liftA2 03:20:29 forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c 03:20:43 oh it was there 03:21:26 @src liftA2 03:21:26 liftA2 f a b = f <$> a <*> b 03:22:14 -!- augur has joined. 03:22:23 -!- copumpkin has quit (Ping timeout: 258 seconds). 03:22:33 -!- copumpkin has joined. 03:25:41 -!- augur has quit (Remote host closed the connection). 03:40:42 -!- CakeProphet has joined. 03:40:43 -!- CakeProphet has quit (Changing host). 03:40:43 -!- CakeProphet has joined. 03:51:49 -!- NDandy has quit (Quit: brb, Troll 2). 03:57:25 -!- elliott has joined. 03:57:33 sup 03:59:22 elliott: kmc's exciting bug is up. 03:59:26 http://hpaste.org/53188 03:59:54 shachaf: That's only a bug because people project their desires onto unsafePerformIO. 04:00:09 elliott: i appear to have started archive binging yet another fantasy gamer comic 04:00:20 Which 04:00:25 XD 04:00:28 elliott: Desires like "it should do what it says it'll do"? 04:00:44 shachaf: Where does unsafePerformIO guarantee the IO will only be done once? 04:00:55 elliott: In GHC? 04:01:04 shachaf: You're writing unportable programs??? 04:01:11 GHC shouldn't support such riff-raff. 04:01:23 elliott: http://www.haskell.org/ghc/docs/latest/html/libraries/base/System-IO-Unsafe.html 04:01:56 Yes yes that's just the evil effects of popular demand. 04:02:15 that's deep, man 04:02:27 See, people demand the value of IO actions. 04:02:28 Popularly. 04:02:32 And... yeah. 04:03:27 kmc: Since when are you in here? 04:03:32 Since ages. 04:03:34 It's an infestation. 04:03:51 `quote kmc 04:03:53 No output. 04:04:19 he doesn't deign _us_ with quotable material though 04:05:27 -!- Darth_Cliche has joined. 04:07:25 elliott: why http://yafgc.net/ of course 04:07:38 i thought i'd made that _perfectly_ clear 04:07:54 * oerjan coughs 04:08:46 That oerjan. So wacky. 04:08:54 pikhq_: You use Chromium and xfwm4, right? 04:08:59 -!- DCliche has quit (Ping timeout: 260 seconds). 04:09:34 Firefox and xfwm4 04:09:41 Oh. I thought you used Chromium. 04:09:52 * elliott is trying to get it to not look like shit (technical term). 04:11:27 hm, wasn't there a ghc function for specifically preventing more than one thread from entering a thunk? 04:11:44 oerjan: noDuplicate? 04:11:45 well there's the unsafeDupablePerformIO mess 04:11:49 That's what unsafePerformIO uses. 04:11:54 kmc is full of quotable material, by the way. 04:12:04 @quote kmc 04:12:04 kmc says: fuck me with a rusty chainsaw 04:12:13 oh dear 04:12:21 It's better than most of our quotse. 04:12:22 Is that cheater? 04:12:28 shachaf: oh so it _is_ actually supposed to prevent that thing...? 04:12:31 it sounds like something i *would* say 04:12:32 elliott: ..."quotse"? 04:12:36 shachaf: You're not meant to ping him. 04:12:39 Also yes, quotse. 04:12:40 i'm amused because whenever i poke my head in here, you guys are talking about haskell 04:12:42 http://quotse.cx/ 04:12:44 the real esoteric language 04:12:52 kmc: We gave up on finding anything more esoteric. 04:12:56 kmc: Don't worry, they talk about C++ too. 04:13:01 we have those esoteromorphisms 04:13:01 @quote kmc eso 04:13:02 kmc says: maybe the 9,639,482nd time we argue about C++ we will finally resolve the issue 04:13:04 you can't beat that 04:13:09 shachaf: hey that's slander! 04:13:16 @quote kmc eso 04:13:16 kmc says: C++ is at least interesting to learn. it's a good esolang 04:13:16 haha shachaf, that worked 04:13:37 @quote kmc 04:13:38 kmc says: type constructors are "functions" that operate on types 04:13:43 kmc: It's just because 90% of your quotes are about C++. 04:13:45 why is that quotable 04:13:46 What a quote. 04:13:49 @quote kmc c\+\+ 04:13:49 I'm in stitches. 04:13:49 kmc says: maybe the 9,639,482nd time we argue about C++ we will finally resolve the issue 04:13:51 @quote kmc c\+\+ 04:13:51 kmc says: I enjoy it when people write "C/C++" on their resume as if it were one language... so "F#/FORTRAN/Forth", "Perl/Python/Pascal", "Ruby/REBOL/R" 04:14:00 @quote kmc kmc 04:14:01 kmc says: this is a bit too Rube Goldberg for me to be totally happy trusting it to run a cutting laser but oh well 04:14:53 kmc: well _some_ of our recent haskell talk was about evincar trying to use parsec for his esolang 04:15:09 clearly his esolang should be a haskell EDSL 04:15:14 oerjan: Oh, give it up; the only thing you ever talk about in this channel is Haskell. 04:15:16 oerjan: Oh, oh no. 04:15:22 Esolang Demented pSychopathic Language 04:15:25 oerjan: No no no, I am 99% sure evincar does not consider that an esolang. 04:15:32 99.9%, even. 04:15:34 elliott: I met kmc the other day; he's nothing like anything in person. 04:15:39 I believe he has even stated this. 04:15:40 shachaf: And being Nørsë. 04:15:42 i am a non-entity 04:15:55 Also, there was no LSD involved. Which was kind of weird. 04:15:58 welcome to Numberwang, the numbers quiz that's simply everyone! 04:16:00 kmc: Say something funny. 04:16:06 COCKS 04:16:26 kmc: No that wasn't funny you lose sorry. 04:16:27 oerjan: Ban him. 04:16:32 ffffuuuuuuuu 04:16:38 oerjan: Ban him twice for that. 04:16:48 Ooh, we're handing out bans? 04:16:50 elliott: u mad? 04:17:04 Exceedingly! 04:17:28 yo elliawtt, i hird u mad, so i put all the things in your things so u can mad while u mad 04:17:28 -!- Zuu2 has joined. 04:17:33 In kmc's IRC comment "COCKS", kmc makes a clear appeal to the most traditional yet ever-poignant theme of IRC humor: the penis. This mention elucidates laughter amongst all who hear it. Truly, "COCKS" is a masterpiece. 04:17:45 Let's talk about Haskell again. 04:18:09 truly cocks 04:18:11 @google "invented the mysterious force" 04:18:12 http://qdb.rawrnix.com/?browse&3 04:18:12 Title: Browse Quotes 04:18:12 @quote cocks 04:18:13 Tinned_Tuna says: "Phwoar, she's got a nice set of tits and a nice fat pair of cocksucking lips" 04:18:17 `addquote truly cocks 04:18:19 698) truly cocks 04:18:26 `delquote 698 04:18:28 ​*poof* 04:18:29 haha that's allowed but not @vixen? 04:18:32 `addquote COCKS [...] truly cocks 04:18:32 @vixen cocks 04:18:33 Solutions are not the answer. 04:18:34 698) COCKS [...] truly cocks 04:19:37 -!- CakeProphet has quit (Ping timeout: 240 seconds). 04:20:20 * shachaf doesn't get it. 04:21:37 -!- Zuu has quit (Ping timeout: 258 seconds). 04:28:10 -!- BeholdMyGlory has quit (Ping timeout: 252 seconds). 04:29:20 -!- augur has joined. 04:33:32 -!- copumpkin has quit (Ping timeout: 244 seconds). 04:33:42 -!- copumpkin has joined. 05:41:46 -!- oerjan has quit (Quit: Good night). 05:55:09 oh, kmc is here now 05:56:42 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.). 06:00:22 i'm always here 06:00:24 watching you 06:11:40 reassuring 06:25:49 I wonder if it's morally acceptable to use an old GHC. 06:25:56 I wonder if I will be able to sleep at night. 06:26:04 elliott: How old? 06:26:10 shachaf: 7.0.3 06:26:19 (In general, no, it's not, and no, you won't.) 06:26:22 Oh, that's OK. 06:26:38 But it's not the latest-and-greatest. :( 06:26:40 You're not supposed to use 7.w. 06:26:47 Nor 7.2. 06:26:50 7.w is the best. 06:27:06 $ ghc --version 06:27:19 The Glorious Glasgow Haskell Compilation System, version 7.w "the best version" 06:28:22 More like 7.ω 06:29:47 Hey, why don't we have a McCarthy topic yet? 06:30:02 -!- elliott has set topic: EPL evening school assignments! http://tinyurl.com/5stnu5n | It's the end of an era | RIP John McCarthy) | http://codu.org/logs/_esoteric/. 06:30:10 There, that's my bare minimum contribution to society. 06:31:32 shachaf: If I regret using this GHC you're getting the blame. 06:32:54 Can I handle elliott's wrath? 06:33:03 No. 06:37:06 elliott's wrath destroyed ð. 06:37:19 Don't make him destroy d, too. 06:37:44 I wonder if Arch has a sufficiently large portion of Haskell that I can avoid "cabal install" entirely. 06:37:51 That would significantly improve the quality of my life. 06:38:32 -!- elliott has quit (Quit: Leaving). 06:39:00 -!- elliott has joined. 06:48:05 Hmph. 06:48:17 This library I'm binding to Haskell should be written in Haskell instead. 06:49:05 Rewrite it. 06:49:08 You know you want to. 06:49:16 * shachaf waves the NIH under elliott's nose. 06:49:33 shachaf: There is nooo way I am enthusiastic enough about this to rewrite it. 06:49:48 About what? 06:50:25 This. Are you even paying attention? 06:53:09 just rewrite it, that thing sucks 06:53:17 whatever it is 06:54:36 It is also waaay more code than I can be bothered to write. 06:55:37 right, but it will be short and trivial in haskell! obviously. 07:01:07 Heart of the Oak mace, everybody. 07:01:35 elliott: Also, you're duplicating less for me, in Haskell. 07:01:49 What 07:02:14 /bin/less 07:02:19 Ah 07:02:24 main = system "less" 07:02:27 shachaf@argon:~$ which less 07:02:27 /usr/bin/less 07:02:28 It takes no arguments. 07:02:31 That's the beauty of it. 07:02:38 Whatever. 07:02:56 Anyway, you're making one that lets you say "go to the end of the input that you *currently have*, but don't try to go beyond it". 07:03:25 When less tries to go beyond it, it freezes in such a way that the only way to unfreeze is to wait for the input to end or ^C (which kills the process). 07:05:01 shachaf: http://www.opensource.org/licenses/Fair 07:05:34 elliott: Looks nice. 07:05:41 Wait wait I've got it. 07:05:42 Still capitalized, though. 07:05:49 You can do whatever. DISCLAIMER: FUCK YOU 07:06:07 zomg brilliant 07:06:16 shachaf: The WTFPL lets you supply your own disclaimer. If that helps. 07:06:17 elliott: The Nobel Prize in Mathematics for you! 07:06:50 Ooh, this library is Friends with me. 07:07:03 It lets you supply your own allocator, so I can give it one that allocates on the Haskell heap. 07:07:16 Hmm, I wonder if that's altogether allowed. 07:07:25 I guess so; it'll just look like bytes to Haskell. 07:07:34 I mean, that's kind of what ForeignPtrs are. 07:12:36 Does anyone know of an object recognition algorithm that could be used to detect cars in video that's either implemented in opencv or could be implemented in opencv? 07:12:38 -!- ive has quit (Quit: leaving). 07:12:48 I'm thinking like SIFT or SURF or something 07:13:02 You're in luck!! I know ABSOLUTELY NOTHING about that. 07:13:06 \o/ 07:13:06 | 07:13:06 >\ 07:14:26 It's like one of my previous subjects, where you don't have to come up with a revolutionary new object detection algorithm (cuz you only have like 3 weeks) just use one that exists 07:16:21 type Allocator = Ptr () -> CSize -> Ptr () -> IO (Ptr ()) 07:16:22 SO BEAUTIFUL. 07:38:28 {-# NOINLINE allocator #-} 07:38:28 allocator :: FunPtr Allocator 07:38:28 allocator = unsafePerformIO $ mkAllocator allocate 07:38:28 where allocate ptr 0 _ = free ptr 07:38:28 allocate ptr size _ 07:38:29 | ptr == nullPtr = mallocBytes size 07:38:31 | otherwise = reallocBytes ptr size 07:38:34 Yessssss. 07:42:27 -!- ais523 has joined. 07:49:41 Hi ais523. 07:49:56 hi elliott 07:50:13 It occurs to me that using a top-level FunPtr like that is probably Not The Way. It also occurs to me that shachaf has been selected to Know The Way. 07:50:55 elliott: I vaguely feel that what you just wrote is somewhat out of context 07:51:00 but it doesn't otherwise look zzo38y 07:51:30 Context is: 07:51:32 {-# NOINLINE allocator #-} 07:51:32 allocator :: FunPtr Allocator 07:51:32 allocator = unsafePerformIO $ mkAllocator allocate 07:51:32 where allocate ptr 0 _ = free ptr 07:51:32 allocate ptr size _ 07:51:33 | ptr == nullPtr = mallocBytes size 07:51:35 | otherwise = reallocBytes ptr size 07:51:37 Yessssss. 07:53:13 -!- ais523 has quit (Remote host closed the connection). 07:53:27 -!- ais523 has joined. 07:53:33 Context is: 07:53:39 such a nice place for the connection to drop 07:53:46 {-# NOINLINE allocator #-} 07:53:47 allocator :: FunPtr Allocator 07:53:47 allocator = unsafePerformIO $ mkAllocator allocate 07:53:47 where allocate ptr 0 _ = free ptr 07:53:47 allocate ptr size _ 07:53:47 | ptr == nullPtr = mallocBytes size 07:53:49 | otherwise = reallocBytes ptr size 07:53:51 Yessssss. 07:54:40 are you trying to embed C into Haskell? 07:55:16 How do you always focus on the most mundane aspect of whatever ridiculous thing I am doing at any given time :P 07:55:23 "You're... using an FFI????" 07:55:44 How do you always focus on the most mundane aspect of whatever ridiculous thing I am doing at any given time :P <--- because it's the only bit I understand 07:55:50 lol 08:01:06 -!- monqy has quit (Quit: hello). 08:07:29 elliott: I could almost accuse you of doing the same with Anarchy 08:07:43 :D 08:07:52 I've barely said anything about Anarchy 08:07:55 -!- Vorpal has joined. 08:10:01 indeed 08:21:07 -!- Ngevd has joined. 08:21:35 ghc: error: a C finalizer called back into Haskell. 08:21:35 This was previously allowed, but is disallowed in GHC 6.10.2 and later. 08:21:35 To create finalizers that may call back into Haskell, use 08:21:35 Foreign.Concurrent.newForeignPtr instead of Foreign.newForeignPtr. 08:21:35 oh jesus 08:21:43 HellO! 08:22:09 "These finalizers necessarily run in a separate thread" 08:22:11 uggh this is going to be so slow 08:30:23 I think I have found an XKCD reference in Learn You A Haskell 08:30:31 Or possibly the other way around 08:30:50 It's lowercase. 08:31:08 Upper case looks like it has potential to be funnier 08:31:27 Of course, dozens of people have probably seen this reference before 08:31:44 xkcd.com/221/ and the first code example in http://learnyouahaskell.com/input-and-output#randomness 08:44:11 elliott, hi, what are you doing there+ 08:44:14 s/+/?/ 08:44:21 Define there. 08:44:34 elliott, with the haskell<->C stuff 08:44:46 FFI. 08:44:50 ah 08:44:56 elliott, for what ultimate purpose? 08:45:10 A vote-counting IRC bot. 08:45:14 heh 08:45:19 elliott, why would that need FFI? 08:45:40 Let's lie and say it's for optimisation. 08:45:51 elliott, what is the truth then? 08:46:05 Not that. 08:46:21 elliott, okay 08:49:03 Ngevd: Synchronicitity; the slightly related Dilbert strip was published pretty close to ten years ago: http://dilbert.com/strips/comic/2001-10-25/ 08:49:34 Was that thing always in colour? 08:49:55 Hmmm 08:51:32 I vaguely recall seeing it black-and-white, but maybe I'm remembering someone's printout on the wall. 08:52:00 fizzie: I've seen it black-and-white in a black-and-white compilation book 08:52:01 I've got a collection that has that story arc but not that strip in black and white 08:52:09 I think there are both black-and-white versions and coloured ones 08:53:20 In other news, my Piet implementation in Haskell is off to a good start 08:54:15 Man, why libraries gotta be not thread safe. 08:54:52 It is approximately now when I had the idea of using head and (:) as the stack 08:55:17 don't use head use pattern-matching 08:55:58 I'll try 08:58:03 Numeric input: 08:58:18 Actually, I'll think I'll test it first 09:00:12 Prepare yourself for some awful Haskell 09:00:15 inn input stack output = let (toPush, inLeft):_ = reads (dropWhile (not . isDigit) input) :: [(Integer, String)] in (inLeft, toPush:stack, output) 09:00:56 Just found a downside 09:01:26 Yup, fails when there isn't any numbers in the input string 09:19:52 -!- elliott has quit (Ping timeout: 255 seconds). 10:25:36 -!- sllide has joined. 10:39:07 -!- cheater has quit (Ping timeout: 256 seconds). 10:40:33 -!- GreaseMonkey has quit (Quit: The Other Game). 11:09:10 My three-cell brainfuck to Piet translator doesn't work 11:10:01 three-cell brainfuck? 11:10:12 what is even the point of that 11:10:23 Oerjan proved it Turing-Complete 11:10:36 Ngevd, bignums? 11:10:42 Yeah 11:10:47 right 11:11:59 is there any esolang based on matrix operations? 11:12:53 hm searching turns up http://esolangs.org/wiki/Matrix 11:13:45 eh, looks underspeced and probably useless 11:20:30 MATLAB. (Yeah, yeah; not esolang, not based on matrix operations. But you could never tell from the name.) 11:20:57 I seem to remember a tool to translate Piet into some other language 11:21:11 But I saw this 2007-8 11:21:17 Don't remember to well 11:21:47 I just remember some wiggly text 11:21:57 Snaking down the screen 11:24:01 -!- BeholdMyGlory has joined. 11:24:37 I did something Piet-related, but I've already forgotten what it was. 11:25:39 It seems to be an incomplete LLVM-driven Piet compiler. 11:28:18 There also seems to be a script which translates a subset of befunge-93 (no stringmode, g/p, ?, #, 0-9, \, according to comments) into Piet. 11:28:29 That may have beeb it 11:28:32 *been 11:30:06 Timestamps on these are early 2010, but of course that might just be the timestamps. 11:34:48 This is why you put a "File created: " comment in every interesting file 11:36:34 Fortunately, none of my files are especially interesting. 11:37:05 They don't need to be especially interesting, just interesting 11:38:17 Well, my Brainfuck to Piet translator has an error I can't work out 11:38:22 The error is "*** Exception: bf2piet.hs:7:18-100: Non-exhaustive patterns in lambda 11:38:22 " 11:38:46 > (\(Just x) -> x) Nothing 11:38:46 *Exception: :3:1-14: Non-exhaustive patterns in lambda 11:38:58 Line 7 is "translation ']' = \(x,yh:yi,z) -> (x ++ "dup bnz." ++ (show yh) ++ "a\n" ++ (show yh) ++ "b:\n",yi,z)" 11:39:22 > (\(x,yh:yi,z) -> "foo") (1,[],2) 11:39:23 "*Exception: :3:1-21: Non-exhaustive patterns in lambda 11:41:52 Worked it out 11:42:00 It's going through the program backwards 11:42:59 Thanks! 11:43:03 -!- CakeProphet has joined. 11:43:03 -!- CakeProphet has quit (Changing host). 11:43:03 -!- CakeProphet has joined. 11:44:16 I bet none of you had had that problem in a program before 11:49:40 Ngevd, what problem? 11:49:57 Having an error because the input is being parsed backwards 11:50:18 Ngevd, err you were parsing bf from the end of the string? What? 11:50:26 Somehow, yes 11:50:36 ah, not intentionally, right 11:50:45 I'll copy the full program somewhere 11:51:32 don't expect me to help debug it. Too tired atm. 11:51:44 I've got it to work! 11:51:55 ah okay 11:52:07 http://codepad.org/CMnvQoru 11:54:00 I won't pretend it's the best of programs 11:54:40 that seems like a very simple translation done there. I wasn't aware bf mapped that easily into piet 11:55:05 wait, it doesn't generate an image anywhere, that can't work 11:55:15 Read the comment at the top 11:55:30 And open the link at the end of the comment 11:55:35 was wider than my screen. 80 cols ftw 11:55:52 I forgot to linebreak that comment 11:56:12 http://www.toothycat.net/wiki/wiki.pl?MoonShadow/Piet 11:57:31 hm 11:57:44 Not the most efficient way to do it, I'll admit 11:58:26 If I translate my code to Python, we'll have a Fractran -> Piet translator that goes through three different languages 11:58:53 Fractan being? 11:59:16 http://esoteric.voxelperfect.net/wiki/Fractran 11:59:37 Essentially the same to iterated collatz functions 12:00:23 ah 12:00:25 I am proud of line 14 of my program 12:00:29 right 12:01:06 an interpreter in J?! 12:01:24 Where!? 12:01:45 Oh, there 12:07:40 Ngevd: Does that not need a "0 0 0" in front of the Piet-asm program to initialize the fake-tape? 12:07:49 Damn, so it does 12:08:20 I can fix that with 10 characters 12:08:42 http://codepad.org/u2BOIo9w 12:09:03 No wait 12:09:07 http://codepad.org/7E5Fw9Pk 12:09:08 Oh, I was assuming you'd have put it in the initial state of foldr to save the ++. 12:09:20 That would be even better! 12:09:56 http://codepad.org/elKaoEa8 12:12:41 Also wouldn't translation '>' (x,y,z) = (x ++ "...\n", y, z) save a bit of typing when compared to translation '>' = \(x, y, z) -> (...)? 12:13:11 Yes it would 12:13:18 By a long way 12:15:19 Then you could probably use it as the first parameter of your fold, and fold the bf_program directly, I'd think. At least with some slight changes. 12:16:40 foldl (flip translation) ("0 0 0\n", [], 0) bf_program or something, maybe. Can't be bothered to think it through. 12:18:12 Seems to work 12:20:34 http://codepad.org/4kfGocPC 12:23:55 -!- sllide has quit (Read error: Connection reset by peer). 12:27:35 Now, where could I put this so it would be seen by people who vaguely care? 12:30:39 -!- ais523 has quit (Read error: Connection reset by peer). 12:31:50 -!- ais523 has joined. 12:33:09 There's that EsoInterpreters page, but strictly speaking it's only for interpreters. Possibly there could be a similar matrix for compilers from one language to another. 12:35:38 -!- The_Cat has joined. 12:55:21 elliott: it's not hard for those who're used to building data structures from scratch, which my students most definitely are not. 12:55:59 (what is the way to leave delayed messages on the channel?) 12:56:06 The @tell thing 12:56:12 @tell 12:56:12 Plugin `tell' failed with: Prelude.head: empty list 12:56:28 I don't know how to get help with lambdabot 12:56:52 @help tell 12:56:52 tell . When shows activity, tell them . 12:57:07 Although elliott logreads 12:57:19 It'd probably be safer to @tell 12:57:26 Also Freenode MemoServ. (Is that thing still alive? Does anyone use that?) 12:57:46 fizzie: it's still alive, and is used on occasion 12:58:05 "-MemoServ- You have 0 memos (0 new)." :( 12:58:37 You can also ask fungot to forward messages, but he's not exactly reliable. 12:58:38 fizzie: only i don't sing it, bruno?" said bruno. " what, you know, is fnord in the week. and that's exactly our plan i can assure you!" 12:59:17 fungot, will you tell Ngevd if doing this works? 12:59:18 Ngevd: ' she's tired, poor thing!' cried the tiger-lily. ' as to poetry, you know!" bruno said, to do a ' bit' of shakespeare when there was nobody to look at all things with a sort of mist now, i daresay you haven't had much practice.' 13:11:47 This I-triple-E spam is so... From: IEEE Spectrum Tech Alert , Subject: With the Arduino, Now Even Your Mom Can Program 13:13:44 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 13:25:15 fizzie, ... wow. 13:25:56 besides isn't the Arduino AVR? 13:26:17 which means non-trivial C coding in my experience. 13:28:10 There's an AVR chip on it, but the project also includes some sort of a tries-to-be-simple library, I believe. 13:28:27 And an IDE. 13:31:12 (The toolchain's still C/C++-based, though.) 13:39:05 -!- derdon has joined. 13:39:27 -!- boily has joined. 13:39:32 -!- ais523 has quit (Read error: Connection reset by peer). 13:41:11 -!- ais523 has joined. 13:45:58 fizzie, yeah... 13:48:43 I really don't think it makes *programming* any simpler; might make interfacing with things easier, though. 13:49:56 The article itself is just on the history of Arduino. I don't know who picks (and titles) these snippets they send in this "tech alert" email. 13:53:44 -!- Phantom_Hoover has joined. 14:21:28 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:35:56 -!- boily has quit (Quit: WeeChat 0.3.6). 14:46:02 -!- copumpkin has joined. 15:04:46 -!- MSleep has changed nick to MDude. 15:24:41 bleh, how am I meant to mark this question when I don't really understand it myself 15:27:31 ew 15:29:05 ais523, ouch 15:29:20 ais523, discuss with whoever formulated it? 15:29:49 nah, I just need to focus on it more 15:29:57 okay 15:31:34 -!- augur has quit (Remote host closed the connection). 16:02:24 -!- augur has joined. 16:05:52 -!- ais523 has quit (Remote host closed the connection). 16:06:27 -!- augur has quit (Remote host closed the connection). 16:11:25 How do I get the output from a command line command into a file? 16:11:58 command > file 16:14:05 Soon, very soon 16:14:14 Ominous. 16:14:16 I will have sort of written a brainfuck interpreter in Piet! 16:14:25 Nyahahaha! 16:15:02 You mean you'll have something like http://www.matthias-ernst.eu/pietbrainfuck.html ? 16:16:04 EXCEPT BETTER 16:16:33 A brainfuck-to-Piet compiler written in Haskell is not a brainfuck interpreter in Piet, though. Assuming this is still about the same thing it was. 16:16:45 -!- augur has joined. 16:16:54 Trust me on this. 16:17:17 Ngevd, no 16:19:53 Ngevd, no, you are English. 16:21:03 -!- Zuu2 has quit (Ping timeout: 260 seconds). 16:27:43 -!- augur has quit (Remote host closed the connection). 16:31:54 -!- augur has joined. 16:35:35 -!- augur has quit (Remote host closed the connection). 16:38:50 -!- The_Cat has quit (Quit: Leaving). 16:49:57 -!- tiffany has joined. 16:50:59 -!- ais523 has joined. 16:57:09 -!- elliott has joined. 16:59:49 -!- monqy has joined. 17:00:26 -!- Ngevd has quit (Ping timeout: 258 seconds). 17:02:22 Disappointed that there's no updates on my second day of Arch. 17:02:27 Maybe I should use the testing repo. 17:03:35 Install more stuff 17:03:56 elliott, TRAITOR 17:04:17 Phantom_Hoover: Have you seen how old Debian's ghc is. 17:04:36 elliott, I know it's really old, but... 17:05:02 a whole day and no updates!? well, if you used debian it would take a decade or two to encounter an update 17:05:07 Deewiant: Don't say that, you'll make me want to write my "find the largest set of mutually-installable packages". 17:05:10 program. 17:05:30 That + Debian repos = THEE COMPLEAT LINUX 17:05:36 olsner: lol 17:07:21 elliott: Oh and re. clyde, yaourt 17:07:44 Deewiant: Yeaaaah, I don't think I'm ever going to use yaourt again 17:07:51 Unless they completely rewrote it 17:08:01 It's a lot better than back when I switched away from it 17:08:23 I'll... consider it. 17:08:26 I.e. it isn't painfully slow 17:08:36 I think that was pretty much my only issue with it 17:08:36 it was pretty slow last I checked 17:08:42 pretty really slow 17:08:43 When was that 17:08:50 I dunno amonth or two 17:08:52 I hear they rewrote some of it in C or something 17:08:58 hmm, I wonder if this is a bug: whenever I try to uninstall something that has dependencies on it, aptitude thinks uninstalling every package in the system is the best solution 17:09:02 Oh, guess not then 17:09:10 olsner: no, that's correc 17:09:11 but if I just scroll past the whole list to the "foo: depends on something" and add those packages to the list of stuff to remove: presto, it works 17:09:11 It's been fast for me since several months 17:09:11 t 17:09:22 Deewiant: Yeah but you use a Cray 17:09:28 monqy: What do you use for AUR, or do you just not 17:09:31 (I'm considering just not) 17:09:41 elliott: I don't think any part of it is CPU-intensive :-P 17:10:15 i try to avoid aur but my avoidance means i haven't had too much reason to bother switching away from yaourt 17:10:23 i've considered it, but ehhhhhhhhhh 17:10:28 The frontpaging is really starting to show in r/AskScience. 17:10:30 It uses something fancy to check for updates to AUR packages in bulk instead of doing individual HTTP gets, which is nice 17:10:37 There are a /lot/ more ignorant answers to questions. 17:10:38 clyde was getting really slow with that 17:10:43 yaourt? is that a funny name for yoghurt? 17:10:48 yes 17:10:58 Although the front-page questions are still good. 17:11:00 olsner: It has a --sucre option 17:11:03 olsner, it's French, IIRC. 17:11:14 Maybe I'll install linux-ck 17:11:19 That sounds like a fun way to break my system 17:11:24 It isn't broken enough right now 17:11:36 Wow, there's even a repo 17:11:37 I am so lucky 17:12:57 what's linux-ck? 17:13:07 ais523: linux + con kolivas' patches including bfs 17:13:48 i see fs and think filesystem instead of fuckscheduler :( help 17:14:02 just make an fs /for/ the scheduler 17:14:04 a bit like procfs 17:14:05 brain filesystem 17:14:17 a fuckscheduler sounds profitable 17:14:22 the brainfuck scheduler would be better if it were actually written in brainfuck 17:14:41 ais523: it's not the brainfuck scheduler 17:14:56 Phantom_Hoover: "Please note: jokes as top-level comments, memes, and layman speculation will be downvoted and removed." heh 17:15:31 It is completely ridiculous how much less of a hog Chromium is to Firefox. 17:15:48 elliott: it's also ridiculous that Firefox somehow manages to be faster despite that 17:16:00 ais523: It would be, if that were true! 17:16:02 or has Firefox got slower since 3.6? 17:16:12 How do you define "faster"? 17:16:14 or is Chromium just particularly slow on my computer? 17:16:24 I would guess so; it's very fast here. 17:16:31 elliott: time to open a webpage, when I happen to open it in both browsers 17:16:46 come to think of it, it's probably because Firefox is blocking JS, ads, and all those sorts of things that slow pages down 17:16:52 which gives it something of an unfair advantage 17:26:55 -!- Gregor has set topic: EPL evening school assignments! http://tinyurl.com/5stnu5n | It's the end of an era | RIP John McCarthy | TO SHREDS! | http://codu.org/logs/_esoteric/. 17:26:58 -!- Gregor has set topic: EPL evening school assignments! http://tinyurl.com/5stnu5n | It's the end of an era | RIP John McCarthy | TO SHREDS! | http://codu.org/logs/_esoteric/. 17:27:11 Gregor: You missed the ) 17:27:36 -!- ais523_ has joined. 17:27:47 Deewiant: Seems like pacaur, aurget, packer are decent non-yaourt options :P 17:28:17 Although it'll be annoying to have to update AUR separately 17:28:24 Eh, I'll just wait until I actually need an AUR package 17:28:29 -!- ais523 has quit (Disconnected by services). 17:28:32 -!- ais523_ has changed nick to ais532. 17:28:34 -!- ais532 has changed nick to ais523. 17:28:40 ais523: you scared me for a second there 17:29:27 typo 17:31:51 elliott: Ohhhh, it was a joke dur I didn't get it >_> 17:31:59 elliott: Not sure where to put it now :P 17:32:05 -!- Gregor has set topic: EPL evening school assignments! http://tinyurl.com/5stnu5n | It's the end of an era | RIP John McCarthy) | TO SHREDS!) | http://codu.org/logs/_esoteric/. 17:39:55 Maan 17:40:04 I have the most terrible job upon me 17:40:14 I have to convince people to let me write pthreads code 17:40:29 Not only do I have to write pthreads code, but I have to CONVINCE PEOPLE to LET ME. 17:45:17 -!- Ngevd has joined. 17:47:26 elliott, I wasn't aware that pthreads was only permitted to be used by the privileged few. 17:52:28 * \return HUBBUB_OK on success, appropriate error otherwise 17:52:33 that is _not_ helpful >:( 17:53:46 TIL that Steve Jobs used to drive a car with no license plates 17:53:55 by changing it every 6 months to exploit a loophole in the law 17:53:58 -!- Darth_Cliche has joined. 17:54:31 hubbub ok 17:56:38 ais523: can you make all libraries thread-safe; thanks 17:56:59 elliott: the whole ICA/SCI stuff is indirectly about thread-safety 17:57:54 elliott: why do you want to code pthreads? 17:58:00 olsner: I /don't/ 17:59:41 oh, you *have* to? but people won't let you? 17:59:46 that doesn't make sense 18:03:47 I hold a gun to your head and tell you to rob a bank. 18:03:49 Q.E.D. 18:04:56 Phantom_Hoover: actually, if you really need to hold someone at gunpoint, you should do so from a distance, maybe about eight feet away 18:05:14 It's a hypothetical, ais. 18:05:15 if the gun is adjacent, then it's possible to push it away in less than pretty much everyone's reaction time 18:06:02 ais "holding people at gunpoint master" 523 18:06:32 He took a hint from Wolfram to get that proof. 18:07:04 Phantom_Hoover: ? 18:07:13 oh, about holding people at gunpoint? 18:07:15 Yes. 18:07:17 turns out it doesn't work very well over the phone 18:07:27 not internationally, at least 18:07:31 I'm pointing a gun at all of you right now. 18:07:34 I haven't tried national or local calls 18:07:35 Or, well, you held someone at gunpoint and forced them to prove it. 18:07:44 Much as Wolfram does. 18:07:52 elliott: I suspect you're a little out of range 18:08:11 in fact, the shot's probably even blocked by the curvature of the earth 18:08:16 although I'm not sure how far off the ground you are 18:08:23 for some reason I kind-of assumed you lived in a bungalow 18:08:53 It's because construction techniques in the North aren't sophisticated enough to permit multiple storeys. 18:09:03 I can confirm this. 18:09:03 They try basements sometimes, but it never ends well. 18:10:33 I can't believe people actually use Risc OS. 18:11:21 elliott: I've used it! seriously 18:11:35 Yes, me too, briefly. 18:11:37 the computers at my primary school mostly ran either Risc OS or the BASIC interpreter on the BBC Micro 18:11:44 Same, when I was super-young. 18:11:46 But no: I mean like /actually use/. 18:11:46 Me too, quite a bit 18:11:52 Like /actually/ /use/. 18:11:58 Like, people use it to do their online banking. 18:12:03 My neighbour (who is like eighty) used it until a few years ago. 18:12:13 I refuse to do online banking, and I'd imagine every TDWTF reader does too 18:12:20 -!- iamcal has quit (Remote host closed the connection). 18:12:56 hmm, I should quote "Of all the things the problem that wasn't his was, being not his problem wasn't one of them.", because people have been quoting it a lot recently but I don't think it's been quoted in #esoteric yet 18:12:57 ais523: It was an example (picked because I have evidence for it). 18:14:04 [["You fool!" He swiveled towards Bob. "You don't understand at all. That job is a piece of PostScript code. The print server isn't running my numbers. The PRINTER is! It's far more powerful than you can imagine!"]] 18:14:07 I do not regret skimming this 18:14:48 ais523: you know, if GPUs are being used for intense computation, printers have to be next 18:14:58 I am become Printer, destroyer of worlds. 18:15:05 we'll get super-parallel general-purpose dot matrix computers, or something 18:15:13 elliott: I've met people who've done computations on printers seriously 18:15:39 because the printer was as powerful as the workstation, and it could compute the results faster than they could be transmitted to the printer over its relatively slow interface 18:20:01 heh, anagolf does have PostScript 18:20:04 I just went and checked 18:20:10 ais523: you didn't know that? 18:20:13 yshl or whoever does a ton of stuff with it 18:20:24 elliott: I knew it had several languages beginning with P 18:20:30 I couldn't remember if PostScript specifically was one of them 18:20:42 or whether I was muddling it with PHP 18:21:34 aha, I need AUR already 18:23:13 Hmm, packer looks like it might be nicer than yaourt 18:23:32 powaur too 18:25:47 -!- tiffany has quit (Quit: Leaving). 18:26:33 crazy, risc os uses . to delimit directories and / for file extensions 18:27:01 it's like if you deliberately tried to be as different as possible 18:27:14 DOS should have adopted - as a dir separator when it chose / for paths 18:27:19 ls /l -usr-bin 18:27:26 erm 18:27:28 for options 18:27:47 istr, some of the really old mainframe systems also used . as a directory separator 18:28:39 I'm really happy gmane shows those country flags 18:28:45 because i'm learning that every risc os user is british 18:28:46 without fail 18:29:12 I think / for options was established well before DOS even had directories, and that that was the reason they had to invent the backslashes 18:29:15 elliott: / comes from CP/M 18:29:18 -!- tiffany has joined. 18:29:23 olsner: Right 18:29:30 Yeah yeah, CP/M is just DOS--++ 18:34:18 -!- tiffany has quit (Remote host closed the connection). 18:36:03 -!- tiffany has joined. 18:39:51 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds). 18:42:58 I think DOS – and Windows' impl of it – can still run CP/M programs unmodified 18:43:02 -!- BeholdMyGlory has joined. 18:43:05 not sure if the syscall numbers are different 18:43:10 but everything else is designed for compatibility 18:45:07 -!- augur has joined. 18:51:25 I tried a bit ARMA 2. I'm quite impressed by that game. For those who don't know it is a highly realistic military sim. Think COD or Battlefield but ultra-realism added. 18:51:37 very difficult though 18:52:36 Red Orchestra is closer to "COD or Battlefield but ultra-realism added", Operation Flashpoint and ARMA are more large-scale 18:53:18 Deewiant, hm good point. I tried Battlefield 2 once at a friends place. So my experience with those games is limited to video + about half an hour of hands on experience. 18:53:26 -!- olsner has quit (Ping timeout: 276 seconds). 18:53:55 Why does anyone even write thread-unsafe code; answer: it's a fucking pain in C 18:54:02 Or maybe Battlefield is more like it, I was thinking CoD/MoH 18:54:04 Resolution: Everyone should write in Haskell instead; that would also save me writing bindings 18:54:14 Deewiant, MoH? 18:54:17 Medal of Honor 18:54:26 `quote honor 18:54:29 No output. 18:54:36 ah 18:54:37 What. 18:54:38 `quote honour 18:54:41 28) ehird: There is no h in "honour" 18:55:33 ARMA 2 looks quite good. And I can turn up the graphics setting to get 30 FPS with vsync on, so somewhere between 30 and 60 FPS without vsync. 18:57:33 that is ARMA 2: Reinforcement, which is both an add-on and a standalone. I have no idea if the original ARMA 2 looks as good. 18:58:26 Deewiant, I have to complain about the helicopter flying though. I find it highly unrealistic after flying helis in flightsims. 18:59:06 and they didn't seem to differentiate between IAS, TAS and GS. 18:59:08 Are you sure the flight simulators are accurate compared to helicopter simulators? ;-) 18:59:50 Deewiant, well, I know enough to say they are closer than ARMA 2. Basically, if it was realistic I wouldn't be able to fly a helicopter with my keyboard. 19:00:24 there is no neutral position of the controls in a heli. They all interact with each other and the flight conditions too much for that 19:00:42 -!- Ngevd has quit (Read error: Connection reset by peer). 19:03:22 -!- Ngevd has joined. 19:05:02 -!- olsner has joined. 19:08:43 Targets (2): gconf-3.2.2-1 licenses-2.9-1 19:08:43 OMG UPDATES 19:08:44 SO HAPPY 19:10:11 [elliott@dinky hubbub]$ alsamixer 19:10:12 cannot open mixer: No such file or directory 19:10:13 Wait, what. 19:10:29 `/etc/rc.d/alsa start` has been done. 19:10:31 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /etc/rc.d/alsa: No such file or directory \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /etc/rc.d/alsa: cannot execute: No such file or directory 19:14:38 http://www.eastoftheweb.com/short-stories/UBooks/DeatScra.shtml 19:14:41 Ahahahahahahaha 19:15:07 There was a guy in my school who copied this story -verbatim- and submitted it to a short story competition. 19:15:12 The teacher loved him from it. 19:15:17 *for it 19:16:33 I *think* he submitted it to an exam, too. 19:17:11 I... guess nobody actually cares. 19:17:20 Not really 19:17:40 He's a really annoying objectivist, does that make it interesting? 19:17:55 hi 19:19:52 if (parser->tb != NULL) { 19:19:52 146 /* Client is defining their own token handler, 19:19:52 147 * so we must destroy the default treebuilder */ 19:19:52 148 hubbub_treebuilder_destroy(parser->tb); 19:19:52 149 parser->tb = NULL; 19:19:52 150 } 19:19:54 Oh come on. 19:20:54 hmm? 19:21:53 hubub.,.,.. 19:22:04 olsner: The interface is SLIGHTLY 19:22:05 LSES 19:22:06 ORTHOGONAL 19:22:08 THAN I'D LIKE 19:22:12 s/LSES/LESS/ 19:22:18 hubbabubba is a brand of chewing gum 19:22:55 elliott: just rewrite everything, it'll be awesome 19:23:04 eliotbub 19:23:17 olsner: noooooooooooo 19:23:25 Also how do you even know that, that's a UK thing. 19:23:42 it's a uk thing? 19:23:53 I know everything, that's how 19:23:58 Hubba Bubba is a brand of bubble gum originally produced by Wm. Wrigley Jr. Company, a subsidiary of Mars, Incorporated,[1] in the United States in 1979 but more recently produced in countries around the world. 19:24:01 a subset of everything, anyway 19:24:04 i thought it wa sa usa thing.... 19:24:54 Deewiant: Oh 19:24:59 Well everything is a UK thing 19:25:02 Even if it isn't in the UK 19:25:44 What about Mars Bars? 19:30:04 Oh nooo, I can't figure out which interface to expose. 19:30:44 All of them 19:31:12 elliott exposes all! 19:31:17 That's one for the tabloids 19:31:42 Deewiant: That'll be such duplication though :-( 19:32:16 Probably easier to deal with 19:32:29 Deewiant: Eh? 19:32:39 For users 19:33:14 Deewiant: Well, probably only one of these interfaces is ACTUALLY useful, and the other one can be implemented in the exact same way the other one is 19:33:21 i.e. Trivial use of the lower-level functions 19:33:28 (OK, an unsafePerformIO to turn IO [a] into [a] too) 19:33:40 (But you're encouraged to use unsafePerformIO if you're making your own interface on top of this :P) 19:33:44 If it needs an unsafePerformIO it's something you want hidden :-P 19:33:48 Actually I wonder if I could use ST to avoid the unsafeness anyway. 19:33:51 Deewiant: What? 19:34:06 Deewiant: The low-level interface is in IO. On top of that, pure interfaces are built with unsafePerformIO. 19:34:18 I'm deciding how much to expose purely, since a lot of it will be useless :P 19:34:49 It just doesn't sound like good practice to tell users "oh, if you want to do that, just unsafePerformIO this" 19:35:19 -!- oerjan has joined. 19:35:23 Deewiant: If they want this interface, chances are incredibly high they're building their own interface 19:35:26 -!- GreaseMonkey has joined. 19:35:54 Deewiant: In this case, the pure interface would be parseTreeEvents :: Lazy.ByteString -> [TreeEvent] or similar 19:35:54 Incredibly high chances isn't 100% :-P 19:36:02 Deewiant: But that's basically unusable without actually processing it sequentially 19:36:03 But I dunno, whatever you think works 19:36:04 Because it involvse things like 19:36:07 hubbub_tree_has_children has_children; /**< Has children? */ 19:36:12 hubbub_tree_encoding_change encoding_change; /**< Change encoding */ 19:36:30 i.e. it makes no real sense as a list (unlike the main pure interface, which produces a list of tokens), only as a bunch of events :P 19:36:45 In which case you should just use the IO interface and mutable variables and shit and then unsafePerformIO it to get your wonderful pure tree. 19:36:50 Because that's what you'll have to do anyway. 19:45:33 God I hate the sound of my own voice 19:47:12 Insert oblig. "you're not the only one". 19:47:31 It's so bloody English 19:47:53 I sound like I'm about to start rhyming scone with phone all the time 19:48:00 DIE 19:48:44 06:29:47: Hey, why don't we have a McCarthy topic yet? 19:48:44 06:30:10: There, that's my bare minimum contribution to society. 19:48:59 Gregor: I DETECT A LACK OF TOPIC CHANGE IN THE LOGS 19:52:26 -!- Zuu has joined. 19:52:40 -!- Zuu has quit (Changing host). 19:52:40 -!- Zuu has joined. 19:52:50 it's that christmas gatekeeper again 19:58:50 inn input stack output = let (toPush, inLeft):_ = reads (dropWhile (not . isDigit) input) :: [(Integer, String)] in (inLeft, toPush:stack, output) 19:59:00 for patterns that may fail, use case, not let 19:59:20 s/.* fail, // 19:59:38 s/let/where/ -- now it's actually useful advice 20:00:13 also, don't listen to elliott when he's in the "everything that isn't the way i do things suck" mood 20:00:35 oerjan: let is a code smell 20:00:58 if you're that deeply nested that where doesn't work, you have bigger problems :P 20:01:22 also, your advice doesn't apply in do blocks. 20:01:25 true. 20:01:29 don't use let...in, then :p 20:02:39 let is more local than where, for short/simple things I prefer it 20:03:07 Ngevd: also if all that dropWhile is just for skipping whitespace, then reads does that automatically. 20:03:33 Deewiant: If it's "more local" in any appreciable way, you have too much nesting in the first place 20:03:42 I'm not saying let...in should never be used ever, but it's certainly a symptom 20:03:54 oerjan, it's for finding the next number 20:04:01 let xs = foo in bar xs where bar xs = ... 20:04:08 There may be any range of symbols 20:04:17 ok 20:04:52 Deewiant: Uh 20:04:55 bar foo where bar xs = ... 20:05:38 I'm going to leave that now, and when I'm decent at Haskell (about the time when @ will come out, at current rates), I'll find it and think "WTF was I thinking?" 20:05:39 Now assume I want to name foo because it's an expression 20:05:45 That isn't just a name 20:05:52 Deewiant: bar $ foo 20:06:01 Ngevd: you're going to get good at Haskell just as it becomes obsolete? 20:06:07 elliott: That doesn't name foo 20:06:10 Probably 20:06:16 It's not the best of plans 20:06:43 Deewiant: It probably shouldn't have a name, but if you must: bar xss where xss = foo; bar xs = ... 20:06:58 -!- augur has quit (Remote host closed the connection). 20:07:00 Why shouldn't it have a name 20:07:18 And I don't want to do that because then bar and possibly baz and qux see xss 20:07:32 Because if it does, it's probably too complex; and that doesn't matter, if they're big enough they should be at the top level anyway 20:07:55 And yes, you can come up with a contrived situation where this is bad advice /and/ the code is fine :P 20:09:19 foreign import ccall "hubbub/parser.h hubbub_parser_setopt" 20:09:19 c_parser_setopt :: Ptr ParserStruct -> CInt -> Ptr () -> IO CInt 20:09:20 This will be painful 20:10:28 For me it's also a bit of a style thing because I prefer having "where" on its own line, so with let..in I can sometimes save a line :-P 20:11:18 "let x = f y\n in foo x (g x) (h x)" instead of "foo x (g x) (h x)\nwhere\nx = f y" 20:11:31 I use 20:11:31 20:11:31 foo = bar 20:11:31 where quux = abc 20:11:31 zuul = def 20:11:32 20:11:34 but have been occasionally tempted by 20:11:36 20:11:38 foo = bar where 20:11:40 quux = abc 20:11:42 zuul = def 20:11:44 20:11:46 and 20:11:48 20:11:50 foo = bar 20:11:52 where 20:11:54 quux = abc 20:11:56 zuul = def 20:11:58 -!- Zuu has left. 20:11:58 Pretty sure the first is the best though 20:12:00 It gets slightly annoying with long do blocks, but those probably shouldn't be in a where anyway 20:12:02 And the alignment is nice 20:12:07 I use the last 20:12:29 My "where" stuff tends to be long enough that the additional indentation of the first would be a pain 20:12:43 Yeah, I've established well the suckitude of your Haskell code :P 20:12:45 Likewise the second lengthens the foo = bar line 20:13:20 The second line is kinda gross because the "where" looks like part of the expression. 20:13:33 This doesn't annoy me with "do" but I think that's because do is actually a bona-fide expression :P 20:13:41 The frontpaging is really starting to show in r/AskScience. 20:13:51 i think you mean r/askreddit 20:13:56 Leaving this here in case I feel the urge to go back to this implementation: http://sprunge.us/IZRK 20:13:57 IIRC you've only complained about that parser :-P 20:13:58 oerjan: I think not 20:14:07 Deewiant: What parser 20:14:22 -!- impomatic has joined. 20:14:24 I can't remember which part of it, but the C one 20:14:40 Deewiant: Err, what's the context 20:14:43 I have no clue what you're talking about 20:14:46 DS9K C 20:14:51 Oh 20:14:54 No, I also complained about list-tries 20:15:03 And your use of 904534895749534857-parameter functions 20:15:29 The parameter count thing was in mushspace, I think 20:15:45 And list-tries was mostly about the size of the Map class, which I just couldn't figure out how to avoid :-P 20:15:48 Nah, there was a Haskell thing too 20:16:30 Possibly the lack of separate types for function parameters 20:16:44 ?hoogle a -> (Ptr a -> IO b) -> IO b 20:16:44 Foreign.Marshal.Utils with :: Storable a => a -> (Ptr a -> IO b) -> IO b 20:16:44 Foreign.ForeignPtr withForeignPtr :: ForeignPtr a -> (Ptr a -> IO b) -> IO b 20:16:44 Foreign.Marshal.Alloc allocaBytes :: Int -> (Ptr a -> IO b) -> IO b 20:16:50 elliott: oh huh, is this something new about how things reach the front page? i stopped reading the reddit frontpage a while ago... 20:16:51 But hey 20:16:55 genericUnionWithKey :: (Alt st a, Boolable (st a), Trie trie st map k) 20:16:55 => (st a -> trie map k a -> trie map k a) 20:16:55 -> ((a -> a -> a) -> st a -> st a -> st a) 20:16:55 -> ([k] -> a -> a -> a) 20:16:55 -> trie map k a 20:16:57 -> trie map k a 20:17:00 -> trie map k a 20:17:02 Is minimal 20:17:11 Boolable o.O 20:17:20 oerjan: They just changed the default set 20:17:22 Deewiant: "Boolable" 20:17:25 Deewiant: This is not acceptable 20:17:33 It's a hack 20:17:38 Trie is a typeclass? o.O 20:17:40 Deewiant: No, stop talking 20:17:43 No 20:17:46 Yes 20:17:47 Fix that 20:17:47 Now 20:17:52 No 20:17:57 I'll be going to sleep shortly 20:17:59 Please 20:18:03 And I don't know of a good way of fixing this 20:18:25 Deewiant: Meh, I'll just send you ten patches that rewrites half of the library sometime 20:18:31 It is my duty 20:18:35 That's fine 20:18:38 ((a -> a -> a) -> st a -> st a -> st a) looks like liftA2 20:18:42 I don't mind if you can get rid of the hacks :-P 20:18:46 is st Applicative? 20:18:58 or Apply 20:19:13 It's either Maybe or Identity so... yes? 20:19:25 Yeah, it is 20:19:27 then just add an Applicative constraint and get rid of that parameter :) 20:19:36 But it's not liftA2 20:19:39 oh? 20:19:40 elliott: the default set has always been changing, but now it seems there are more than 10 subreddits in it... 20:19:48 oerjan: See reddit blog :p 20:19:51 oerjan: /r/reddit.com got shut down too. 20:20:22 copumpkin: It's either a strict or non-strict combiner function 20:20:34 what does it do on Maybe and Identity? 20:20:41 for Identity I can see it doing one of three things 20:20:43 Well, for the Maybe case 20:20:50 same for Maybe, really 20:20:58 It either selects the Just one if one is Nothing 20:21:08 Or it's liftA2 20:21:12 Or it's a strict version of liftA2 20:21:16 (Just $! f a b) 20:21:33 For Identity it's a hack 20:21:41 How come the report.txt here is empty? http://codu.org/eso/fyb/ Has something broken? 20:21:47 Seriously, don't ask about the Identity :-P 20:21:48 setOption :: CInt -> (a -> (Ptr () -> IO CInt) -> IO CInt) -> Parser -> IO () 20:21:49 Lovely 20:22:00 Deewiant: I'm asking about the Identity 20:22:08 unionVals _ (Id a) (Id b) = Id$ a || b 20:22:09 unionVals' = error "Data.ListTrie.Base.Classes.unionVals' :: internal error" 20:22:14 It's either of those two 20:22:18 And it shouldn't be the latter 20:22:21 Erm 20:22:23 setOption :: CInt -> (a -> (Ptr () -> IO CInt) -> IO CInt) -> Parser -> a -> IO () 20:22:25 what other constructor would you get? 20:22:37 copumpkin: Two different functions 20:22:40 Notice the ' 20:22:45 oh 20:22:50 !sh echo "I am totally broken" 20:22:53 elliott: Also when you do the rewrite can you do the Lazy/Strict split that everybody is doing nowadays kthx 20:22:56 what are you making, out of curiosity? :) 20:23:09 copumpkin: This is from list-tries (Data.ListTrie), it's been made :-P 20:23:11 impomatic: EgoBot is very, very ill and Gregor doesn't care 20:23:16 ah 20:23:33 * Gregor listens to EgoBot's heart monitor slowly fade away. 20:23:41 Deewiant: No, no, I'll make it a type family parameterised on strictness. 20:23:43 copumpkin: This hackiness is so that I can have maps that store (Maybe a) and sets that store (Identity Bool) use the same code 20:23:47 Deewiant: Maybe ConstraintKinds? Definitely type naturals. 20:23:55 elliott: That's just the public API do whatever you want internally 20:24:00 (It is a joke because you should not be allowed to use any language extensions.) 20:24:20 Well yes, anything that doesn't require extra extensions 20:26:02 ?hoogle (Enum a, Integral b) => a -> b 20:26:02 Prelude ceiling :: (RealFrac a, Integral b) => a -> b 20:26:02 Prelude floor :: (RealFrac a, Integral b) => a -> b 20:26:02 Prelude round :: (RealFrac a, Integral b) => a -> b 20:26:05 Bah 20:27:35 @ty fromIntegral . fromEnum 20:27:36 forall b a. (Num b, Enum a) => a -> b 20:27:45 Yes, yes 20:31:45 -!- impomatic has left. 20:32:07 > fromIntegral . fromEnum $ 123456789012345678901234567890 :: Integer 20:32:09 -4362896299872285998 20:32:17 * oerjan whistles innocently 20:33:41 > fromEnum $ 123456789012345678901234567890 20:33:42 -4362896299872285998 20:37:13 setOption :: CInt -> (a -> (Ptr b -> IO CInt) -> IO CInt) -> Parser -> a -> IO () 20:37:16 oerjan: Behold my type 20:38:11 what is Parser 20:39:33 -!- augur has joined. 20:39:49 oerjan: A type 20:39:56 newtype Parser = Parser (ForeignPtr ParserStruct) 20:40:46 * oerjan sidles away carefully 20:42:35 -!- CakeProphet has quit (Ping timeout: 258 seconds). 20:54:54 ?hoogle poke 20:54:56 Foreign.Storable poke :: Storable a => Ptr a -> a -> IO () 20:54:56 Foreign.Marshal.Array pokeArray :: Storable a => Ptr a -> [a] -> IO () 20:54:56 Foreign.Marshal.Array pokeArray0 :: Storable a => a -> Ptr a -> [a] -> IO () 20:54:57 ?hoogle pokeElem 20:54:58 Foreign.Storable pokeElemOff :: Storable a => Ptr a -> Int -> a -> IO () 21:05:19 istr, some of the really old mainframe systems also used . as a directory separator 21:05:43 i vaguely recall vms may have done, in a weird way 21:05:54 Hey oerjan, figure out the zipper of this type. 21:06:04 * elliott watches oerjan scream and run away. 21:06:20 something like logicalVolume:[dir1.dir2.dir3]filename.ext;version where i may recall parts wrong 21:07:19 and there was a way to define new logical volumes in some kind of dictionary 21:07:50 elliott: which type? all you mentioned so far as IO, which i don't know how to zipperize 21:07:56 *has 21:08:27 vms wasn't really mainframe, btw 21:08:38 oerjan: no, that isn't it :P 21:08:59 elliott: what type then 21:09:59 THE WORLD MUST NEVER KNOW 21:10:06 sheesh 21:11:18 it's hard to zipperize something you've never seen 21:11:26 but I'm sure oerjan can do it 21:11:37 I don't think IBM mainframes historically had files. 21:12:02 Punchcard readers and card punchers, sure. 21:12:13 -!- derdon has quit (Remote host closed the connection). 21:13:56 my VM/370 machine has disks with files on them 21:14:55 Argh, I swear I understood centripetal force before I tried to answer this question in r/AskScience. 21:16:41 centripetal force is the force that must act in order to keep something's momentum moving in a circle; the centrifugal effect is what happens if a centripetal force is not present or not strong enough (and manifests as the object appearing to move in the other direction) 21:17:46 ais523, nononono. 21:17:59 Centripetal and centrifugal force don't exist in the same reference frame. 21:18:13 "centrifugal force" doesn't exist; it's an effect caused by the /lack/ of a force 21:18:32 and right, the centrifugal effect only looks like a force if you look at it from a rotating reference frame 21:18:40 otherwise it just looks like the lack of a force, which is what it actually is 21:18:50 Erm, I see what you mean. 21:20:31 Excuse me, my parents come from a rotating reference frame. 21:20:52 Kinky. 21:22:58 I give up, my brain isn't working any more or something. 21:25:39 -!- Ngevd has quit (Ping timeout: 240 seconds). 21:26:27 http://www.reddit.com/r/askscience/comments/lrcws/what_would_happen_if_everyone_simultaneously/ 21:26:31 Actual best question. 21:26:37 We would all die. 21:26:50 I won't look at the question, and rather take the cut-off version 21:26:54 it'd be rather like accidentallying, I guess 21:26:58 but more synchronized and deliberate 21:30:49 :t left 21:30:50 forall (a :: * -> * -> *) b c d. (ArrowChoice a) => a b c -> a (Either b d) (Either c d) 21:31:34 it would create a sewage singularity 21:31:53 i.e. the whole world turns to crap. simultaneously. 21:32:26 elliott: that's a bizarre type for something with such a short name 21:36:00 -!- Patashu has joined. 21:38:00 -!- Ngevd has joined. 21:38:36 -!- elliott has quit (Read error: Connection reset by peer). 21:39:02 -!- elliott has joined. 21:39:29 Help, Look Around You has made me elide everything. 21:44:17 -!- ais523 has quit (Remote host closed the connection). 21:47:34 -!- zzo38 has joined. 21:51:58 This is the shell archive if the SQL reporting program for use with SQLite, another program to make it work with CGI, and an example file (actually, it is a program of actual use, which I have been asked to write, with the HTML template showing what should be done, I made the similar one here) 21:51:59 zzo38: You have 4 new messages. '/msg lambdabot @messages' to read them. 21:52:01 Well, my clever idea for making a brainfuck interpreter in Piet wasn't so clever after all 21:52:03 http://sprunge.us/IAAe 21:52:20 It's 5604 by 1131 pixels 21:52:24 110.6 KB 21:52:29 And only probably works 21:53:24 ?pl maybe x fromCtx (goUp x) 21:53:25 maybe x fromCtx (goUp x) 21:53:28 ?pl \x -> maybe x fromCtx (goUp x) 21:53:29 ap (flip maybe fromCtx) goUp 21:54:08 -!- Vorpal has quit (Ping timeout: 244 seconds). 21:54:18 Targets (7): sg3_utils-1.30-1 parted-3.0-3 libatasmart-0.17-1 lsof-4.85-1 21:54:18 eject-2.1.5-7 udisks-1.0.4-1 xfce4-power-manager-1.0.10-2 21:54:18 SO MUCH BLOAT. 21:54:45 GHC does support universal quantifiers for types. 21:56:09 http://www.reddit.com/r/AskReddit/comments/lrc3q/would_you_fight_a_bear_for_1000000/ 21:56:10 I... 21:57:30 "No because the bear would kill me and I wouldn't get to spend my money" 21:57:33 Nailed it in one. 21:58:19 What if you got the money before and you could fight the bear after buying kit (the answer is yes). 21:59:00 ?pl liftA2 (&&) -- give me a nicer way to write this dammit 21:59:01 liftA2 (&&) 21:59:02 hmm 21:59:09 > mconcat [(>4), (<10)] 5 21:59:10 No instance for (Data.Monoid.Monoid GHC.Bool.Bool) 21:59:10 arising from a use of... 21:59:16 hmph 21:59:21 > ala And foldMap [(>4), (<10)] 5 21:59:23 Not in scope: data constructor `And'Not in scope: `foldMap' 21:59:36 but I'm sure oerjan can do it <-- BUT OF COURSE 21:59:40 > ala All foldMap [(>4), (<10)] 5 21:59:42 lambdabot, what!! 21:59:42 Not in scope: `foldMap' 21:59:47 > ala All F.foldMap [(>4), (<10)] 5 21:59:48 Not in scope: `F.foldMap' 21:59:50 > ala All Foldable.foldMap [(>4), (<10)] 5 21:59:51 Not in scope: `Foldable.foldMap' 21:59:52 > ala All Data.Foldable.foldMap [(>4), (<10)] 5 21:59:53 The section `GHC.Classes.> 4' takes one argument, 21:59:54 but its type `GHC.Bool.B... 22:00:03 HATE YOU SO MUCH 22:00:17 elliott: Yes; some of those things I also wanted infix ways of liftA2 (&&) and liftA2 (++) such thing as that. 22:01:43 -!- CakeProphet has joined. 22:01:43 -!- CakeProphet has quit (Changing host). 22:01:43 -!- CakeProphet has joined. 22:03:17 ?pl fromCtx x = maybe x fromCtx (goUp x) 22:03:17 fromCtx = fix ((`ap` goUp) . flip maybe) 22:03:40 RIP McCarthy 22:03:45 oerjan, I think I pronounce your name horrendously wrong 22:03:46 I pronounce it "O'er jam" but with an n instead of an m 22:04:09 it's ~yohan 22:04:15 GHC does support universal quantifiers for types. <-- yes but i don't think they can be used for doing general predicate logic proofs, or _can_ they? 22:04:29 i pronounce it like that too though 22:05:02 oerjam 22:06:04 Engage Overjam 22:06:45 it's ~yohan <-- oh come on you pronounced it better than that in the sound file you sent 22:06:56 oerjan is the norwegian version of George 22:07:09 George? Why that's my middle name! 22:07:10 _one_ of the norwegian versions 22:07:37 oerjan: halfway between yohan and j\"orgen :P 22:07:38 yes, *one* of them ... there are like a gadjillion versions of george 22:07:45 (aka yerrgan) 22:08:03 i recall this old baby name book with evolutionary (?) trees for several names, the georgios tree was one of them 22:08:21 örjan, jörgen, göran, georg 22:08:29 nicolaos, johannes, cecilia were others 22:09:03 actually when i think about it i'm not quite sure if georgios was a tree 22:09:24 "Yrjö" in Finnish. (Also the Finnish word for 'vomit', incidentally.) 22:09:25 yuri is apparently also a george (not swedish, but russian/slavic/eastern-european) 22:09:27 it may not be that much bigger than what olsner said 22:10:00 well the tree would mostly include names used in norway, naturally 22:11:01 Naturally: why would anyone care about things outside Norway, really? 22:11:13 I often wonder the same thing 22:11:33 in a norwegian baby name book? no reason. 22:12:15 not so sure about that, I think foreign names are generally quite popular 22:12:35 doesn't mean those names are in the book though 22:12:45 Adam - the most foreign of names 22:12:45 It amazes me how Jan can be the same name as Sean and Theo 22:12:47 "Forget Norway", like the song (http://www.weebls-stuff.com/songs/kenya/) goes. 22:13:57 oerjan: halfway between yohan and j\"orgen :P <-- yohan would be in the johannes/jochanan tree, except mostly we would spell it johan, although the spelling yohan was used in a recent norwegian period film 22:14:46 -!- MDude has quit (Ping timeout: 258 seconds). 22:15:24 olsner: this book was from a time when norwegian name laws were stricter than today, a _really_ foreign sounding name may not always be acceptable. 22:16:11 although english loans like jimmy, ronny (curiously frequently in nick name form) were popular at the time 22:18:26 It amazes me how Jan can be the same name as Sean and Theo <-- wait, same as Theo? 22:18:39 Same etymology, different language 22:19:06 i'm skeptical, since jan is in that johannes group 22:19:43 but i guess it may have occured in several ways, like the norwegian "line" 22:19:58 "line"? 22:19:59 Johannes, John, Sean, Ian, Jan, Yan, etc come from I think Hebrew originally 22:20:04 Theo is Greek 22:20:12 Ngevd: yes, yochanan 22:20:26 is there a name derived from line, or was that referring to they johannes line? 22:20:52 olsner: no i mean line is a short form of several other names, like caroline 22:21:31 iirc 22:21:39 oh, Line, that's like our Lina then 22:21:44 yeah 22:22:10 I read it lajn not lineh 22:22:43 (unsure if those pronounciation guides help much though :P) 22:23:20 ...i don't think there is much in that name to confuse a swede 22:23:47 norwegian and line are two english words 22:24:08 apparently 22:24:17 obviously 22:24:56 I like how (the norwegian word for) wrong is pronounced like fail in norwegian 22:27:21 sheesh that MrX crackpot/troll is _still_ going on in the godel's lost letter comments 22:29:35 -!- MSleep has joined. 22:29:41 * Phantom_Hoover → sleep 22:29:42 -!- Phantom_Hoover has quit (Quit: Leaving). 22:29:48 Good idea 22:29:56 -!- Ngevd has quit (Quit: Leaving). 22:30:01 no! sleep is for the weak! 22:30:37 slep is for wek 22:30:43 * olsner slep 22:32:42 wgat about slepe 22:33:08 for the weke 22:33:14 too slep, perching two dram 22:33:15 weka 22:34:06 monqy: yes, if you look at it that way I suppose. 22:36:38 If there was a type in Haskell for only bijective functions, would it be possible to prove non-equality? 22:37:31 -!- pikhq_ has quit (Ping timeout: 244 seconds). 22:37:40 -!- pikhq has joined. 22:39:16 i recall once trying to think about a type system for bijective functions, it seemed like a tricky thing to achieve 22:39:34 ooh? 22:39:35 (for reversible computing) 22:39:49 oerjan: Yes, it would seem to be so. But there are reversible programming languages and I was thinking to do it in a similar way to reversible programming 22:40:37 oerjan: well they're a category 22:40:49 I think an Applicative too 22:41:26 http://www.iai.uni-bonn.de/~jv/popl09-2.pdf 22:41:28 you see that? 22:41:43 other stuff of his also explores it: http://www.iai.uni-bonn.de/~jv/ 22:42:13 Yes, it would be a category, I think. 22:42:57 theyr'e an applicative? 22:43:20 But how would it be Applicative? 22:43:29 the tricky thing iirc was how you sometimes needed to know that a piece of the data is not changed by a function _even if it is composed from functions which do_ 22:44:34 it's a trick of reversible computation called a cascade 22:45:05 you compute something reversibly, copy the result, and uncompute the original 22:45:29 "Yeah, I guess I was trying to say there's always other choices besides fighting a bear for money." 22:47:00 copumpkin: that's about lenses, not reversible computing, isn't it 22:49:23 oerjan: maybe you're right, but there was some paper with a similar title that was about it 22:49:28 I read it a while ago 22:49:29 hmm 22:49:31 :) 22:50:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:57:33 You might be able to restrict that to make a function having the bijective type, if you compose, the functions you are composing must also have bijective types 22:58:25 zzo38: i'm just not sure if anyone knows how to do it without full dependent typing 23:05:03 Does anyone know of some really thin layer on top of Win32/pthreads that just offers mutexes? 23:05:07 That's all I need, a single portable mutex :P 23:05:51 oerjan: Then how do you do it with full dependent typing? I don't know a lot about dependent typing 23:06:28 zzo38: that constitutes a full logic 23:06:39 so you can just have a->b, b->a, and the proposition that f.g = g.f = id 23:06:42 bundled together 23:06:50 and it's the burden of the definer to prove that 23:06:59 ofc you can prove it generically, e.g. you can define a composition operator that requires no proof 23:07:15 yeah 23:09:59 Another thing I would want to see in Haskell is the ability to define classes with no parameters. This would be an alternative way to call functions in modules which do not yet exist, possibly. 23:18:33 -!- copumpkin has joined. 23:21:41 -!- evincar has joined. 23:21:51 elliott: I'm guessing you've already googled "windows pthread mutex" and the first result that talks about mutexes isn't what you're wanting? 23:22:34 have you done that yourself 23:22:44 I have. 23:22:47 A Pthread mutex is an object that can be created, initialized, locked, unlocked or destroyed. A mutex is represented by a variable of type pthread_mutex_t. It is just like any other data variable except that it must be initialized specially, either with the PTHREAD_MUTEX_INITIALIZER macro or the pthread_mutex_init() function. 23:22:49 How are you supposed to make a proposition that (f.g = g.f = id) when you added dependent types? 23:24:05 zzo38: curry-howard 23:24:26 (forall x, f (g x) = x) /\ (forall x, g (f x) = x) 23:24:29 -> 23:24:33 (forall x, f (g x) = x, forall x, g (f x) = x) 23:24:36 -> 23:24:52 ((x::a) -> f (g x) = x, ...blah blah blah if you want to be more haskell-looking...) 23:27:48 * CakeProphet wants to be more haskell-looking. :( 23:28:22 wow pthreads in Windows look horrible. 23:30:58 That doesn't seem to be a type as far as I can see 23:31:25 of course it isn't a haskell type, because haskell isn't dependently-typed 23:31:28 also this thing: http://locklessinc.com/articles/pthreads_on_windows/ 23:32:10 Inductive bij A B := bij : forall (f : A -> B) (g : B -> A), (forall x, f (g x) = x) -> (forall x, g (f x) = x) -> bij A B. 23:32:19 that should be real, actual Coq code 23:32:23 unless I messed it up :) 23:41:21 -!- SimonRC has quit (Ping timeout: 252 seconds). 23:43:14 -!- SimonRC has joined. 23:49:25 @src many 23:49:25 Source not found. You speak an infinite deal of nothing 23:49:32 gah 23:49:46 @info Alternative 23:49:47 Alternative 23:49:50 @src Alternative 23:49:51 class Applicative f => Alternative f where 23:49:51 empty :: f a 23:49:51 (<|>) :: f a -> f a -> f a 23:49:56 hmmmmmmm 23:55:09 I'm guessing the name Merlin is already taken for a programming language. 23:58:10 Deewiant: monqy: aurget, pacaur, packer; pick at random, you are both psychic. 23:58:41 but im bad at choices 23:58:52 i will psychically choose the worst