00:00:31 <oerjan> `frink kessel run -> parsec
00:00:42 <HackEgo> 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:01:13 <elliott> `frink kessel_run := 18 parsecs; kessel_run -> km
00:01:18 <evincar> It craps its pants when I try to match string "->" after (evenIdentifier `sepBy` (char ',' `surroundedBy` ws))
00:01:29 <elliott> `frink kessel_run := 18 parsecs; kessel run -> km
00:01:39 <HackEgo> 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 <oerjan> elliott: it's 12 parsecs you ignorant dolt
00:02:13 <monqy> evincar: in what way?
00:02:31 <elliott> oerjan: that's only true for the millennium falcon
00:02:37 <evincar> monqy: Unexpected "-". Expecting space or ",".
00:02:45 <evincar> As though it's trying to continue matching the list.
00:03:06 <oerjan> evincar: you may need evenIdentifier `sepBy` try (char ',' `surroundedBy` ws)
00:03:06 <monqy> what's the expected space about
00:03:14 <evincar> For the record, the preliminary syntax is { x, y, ...; args; kwargs -> ... }
00:03:29 <evincar> Where the ; sections are optional.
00:03:44 <evincar> I'm just testing it on { x -> 0 } at the moment.
00:03:54 <evincar> Rest parameters and keyword arguments, respectively.
00:05:05 <monqy> anyway where's your rule to match ->
00:05:07 <monqy> what's the whole thing
00:05:12 <evincar> Using try there gives the same error.
00:05:29 <oerjan> 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 <monqy> rul;e/whateveervrr
00:06:00 <evincar> normalLambda = lambdaExterior $ do
00:06:00 <evincar> arguments <- evenIdentifier `sepBy` try ((char ',') `surroundedBy` ws)
00:06:00 <evincar> expressions <- evenExpressions
00:06:00 <evincar> return $ EvenLambda (map identifierString arguments) Nothing Nothing
00:06:16 <evincar> That's probably what's happening...
00:06:32 <monqy> whbgat's surroundedBy
00:07:08 <oerjan> 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:28 <oerjan> this prevents that giving back trouble
00:07:32 <evincar> surroundedBy :: Monad m => m i -> m o -> m i
00:07:32 <evincar> inner `surroundedBy` outer = do outer result <- inner outer return result
00:07:41 <evincar> Crap, lines got borked. :/
00:07:49 <elliott> i am 100% sure parsec has a combinator for that.
00:08:01 <evincar> do { outer; result <- inner; outer; return result }
00:08:11 <oerjan> "between" although that requires writing it twice
00:08:25 -!- hagb4rd2 has quit (Ping timeout: 240 seconds).
00:08:26 <monqy> outer *> inner <* outer
00:08:54 <monqy> you know how to use Applicative right
00:09:39 <evincar> The surroundedBy works for list/map syntax, just not this part of the lambda syntax.
00:10:04 <monqy> spaces is a thing iirc
00:10:27 <elliott> <elliott> i am 100% sure parsec has a combinator for that.
00:10:29 <monqy> or did you know that and just not want to type spaces
00:10:35 <elliott> ?hoogle Parser a -> Parser b -> Parser b
00:10:42 <evincar> I knew that and just didn't want to type spaces. :P
00:10:58 <oerjan> evincar: (evenIdentifier <* ws) `sepBy` (char ',' <* ws), i think
00:12:12 <evincar> Hold up, I'm gonna move some of the whitespace rules around.
00:12:12 <oerjan> 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 <evincar> Yeah, that's fixed it. I wasn't being careful enough with my whitespace rules.
00:14:11 <elliott> Deewiant: Wake up and tell me what to use insetad of clyde
00:15:00 <monqy> 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 <pikhq> It's quite amazing, if horrifying.
00:16:53 <oerjan> pikhq: probably using the ancient r'lyehan charset?
00:16:59 <evincar> monqy: Easy variadic functions. Same reason Scheme has (define (f something . rest) (...))
00:17:20 <pikhq> oerjan: No, it's a .zip file that I *expect* to contain things in a Japanese encoding.
00:17:47 <pikhq> I'm *suspecting* it's something utterly insane like Shift-JIS shoved through the UTF-8 algorithm.
00:17:48 <evincar> pikhq: SJIS mistakenly re-encoded as UTF8 via something else?
00:17:58 <monqy> 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 <pikhq> Unfortunately, I don't think there's anything that could *sanely* invert that.
00:18:47 <pikhq> UTF-8 to UTF-16 conversion?
00:19:08 <evincar> 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 <monqy> 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 <monqy> for your language replace apply with composition
00:19:31 <monqy> (even bigger problesm>????)
00:19:41 <monqy> generic apply is probably always good too though (thumbs up)
00:20:04 <monqy> so you're making even general-puprose?
00:21:54 <elliott> which means your language is insatntly unusable shit, fact.
00:22:28 <monqy> i thought we had already established no currying but haha/yeah
00:24:32 <monqy> 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 <elliott> yes, that's a common aspect of features of this language so far
00:24:58 <evincar> It's not exactly magical, but it is pretty straightforward.
00:25:13 <evincar> And it is basically currying. :P
00:25:23 <evincar> You can have partially applied functions, if that's what you mean.
00:25:33 <monqy> currying is entirely different
00:25:41 <monqy> from partial application
00:28:09 <evincar> 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 <monqy> they are fundamentally different but currying allows for partial application is what you're saying right
00:30:34 <evincar> 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 <evincar> It's just that internally, functions *do* take multiple arguments.
00:31:03 <monqy> even has currying?
00:31:04 <elliott> that sounds elegant and practical.
00:31:33 <evincar> Can't tell if you're serious. :/
00:31:34 <monqy> and yeah what elliott said; it's a fucking mess
00:31:41 <oerjan> ...ghc has much of that too
00:31:48 <elliott> hint: if i'm praising your language i'm not serious
00:31:57 <elliott> oerjan: yes i totally believe that "internally" means "completely hidden from the user and an implementation detail"
00:32:07 <elliott> rather than "hidden behind a thin layer of syntax"
00:32:32 <monqy> evincar: you claim it has currying, yet you have demonstrated it doesn't; ???????????????????????
00:33:05 <oerjan> let the poor guy implement it, then it will become obvious to him if/that it doesn't work
00:33:39 <elliott> oerjan: he is implementing it, also talking about it
00:33:39 <elliott> we're interrupting the latter, not the former
00:33:57 <monqy> I don't entirely believe it will become obvious if he has fundamental confusion
00:34:39 <monqy> 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 <monqy> maybe i am not trusting enough???
00:36:13 <evincar> I think you're not trusting enough.
00:36:20 <evincar> I could just be very, very bad at explaining what I mean.
00:42:39 -!- elliott has quit (Remote host closed the connection).
00:56:45 <pikhq> Welp. I'm at a complete loss.
01:00:35 <pikhq> It's now not valid UTF-8, but it's not valid anything else, either.
01:02:04 <pikhq> I'm suspecting endianness.
01:02:52 <oerjan> well so switch the bytes, then
01:03:08 <pikhq> Which is nontrivial if it's Shift-JIS.
01:03:23 <pikhq> Or anything but UTF-8...
01:03:41 <pikhq> Damned variable-width encodings.
01:04:19 -!- elliott has joined.
01:04:57 <oerjan> 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 <pikhq> Except the UTF-8 is merely the result of horrific mangling, and not anything sensible.
01:07:06 <oerjan> 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 <pikhq> 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:08:07 <pikhq> The text is apparently valid Shift-JIS.
01:09:05 <oerjan> oh well i don't know anything more about this
01:09:14 <elliott> i hate people on irc who ask for more detail about a question and then say nothing more about it :(
01:09:15 <evincar> My money's on SJIS -> ISO 8859-1 -> UTF-8.
01:09:43 <oerjan> elliott: wait are you referring to me :(
01:10:15 <evincar> oerjan: To be hated by elliott isn't exactly a difficult distinction to achieve.
01:10:29 <elliott> translation: <evincar> :'(
01:10:35 <oerjan> evincar: true, but i seem to have strangely evaded it so far
01:17:05 -!- pikhq_ has joined.
01:18:09 -!- tiffany has quit (Quit: Leaving).
01:19:55 -!- pikhq has quit (Ping timeout: 258 seconds).
01:20:14 <pikhq_> It's *just* Shift-JIS with each *byte* having the UTF-8 algorithm applied.
01:20:21 <pikhq_> iconv -f utf-8 -t utf-16 | tr -d '\0' | tail -c +3 | iconv -f shift-jis -t utf-8
01:21:08 <oerjan> which is more or less what evincar said
01:22:10 <oerjan> with the first -> meaning "reinterpreted as"
01:24:31 <pikhq_> That was really, really nasty.
01:27:33 <evincar> This has happened to me before...
01:28:24 <evincar> Congratulations on your newfound filenames.
01:28:28 <evincar> What does the archive contain?
01:28:44 <evincar> (Insert joke about the illegal or pornographic nature of a corrupt Japanese archive.)
01:29:24 <pikhq_> The novel series "キノの旅", in reasonably formatted text.
01:36:07 <oklopol> oerjan: so what was u2b about, i never got that
01:36:44 <oerjan> oklopol: youtube, sheesh
01:37:12 -!- cheater has quit (Read error: Connection reset by peer).
01:37:38 -!- cheater has joined.
01:37:50 <oerjan> 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 <oerjan> actually only part of the episode
01:39:28 <elliott> oerjan: don't be silly, you're norwegian
01:40:34 <pikhq_> 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:15 <elliott> _COPY BACK THE BACKUP BEFORE INSTALLING ARCH_
01:41:19 <oerjan> elliott: it was sent around midnight on some satellite channel when i was visiting my aunt
01:42:41 <oerjan> 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> elliott@dinky:~$ sudo partprobe
01:46:30 <elliott> Error: Invalid partition table - recursive partition on /dev/sdb.
01:47:12 <evincar> G'night all. Thanks for the assistance, as always.
01:47:15 -!- evincar has quit (Quit: leaving).
01:47:16 <oerjan> 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:17 <lambdabot> quote provides: quote remember forget ghc fortune yow arr yarr keal b52s brain palomer girl19 v yhjulwwiefzojcbxybbruweejw protontorpedo nixon farber
01:53:28 <oerjan> @remember how does this work?
01:54:01 <oerjan> @forget how does this work?
01:54:05 <lambdabot> No quotes match. Just what do you think you're doing Dave?
01:56:43 <lambdabot> Haskell says: I'm a bitching language
01:56:56 <lambdabot> 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:59:27 <lambdabot> Jafet says: Javascript is pretty much a DSL for making your web browser take up more CPU
01:59:31 <lambdabot> medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript.
01:59:34 <lambdabot> medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript.
01:59:36 <lambdabot> medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript.
02:04:15 <lambdabot> No quotes match. Maybe if you used more than just two fingers...
02:05:23 <lambdabot> medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript.
02:05:24 <lambdabot> medfly says: I wanted to use xmonad and yi, just to be cool like that, but to write javascript.
02:05:26 <lambdabot> 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:30:35 <elliott_> oerjan: btw you can remove the numbers from the topic.
02:31:39 <elliott_> 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 <elliott_> pikhq_: Can you find out whether GRUB2 can boot from JFS or not; I can't really browse the web from this :P
02:45:41 <elliott_> pikhq_: Not the same for GRUB1, is it
02:45:48 <elliott_> Looks like Arch still uses GRUB1 for some insane reason
02:48:02 <elliott_> 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:52:02 <elliott> pikhq_: quick, give my /boot partition a size
02:54:38 -!- NDandy has joined.
02:55:04 <elliott> NDandy: Pssst, give my /boot partition a size. It's a once-in-a-lifetime opportunity,
02:55:30 <NDandy> What's the upper bound?
02:55:35 <NDandy> And what are you booting?
02:55:45 <NDandy> I usually go for 4 GB or so
02:56:04 <pikhq_> I tend to go with 100M.
02:56:07 <elliott> Even 100 is massively overshooting it if you're not a kernel dev :P
02:56:28 <elliott> How much of /boot is being used :P
02:56:36 <elliott> It'll be like one percent of a percent.
02:56:58 <pikhq_> initrd is apparently huge.
02:56:58 <elliott> pikhq_: Ooh ooh should I make it 100 or 128.
02:57:10 <elliott> Oh wait this isn't an SSD.
02:57:11 <NDandy> Also, any awk wizards, perchance?
02:57:17 <elliott> NDandy: I'm ... decent at awk.
02:57:19 <pikhq_> elliott: 100 MB or 128 MiB, :)
02:57:26 <elliott> I wrote some part of a Lisp in awk once.
02:57:31 <NDandy> elliott: That makes you better than me, most likely
02:57:41 <NDandy> I'm just trying to save some time at work, and I'm almost there
02:58:26 <elliott> To be perfectly honest, Perl is probably less painful than awk.
02:58:35 <elliott> It's way uglier, but you run into awk's limitations really qucikly.
02:59:08 <NDandy> This script is pretty ugly, anyway
02:59:09 <NDandy> http://hpaste.org/53187
02:59:26 <NDandy> Data I'm working with: http://giraffe.uvm.edu/~rgweb/batch/enrollment/curr_enroll_201101.txt
03:00:13 <elliott> Also, are you meant to use gsub like that
03:00:14 <NDandy> 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 <elliott> Pretty sure gsub returns a string
03:00:22 <oerjan> i'm rather awkward at awk
03:00:24 <elliott> And you're meant to use it in the {} part
03:00:29 <elliott> I might be wrong though :P
03:00:35 <NDandy> Well, it works, and that's what I'm working with :D
03:00:54 <elliott> I'm so glad this livecd gives me a large framebuffer console
03:00:58 <elliott> Or this would be unbearable
03:01:10 <NDandy> I just want to add the numbers at $9 when $2 is equal on multiple lines
03:01:36 -!- MDude has changed nick to MSleep.
03:01:39 <elliott> I don't get your explanation of whaty ou want to do
03:01:57 <NDandy> $9 is the number of students enrolled in a particular class
03:02:01 <NDandy> $2 is the class number
03:02:12 <elliott> So you want to consolidate lines?
03:02:30 <NDandy> Right, and I'd like to add the values in $9 at the same time
03:02:47 <elliott> BEGIN{n=0;foo=""} $2==foo{n+=$9} {print n; foo=$2; n=$9}
03:02:51 <elliott> There's something to start you off with
03:02:56 <elliott> Note that it prints 0 on startup...
03:03:35 <elliott> trying to get openbox to work
03:03:40 <elliott> turns out he hasn't got x started
03:03:42 <elliott> people tell him to install it
03:03:46 <elliott> he says he opted not to install x
03:03:51 <elliott> they tell him openbox needs x
03:03:56 <elliott> he says he thought x was just another wm like openbox :P
03:04:15 <elliott> arch users: like ubuntu users, but with chainsaws
03:08:52 -!- elliott has quit (Read error: Connection reset by peer).
03:16:32 <variable> Are there any languages on the esowiki with "random" effects ?
03:16:39 <variable> for certain operators or functions
03:18:25 <oklopol> noit o' mnain worb for instance
03:18:53 -!- augur has quit (Remote host closed the connection).
03:19:26 <lambdabot> Text.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String
03:19:27 <lambdabot> Text.ParserCombinators.Parsec.Error showErrorMessages :: String -> String -> String -> String -> String -> [Message] -> String
03:19:27 <lambdabot> 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:31 <lambdabot> Data.IntMap unionWith :: (a -> a -> a) -> IntMap a -> IntMap a -> IntMap a
03:19:31 <lambdabot> Data.IntMap intersectionWith :: (a -> b -> a) -> IntMap a -> IntMap b -> IntMap a
03:19:31 <lambdabot> Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
03:19:40 <lambdabot> Data.IntMap unionWith :: (a -> a -> a) -> IntMap a -> IntMap a -> IntMap a
03:19:40 <lambdabot> Data.IntMap intersectionWith :: (a -> b -> a) -> IntMap a -> IntMap b -> IntMap a
03:19:40 <lambdabot> Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
03:20:14 <lambdabot> Control.Monad liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
03:20:15 <lambdabot> Control.Applicative liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
03:20:15 <lambdabot> Prelude zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
03:20:19 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
03:20:29 <lambdabot> forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c
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:59:22 <shachaf> elliott: kmc's exciting bug is up.
03:59:54 <elliott> shachaf: That's only a bug because people project their desires onto unsafePerformIO.
04:00:09 <oerjan> elliott: i appear to have started archive binging yet another fantasy gamer comic
04:00:28 <shachaf> elliott: Desires like "it should do what it says it'll do"?
04:00:44 <elliott> shachaf: Where does unsafePerformIO guarantee the IO will only be done once?
04:01:04 <elliott> shachaf: You're writing unportable programs???
04:01:11 <elliott> GHC shouldn't support such riff-raff.
04:01:23 <shachaf> elliott: http://www.haskell.org/ghc/docs/latest/html/libraries/base/System-IO-Unsafe.html
04:01:56 <elliott> Yes yes that's just the evil effects of popular demand.
04:02:15 <kmc> that's deep, man
04:02:27 <elliott> See, people demand the value of IO actions.
04:03:27 <shachaf> kmc: Since when are you in here?
04:04:19 <oerjan> he doesn't deign _us_ with quotable material though
04:05:27 -!- Darth_Cliche has joined.
04:07:25 <oerjan> elliott: why http://yafgc.net/ of course
04:07:38 <oerjan> i thought i'd made that _perfectly_ clear
04:08:54 <elliott> pikhq_: You use Chromium and xfwm4, right?
04:08:59 -!- DCliche has quit (Ping timeout: 260 seconds).
04:09:41 <elliott> 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 <oerjan> hm, wasn't there a ghc function for specifically preventing more than one thread from entering a thunk?
04:11:45 <elliott> well there's the unsafeDupablePerformIO mess
04:11:49 <shachaf> That's what unsafePerformIO uses.
04:11:54 <shachaf> kmc is full of quotable material, by the way.
04:12:04 <lambdabot> kmc says: fuck me with a rusty chainsaw
04:12:21 <elliott> It's better than most of our quotse.
04:12:28 <oerjan> shachaf: oh so it _is_ actually supposed to prevent that thing...?
04:12:31 <kmc> it sounds like something i *would* say
04:12:36 <elliott> shachaf: You're not meant to ping him.
04:12:40 <kmc> i'm amused because whenever i poke my head in here, you guys are talking about haskell
04:12:44 <kmc> the real esoteric language
04:12:52 <elliott> kmc: We gave up on finding anything more esoteric.
04:12:56 <shachaf> kmc: Don't worry, they talk about C++ too.
04:13:01 <kmc> we have those esoteromorphisms
04:13:02 <lambdabot> kmc says: maybe the 9,639,482nd time we argue about C++ we will finally resolve the issue
04:13:04 <kmc> you can't beat that
04:13:09 <oerjan> shachaf: hey that's slander!
04:13:16 <lambdabot> kmc says: C++ is at least interesting to learn. it's a good esolang
04:13:16 <kmc> haha shachaf, that worked
04:13:37 <kmc> @quote kmc
04:13:38 <lambdabot> kmc says: type constructors are "functions" that operate on types
04:13:43 <shachaf> kmc: It's just because 90% of your quotes are about C++.
04:13:45 <kmc> why is that quotable
04:13:49 <kmc> @quote kmc c\+\+
04:13:49 <lambdabot> kmc says: maybe the 9,639,482nd time we argue about C++ we will finally resolve the issue
04:13:51 <kmc> @quote kmc c\+\+
04:13:51 <lambdabot> 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:01 <lambdabot> kmc says: <kmc> this is a bit too Rube Goldberg for me to be totally happy trusting it to run a cutting laser <kmc> but oh well
04:14:53 <oerjan> kmc: well _some_ of our recent haskell talk was about evincar trying to use parsec for his esolang
04:15:09 <kmc> clearly his esolang should be a haskell EDSL
04:15:14 <shachaf> oerjan: Oh, give it up; the only thing you ever talk about in this channel is Haskell.
04:15:22 <kmc> Esolang Demented pSychopathic Language
04:15:25 <elliott> oerjan: No no no, I am 99% sure evincar does not consider that an esolang.
04:15:34 <shachaf> elliott: I met kmc the other day; he's nothing like anything in person.
04:15:39 <elliott> I believe he has even stated this.
04:15:40 <pikhq_> shachaf: And being Nørsë.
04:15:42 <kmc> i am a non-entity
04:15:55 <shachaf> Also, there was no LSD involved. Which was kind of weird.
04:15:58 <kmc> welcome to Numberwang, the numbers quiz that's simply everyone!
04:16:26 <elliott> kmc: No that wasn't funny you lose sorry.
04:16:32 <kmc> ffffuuuuuuuu
04:16:38 <elliott> oerjan: Ban him twice for that.
04:16:48 <shachaf> Ooh, we're handing out bans?
04:17:28 <shachaf> 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 <pikhq_> 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 <elliott> Let's talk about Haskell again.
04:18:09 <kmc> truly cocks
04:18:11 <shachaf> @google "invented the mysterious force"
04:18:12 <kmc> @quote cocks
04:18:13 <lambdabot> Tinned_Tuna says: "Phwoar, she's got a nice set of tits and a nice fat pair of cocksucking lips"
04:18:17 <elliott> `addquote <kmc> truly cocks
04:18:29 <kmc> haha that's allowed but not @vixen?
04:18:32 <elliott> `addquote <kmc> COCKS [...] <kmc> truly cocks
04:18:32 <kmc> @vixen cocks
04:18:34 <HackEgo> 698) <kmc> COCKS [...] <kmc> truly cocks
04:19:37 -!- CakeProphet has quit (Ping timeout: 240 seconds).
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:56:42 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.).
06:00:22 <kmc> i'm always here
06:00:24 <kmc> watching you
06:25:49 <elliott> I wonder if it's morally acceptable to use an old GHC.
06:25:56 <elliott> I wonder if I will be able to sleep at night.
06:26:19 <shachaf> (In general, no, it's not, and no, you won't.)
06:26:38 <elliott> But it's not the latest-and-greatest. :(
06:26:40 <shachaf> You're not supposed to use 7.w.
06:27:19 <elliott> The Glorious Glasgow Haskell Compilation System, version 7.w "the best version"
06:29:47 <elliott> 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 <elliott> There, that's my bare minimum contribution to society.
06:31:32 <elliott> shachaf: If I regret using this GHC you're getting the blame.
06:32:54 <shachaf> Can I handle elliott's wrath?
06:37:06 <pikhq_> elliott's wrath destroyed ð.
06:37:19 <pikhq_> Don't make him destroy d, too.
06:37:44 <elliott> I wonder if Arch has a sufficiently large portion of Haskell that I can avoid "cabal install" entirely.
06:37:51 <elliott> 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:17 <elliott> This library I'm binding to Haskell should be written in Haskell instead.
06:49:16 * shachaf waves the NIH under elliott's nose.
06:49:33 <elliott> shachaf: There is nooo way I am enthusiastic enough about this to rewrite it.
06:50:25 <elliott> This. Are you even paying attention?
06:53:09 <olsner> just rewrite it, that thing sucks
06:54:36 <elliott> It is also waaay more code than I can be bothered to write.
06:55:37 <olsner> right, but it will be short and trivial in haskell! obviously.
07:01:07 <shachaf> Heart of the Oak mace, everybody.
07:01:35 <shachaf> elliott: Also, you're duplicating less for me, in Haskell.
07:02:27 <shachaf> shachaf@argon:~$ which less
07:02:56 <shachaf> 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 <shachaf> 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 <elliott> shachaf: http://www.opensource.org/licenses/Fair
07:05:42 <shachaf> Still capitalized, though.
07:05:49 <elliott> You can do whatever. DISCLAIMER: FUCK YOU
07:06:16 <elliott> shachaf: The WTFPL lets you supply your own disclaimer. If that helps.
07:06:17 <shachaf> elliott: The Nobel Prize in Mathematics for you!
07:06:50 <elliott> Ooh, this library is Friends with me.
07:07:03 <elliott> It lets you supply your own allocator, so I can give it one that allocates on the Haskell heap.
07:07:16 <elliott> Hmm, I wonder if that's altogether allowed.
07:07:25 <elliott> I guess so; it'll just look like bytes to Haskell.
07:07:34 <elliott> I mean, that's kind of what ForeignPtrs are.
07:12:36 <Patashu> 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 <Patashu> I'm thinking like SIFT or SURF or something
07:13:02 <elliott> You're in luck!! I know ABSOLUTELY NOTHING about that.
07:14:26 <Patashu> 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 <elliott> type Allocator = Ptr () -> CSize -> Ptr () -> IO (Ptr ())
07:38:28 <elliott> {-# NOINLINE allocator #-}
07:38:28 <elliott> allocator :: FunPtr Allocator
07:38:28 <elliott> allocator = unsafePerformIO $ mkAllocator allocate
07:38:28 <elliott> where allocate ptr 0 _ = free ptr
07:38:29 <elliott> | ptr == nullPtr = mallocBytes size
07:38:31 <elliott> | otherwise = reallocBytes ptr size
07:42:27 -!- ais523 has joined.
07:50:13 <elliott> 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 <ais523> elliott: I vaguely feel that what you just wrote is somewhat out of context
07:51:00 <ais523> but it doesn't otherwise look zzo38y
07:51:32 <elliott> <elliott> {-# NOINLINE allocator #-}
07:51:32 <elliott> <elliott> allocator :: FunPtr Allocator
07:51:32 <elliott> <elliott> allocator = unsafePerformIO $ mkAllocator allocate
07:51:32 <elliott> <elliott> where allocate ptr 0 _ = free ptr
07:51:32 <elliott> <elliott> allocate ptr size _
07:51:33 <elliott> <elliott> | ptr == nullPtr = mallocBytes size
07:51:35 <elliott> <elliott> | otherwise = reallocBytes ptr size
07:53:13 -!- ais523 has quit (Remote host closed the connection).
07:53:27 -!- ais523 has joined.
07:53:39 <ais523> such a nice place for the connection to drop
07:53:46 <elliott> <elliott> <elliott> {-# NOINLINE allocator #-}
07:53:47 <elliott> <elliott> <elliott> allocator :: FunPtr Allocator
07:53:47 <elliott> <elliott> <elliott> allocator = unsafePerformIO $ mkAllocator allocate
07:53:47 <elliott> <elliott> <elliott> where allocate ptr 0 _ = free ptr
07:53:47 <elliott> <elliott> <elliott> allocate ptr size _
07:53:47 <elliott> <elliott> <elliott> | ptr == nullPtr = mallocBytes size
07:53:49 <elliott> <elliott> <elliott> | otherwise = reallocBytes ptr size
07:53:51 <elliott> <elliott> <elliott> Yessssss.
07:54:40 <ais523> are you trying to embed C into Haskell?
07:55:16 <elliott> 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 <elliott> "You're... using an FFI????"
07:55:44 <ais523> <elliott> 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
08:01:06 -!- monqy has quit (Quit: hello).
08:07:29 <ais523> elliott: I could almost accuse you of doing the same with Anarchy
08:07:52 <elliott> I've barely said anything about Anarchy
08:07:55 -!- Vorpal has joined.
08:21:07 -!- Ngevd has joined.
08:21:35 <elliott> ghc: error: a C finalizer called back into Haskell.
08:21:35 <elliott> This was previously allowed, but is disallowed in GHC 6.10.2 and later.
08:21:35 <elliott> To create finalizers that may call back into Haskell, use
08:21:35 <elliott> Foreign.Concurrent.newForeignPtr instead of Foreign.newForeignPtr.
08:22:09 <elliott> "These finalizers necessarily run in a separate thread"
08:22:11 <elliott> uggh this is going to be so slow
08:30:23 <Ngevd> I think I have found an XKCD reference in Learn You A Haskell
08:30:31 <Ngevd> Or possibly the other way around
08:31:08 <Ngevd> Upper case looks like it has potential to be funnier
08:31:27 <Ngevd> Of course, dozens of people have probably seen this reference before
08:31:44 <Ngevd> xkcd.com/221/ and the first code example in http://learnyouahaskell.com/input-and-output#randomness
08:44:11 <Vorpal> elliott, hi, what are you doing there+
08:44:34 <Vorpal> elliott, with the haskell<->C stuff
08:44:56 <Vorpal> elliott, for what ultimate purpose?
08:45:19 <Vorpal> elliott, why would that need FFI?
08:45:40 <elliott> Let's lie and say it's for optimisation.
08:45:51 <Vorpal> elliott, what is the truth then?
08:49:03 <fizzie> 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 <elliott> Was that thing always in colour?
08:51:32 <fizzie> I vaguely recall seeing it black-and-white, but maybe I'm remembering someone's printout on the wall.
08:52:00 <ais523> fizzie: I've seen it black-and-white in a black-and-white compilation book
08:52:01 <Ngevd> I've got a collection that has that story arc but not that strip in black and white
08:52:09 <ais523> I think there are both black-and-white versions and coloured ones
08:53:20 <Ngevd> In other news, my Piet implementation in Haskell is off to a good start
08:54:15 <elliott> Man, why libraries gotta be not thread safe.
08:54:52 <Ngevd> It is approximately now when I had the idea of using head and (:) as the stack
08:55:17 <elliott> don't use head use pattern-matching
08:58:18 <Ngevd> Actually, I'll think I'll test it first
09:00:12 <Ngevd> Prepare yourself for some awful Haskell
09:00:15 <Ngevd> inn input stack output = let (toPush, inLeft):_ = reads (dropWhile (not . isDigit) input) :: [(Integer, String)] in (inLeft, toPush:stack, output)
09:00:56 <Ngevd> Just found a downside
09:01:26 <Ngevd> 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 <Ngevd> My three-cell brainfuck to Piet translator doesn't work
11:10:12 <Vorpal> what is even the point of that
11:10:23 <Ngevd> Oerjan proved it Turing-Complete
11:11:59 <Vorpal> is there any esolang based on matrix operations?
11:12:53 <Vorpal> hm searching turns up http://esolangs.org/wiki/Matrix
11:13:45 <Vorpal> eh, looks underspeced and probably useless
11:20:30 <fizzie> MATLAB. (Yeah, yeah; not esolang, not based on matrix operations. But you could never tell from the name.)
11:20:57 <Ngevd> I seem to remember a tool to translate Piet into some other language
11:21:11 <Ngevd> But I saw this 2007-8
11:21:17 <Ngevd> Don't remember to well
11:21:47 <Ngevd> I just remember some wiggly text
11:21:57 <Ngevd> Snaking down the screen
11:24:01 -!- BeholdMyGlory has joined.
11:24:37 <fizzie> I did something Piet-related, but I've already forgotten what it was.
11:25:39 <fizzie> It seems to be an incomplete LLVM-driven Piet compiler.
11:28:18 <fizzie> 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 <Ngevd> That may have beeb it
11:30:06 <fizzie> Timestamps on these are early 2010, but of course that might just be the timestamps.
11:34:48 <Deewiant> This is why you put a "File created: <timestamp>" comment in every interesting file
11:36:34 <fizzie> Fortunately, none of my files are especially interesting.
11:37:05 <Deewiant> They don't need to be especially interesting, just interesting
11:38:17 <Ngevd> Well, my Brainfuck to Piet translator has an error I can't work out
11:38:22 <Ngevd> The error is "*** Exception: bf2piet.hs:7:18-100: Non-exhaustive patterns in lambda
11:38:46 <lambdabot> *Exception: <interactive>:3:1-14: Non-exhaustive patterns in lambda
11:38:58 <Ngevd> Line 7 is "translation ']' = \(x,yh:yi,z) -> (x ++ "dup bnz." ++ (show yh) ++ "a\n" ++ (show yh) ++ "b:\n",yi,z)"
11:39:22 <Deewiant> > (\(x,yh:yi,z) -> "foo") (1,[],2)
11:39:23 <lambdabot> "*Exception: <interactive>:3:1-21: Non-exhaustive patterns in lambda
11:42:00 <Ngevd> It's going through the program backwards
11:43:03 -!- CakeProphet has joined.
11:43:03 -!- CakeProphet has quit (Changing host).
11:43:03 -!- CakeProphet has joined.
11:44:16 <Ngevd> I bet none of you had had that problem in a program before
11:49:57 <Ngevd> Having an error because the input is being parsed backwards
11:50:18 <Vorpal> Ngevd, err you were parsing bf from the end of the string? What?
11:50:36 <Vorpal> ah, not intentionally, right
11:50:45 <Ngevd> I'll copy the full program somewhere
11:51:32 <Vorpal> don't expect me to help debug it. Too tired atm.
11:51:44 <Ngevd> I've got it to work!
11:52:07 <Ngevd> http://codepad.org/CMnvQoru
11:54:00 <Ngevd> I won't pretend it's the best of programs
11:54:40 <Vorpal> that seems like a very simple translation done there. I wasn't aware bf mapped that easily into piet
11:55:05 <Vorpal> wait, it doesn't generate an image anywhere, that can't work
11:55:15 <Ngevd> Read the comment at the top
11:55:30 <Ngevd> And open the link at the end of the comment
11:55:35 <Vorpal> was wider than my screen. 80 cols ftw
11:55:52 <Ngevd> I forgot to linebreak that comment
11:56:12 <Ngevd> http://www.toothycat.net/wiki/wiki.pl?MoonShadow/Piet
11:57:44 <Ngevd> Not the most efficient way to do it, I'll admit
11:58:26 <Ngevd> If I translate my code to Python, we'll have a Fractran -> Piet translator that goes through three different languages
11:59:16 <Ngevd> http://esoteric.voxelperfect.net/wiki/Fractran
11:59:37 <Ngevd> Essentially the same to iterated collatz functions
12:00:25 <Ngevd> I am proud of line 14 of my program
12:07:40 <fizzie> Ngevd: Does that not need a "0 0 0" in front of the Piet-asm program to initialize the fake-tape?
12:08:20 <Ngevd> I can fix that with 10 characters
12:08:42 <Ngevd> http://codepad.org/u2BOIo9w
12:09:07 <Ngevd> http://codepad.org/7E5Fw9Pk
12:09:08 <fizzie> Oh, I was assuming you'd have put it in the initial state of foldr to save the ++.
12:09:20 <Ngevd> That would be even better!
12:09:56 <Ngevd> http://codepad.org/elKaoEa8
12:12:41 <fizzie> Also wouldn't translation '>' (x,y,z) = (x ++ "...\n", y, z) save a bit of typing when compared to translation '>' = \(x, y, z) -> (...)?
12:15:19 <fizzie> 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 <fizzie> foldl (flip translation) ("0 0 0\n", [], 0) bf_program or something, maybe. Can't be bothered to think it through.
12:20:34 <Ngevd> http://codepad.org/4kfGocPC
12:23:55 -!- sllide has quit (Read error: Connection reset by peer).
12:27:35 <Ngevd> 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 <fizzie> 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 <atehwa> 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 <atehwa> (what is the way to leave delayed messages on the channel?)
12:56:12 <lambdabot> Plugin `tell' failed with: Prelude.head: empty list
12:56:28 <Ngevd> I don't know how to get help with lambdabot
12:56:52 <lambdabot> tell <nick> <message>. When <nick> shows activity, tell them <message>.
12:57:07 <Ngevd> Although elliott logreads
12:57:19 <Ngevd> It'd probably be safer to @tell
12:57:26 <fizzie> Also Freenode MemoServ. (Is that thing still alive? Does anyone use that?)
12:57:46 <ais523> fizzie: it's still alive, and is used on occasion
12:58:05 <fizzie> "-MemoServ- You have 0 memos (0 new)." :(
12:58:37 <fizzie> You can also ask fungot to forward messages, but he's not exactly reliable.
12:58:38 <fungot> 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 <Ngevd> fungot, will you tell Ngevd if doing this works?
12:59:18 <fungot> 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 <fizzie> This I-triple-E spam is so... From: IEEE Spectrum Tech Alert <techalert@ieee.org>, 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:56 <Vorpal> besides isn't the Arduino AVR?
13:26:17 <Vorpal> which means non-trivial C coding in my experience.
13:28:10 <fizzie> There's an AVR chip on it, but the project also includes some sort of a tries-to-be-simple library, I believe.
13:31:12 <fizzie> (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:48:43 <fizzie> I really don't think it makes *programming* any simpler; might make interfacing with things easier, though.
13:49:56 <fizzie> 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 <ais523> bleh, how am I meant to mark this question when I don't really understand it myself
15:29:20 <Vorpal> ais523, discuss with whoever formulated it?
15:29:49 <ais523> nah, I just need to focus on it more
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 <Ngevd> How do I get the output from a command line command into a file?
16:14:16 <Ngevd> I will have sort of written a brainfuck interpreter in Piet!
16:15:02 <fizzie> You mean you'll have something like http://www.matthias-ernst.eu/pietbrainfuck.html ?
16:16:33 <fizzie> 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: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 <elliott> Disappointed that there's no updates on my second day of Arch.
17:02:27 <elliott> Maybe I should use the testing repo.
17:04:17 <elliott> Phantom_Hoover: Have you seen how old Debian's ghc is.
17:05:02 <olsner> 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 <elliott> Deewiant: Don't say that, you'll make me want to write my "find the largest set of mutually-installable packages".
17:05:30 <elliott> That + Debian repos = THEE COMPLEAT LINUX
17:07:21 <Deewiant> elliott: Oh and re. clyde, yaourt
17:07:44 <elliott> Deewiant: Yeaaaah, I don't think I'm ever going to use yaourt again
17:07:51 <elliott> Unless they completely rewrote it
17:08:01 <Deewiant> It's a lot better than back when I switched away from it
17:08:36 <Deewiant> I think that was pretty much my only issue with it
17:08:36 <monqy> it was pretty slow last I checked
17:08:42 <monqy> pretty really slow
17:08:50 <monqy> I dunno amonth or two
17:08:52 <elliott> I hear they rewrote some of it in C or something
17:08:58 <olsner> 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:11 <olsner> 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 <Deewiant> It's been fast for me since several months
17:09:22 <elliott> Deewiant: Yeah but you use a Cray
17:09:28 <elliott> monqy: What do you use for AUR, or do you just not
17:09:31 <elliott> (I'm considering just not)
17:09:41 <Deewiant> elliott: I don't think any part of it is CPU-intensive :-P
17:10:15 <monqy> 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 <monqy> i've considered it, but ehhhhhhhhhh
17:10:28 <Phantom_Hoover> The frontpaging is really starting to show in r/AskScience.
17:10:30 <Deewiant> It uses something fancy to check for updates to AUR packages in bulk instead of doing individual HTTP gets, which is nice
17:10:38 <Deewiant> clyde was getting really slow with that
17:10:43 <olsner> yaourt? is that a funny name for yoghurt?
17:11:00 <Deewiant> olsner: It has a --sucre option
17:11:14 <elliott> Maybe I'll install linux-ck
17:11:19 <elliott> That sounds like a fun way to break my system
17:11:24 <elliott> It isn't broken enough right now
17:13:07 <elliott> ais523: linux + con kolivas' patches including bfs
17:13:48 <monqy> i see fs and think filesystem instead of fuckscheduler :( help
17:14:02 <ais523> just make an fs /for/ the scheduler
17:14:17 <elliott> a fuckscheduler sounds profitable
17:14:22 <ais523> the brainfuck scheduler would be better if it were actually written in brainfuck
17:14:41 <elliott> ais523: it's not the brainfuck scheduler
17:14:56 <elliott> Phantom_Hoover: "Please note: jokes as top-level comments, memes, and layman speculation will be downvoted and removed." heh
17:15:31 <elliott> It is completely ridiculous how much less of a hog Chromium is to Firefox.
17:15:48 <ais523> elliott: it's also ridiculous that Firefox somehow manages to be faster despite that
17:16:00 <elliott> ais523: It would be, if that were true!
17:16:02 <ais523> or has Firefox got slower since 3.6?
17:16:12 <elliott> How do you define "faster"?
17:16:14 <ais523> or is Chromium just particularly slow on my computer?
17:16:24 <elliott> I would guess so; it's very fast here.
17:16:31 <ais523> elliott: time to open a webpage, when I happen to open it in both browsers
17:16:46 <ais523> 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 <ais523> 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:36 -!- ais523_ has joined.
17:27:47 <elliott> Deewiant: Seems like pacaur, aurget, packer are decent non-yaourt options :P
17:28:17 <elliott> Although it'll be annoying to have to update AUR separately
17:28:24 <elliott> 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 <elliott> ais523: you scared me for a second there
17:31:51 <Gregor> elliott: Ohhhh, it was a joke dur I didn't get it >_>
17:31:59 <Gregor> 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:40:04 <elliott> I have the most terrible job upon me
17:40:14 <elliott> I have to convince people to let me write pthreads code
17:40:29 <elliott> 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 <Phantom_Hoover> elliott, I wasn't aware that pthreads was only permitted to be used by the privileged few.
17:52:28 <elliott> * \return HUBBUB_OK on success, appropriate error otherwise
17:53:46 <ais523> TIL that Steve Jobs used to drive a car with no license plates
17:53:55 <ais523> by changing it every 6 months to exploit a loophole in the law
17:53:58 -!- Darth_Cliche has joined.
17:56:38 <elliott> ais523: can you make all libraries thread-safe; thanks
17:56:59 <ais523> elliott: the whole ICA/SCI stuff is indirectly about thread-safety
17:57:54 <olsner> elliott: why do you want to code pthreads?
17:59:41 <olsner> oh, you *have* to? but people won't let you?
17:59:46 <olsner> that doesn't make sense
18:04:56 <ais523> 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:15 <ais523> 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 <monqy> ais "holding people at gunpoint master" 523
18:07:13 <ais523> oh, about holding people at gunpoint?
18:07:17 <ais523> turns out it doesn't work very well over the phone
18:07:27 <ais523> not internationally, at least
18:07:31 <elliott> I'm pointing a gun at all of you right now.
18:07:34 <ais523> I haven't tried national or local calls
18:07:35 <Phantom_Hoover> Or, well, you held someone at gunpoint and forced them to prove it.
18:07:52 <ais523> elliott: I suspect you're a little out of range
18:08:11 <ais523> in fact, the shot's probably even blocked by the curvature of the earth
18:08:16 <ais523> although I'm not sure how far off the ground you are
18:08:23 <ais523> for some reason I kind-of assumed you lived in a bungalow
18:08:53 <Phantom_Hoover> It's because construction techniques in the North aren't sophisticated enough to permit multiple storeys.
18:10:33 <elliott> I can't believe people actually use Risc OS.
18:11:21 <ais523> elliott: I've used it! seriously
18:11:37 <ais523> the computers at my primary school mostly ran either Risc OS or the BASIC interpreter on the BBC Micro
18:11:44 <elliott> Same, when I was super-young.
18:11:46 <elliott> But no: I mean like /actually use/.
18:11:58 <elliott> Like, people use it to do their online banking.
18:12:03 <Phantom_Hoover> My neighbour (who is like eighty) used it until a few years ago.
18:12:13 <ais523> 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 <ais523> 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 <elliott> ais523: It was an example (picked because I have evidence for it).
18:14:04 <elliott> [["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 <elliott> I do not regret skimming this
18:14:48 <elliott> ais523: you know, if GPUs are being used for intense computation, printers have to be next
18:15:05 <elliott> we'll get super-parallel general-purpose dot matrix computers, or something
18:15:13 <ais523> elliott: I've met people who've done computations on printers seriously
18:15:39 <ais523> 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 <ais523> heh, anagolf does have PostScript
18:20:04 <ais523> I just went and checked
18:20:10 <elliott> ais523: you didn't know that?
18:20:13 <elliott> yshl or whoever does a ton of stuff with it
18:20:24 <ais523> elliott: I knew it had several languages beginning with P
18:20:30 <ais523> I couldn't remember if PostScript specifically was one of them
18:20:42 <ais523> or whether I was muddling it with PHP
18:23:13 <elliott> Hmm, packer looks like it might be nicer than yaourt
18:25:47 -!- tiffany has quit (Quit: Leaving).
18:26:33 <olsner> crazy, risc os uses . to delimit directories and / for file extensions
18:27:01 <elliott> it's like if you deliberately tried to be as different as possible
18:27:14 <elliott> DOS should have adopted - as a dir separator when it chose / for paths
18:27:47 <olsner> istr, some of the really old mainframe systems also used . as a directory separator
18:28:39 <elliott> I'm really happy gmane shows those country flags
18:28:45 <elliott> because i'm learning that every risc os user is british
18:29:12 <olsner> 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:18 -!- tiffany has joined.
18:29:30 <elliott> 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 <ais523> I think DOS – and Windows' impl of it – can still run CP/M programs unmodified
18:43:02 -!- BeholdMyGlory has joined.
18:43:05 <ais523> not sure if the syscall numbers are different
18:43:10 <ais523> but everything else is designed for compatibility
18:45:07 -!- augur has joined.
18:51:25 <Vorpal> 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:52:36 <Deewiant> Red Orchestra is closer to "COD or Battlefield but ultra-realism added", Operation Flashpoint and ARMA are more large-scale
18:53:18 <Vorpal> 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 <elliott> Why does anyone even write thread-unsafe code; answer: it's a fucking pain in C
18:54:02 <Deewiant> Or maybe Battlefield is more like it, I was thinking CoD/MoH
18:54:04 <elliott> Resolution: Everyone should write in Haskell instead; that would also save me writing bindings
18:54:41 <HackEgo> 28) <Deewiant> ehird: There is no h in "honour"
18:55:33 <Vorpal> 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 <Vorpal> 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 <Vorpal> Deewiant, I have to complain about the helicopter flying though. I find it highly unrealistic after flying helis in flightsims.
18:59:06 <Vorpal> and they didn't seem to differentiate between IAS, TAS and GS.
18:59:08 <Deewiant> Are you sure the flight simulators are accurate compared to helicopter simulators? ;-)
18:59:50 <Vorpal> 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 <Vorpal> 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 <elliott> Targets (2): gconf-3.2.2-1 licenses-2.9-1
19:10:11 <elliott> [elliott@dinky hubbub]$ alsamixer
19:10:12 <elliott> cannot open mixer: No such file or directory
19:10:29 <elliott> `/etc/rc.d/alsa start` has been done.
19:10:31 <HackEgo> /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 <Phantom_Hoover> http://www.eastoftheweb.com/short-stories/UBooks/DeatScra.shtml
19:15:07 <Phantom_Hoover> There was a guy in my school who copied this story -verbatim- and submitted it to a short story competition.
19:17:40 <Phantom_Hoover> He's a really annoying objectivist, does that make it interesting?
19:19:52 <elliott> 146 /* Client is defining their own token handler,
19:19:52 <elliott> 147 * so we must destroy the default treebuilder */
19:19:52 <elliott> 148 hubbub_treebuilder_destroy(parser->tb);
19:22:04 <elliott> olsner: The interface is SLIGHTLY
19:22:18 <olsner> hubbabubba is a brand of chewing gum
19:22:55 <olsner> elliott: just rewrite everything, it'll be awesome
19:23:25 <elliott> Also how do you even know that, that's a UK thing.
19:23:53 <olsner> I know everything, that's how
19:23:58 <Deewiant> 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 <olsner> a subset of everything, anyway
19:24:04 <monqy> i thought it wa sa usa thing....
19:24:59 <elliott> Well everything is a UK thing
19:25:02 <elliott> Even if it isn't in the UK
19:30:04 <elliott> Oh nooo, I can't figure out which interface to expose.
19:31:12 <Ngevd> elliott exposes all!
19:31:17 <Ngevd> That's one for the tabloids
19:31:42 <elliott> Deewiant: That'll be such duplication though :-(
19:33:14 <elliott> 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 <elliott> i.e. Trivial use of the lower-level functions
19:33:28 <elliott> (OK, an unsafePerformIO to turn IO [a] into [a] too)
19:33:40 <elliott> (But you're encouraged to use unsafePerformIO if you're making your own interface on top of this :P)
19:33:44 <Deewiant> If it needs an unsafePerformIO it's something you want hidden :-P
19:33:48 <elliott> Actually I wonder if I could use ST to avoid the unsafeness anyway.
19:34:06 <elliott> Deewiant: The low-level interface is in IO. On top of that, pure interfaces are built with unsafePerformIO.
19:34:18 <elliott> I'm deciding how much to expose purely, since a lot of it will be useless :P
19:34:49 <Deewiant> 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 <elliott> 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 <elliott> Deewiant: In this case, the pure interface would be parseTreeEvents :: Lazy.ByteString -> [TreeEvent] or similar
19:35:54 <Deewiant> Incredibly high chances isn't 100% :-P
19:36:02 <elliott> Deewiant: But that's basically unusable without actually processing it sequentially
19:36:03 <Deewiant> But I dunno, whatever you think works
19:36:04 <elliott> Because it involvse things like
19:36:07 <elliott> hubbub_tree_has_children has_children; /**< Has children? */
19:36:12 <elliott> hubbub_tree_encoding_change encoding_change; /**< Change encoding */
19:36:30 <elliott> 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 <elliott> 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 <elliott> Because that's what you'll have to do anyway.
19:45:33 <Ngevd> God I hate the sound of my own voice
19:47:12 <elliott> Insert oblig. "you're not the only one".
19:47:31 <Ngevd> It's so bloody English
19:47:53 <Ngevd> I sound like I'm about to start rhyming scone with phone all the time
19:48:44 <oerjan> 06:29:47: <elliott> Hey, why don't we have a McCarthy topic yet?
19:48:44 <oerjan> 06:30:10: <elliott> There, that's my bare minimum contribution to society.
19:48:59 <oerjan> 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 <oerjan> it's that christmas gatekeeper again
19:58:50 <oerjan> <Ngevd> inn input stack output = let (toPush, inLeft):_ = reads (dropWhile (not . isDigit) input) :: [(Integer, String)] in (inLeft, toPush:stack, output)
19:59:00 <oerjan> for patterns that may fail, use case, not let
19:59:38 <elliott> s/let/where/ -- now it's actually useful advice
20:00:13 <oerjan> 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 <elliott> oerjan: let is a code smell
20:00:58 <elliott> if you're that deeply nested that where doesn't work, you have bigger problems :P
20:01:22 <oerjan> also, your advice doesn't apply in do blocks.
20:01:29 <elliott> don't use let...in, then :p
20:02:39 <Deewiant> let is more local than where, for short/simple things I prefer it
20:03:07 <oerjan> Ngevd: also if all that dropWhile is just for skipping whitespace, then reads does that automatically.
20:03:33 <elliott> Deewiant: If it's "more local" in any appreciable way, you have too much nesting in the first place
20:03:42 <elliott> I'm not saying let...in should never be used ever, but it's certainly a symptom
20:03:54 <Ngevd> oerjan, it's for finding the next number
20:04:01 <Deewiant> let xs = foo in bar xs where bar xs = ...
20:04:08 <Ngevd> There may be any range of symbols
20:04:55 <elliott> bar foo where bar xs = ...
20:05:38 <Ngevd> 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 <Deewiant> Now assume I want to name foo because it's an expression
20:06:01 <ais523> Ngevd: you're going to get good at Haskell just as it becomes obsolete?
20:06:07 <Deewiant> elliott: That doesn't name foo
20:06:16 <Ngevd> It's not the best of plans
20:06:43 <elliott> 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:18 <Deewiant> And I don't want to do that because then bar and possibly baz and qux see xss
20:07:32 <elliott> 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 <elliott> And yes, you can come up with a contrived situation where this is bad advice /and/ the code is fine :P
20:09:19 <elliott> foreign import ccall "hubbub/parser.h hubbub_parser_setopt"
20:09:19 <elliott> c_parser_setopt :: Ptr ParserStruct -> CInt -> Ptr () -> IO CInt
20:10:28 <Deewiant> 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 <Deewiant> "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:34 <elliott> but have been occasionally tempted by
20:11:58 -!- Zuu has left.
20:11:58 <elliott> Pretty sure the first is the best though
20:12:00 <elliott> It gets slightly annoying with long do blocks, but those probably shouldn't be in a where anyway
20:12:29 <Deewiant> My "where" stuff tends to be long enough that the additional indentation of the first would be a pain
20:12:43 <elliott> Yeah, I've established well the suckitude of your Haskell code :P
20:12:45 <Deewiant> Likewise the second lengthens the foo = bar line
20:13:20 <elliott> The second line is kinda gross because the "where" looks like part of the expression.
20:13:33 <elliott> This doesn't annoy me with "do" but I think that's because do is actually a bona-fide expression :P
20:13:41 <oerjan> <Phantom_Hoover> The frontpaging is really starting to show in r/AskScience.
20:13:51 <oerjan> i think you mean r/askreddit
20:13:56 <elliott> Leaving this here in case I feel the urge to go back to this implementation: http://sprunge.us/IZRK
20:13:57 <Deewiant> IIRC you've only complained about that parser :-P
20:14:22 -!- impomatic has joined.
20:14:24 <Deewiant> I can't remember which part of it, but the C one
20:14:40 <elliott> Deewiant: Err, what's the context
20:14:43 <elliott> I have no clue what you're talking about
20:14:54 <elliott> No, I also complained about list-tries
20:15:03 <elliott> And your use of 904534895749534857-parameter functions
20:15:29 <Deewiant> The parameter count thing was in mushspace, I think
20:15:45 <Deewiant> 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 <elliott> Nah, there was a Haskell thing too
20:16:30 <Deewiant> Possibly the lack of separate types for function parameters
20:16:44 <elliott> ?hoogle a -> (Ptr a -> IO b) -> IO b
20:16:44 <lambdabot> Foreign.Marshal.Utils with :: Storable a => a -> (Ptr a -> IO b) -> IO b
20:16:44 <lambdabot> Foreign.ForeignPtr withForeignPtr :: ForeignPtr a -> (Ptr a -> IO b) -> IO b
20:16:44 <lambdabot> Foreign.Marshal.Alloc allocaBytes :: Int -> (Ptr a -> IO b) -> IO b
20:16:50 <oerjan> 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:55 <Deewiant> genericUnionWithKey :: (Alt st a, Boolable (st a), Trie trie st map k)
20:16:55 <Deewiant> => (st a -> trie map k a -> trie map k a)
20:16:55 <Deewiant> -> ((a -> a -> a) -> st a -> st a -> st a)
20:17:20 <elliott> oerjan: They just changed the default set
20:17:25 <elliott> Deewiant: This is not acceptable
20:17:40 <elliott> Deewiant: No, stop talking
20:17:57 <Deewiant> I'll be going to sleep shortly
20:18:03 <Deewiant> And I don't know of a good way of fixing this
20:18:25 <elliott> Deewiant: Meh, I'll just send you ten patches that rewrites half of the library sometime
20:18:38 <copumpkin> ((a -> a -> a) -> st a -> st a -> st a) looks like liftA2
20:18:42 <Deewiant> I don't mind if you can get rid of the hacks :-P
20:19:13 <Deewiant> It's either Maybe or Identity so... yes?
20:19:27 <copumpkin> then just add an Applicative constraint and get rid of that parameter :)
20:19:40 <oerjan> elliott: the default set has always been changing, but now it seems there are more than 10 subreddits in it...
20:19:48 <elliott> oerjan: See reddit blog :p
20:19:51 <elliott> oerjan: /r/reddit.com got shut down too.
20:20:22 <Deewiant> copumpkin: It's either a strict or non-strict combiner function
20:20:34 <copumpkin> what does it do on Maybe and Identity?
20:20:41 <copumpkin> for Identity I can see it doing one of three things
20:20:58 <Deewiant> It either selects the Just one if one is Nothing
20:21:12 <Deewiant> Or it's a strict version of liftA2
20:21:41 <impomatic> How come the report.txt here is empty? http://codu.org/eso/fyb/ Has something broken?
20:21:47 <Deewiant> Seriously, don't ask about the Identity :-P
20:21:48 <elliott> setOption :: CInt -> (a -> (Ptr () -> IO CInt) -> IO CInt) -> Parser -> IO ()
20:22:00 <elliott> Deewiant: I'm asking about the Identity
20:22:08 <Deewiant> unionVals _ (Id a) (Id b) = Id$ a || b
20:22:09 <Deewiant> unionVals' = error "Data.ListTrie.Base.Classes.unionVals' :: internal error"
20:22:18 <Deewiant> And it shouldn't be the latter
20:22:23 <elliott> setOption :: CInt -> (a -> (Ptr () -> IO CInt) -> IO CInt) -> Parser -> a -> IO ()
20:22:25 <copumpkin> what other constructor would you get?
20:22:37 <Deewiant> copumpkin: Two different functions
20:22:50 <oerjan> !sh echo "I am totally broken"
20:22:53 <Deewiant> elliott: Also when you do the rewrite can you do the Lazy/Strict split that everybody is doing nowadays kthx
20:22:56 <copumpkin> what are you making, out of curiosity? :)
20:23:09 <Deewiant> copumpkin: This is from list-tries (Data.ListTrie), it's been made :-P
20:23:11 <oerjan> impomatic: EgoBot is very, very ill and Gregor doesn't care
20:23:33 * Gregor listens to EgoBot's heart monitor slowly fade away.
20:23:41 <elliott> Deewiant: No, no, I'll make it a type family parameterised on strictness.
20:23:43 <Deewiant> 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 <elliott> Deewiant: Maybe ConstraintKinds? Definitely type naturals.
20:23:55 <Deewiant> elliott: That's just the public API do whatever you want internally
20:24:00 <elliott> (It is a joke because you should not be allowed to use any language extensions.)
20:24:20 <Deewiant> Well yes, anything that doesn't require extra extensions
20:26:02 <elliott> ?hoogle (Enum a, Integral b) => a -> b
20:26:02 <lambdabot> Prelude ceiling :: (RealFrac a, Integral b) => a -> b
20:26:02 <lambdabot> Prelude floor :: (RealFrac a, Integral b) => a -> b
20:26:02 <lambdabot> Prelude round :: (RealFrac a, Integral b) => a -> b
20:27:36 <lambdabot> forall b a. (Num b, Enum a) => a -> b
20:31:45 -!- impomatic has left.
20:32:07 <oerjan> > fromIntegral . fromEnum $ 123456789012345678901234567890 :: Integer
20:33:41 <oerjan> > fromEnum $ 123456789012345678901234567890
20:37:13 <elliott> setOption :: CInt -> (a -> (Ptr b -> IO CInt) -> IO CInt) -> Parser -> a -> IO ()
20:39:33 -!- augur has joined.
20:39:56 <elliott> newtype Parser = Parser (ForeignPtr ParserStruct)
20:42:35 -!- CakeProphet has quit (Ping timeout: 258 seconds).
20:54:56 <lambdabot> Foreign.Storable poke :: Storable a => Ptr a -> a -> IO ()
20:54:56 <lambdabot> Foreign.Marshal.Array pokeArray :: Storable a => Ptr a -> [a] -> IO ()
20:54:56 <lambdabot> Foreign.Marshal.Array pokeArray0 :: Storable a => a -> Ptr a -> [a] -> IO ()
20:54:58 <lambdabot> Foreign.Storable pokeElemOff :: Storable a => Ptr a -> Int -> a -> IO ()
21:05:19 <oerjan> <olsner> istr, some of the really old mainframe systems also used . as a directory separator
21:05:43 <oerjan> i vaguely recall vms may have done, in a weird way
21:05:54 <elliott> Hey oerjan, figure out the zipper of this type.
21:06:04 * elliott watches oerjan scream and run away.
21:06:20 <oerjan> something like logicalVolume:[dir1.dir2.dir3]filename.ext;version where i may recall parts wrong
21:07:19 <oerjan> and there was a way to define new logical volumes in some kind of dictionary
21:07:50 <oerjan> elliott: which type? all you mentioned so far as IO, which i don't know how to zipperize
21:08:27 <oerjan> vms wasn't really mainframe, btw
21:08:38 <elliott> oerjan: no, that isn't it :P
21:08:59 <oerjan> elliott: what type then
21:11:18 <olsner> it's hard to zipperize something you've never seen
21:11:26 <olsner> but I'm sure oerjan can do it
21:11:37 <pikhq_> I don't think IBM mainframes historically had files.
21:12:02 <pikhq_> Punchcard readers and card punchers, sure.
21:12:13 -!- derdon has quit (Remote host closed the connection).
21:13:56 <olsner> my VM/370 machine has disks with files on them
21:14:55 <Phantom_Hoover> Argh, I swear I understood centripetal force before I tried to answer this question in r/AskScience.
21:16:41 <ais523> 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:59 <Phantom_Hoover> Centripetal and centrifugal force don't exist in the same reference frame.
21:18:13 <ais523> "centrifugal force" doesn't exist; it's an effect caused by the /lack/ of a force
21:18:32 <ais523> and right, the centrifugal effect only looks like a force if you look at it from a rotating reference frame
21:18:40 <ais523> otherwise it just looks like the lack of a force, which is what it actually is
21:20:31 <elliott> Excuse me, my parents come from a rotating reference frame.
21:22:58 <Phantom_Hoover> 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 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/lrcws/what_would_happen_if_everyone_simultaneously/
21:26:50 <ais523> I won't look at the question, and rather take the cut-off version
21:26:54 <ais523> it'd be rather like accidentallying, I guess
21:26:58 <ais523> but more synchronized and deliberate
21:30:50 <lambdabot> forall (a :: * -> * -> *) b c d. (ArrowChoice a) => a b c -> a (Either b d) (Either c d)
21:31:34 <olsner> it would create a sewage singularity
21:31:53 <olsner> i.e. the whole world turns to crap. simultaneously.
21:32:26 <ais523> 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:44:17 -!- ais523 has quit (Remote host closed the connection).
21:47:34 -!- zzo38 has joined.
21:51:58 <zzo38> 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 <lambdabot> zzo38: You have 4 new messages. '/msg lambdabot @messages' to read them.
21:52:01 <Ngevd> Well, my clever idea for making a brainfuck interpreter in Piet wasn't so clever after all
21:52:03 <zzo38> http://sprunge.us/IAAe
21:52:20 <Ngevd> It's 5604 by 1131 pixels
21:52:29 <Ngevd> And only probably works
21:53:24 <elliott> ?pl maybe x fromCtx (goUp x)
21:53:28 <elliott> ?pl \x -> maybe x fromCtx (goUp x)
21:54:08 -!- Vorpal has quit (Ping timeout: 244 seconds).
21:54:18 <elliott> Targets (7): sg3_utils-1.30-1 parted-3.0-3 libatasmart-0.17-1 lsof-4.85-1
21:54:18 <elliott> eject-2.1.5-7 udisks-1.0.4-1 xfce4-power-manager-1.0.10-2
21:54:45 <zzo38> GHC does support universal quantifiers for types.
21:56:09 <Phantom_Hoover> http://www.reddit.com/r/AskReddit/comments/lrc3q/would_you_fight_a_bear_for_1000000/
21:57:30 <elliott> "No because the bear would kill me and I wouldn't get to spend my money"
21:58:19 <Phantom_Hoover> What if you got the money before and you could fight the bear after buying kit (the answer is yes).
21:59:00 <elliott> ?pl liftA2 (&&) -- give me a nicer way to write this dammit
21:59:10 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Bool.Bool)
21:59:21 <elliott> > ala And foldMap [(>4), (<10)] 5
21:59:23 <lambdabot> Not in scope: data constructor `And'Not in scope: `foldMap'
21:59:36 <oerjan> <olsner> but I'm sure oerjan can do it <-- BUT OF COURSE
21:59:40 <elliott> > ala All foldMap [(>4), (<10)] 5
21:59:47 <elliott> > ala All F.foldMap [(>4), (<10)] 5
21:59:50 <elliott> > ala All Foldable.foldMap [(>4), (<10)] 5
21:59:52 <elliott> > ala All Data.Foldable.foldMap [(>4), (<10)] 5
21:59:53 <lambdabot> The section `GHC.Classes.> 4' takes one argument,
22:00:17 <zzo38> 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 <oerjan> ?pl fromCtx x = maybe x fromCtx (goUp x)
22:03:17 <lambdabot> fromCtx = fix ((`ap` goUp) . flip maybe)
22:03:45 <Ngevd> oerjan, I think I pronounce your name horrendously wrong
22:03:46 <Ngevd> I pronounce it "O'er jam" but with an n instead of an m
22:04:15 <oerjan> <zzo38> 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 <elliott> i pronounce it like that too though
22:06:45 <oerjan> <elliott> it's ~yohan <-- oh come on you pronounced it better than that in the sound file you sent
22:06:56 <olsner> oerjan is the norwegian version of George
22:07:09 <Ngevd> George? Why that's my middle name!
22:07:10 <oerjan> _one_ of the norwegian versions
22:07:37 <elliott> oerjan: halfway between yohan and j\"orgen :P
22:07:38 <olsner> yes, *one* of them ... there are like a gadjillion versions of george
22:08:03 <oerjan> i recall this old baby name book with evolutionary (?) trees for several names, the georgios tree was one of them
22:08:21 <olsner> örjan, jörgen, göran, georg
22:08:29 <oerjan> nicolaos, johannes, cecilia were others
22:09:03 <oerjan> actually when i think about it i'm not quite sure if georgios was a tree
22:09:24 <fizzie> "Yrjö" in Finnish. (Also the Finnish word for 'vomit', incidentally.)
22:09:25 <olsner> yuri is apparently also a george (not swedish, but russian/slavic/eastern-european)
22:09:27 <oerjan> it may not be that much bigger than what olsner said
22:10:00 <oerjan> well the tree would mostly include names used in norway, naturally
22:11:01 <fizzie> Naturally: why would anyone care about things outside Norway, really?
22:11:33 <oerjan> in a norwegian baby name book? no reason.
22:12:15 <olsner> not so sure about that, I think foreign names are generally quite popular
22:12:35 <olsner> doesn't mean those names are in the book though
22:12:45 <Ngevd> It amazes me how Jan can be the same name as Sean and Theo
22:12:47 <fizzie> "Forget Norway", like the song (http://www.weebls-stuff.com/songs/kenya/) goes.
22:13:57 <oerjan> <elliott> 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 <oerjan> 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 <oerjan> although english loans like jimmy, ronny (curiously frequently in nick name form) were popular at the time
22:18:26 <oerjan> <Ngevd> It amazes me how Jan can be the same name as Sean and Theo <-- wait, same as Theo?
22:18:39 <Ngevd> Same etymology, different language
22:19:06 <oerjan> i'm skeptical, since jan is in that johannes group
22:19:43 <oerjan> but i guess it may have occured in several ways, like the norwegian "line"
22:19:59 <Ngevd> Johannes, John, Sean, Ian, Jan, Yan, etc come from I think Hebrew originally
22:20:26 <olsner> is there a name derived from line, or was that referring to they johannes line?
22:20:52 <oerjan> olsner: no i mean line is a short form of several other names, like caroline
22:21:39 <olsner> oh, Line, that's like our Lina then
22:22:10 <olsner> I read it lajn not lineh
22:22:43 <olsner> (unsure if those pronounciation guides help much though :P)
22:23:20 <oerjan> ...i don't think there is much in that name to confuse a swede
22:23:47 <olsner> norwegian and line are two english words
22:24:56 <olsner> I like how (the norwegian word for) wrong is pronounced like fail in norwegian
22:27:21 <oerjan> sheesh that MrX crackpot/troll is _still_ going on in the godel's lost letter comments
22:29:35 -!- MSleep has joined.
22:29:42 -!- Phantom_Hoover has quit (Quit: Leaving).
22:29:56 -!- Ngevd has quit (Quit: Leaving).
22:30:01 <oerjan> no! sleep is for the weak!
22:33:14 <oerjan> too slep, perching two dram
22:34:06 <CakeProphet> monqy: yes, if you look at it that way I suppose.
22:36:38 <zzo38> 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 <oerjan> i recall once trying to think about a type system for bijective functions, it seemed like a tricky thing to achieve
22:39:35 <oerjan> (for reversible computing)
22:39:49 <zzo38> 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 <elliott> oerjan: well they're a category
22:40:49 <elliott> I think an Applicative too
22:41:26 <copumpkin> http://www.iai.uni-bonn.de/~jv/popl09-2.pdf
22:41:43 <copumpkin> other stuff of his also explores it: http://www.iai.uni-bonn.de/~jv/
22:42:13 <zzo38> Yes, it would be a category, I think.
22:42:57 <monqy> theyr'e an applicative?
22:43:20 <zzo38> But how would it be Applicative?
22:43:29 <oerjan> 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 <oerjan> it's a trick of reversible computation called a cascade
22:45:05 <oerjan> you compute something reversibly, copy the result, and uncompute the original
22:45:29 <elliott> "Yeah, I guess I was trying to say there's always other choices besides fighting a bear for money."
22:47:00 <oerjan> copumpkin: that's about lenses, not reversible computing, isn't it
22:49:23 <copumpkin> oerjan: maybe you're right, but there was some paper with a similar title that was about it
22:50:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:57:33 <zzo38> 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 <oerjan> zzo38: i'm just not sure if anyone knows how to do it without full dependent typing
23:05:03 <elliott> Does anyone know of some really thin layer on top of Win32/pthreads that just offers mutexes?
23:05:07 <elliott> That's all I need, a single portable mutex :P
23:05:51 <zzo38> oerjan: Then how do you do it with full dependent typing? I don't know a lot about dependent typing
23:06:28 <elliott> zzo38: that constitutes a full logic
23:06:39 <elliott> so you can just have a->b, b->a, and the proposition that f.g = g.f = id
23:06:50 <elliott> and it's the burden of the definer to prove that
23:06:59 <elliott> ofc you can prove it generically, e.g. you can define a composition operator that requires no proof
23:09:59 <zzo38> 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 <CakeProphet> 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 <elliott> have you done that yourself
23:22:47 <CakeProphet> 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 <zzo38> How are you supposed to make a proposition that (f.g = g.f = id) when you added dependent types?
23:24:26 <elliott> (forall x, f (g x) = x) /\ (forall x, g (f x) = x)
23:24:33 <elliott> (forall x, f (g x) = x, forall x, g (f x) = x)
23:24:52 <elliott> ((x::a) -> f (g x) = x, ...blah blah blah if you want to be more haskell-looking...)
23:30:58 <zzo38> That doesn't seem to be a type as far as I can see
23:31:25 <elliott> of course it isn't a haskell type, because haskell isn't dependently-typed
23:31:28 <CakeProphet> also this thing: http://locklessinc.com/articles/pthreads_on_windows/
23:32:10 <elliott> 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 <elliott> that should be real, actual Coq code
23:41:21 -!- SimonRC has quit (Ping timeout: 252 seconds).
23:43:14 -!- SimonRC has joined.
23:49:25 <lambdabot> Source not found. You speak an infinite deal of nothing
23:49:51 <lambdabot> class Applicative f => Alternative f where
23:55:09 <CakeProphet> I'm guessing the name Merlin is already taken for a programming language.
23:58:10 <elliott> Deewiant: monqy: aurget, pacaur, packer; pick at random, you are both psychic.
23:58:41 <monqy> but im bad at choices
23:58:52 <monqy> i will psychically choose the worst