←2011-10-26 2011-10-27 2011-10-28→ ↑2011 ↑all
00:00:02 <shachaf> > var$"kessel run"
00:00:03 <lambdabot> kessel run
00:00:22 <evincar> I'm using Parsec.
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:00:50 <oerjan> disappointing
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:22 <HackEgo> 5.5542196463503121165e+14
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:18 <elliott> oerjan: wrong
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:36 <monqy> args? kwargs?
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:04:04 <monqy> i know but
00:04:08 <monqy> ????????
00:04:15 <evincar> Don't worry about it. :P
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:14 <evincar> One second.
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> string "->"
00:06:00 <evincar> expressions <- evenExpressions
00:06:00 <evincar> return $ EvenLambda (map identifierString arguments) Nothing Nothing
00:06:03 <evincar> expressions
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:11 <oerjan> *to
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:08:59 <oerjan> that too
00:09:39 <monqy> and what's ws
00:09:39 <evincar> The surroundedBy works for list/map syntax, just not this part of the lambda syntax.
00:09:47 <evincar> Shorthand for spaces.
00:09:59 <evincar> == many space
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:35 <lambdabot> No results found
00:10:42 <evincar> I knew that and just didn't want to type spaces. :P
00:10:50 <monqy> crys
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:14:17 <elliott> s/insetad/instead/
00:14:39 <monqy> what's cleyd
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:39 <elliott> go on
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:02 <oerjan> *character subset
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:54 <evincar> Yeah, that.
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:41 <pikhq> Hmm. Waaait.
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:34 <elliott> more importantly
00:21:53 <elliott> args = no currying lol
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:17 <monqy> oh?
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:29:20 <evincar> Yes.
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:01 <elliott> it is...
00:33:03 <elliott> and it isn'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:16 <evincar> ^ that.
00:33:17 <monqy> zennest langauge
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:55 <oerjan> WELL I'M SICK OF IT
00:33:57 <monqy> I don't entirely believe it will become obvious if he has fundamental confusion
00:33:58 * oerjan runs away
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:34 <elliott> go go distro install
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:07:53 <oerjan> just the filenames?
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:09:49 <elliott> no
01:09:52 <elliott> :)
01:09:55 <elliott> people in #archlinux
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:10:56 <evincar> Hah, I haven't.
01:17:05 -!- pikhq_ has joined.
01:18:09 -!- tiffany has quit (Quit: Leaving).
01:19:55 <pikhq_> Got it.
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:20:22 <elliott> :D
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:46 <oklopol> oh, it was that one
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:09 <elliott> NOTE TO SELF
01:41:11 <elliott> NOTE TO SELF
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:46:32 <elliott> oh good...
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:16 <oerjan> @list remember
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:53:28 <lambdabot> Done.
01:53:47 <oerjan> @quote how does this
01:53:47 <lambdabot> how says: does this work?
01:54:01 <oerjan> @forget how does this work?
01:54:01 <lambdabot> Done.
01:54:05 <oerjan> @quote how does this
01:54:05 <lambdabot> No quotes match. Just what do you think you're doing Dave?
01:56:42 <Gregor> @quote Haskell
01:56:43 <lambdabot> Haskell says: I'm a bitching language
01:56:55 <Gregor> @quote JavaScript
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:57:07 <Gregor> X-D
01:59:26 <Madoka-Kaname> @quote JavaScript
01:59:27 <lambdabot> Jafet says: Javascript is pretty much a DSL for making your web browser take up more CPU
01:59:31 <Madoka-Kaname> @quote JavaScript
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:33 <Madoka-Kaname> @quote 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:35 <Madoka-Kaname> @quote 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:14 <oerjan> @quote repetitive
02:04:15 <lambdabot> No quotes match. Maybe if you used more than just two fingers...
02:05:22 <Madoka-Kaname> @quote JavaScript
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 <Madoka-Kaname> @quote 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:25 <Madoka-Kaname> @quote 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:26:58 <elliott_> Anyone know GRUB2?
02:30:35 <elliott_> oerjan: btw you can remove the numbers from the topic.
02:30:46 <elliott_> 1234567890!@#$%^&*()
02:31:26 <oerjan> aww
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:36:42 <elliott_> Oh well, let's assume "yes"
02:37:22 <pikhq_> Seems it's "yes".
02:37:56 <elliott_> Good, I assumed right :P
02:38:18 <elliott_> Yay, #grub agree.
02:38:30 <elliott_> pikhq_: Thanks
02:45:35 <elliott_> pikhq_: Oooooooooops
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:51:57 <elliott> meh, time to redo i guess
02:52:02 <elliott> pikhq_: quick, give my /boot partition a size
02:54:38 -!- NDandy has joined.
02:54:50 <NDandy> What up, yo?
02:55:04 <elliott> NDandy: Pssst, give my /boot partition a size. It's a once-in-a-lifetime opportunity,
02:55:25 <NDandy> Hmm
02:55:30 <NDandy> What's the upper bound?
02:55:35 <NDandy> And what are you booting?
02:55:39 <elliott> Probably 100. And Linux.
02:55:45 <NDandy> I usually go for 4 GB or so
02:55:51 <elliott> ...for /boot?
02:55:57 <elliott> How big are your kernels?
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:07 <pikhq_> And that's overkill.
02:56:15 <NDandy> I suppose
02:56:19 <NDandy> I just overdo space
02:56:21 <elliott> How big are your disks
02:56:22 <NDandy> It's so cheap
02:56:25 <elliott> df -h
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:40 <pikhq_> 20M!
02:56:41 <NDandy> OS X, remember?
02:56:50 <elliott> Oh.
02:56:55 <NDandy> Also, go 100M
02:56:58 <pikhq_> initrd is apparently huge.
02:56:58 <elliott> pikhq_: Ooh ooh should I make it 100 or 128.
02:57:01 <NDandy> Should be sufficient
02:57:10 <elliott> Oh wait this isn't an SSD.
02:57:11 <NDandy> Also, any awk wizards, perchance?
02:57:12 <elliott> 100 it is
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:09 <elliott> So what's the problem
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:39 <elliott> Fair enough
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:00:59 <elliott> IRC, I mean
03:01:10 <NDandy> I just want to add the numbers at $9 when $2 is equal on multiple lines
03:01:23 <NDandy> <3 livecds
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:19 <elliott> holy crap
03:03:29 <elliott> guy in #archlinux
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:38 <oklopol> is pretty random
03:18:53 -!- augur has quit (Remote host closed the connection).
03:19:25 <Madoka-Kaname> @hoogle m a -> m a -> a -> a -> a -> m a
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:30 <Madoka-Kaname> @hoogle m a -> m a -> (a -> a -> a )-> m a
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:39 <Madoka-Kaname> @hoogle m a -> m a -> (a -> a -> a) -> m 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:13 <Madoka-Kaname> @hoogle (a -> b -> c) -> m a -> m b -> m c
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:18 <Madoka-Kaname> @src liftM2
03:20:19 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
03:20:28 <oerjan> :t liftA2
03:20:29 <lambdabot> forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c
03:20:43 <oerjan> oh it was there
03:21:26 <oerjan> @src liftA2
03:21:26 <lambdabot> 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 <elliott> sup
03:59:22 <shachaf> elliott: kmc's exciting bug is up.
03:59:26 <shachaf> http://hpaste.org/53188
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:20 <elliott> Which
04:00:25 <oerjan> XD
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:00:55 <shachaf> elliott: In GHC?
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:02:28 <elliott> Popularly.
04:02:32 <elliott> And... yeah.
04:03:27 <shachaf> kmc: Since when are you in here?
04:03:32 <elliott> Since ages.
04:03:34 <elliott> It's an infestation.
04:03:51 <oerjan> `quote kmc
04:03:53 <HackEgo> No output.
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:07:54 * oerjan coughs
04:08:46 <elliott> That oerjan. So wacky.
04:08:54 <elliott> pikhq_: You use Chromium and xfwm4, right?
04:08:59 -!- DCliche has quit (Ping timeout: 260 seconds).
04:09:34 <pikhq_> Firefox and xfwm4
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:44 <shachaf> oerjan: noDuplicate?
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 <shachaf> @quote kmc
04:12:04 <lambdabot> kmc says: fuck me with a rusty chainsaw
04:12:13 <kmc> oh dear
04:12:21 <elliott> It's better than most of our quotse.
04:12:22 <shachaf> Is that cheater?
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:32 <shachaf> elliott: ..."quotse"?
04:12:36 <elliott> shachaf: You're not meant to ping him.
04:12:39 <elliott> Also yes, quotse.
04:12:40 <kmc> i'm amused because whenever i poke my head in here, you guys are talking about haskell
04:12:42 <elliott> http://quotse.cx/
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:01 <shachaf> @quote kmc eso
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 <shachaf> @quote kmc eso
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:46 <elliott> What a quote.
04:13:49 <kmc> @quote kmc c\+\+
04:13:49 <elliott> I'm in stitches.
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:00 <elliott> @quote kmc kmc
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:16 <elliott> oerjan: Oh, oh no.
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:32 <elliott> 99.9%, even.
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:00 <elliott> kmc: Say something funny.
04:16:06 <kmc> COCKS
04:16:26 <elliott> kmc: No that wasn't funny you lose sorry.
04:16:27 <elliott> oerjan: Ban him.
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:16:50 <shachaf> elliott: u mad?
04:17:04 <elliott> Exceedingly!
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 <lambdabot> http://qdb.rawrnix.com/?browse&3
04:18:12 <lambdabot> Title: Browse Quotes
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:19 <HackEgo> 698) <kmc> truly cocks
04:18:26 <elliott> `delquote 698
04:18:28 <HackEgo> ​*poof*
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:33 <lambdabot> Solutions are not the answer.
04:18:34 <HackEgo> 698) <kmc> COCKS [...] <kmc> 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 <olsner> oh, kmc is here now
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:11:40 <elliott> reassuring
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:04 <shachaf> elliott: How old?
06:26:10 <elliott> shachaf: 7.0.3
06:26:19 <shachaf> (In general, no, it's not, and no, you won't.)
06:26:22 <shachaf> Oh, that's OK.
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:26:47 <shachaf> Nor 7.2.
06:26:50 <elliott> 7.w is the best.
06:27:06 <elliott> $ ghc --version
06:27:19 <elliott> The Glorious Glasgow Haskell Compilation System, version 7.w "the best version"
06:28:22 <shachaf> More like 7.ω
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:33:03 <elliott> No.
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:05 <elliott> Hmph.
06:48:17 <elliott> This library I'm binding to Haskell should be written in Haskell instead.
06:49:05 <shachaf> Rewrite it.
06:49:08 <shachaf> You know you want to.
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:49:48 <shachaf> About what?
06:50:25 <elliott> This. Are you even paying attention?
06:53:09 <olsner> just rewrite it, that thing sucks
06:53:17 <olsner> whatever it is
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:01:49 <elliott> What
07:02:14 <shachaf> /bin/less
07:02:19 <elliott> Ah
07:02:24 <elliott> main = system "less"
07:02:27 <shachaf> shachaf@argon:~$ which less
07:02:27 <shachaf> /usr/bin/less
07:02:28 <elliott> It takes no arguments.
07:02:31 <elliott> That's the beauty of it.
07:02:38 <shachaf> Whatever.
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:34 <shachaf> elliott: Looks nice.
07:05:41 <elliott> Wait wait I've got it.
07:05:42 <shachaf> Still capitalized, though.
07:05:49 <elliott> You can do whatever. DISCLAIMER: FUCK YOU
07:06:07 <shachaf> zomg brilliant
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:13:06 <Patashu> \o/
07:13:06 <myndzi\> |
07:13:06 <myndzi\> >\
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:16:22 <elliott> SO BEAUTIFUL.
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:28 <elliott> allocate ptr size _
07:38:29 <elliott> | ptr == nullPtr = mallocBytes size
07:38:31 <elliott> | otherwise = reallocBytes ptr size
07:38:34 <elliott> Yessssss.
07:42:27 -!- ais523 has joined.
07:49:41 <elliott> Hi ais523.
07:49:56 <ais523> hi elliott
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:30 <elliott> Context is:
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:51:37 <elliott> <elliott> Yessssss.
07:53:13 -!- ais523 has quit (Remote host closed the connection).
07:53:27 -!- ais523 has joined.
07:53:33 <ais523> <elliott> Context is:
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
07:55:50 <elliott> lol
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:43 <elliott> :D
08:07:52 <elliott> I've barely said anything about Anarchy
08:07:55 -!- Vorpal has joined.
08:10:01 <ais523> indeed
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:21:35 <elliott> oh jesus
08:21:43 <Ngevd> HellO!
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:30:50 <elliott> It's lowercase.
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:14 <Vorpal> s/+/?/
08:44:21 <elliott> Define there.
08:44:34 <Vorpal> elliott, with the haskell<->C stuff
08:44:46 <elliott> FFI.
08:44:50 <Vorpal> ah
08:44:56 <Vorpal> elliott, for what ultimate purpose?
08:45:10 <elliott> A vote-counting IRC bot.
08:45:14 <Vorpal> heh
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:46:05 <elliott> Not that.
08:46:21 <Vorpal> elliott, okay
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:49:55 <Ngevd> Hmmm
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:55:58 <Ngevd> I'll try
08:58:03 <Ngevd> Numeric input:
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:01 <Vorpal> three-cell brainfuck?
11:10:12 <Vorpal> what is even the point of that
11:10:23 <Ngevd> Oerjan proved it Turing-Complete
11:10:36 <Vorpal> Ngevd, bignums?
11:10:42 <Ngevd> Yeah
11:10:47 <Vorpal> right
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:28:32 <Ngevd> *been
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:22 <Ngevd> "
11:38:46 <Deewiant> > (\(Just x) -> x) Nothing
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:41:52 <Ngevd> Worked it out
11:42:00 <Ngevd> It's going through the program backwards
11:42:59 <Ngevd> Thanks!
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:40 <Vorpal> Ngevd, what problem?
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:26 <Ngevd> Somehow, yes
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:51:55 <Vorpal> ah okay
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:31 <Vorpal> hm
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:58:53 <Vorpal> Fractan being?
11:59:16 <Ngevd> http://esoteric.voxelperfect.net/wiki/Fractran
11:59:37 <Ngevd> Essentially the same to iterated collatz functions
12:00:23 <Vorpal> ah
12:00:25 <Ngevd> I am proud of line 14 of my program
12:00:29 <Vorpal> right
12:01:06 <Vorpal> an interpreter in J?!
12:01:24 <Ngevd> Where!?
12:01:45 <Ngevd> Oh, there
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:07:49 <Ngevd> Damn, so it does
12:08:20 <Ngevd> I can fix that with 10 characters
12:08:42 <Ngevd> http://codepad.org/u2BOIo9w
12:09:03 <Ngevd> No wait
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:13:11 <Ngevd> Yes it would
12:13:18 <Ngevd> By a long way
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:18:12 <Ngevd> Seems to work
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:06 <Ngevd> The @tell thing
12:56:12 <Ngevd> @tell
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 <fizzie> @help tell
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:15 <Vorpal> fizzie, ... wow.
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:28:27 <fizzie> And an IDE.
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:45:58 <Vorpal> fizzie, yeah...
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:27:31 <quintopia> ew
15:29:05 <Vorpal> ais523, ouch
15:29:20 <Vorpal> ais523, discuss with whoever formulated it?
15:29:49 <ais523> nah, I just need to focus on it more
15:29:57 <Vorpal> 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 <Ngevd> How do I get the output from a command line command into a file?
16:11:58 <Deewiant> command > file
16:14:05 <Ngevd> Soon, very soon
16:14:14 <fizzie> Ominous.
16:14:16 <Ngevd> I will have sort of written a brainfuck interpreter in Piet!
16:14:25 <Ngevd> Nyahahaha!
16:15:02 <fizzie> You mean you'll have something like http://www.matthias-ernst.eu/pietbrainfuck.html ?
16:16:04 <Ngevd> EXCEPT BETTER
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:16:54 <Ngevd> Trust me on this.
16:17:17 <Vorpal> Ngevd, no
16:19:53 <Phantom_Hoover> 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 <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:03:35 <Deewiant> Install more stuff
17:03:56 <Phantom_Hoover> elliott, TRAITOR
17:04:17 <elliott> Phantom_Hoover: Have you seen how old Debian's ghc is.
17:04:36 <Phantom_Hoover> elliott, I know it's really old, but...
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:10 <elliott> program.
17:05:30 <elliott> That + Debian repos = THEE COMPLEAT LINUX
17:05:36 <elliott> olsner: lol
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:23 <elliott> I'll... consider it.
17:08:26 <Deewiant> I.e. it isn't painfully slow
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:43 <elliott> When was that
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:02 <elliott> Oh, guess not then
17:09:10 <elliott> olsner: no, that's correc
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:11 <elliott> t
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:37 <Phantom_Hoover> There are a /lot/ more ignorant answers to questions.
17:10:38 <Deewiant> clyde was getting really slow with that
17:10:43 <olsner> yaourt? is that a funny name for yoghurt?
17:10:48 <monqy> yes
17:10:58 <Phantom_Hoover> Although the front-page questions are still good.
17:11:00 <Deewiant> olsner: It has a --sucre option
17:11:03 <Phantom_Hoover> olsner, it's French, IIRC.
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:11:36 <elliott> Wow, there's even a repo
17:11:37 <elliott> I am so lucky
17:12:57 <ais523> what's linux-ck?
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:04 <ais523> a bit like procfs
17:14:05 <elliott> brain filesystem
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:11 <elliott> Gregor: You missed the )
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:29:27 <ais523> typo
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:39:55 <elliott> Maan
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:52:33 <elliott> that is _not_ helpful >:(
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:54:31 <monqy> hubbub ok
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:58:00 <elliott> olsner: I /don't/
17:59:41 <olsner> oh, you *have* to? but people won't let you?
17:59:46 <olsner> that doesn't make sense
18:03:47 <Phantom_Hoover> I hold a gun to your head and tell you to rob a bank.
18:03:49 <Phantom_Hoover> Q.E.D.
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:14 <Phantom_Hoover> It's a hypothetical, ais.
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:06:32 <Phantom_Hoover> He took a hint from Wolfram to get that proof.
18:07:04 <ais523> Phantom_Hoover: ?
18:07:13 <ais523> oh, about holding people at gunpoint?
18:07:15 <Phantom_Hoover> Yes.
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:44 <Phantom_Hoover> Much as Wolfram does.
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:09:03 <elliott> I can confirm this.
18:09:03 <Phantom_Hoover> They try basements sometimes, but it never ends well.
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:35 <elliott> Yes, me too, briefly.
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:46 <Phantom_Hoover> Me too, quite a bit
18:11:52 <elliott> 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:14:58 <Phantom_Hoover> I am become Printer, destroyer of worlds.
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:21:34 <elliott> aha, I need AUR already
18:23:13 <elliott> Hmm, packer looks like it might be nicer than yaourt
18:23:32 <elliott> powaur too
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:19 <elliott> ls /l -usr-bin
18:27:26 <elliott> erm
18:27:28 <elliott> for options
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:28:46 <elliott> without fail
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:15 <Deewiant> elliott: / comes from CP/M
18:29:18 -!- tiffany has joined.
18:29:23 <Deewiant> olsner: Right
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:51:37 <Vorpal> very difficult though
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:14 <Vorpal> Deewiant, MoH?
18:54:17 <Deewiant> Medal of Honor
18:54:26 <elliott> `quote honor
18:54:29 <HackEgo> No output.
18:54:36 <Vorpal> ah
18:54:37 <elliott> What.
18:54:38 <elliott> `quote honour
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:08:43 <elliott> OMG UPDATES
19:08:44 <elliott> SO HAPPY
19:10:11 <elliott> [elliott@dinky hubbub]$ alsamixer
19:10:12 <elliott> cannot open mixer: No such file or directory
19:10:13 <elliott> Wait, what.
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:14:41 <Phantom_Hoover> Ahahahahahahaha
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:15:12 <Phantom_Hoover> The teacher loved him from it.
19:15:17 <Phantom_Hoover> *for it
19:16:33 <Phantom_Hoover> I *think* he submitted it to an exam, too.
19:17:11 <Phantom_Hoover> I... guess nobody actually cares.
19:17:20 <Ngevd> Not really
19:17:40 <Phantom_Hoover> He's a really annoying objectivist, does that make it interesting?
19:17:55 <elliott> hi
19:19:52 <elliott> if (parser->tb != NULL) {
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:19:52 <elliott> 149 parser->tb = NULL;
19:19:52 <elliott> 150 }
19:19:54 <elliott> Oh come on.
19:20:54 <olsner> hmm?
19:21:53 <monqy> hubub.,.,..
19:22:04 <elliott> olsner: The interface is SLIGHTLY
19:22:05 <elliott> LSES
19:22:06 <elliott> ORTHOGONAL
19:22:08 <elliott> THAN I'D LIKE
19:22:12 <elliott> s/LSES/LESS/
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:04 <monqy> eliotbub
19:23:17 <elliott> olsner: noooooooooooo
19:23:25 <elliott> Also how do you even know that, that's a UK thing.
19:23:42 <monqy> it'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:54 <elliott> Deewiant: Oh
19:24:59 <elliott> Well everything is a UK thing
19:25:02 <elliott> Even if it isn't in the UK
19:25:44 <Phantom_Hoover> What about Mars Bars?
19:30:04 <elliott> Oh nooo, I can't figure out which interface to expose.
19:30:44 <Deewiant> All of them
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:32:16 <Deewiant> Probably easier to deal with
19:32:29 <elliott> Deewiant: Eh?
19:32:39 <Deewiant> For users
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:33:51 <elliott> Deewiant: What?
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:00 <Phantom_Hoover> DIE
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:20 <elliott> s/.* fail, //
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:25 <elliott> true.
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:17 <oerjan> ok
20:04:52 <elliott> Deewiant: Uh
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:05:45 <Deewiant> That isn't just a name
20:05:52 <elliott> Deewiant: bar $ foo
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:10 <Ngevd> Probably
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:00 <Deewiant> Why shouldn't it have a name
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:09:20 <elliott> This will be painful
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:31 <elliott> I use
20:11:31 <elliott>
20:11:31 <elliott> foo = bar
20:11:31 <elliott> where quux = abc
20:11:31 <elliott> zuul = def
20:11:32 <elliott>
20:11:34 <elliott> but have been occasionally tempted by
20:11:36 <elliott>
20:11:38 <elliott> foo = bar where
20:11:40 <elliott> quux = abc
20:11:42 <elliott> zuul = def
20:11:44 <elliott>
20:11:46 <elliott> and
20:11:48 <elliott>
20:11:50 <elliott> foo = bar
20:11:52 <elliott> where
20:11:54 <elliott> quux = abc
20:11:56 <elliott> zuul = def
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:02 <elliott> And the alignment is nice
20:12:07 <Deewiant> I use the last
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:13:58 <elliott> oerjan: I think not
20:14:07 <elliott> Deewiant: What parser
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:46 <Deewiant> DS9K C
20:14:51 <elliott> Oh
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:51 <Deewiant> But hey
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:16:55 <Deewiant> -> ([k] -> a -> a -> a)
20:16:55 <Deewiant> -> trie map k a
20:16:57 <Deewiant> -> trie map k a
20:17:00 <Deewiant> -> trie map k a
20:17:02 <Deewiant> Is minimal
20:17:11 <copumpkin> Boolable o.O
20:17:20 <elliott> oerjan: They just changed the default set
20:17:22 <elliott> Deewiant: "Boolable"
20:17:25 <elliott> Deewiant: This is not acceptable
20:17:33 <Deewiant> It's a hack
20:17:38 <copumpkin> Trie is a typeclass? o.O
20:17:40 <elliott> Deewiant: No, stop talking
20:17:43 <Deewiant> No
20:17:46 <elliott> Yes
20:17:47 <elliott> Fix that
20:17:47 <elliott> Now
20:17:52 <Deewiant> No
20:17:57 <Deewiant> I'll be going to sleep shortly
20:17:59 <elliott> Please
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:31 <elliott> It is my duty
20:18:35 <Deewiant> That's fine
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:18:46 <copumpkin> is st Applicative?
20:18:58 <copumpkin> or Apply
20:19:13 <Deewiant> It's either Maybe or Identity so... yes?
20:19:25 <Deewiant> Yeah, it is
20:19:27 <copumpkin> then just add an Applicative constraint and get rid of that parameter :)
20:19:36 <Deewiant> But it's not liftA2
20:19:39 <copumpkin> oh?
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:43 <Deewiant> Well, for the Maybe case
20:20:50 <copumpkin> same for Maybe, really
20:20:58 <Deewiant> It either selects the Just one if one is Nothing
20:21:08 <Deewiant> Or it's liftA2
20:21:12 <Deewiant> Or it's a strict version of liftA2
20:21:16 <Deewiant> (Just $! f a b)
20:21:33 <Deewiant> For Identity it's a hack
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:21:49 <elliott> Lovely
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:14 <Deewiant> It's either of those two
20:22:18 <Deewiant> And it shouldn't be the latter
20:22:21 <elliott> Erm
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:40 <Deewiant> Notice the '
20:22:45 <copumpkin> oh
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:16 <copumpkin> ah
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:26:05 <elliott> Bah
20:27:35 <Deewiant> @ty fromIntegral . fromEnum
20:27:36 <lambdabot> forall b a. (Num b, Enum a) => a -> b
20:27:45 <elliott> Yes, yes
20:31:45 -!- impomatic has left.
20:32:07 <oerjan> > fromIntegral . fromEnum $ 123456789012345678901234567890 :: Integer
20:32:09 <lambdabot> -4362896299872285998
20:32:17 * oerjan whistles innocently
20:33:41 <oerjan> > fromEnum $ 123456789012345678901234567890
20:33:42 <lambdabot> -4362896299872285998
20:37:13 <elliott> setOption :: CInt -> (a -> (Ptr b -> IO CInt) -> IO CInt) -> Parser -> a -> IO ()
20:37:16 <elliott> oerjan: Behold my type
20:38:11 <oerjan> what is Parser
20:39:33 -!- augur has joined.
20:39:49 <elliott> oerjan: A type
20:39:56 <elliott> 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 <elliott> ?hoogle poke
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:57 <elliott> ?hoogle pokeElem
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:07:56 <oerjan> *has
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:09:59 <elliott> THE WORLD MUST NEVER KNOW
21:10:06 <oerjan> sheesh
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:46 <Phantom_Hoover> ais523, nononono.
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:18:50 <Phantom_Hoover> Erm, I see what you mean.
21:20:31 <elliott> Excuse me, my parents come from a rotating reference frame.
21:20:52 <Phantom_Hoover> Kinky.
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:31 <Phantom_Hoover> Actual best question.
21:26:37 <elliott> We would all die.
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:49 <elliott> :t left
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:39:29 <Phantom_Hoover> 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 <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:24 <Ngevd> 110.6 KB
21:52:29 <Ngevd> And only probably works
21:53:24 <elliott> ?pl maybe x fromCtx (goUp x)
21:53:25 <lambdabot> maybe x fromCtx (goUp x)
21:53:28 <elliott> ?pl \x -> maybe x fromCtx (goUp x)
21:53:29 <lambdabot> ap (flip maybe fromCtx) goUp
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:18 <elliott> SO MUCH BLOAT.
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:56:10 <Phantom_Hoover> I...
21:57:30 <elliott> "No because the bear would kill me and I wouldn't get to spend my money"
21:57:33 <elliott> Nailed it in one.
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:01 <lambdabot> liftA2 (&&)
21:59:02 <elliott> hmm
21:59:09 <elliott> > mconcat [(>4), (<10)] 5
21:59:10 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Bool.Bool)
21:59:10 <lambdabot> arising from a use of...
21:59:16 <elliott> hmph
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:42 <monqy> lambdabot, what!!
21:59:42 <lambdabot> Not in scope: `foldMap'
21:59:47 <elliott> > ala All F.foldMap [(>4), (<10)] 5
21:59:48 <lambdabot> Not in scope: `F.foldMap'
21:59:50 <elliott> > ala All Foldable.foldMap [(>4), (<10)] 5
21:59:51 <lambdabot> Not in scope: `Foldable.foldMap'
21:59:52 <elliott> > ala All Data.Foldable.foldMap [(>4), (<10)] 5
21:59:53 <lambdabot> The section `GHC.Classes.> 4' takes one argument,
21:59:54 <lambdabot> but its type `GHC.Bool.B...
22:00:03 <elliott> HATE YOU SO MUCH
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:40 <CakeProphet> RIP McCarthy
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:09 <elliott> it's ~yohan
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:05:02 <monqy> oerjam
22:06:04 <olsner> Engage Overjam
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:07:45 <elliott> (aka yerrgan)
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:13 <CakeProphet> I often wonder the same thing
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 <CakeProphet> Adam - the most foreign of names
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:58 <olsner> "line"?
22:19:59 <Ngevd> Johannes, John, Sean, Ian, Jan, Yan, etc come from I think Hebrew originally
22:20:04 <Ngevd> Theo is Greek
22:20:12 <oerjan> Ngevd: yes, yochanan
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:31 <oerjan> iirc
22:21:39 <olsner> oh, Line, that's like our Lina then
22:21:44 <oerjan> yeah
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:08 <oerjan> apparently
22:24:17 <olsner> obviously
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:41 * Phantom_Hoover → sleep
22:29:42 -!- Phantom_Hoover has quit (Quit: Leaving).
22:29:48 <Ngevd> Good idea
22:29:56 -!- Ngevd has quit (Quit: Leaving).
22:30:01 <oerjan> no! sleep is for the weak!
22:30:37 <olsner> slep is for wek
22:30:43 * olsner slep
22:32:42 <monqy> wgat about slepe
22:33:08 <CakeProphet> for the weke
22:33:14 <oerjan> too slep, perching two dram
22:33:15 <monqy> weka
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:34 <monqy> ooh?
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:28 <copumpkin> you see that?
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:49:28 <copumpkin> I read it a while ago
22:49:29 <copumpkin> hmm
22:49:31 <copumpkin> :)
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:42 <elliott> bundled together
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:07:15 <oerjan> yeah
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:44 <CakeProphet> I have.
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:05 <elliott> zzo38: curry-howard
23:24:26 <elliott> (forall x, f (g x) = x) /\ (forall x, g (f x) = x)
23:24:29 <elliott> ->
23:24:33 <elliott> (forall x, f (g x) = x, forall x, g (f x) = x)
23:24:36 <elliott> ->
23:24:52 <elliott> ((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 <CakeProphet> wow pthreads in Windows look horrible.
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:32:23 <elliott> unless I messed it up :)
23:41:21 -!- SimonRC has quit (Ping timeout: 252 seconds).
23:43:14 -!- SimonRC has joined.
23:49:25 <oerjan> @src many
23:49:25 <lambdabot> Source not found. You speak an infinite deal of nothing
23:49:32 <oerjan> gah
23:49:46 <elliott> @info Alternative
23:49:47 <lambdabot> Alternative
23:49:50 <elliott> @src Alternative
23:49:51 <lambdabot> class Applicative f => Alternative f where
23:49:51 <lambdabot> empty :: f a
23:49:51 <lambdabot> (<|>) :: f a -> f a -> f a
23:49:56 <elliott> hmmmmmmm
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
←2011-10-26 2011-10-27 2011-10-28→ ↑2011 ↑all