←2013-03-09 2013-03-10 2013-03-11→ ↑2013 ↑all
00:00:08 <Bike> olsner: the point being you need something to start it off, a compiler for L when there is no compiler for L presently.
00:01:36 <Sgeo> I _know_ some Smalltalker has done something imminently relevant to this discussion and to Feather
00:01:39 <Sgeo> Argh
00:02:02 <Bike> know as in you are guessing so, or know as in you remember somebody doing so?
00:02:20 <Bike> also: if on this path you happen to find a good model of code serialization (not compilation) you should let me know about it
00:03:16 <Sgeo> Know as in I remember someone doing so, although I guess the actual relevance of the project is questionable
00:03:27 <Sgeo> I saw source code that started out in one language and turned into another
00:03:40 <Bike> isn't that just a compiler.
00:03:55 <Bike> Oh, you mean like within a source?
00:03:57 <Sgeo> Yes
00:04:03 <Sgeo> I guess that seems a bit like Forth
00:04:07 <Sgeo> But it wasn't Forth
00:04:25 <Bike> I suppose it depends on what you mean by "language".
00:04:41 <Bike> I mean if you write enough functions is that a language, if you write macros does that make it a language, if you alter the parser...
00:05:09 <Sgeo> At the very least the parser changed, but I think it was more fundamental than that
00:05:25 <monqy> that sounds ugly and gross
00:07:14 <Bike> I guess you could also incrementally alter the way the compiler works.
00:07:19 <Sgeo> Found it
00:07:20 <Sgeo> http://piumarta.com/software/maru/maru-2.4/test-pepsi.l
00:07:43 <tromp_> you can change binary lambda calculus into binary combinatory logic within 125 bits, but it all looks like 0s and 1s:-(
00:07:51 <Bike> 'course it's piumarta
00:07:59 <Sgeo> piumarta?
00:08:06 <Sgeo> http://www.dynamic-languages-symposium.org/dls-06/program/media/IanPiumarta_2006_OpenExtensibleDynamicProgrammingSystems_Dls.pdf
00:08:16 <Bike> yeah one of his papers
00:08:25 <Sgeo> I don't get the "'course it's piumarta"
00:08:34 <elliott> because piumarta does all this stuff
00:08:39 <elliott> (piumarta is great)
00:08:41 <Bike> uhhhhh basically one of his papers had apply and eval as functions with definable multimethods
00:08:45 <Bike> and yeah that
00:09:03 <Bike> you should look up maru if you haven't
00:09:07 <elliott> the vpri stuff he does does things like
00:09:13 <elliott> pasting in the diagram of a tcp packet from the rfc directly
00:09:20 <elliott> and it gives you a parser for them
00:09:26 <Sgeo> Ok that's awesome.
00:09:26 <elliott> and that's how they define the packet structure
00:09:41 <Sgeo> Going to go read this presentation
00:13:26 <Bike> http://piumarta.com/software/cola/ welp
00:13:40 <monqy> pepsi and cola?
00:13:46 <monqy> is there a theme here
00:13:49 <Bike> guess he's thirsty
00:13:59 <Bike> maru is named after some cat though
00:16:09 <Sgeo> "Pepsi -- not quite The Real Thing
00:16:11 <Sgeo> "
00:17:04 <Sgeo> "(a white-paper advocating widespread, unreasonable behaviour)
00:17:05 <Sgeo> "
00:17:58 <Sgeo> I think ais523 would like this
00:18:00 <Sgeo> Maybe?
00:18:47 <monqy> maybe
00:20:23 <Sgeo> Maybe I'll understand this COLA stuff if I read the whitepaper
00:20:24 <Sgeo> Reading it now
00:20:35 <Bike> and lo was sgeo drowned in sodas
00:24:43 <nooga> i feel like writing a lightweight graph-oriented p2p distributed database
00:25:00 <Taneb> go 4 it
00:25:14 <nooga> but then i think about network programming and I'm like NO
00:26:09 <Sgeo> "(Readers under the age of 35, or those never significantly exposed
00:26:10 <Sgeo> to an anglo-saxon culture, might have trouble figuring this one out.)"
00:26:22 <Sgeo> Was there some sort of ad campaign where Pepsi was called fake?
00:26:27 <Sgeo> A fake Coke?
00:26:57 <Bike> new coke I think
00:27:01 <pikhq> New Coke.
00:27:10 <Bike> scandal of the century
00:27:17 <Taneb> Personally I prefer Fentimans
00:27:23 <Taneb> The cola of Hexham
00:27:39 <Vorpal> I have a dire warning: If anyone here ever considers setting up WPA2 Enterprise at home, think again. The radius server configuration almost broke my mind.
00:28:23 <Vorpal> And don't talk to me about connecting windows clients to it.
00:28:26 <Gregor> Vorpal Enterprises Inc LLC GmbH is foiled once again.
00:28:38 <Vorpal> Gregor, you forgot A/S and AB
00:28:52 <elliott> HHI superiority remains unsurpassed
00:28:53 <Vorpal> oh and Ltd
00:29:25 <Gregor> Vorpal: LLC means the same as Ltd
00:29:29 <Gregor> Of course, so does GmbH...
00:29:35 <Vorpal> well yes
00:29:44 <Gregor> But LLC more literally does since they're in the same language X-D
00:29:50 <Taneb> Whoa
00:29:50 <Vorpal> hm
00:29:56 <Vorpal> Gregor, didn't know that, hm
00:30:05 <Vorpal> also SSL/TLS certificate infrastructure is weird
00:30:07 <Taneb> My various nicks spell out the first three letters of my real name
00:30:27 <Vorpal> Taneb, oh?
00:30:35 <Taneb> Taneb atriq Ngevd
00:30:38 <Taneb> NaT
00:30:42 <Taneb> NaThAn
00:30:50 <Vorpal> right
00:31:04 -!- Taneb has changed nick to hendiadys.
00:31:26 <Vorpal> Gregor, also I discovered two amusing bugs with this premium segment netgear router/AP
00:31:27 <hendiadys> Surprised this isn't taken
00:31:55 <Gregor> hendiadys: Also free: Surprised
00:32:13 <Vorpal> Gregor, both are related to not having the IP 192.168.1.1. Stuff breaks. For a start, RADIUS breaks, since it sends that IP hard coded in the RADIUS requests. Also it doesn't listen to telnet if that IP is not used.
00:32:26 <Sgeo> This is going to give me a headache, isn't it?
00:32:27 <Sgeo> "Messaging is therefore self-describing (the semantics of sending messages to objects are
00:32:27 <Sgeo> described and implemented by sending messages to objects)."
00:32:28 <Gregor> Vorpal: Is there a REASON you wanted Enterprise at home?
00:33:11 <Bike> Sgeo: just call it "metacircularity" and you'll sound smart without having to get it
00:33:14 <Vorpal> Gregor, because I could? And I'm paranoid and like the idea of using certificates to limit who can connect, after all I use keys-only for ssh
00:35:18 * Sgeo gives up
00:35:23 <Sgeo> Maybe I'll try reading it another day
00:35:28 <Vorpal> Gregor, also hm, think of the possibilities with granting temporary access to guests, (using EAP-TTLS-MSCHAPv2 or PEAP obviously, using EAP-TLS would be far too annoying for that). Hey I could design a web interface for that
00:35:52 <Gregor> “Because I could” → nope
00:35:55 <nooga> IRN BRU
00:36:14 <Vorpal> Gregor, well, a lot of the stuff that happens in this channel is "because I could"
00:36:28 <Gregor> Vorpal: No, I mean, you clearly couldN'T ;)
00:36:44 <Vorpal> Gregor, well I did manage in the end, I just suggest it wasn't worth the effort
00:36:55 <Gregor> Oh!
00:36:56 <Vorpal> and probably will result in a lot of frustration
00:37:01 <Gregor> OK, I thought you'd tried and given up.
00:37:07 <Gregor> I don't think you said you got it working X-D
00:37:11 <Vorpal> Gregor, I said it *almost* broke my mind
00:37:27 <Gregor> In no way does that suggest whether you made it work or not.
00:37:35 <Vorpal> Gregor, also it is an axiom that I do not give up until my mind is broken
00:37:45 <Gregor> Right, that I didn't know X-D
00:37:56 <Vorpal> Gregor, because I consider giving up as my mind breaking
00:38:20 <Vorpal> unless I can prove it impossible of course, which it clearly isn't in this case, since it is being used all over the place
00:38:31 <Gregor> I try to keep my mind unbroken.
00:38:34 <Gregor> So I give up before that point.
00:38:39 <Vorpal> ah okay
00:40:13 <Vorpal> Gregor, anyway, the most annoying thing was probably how well Microsoft hid the checkbox for "do not prepend the computer name to the user name you enter in a totally different part of the property-dialog box tree thingy"
00:41:06 <Vorpal> at least OS X didn't really hide the configuration, it was in a logical place, just not shown on initial connection attempt
00:41:43 <Gregor> So, you can have temporary guests so long as they go through some insanely complicated configuration process first?
00:42:37 <Vorpal> Gregor, it isn't very complicated on the client side on linux or android though
00:42:41 -!- dessos has joined.
00:42:46 <Vorpal> really simple there really
00:43:07 <Vorpal> Gregor, but I have no idea why microsoft wanted to make it more complex than required
00:44:42 <Vorpal> Gregor, actually, unless you use pattern lock or higher (that is, pin code or password), you can't seem to import the CA certificate of the RADIUS server on Android into the certificate store.
00:44:53 <Vorpal> so I guess that could potentially count as complicated on Android
00:45:10 <Vorpal> not sure what sort of person wouldn't use at least pattern lock though
00:45:41 <Vorpal> (nor can I imagine someone using password to unlock the screen of their phone, since the screen timeout is so short on a phone)
00:46:14 <Gregor> I don't use a pattern lock.
00:46:19 <Gregor> My phone doesn't lock.
00:46:22 <Vorpal> oh?
00:46:26 <Gregor> Just swipe-to-go.
00:46:28 <Vorpal> hm
00:46:39 <Vorpal> well I guess I found such an user then
00:46:52 <Vorpal> I personally use pattern lock
00:51:35 -!- hendiadys has quit (Quit: bedtime for hendiadys).
01:02:06 -!- nooga has quit (Ping timeout: 276 seconds).
01:10:36 -!- copumpkin has quit (Ping timeout: 240 seconds).
01:11:08 -!- copumpkin has joined.
01:13:24 <oerjan> <Sgeo> How much cheating would be acceptable in a Feather-like language? <-- i would think it is his unwillingness to cheat that makes ais523 crazy thinking about feather. otoh i doubt he would care about cheating that had no _observable_ effect.
01:15:15 <Sgeo> Does "results in the language actually being able to run on a computer" count as an observable effect?
01:16:13 <Bike> You mean the cheat is that it exists?
01:16:16 <elliott> feather is runnable
01:16:31 <elliott> if you think it is inherently not you don't understand it...
01:17:32 <Sgeo> '<ais523> I don't think a) is solvable, while remaining computable, but you can fake it using retroactive changes
01:17:32 <Sgeo> '
01:18:05 <Bike> well, there you go, he's obviously fine with faking it! as long as it doesn't result in a parade of dumb jokes
01:19:01 <monqy> dont forget the 2% community service. parade of dumb jokes is inevitable haven't you seen them
01:20:40 <Bike> `quote Bike.*joke
01:20:44 <Bike> yeah whatever
01:20:47 <HackEgo> 888) <Bike> i don't even know anything about feather and i'm getting sick of the time travel jokes
01:20:56 <Bike> wait is that really the command
01:22:36 <oerjan> which command
01:32:50 <zzo38> I don't like daylight saving time. How many other people in here hate daylight saving time?
01:35:40 <Bike> time sucks
01:36:13 <zzo38> Do you mean spacetime?
01:36:51 <Bike> no, i mean time
01:38:51 <Jafet> Space sucks too
01:40:07 <monqy> i hate time in general but especially daylight savings time. the worst time.
01:45:08 -!- hagb4rd has quit (Quit: hagb4rd).
01:45:42 -!- hagb4rd has joined.
01:48:20 <Bike> Are the papers mentioned in hoogle's readme interesting?
01:52:10 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:52:16 -!- DH____ has joined.
02:11:00 -!- FreeFull has quit (Ping timeout: 264 seconds).
02:15:49 <Sgeo> I'm going to go watch some Farscape per Phantom_Hoover's suggestion.
02:17:30 <Phantom_Hoover> yesssss oh shit does this mean i have to watch that thing
02:17:37 <Sgeo> Yes.
02:17:48 <Sgeo> On the other hand, "that thing" is only 12 30-minute episodes.
02:17:50 <Sgeo> total
02:18:26 <monqy> what's that thing
02:18:29 <Sgeo> Also, even if it seems not interesting for the first few episodes, keep with it. Telling you how long to keep with it would be spoily
02:18:34 <Sgeo> Puella Magi Madoka Magica
02:18:40 <monqy> that was my guess
02:19:52 <Phantom_Hoover> i think Fiora already spoiled ~the twist~ but also i have since forgotten what it is
02:20:38 <Sgeo> Oh hey Farscape's on Hulu :D
02:21:29 <tswett> I wonder if the calculus of constructions with the axiom of choice would be equivalent to ZFC.
02:21:46 <Phantom_Hoover> Sgeo, fuck you americans
02:21:57 <Phantom_Hoover> the tribulations i had to go through
02:22:01 <Phantom_Hoover> to torrent it
02:22:50 <tswett> How far could you get in defining V in the CoC? Start by defining a well-ordering.
02:23:00 <Phantom_Hoover> i nearly gave up when the resolution inexplicably dropped to the size of a postage stamp in season 3
02:23:24 <monqy> what's this "farscape" thing is it good
02:23:42 <pikhq> Mahō Shōjo Madoka Magika is actually fairly good, though it's very not-obvious at the start.
02:23:44 <ion> yes
02:23:47 <tswett> Then, for each well-ordering n, say that V_n is any set of elements of V_m, where m < n, and if m and m' are isomorphic, then it contains the same elements of V_m as of V_m'.
02:24:20 * Bike blinks at the macrons. hoighty-toighty
02:24:24 <tswett> I doubt you can actually write that definition in CoC.
02:24:26 <pikhq> Sgeo: It's only slightly spoilery to say that it's a deconstruction.
02:24:34 <Bike> hiss
02:24:39 <pikhq> Bike: I romanize stuff right. :P
02:24:49 <tswett> Sgeo: are you aware of any realistic fantastical anime?
02:24:50 <Sgeo> Phantom_Hoover, it's the SG-1 guy!
02:24:54 <Bike> mahou shoujou madouka magika
02:25:02 <Phantom_Hoover> yes
02:25:03 <tswett> Sgeo: more realistic than the Fullmetal Alchemists, but it's allowed to be more fantastical as well. Or less.
02:25:14 <Sgeo> I only watched one episode of FMA
02:25:24 <Phantom_Hoover> damned actor-stealers
02:25:25 <Bike> realistic how
02:25:27 <pikhq> Bike: Uh, only the first two "o"s are long.
02:25:28 <tswett> I hope it was of the 03 and not the 09.
02:25:35 <pikhq> Bike: "Mahou Shoujo Madoka Magika"
02:25:36 <Sgeo> tswett, I don't know
02:25:40 <Bike> pikhq: you doun't say
02:25:42 <Phantom_Hoover> <monqy> what's this "farscape" thing is it good
02:25:43 <Phantom_Hoover> y
02:26:12 <tswett> Realistic in the sense that there aren't very many things that obviously wouldn't have happened if it weren't necessary for the story.
02:26:24 <Fiora> realistic/down-to-earth fantasy..? hmm
02:26:25 <Phantom_Hoover> realistic is the wrong word for that
02:26:35 <Phantom_Hoover> there is probably a right one but i dunno what it is
02:26:35 <Bike> what a definition.
02:26:38 <Phantom_Hoover> naturalistic maybe
02:26:50 <tswett> Yeah, I dunno what the best word would be.
02:27:00 <Bike> You should watch Haibane Renmei. (Hauiubauneu Reunmeuiu)
02:27:03 <tswett> I watched two episodes of Smallville; it seems to be a good antiexample of what I'm talking about.
02:27:29 <monqy> what's this "Hauiubauneu Reunmeuiu" thing is it good
02:27:34 <Fiora> I guess when I think of "realistic" anime with fantastical elements I think of things like patlabor
02:27:39 <Bike> it's pretty good
02:27:42 <tswett> A tornado strikes, and four people are almost killed. It just so happens that all four people are major characters in the story.
02:27:48 <Bike> also it's by yoshitoshi abe if you like that guy
02:27:58 <monqy> whats anime
02:28:06 <Phantom_Hoover> who knows
02:28:09 <Bike> Chinese cartoons.
02:28:20 <tswett> Clark Kent's space ship takes off and crash lands itself in a corn field. I guess it's designed so that if there's no pilot inside, it just flies randomly.
02:28:23 <Sgeo> Phantom_Hoover, "Commander Kryten"
02:28:24 <Sgeo> wat
02:28:29 <zzo38> monqy: Anime is short for animation
02:28:32 <Phantom_Hoover> crichton, you idiot
02:28:38 <monqy> zzo38: ah, that makes sense
02:28:39 <Phantom_Hoover> like michael crichton
02:28:51 <tswett> That little chip thingy is essential to the ship's functioning. So they put it on the exterior of the ship with nothing holding it down.
02:28:52 <Bike> tswett: that would be pretty entertaining in the real world, you must admit
02:28:59 <Sgeo> Farscape is a combination of every single SF show ever, isnt it?
02:29:19 <Bike> Is it a combination of Ultraviolet and Aeon whatever too
02:29:29 <monqy> is farscape an anime
02:29:30 <Phantom_Hoover> i don't think so
02:29:32 <Bike> Flux apparently
02:29:35 <Sgeo> Actors from SG-1, a name from Red Dwarf
02:29:40 <Bike> It's apparently every anime, monqy.
02:29:48 <monqy> hm, is that good or bad
02:29:49 <Bike> probably would save us all a lot of time to watch it really
02:29:50 <Sgeo> (yes I know the actors went from Farscape -> SG-1)
02:29:55 <Sgeo> It still feels weird
02:29:55 <monqy> i've heard some weird things about anime
02:30:08 <monqy> things you wouldn't want to tell a child to know
02:30:11 <Phantom_Hoover> i like how the name Sgeo is having trouble with is that of the ordinary american human
02:30:30 <Bike> I've heard that if you call yourself kawaii in a mirror three times it becomes true, horribly true.
02:31:04 <tswett> I've heard that most anime is made in Japan.
02:32:24 <Phantom_Hoover> i've heard it's made by cuttlefish as part of a top-secret experiment to teach them a trade skill
02:32:38 <Fiora> That would explain Ika Musume
02:33:01 <Bike> http://www.youtube.com/watch?v=gUwQwtDpdE4 animes
02:34:02 <Phantom_Hoover> hahaha Bike do you think we're stupid
02:34:10 <Phantom_Hoover> everyone knows it's vietnamese
02:35:38 <Bike> I've never seen any Vietnamese TV. Maybe it's good.
02:53:21 -!- nooodl has quit (Ping timeout: 248 seconds).
02:55:31 <zzo38> Will ISE WebPACK run on a VM running CentOS and which is not connected to the internet?
02:58:14 <Sgeo> Phantom_Hoover, I'll re-watch tomorrow. Kind of annoying trying to watch with TV in background, can't hear what aliens are saying
02:58:45 -!- sebbu has joined.
02:59:06 -!- sebbu has quit (Changing host).
02:59:06 -!- sebbu has joined.
03:03:00 <tswett> All right, I'm watching Ha-Re.
03:24:04 -!- SirCmpwn has quit (Ping timeout: 248 seconds).
03:24:06 -!- ineiros has quit (Ping timeout: 264 seconds).
03:24:11 -!- SirCmpwn has joined.
03:24:32 -!- ineiros has joined.
03:32:02 -!- carado_ has joined.
03:34:00 -!- carado has quit (Ping timeout: 256 seconds).
03:35:15 <zzo38> I think the TOGA computer could be implemented using only two 7400 series ICs.
03:35:44 <zzo38> (This is not including the ROM, RAM, and clock, but those aren't a part of the CPU)
03:36:51 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:41:02 <elliott> ion: I like this attitude to impurity
03:41:12 <ion> hehe
03:41:15 <Bike> racial?
03:41:27 <ion> bike: Even worse
03:41:49 <Bike> Is this a red cow thing
03:45:37 -!- sebbu2 has joined.
03:45:37 -!- sebbu2 has quit (Changing host).
03:45:37 -!- sebbu2 has joined.
03:47:45 -!- sebbu has quit (Ping timeout: 248 seconds).
03:51:07 -!- DH____ has quit (Read error: Connection reset by peer).
03:51:13 -!- DHeadshot has joined.
03:56:38 -!- monqy has quit (Quit: hello).
04:01:12 <zzo38> Specifically 74175 and 74161
04:04:41 <ais523> zzo38: you could use a 555 (and a few passive linear components) for the clock, which isn't 7400 series but is carried by the same sort of distributors
04:06:41 <zzo38> ais523: OK, I suppose it can.
04:14:30 -!- carado_ has quit (Ping timeout: 264 seconds).
04:20:00 -!- TeruFSX has joined.
04:29:56 -!- Arc_Koen has quit (Quit: Arc_Koen).
04:39:30 -!- monqy has joined.
04:45:36 -!- ogrom has joined.
04:48:36 <Sgeo> What's the difference between maru and cola?
04:59:05 <Sgeo> :t (a -> b) -> (b -> a) -> IORef a -> IORef b
04:59:06 <lambdabot> parse error on input `->'
04:59:15 <Sgeo> derp
04:59:20 <Sgeo> @hoogle (a -> b) -> (b -> a) -> IORef a -> IORef b
04:59:21 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
04:59:21 <lambdabot> Prelude (.) :: (b -> c) -> (a -> b) -> a -> c
04:59:21 <lambdabot> Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c
05:12:24 <elliott> IORef isn't Invariant
05:13:33 <Sgeo> Invariant?
05:13:40 <elliott> @hackage invariant
05:13:40 <lambdabot> http://hackage.haskell.org/package/invariant
05:15:09 <Sgeo> If there was a way to get notified when an IORef changed, could IORef be made invariant?
05:15:16 <Bike> wow, the hackage page on IO is huge
05:15:24 <ais523> Bike: that shouldn't really be surprising
05:15:44 <Bike> it's not, but it's still the biggest page i've seen on hackage
05:15:46 <ais523> basically because anything that interacts with system calls has to be in IO, and there are a lot of system calls
05:15:57 <ais523> and a lot of sugar-around-system-calls, too
05:16:02 <Bike> "File and directory names are values of type String, whose precise meaning is operating system dependen" oh boy
05:16:39 <Sgeo> @hoogle (</>)
05:16:39 <lambdabot> System.FilePath.Windows (</>) :: FilePath -> FilePath -> FilePath
05:16:39 <lambdabot> System.FilePath.Posix (</>) :: FilePath -> FilePath -> FilePath
05:16:54 <ais523> hmm… Cyrillic is a lot easier to read if your default interpretation of letters is as Greek
05:17:00 <ais523> rather than as English
05:17:06 <ais523> seems to be a lot of inspiration from there
05:17:13 <Bike> cyrillic developed out of greek and english developed out of latin
05:17:20 <ais523> Bike: for aimake2 I invented an OS-independent filename format
05:17:42 <elliott> Bike: FilePath is broke as hell :(
05:18:07 <ais523> for relative paths, it's dir/dir/dir/dir/filename, for absolute paths, it's root/dir/dir/dir/dir/dir/filename, there's a boolean saying whether it's relative or absolute, and any slashes, colons, and backslashes in the components are escaped with backslashes
05:18:17 <Sgeo> ais523, did you look at cola and maru?
05:18:20 <ais523> (colons are escaped so that colon can be used as an end-of-string marker when embedding them in longer strings)
05:18:21 <ais523> Sgeo: no
05:18:28 <ais523> cola is a sort of soft drink, isn't it?
05:18:31 <ais523> but I don't know what maru is
05:18:35 <Bike> a cat
05:18:39 <Bike> @google maru cat
05:18:41 <lambdabot> http://www.youtube.com/watch?v=8uDuls5TyNE
05:18:44 <Bike> perfect
05:19:02 <Sgeo> ais523, Cola: http://piumarta.com/software/cola/
05:19:17 <Sgeo> Maru: http://piumarta.com/software/maru/
05:19:36 <ais523> Sgeo: it's sort-of like you're doing that thing zzo38 does where you talk about something out of context, without indications of what it is and why other people should be interested in it
05:19:47 <ais523> and tend to not get a response for that reason
05:20:32 <Sgeo> ais523, it vaguely reminds me of your motivations for Feather. Cola is supposed to be completely self-describing
05:20:42 <Sgeo> "is completely self-describing (from the metal, or even FPGA gates, up) exposing all aspects of its implementation for inspection and incremental modification;"
05:20:57 <Bike> btw i think i'm far enough along in lyah to write a monad tutorial
05:22:12 <ais523> Sgeo: that wasn't really the motivation for Feather, directly, or at least it's only half of it
05:22:29 <ais523> the point of Feather is that it has to not require a huge amount of complex structure to accomplish that
05:22:45 <Bike> oh, maru is tiny
05:22:50 <ais523> i.e. all the complexity should be added on lata
05:22:56 <Bike> it's like what, a few pages of C and then three of itself?
05:22:58 <ais523> *later
05:23:09 <ais523> hmm, the pages of C disappoint me
05:23:47 <Bike> Anyway Another Haskell Question: Why does, say, digitToInt throw an exception instead of return a Maybe Int or what have you?
05:24:24 <Sgeo> Bike, whenever you have questions of that sort, where a different meaning of a function or whatever would make more sense, it's probably "idiotic historical reason"
05:24:33 <ais523> hmm, maru just looks to me like yet another lisp
05:24:38 <ais523> even if it isn't lisp
05:24:45 <ais523> the interest seems to be the fact that it has a self-hosted compiler
05:24:54 <ais523> which is true of basically every functional language in existence
05:24:59 <Bike> Sgeo: I try not to assume sad things.
05:25:23 <ais523> even brainfuck has a self-hosted compiler
05:25:33 <Bike> Plus there could be other reasons.
05:25:52 <Bike> Like, should there be an Error monad you can stuff whatever information into? Where would you use that and not Maybe? Bla bla.
05:26:06 <ais523> Bike: there's Either
05:26:21 <ais523> elliott: btw, is EitherT possible as a monad transformer, or doesn't it make sense?
05:27:01 <ais523> I still don't have a good intuitive model of what a monad transformer actually is/does
05:28:11 <zzo38> A monad transformer makes a new monad from some other monad, by homomorphism, I think, isn't it?
05:28:25 <zzo38> There is EitherT monad transformer, in some package
05:28:48 <ais523> hmm, so I guess it does make sense
05:28:59 <elliott> Bike: Maybe is a monad
05:29:05 <elliott> ais523: EitherT exists, sure
05:29:15 <Bike> does that answer my question in a way i don't see
05:29:18 <elliott> Bike: oh I guess not
05:29:30 <elliott> Bike: anyway as a common lisper you should be accustomed to things being stupid because people were idiots once
05:29:35 <elliott> your whole language is an example
05:29:37 <Bike> quite
05:30:02 <ais523> oh yeah, EitherT makes sense because it's equivalent to (and likely implemented as) manually packing and unpacking an either at every >>= and return
05:30:05 <Bike> did lisp kill your parents or something, also
05:30:09 <elliott> yes
05:30:13 <elliott> how did you discover my secret
05:30:13 <zzo38> Maybe can be like Either ()
05:30:21 <Bike> a doodyheaded orphan
05:30:25 <Bike> you're truly a scoundrel, sir
05:30:38 <ais523> elliott: btw is it wrong that in OCaml, I use List as Maybe for nicer syntax and better library support?
05:30:50 <elliott> what's wrong is ocaml
05:30:54 <elliott> (ocaml also killed my parents)
05:31:06 <zzo38> There ought to be Alternative and MonadPlus for Either x, too, if x is Monoid; but, there isn't.
05:31:48 <Sgeo> I've heard that mp4 or is it mp5 is nice?
05:31:56 <Sgeo> Or.. whatever the macro-y thing for OCaml is
05:32:00 <Bike> mp4
05:32:49 <elliott> mp3
05:33:06 <Bike> camlp4, i guess
05:33:07 <Bike> catchy!
05:33:24 <Bike> http://www.podval.org/~sds/ocaml-sucks.html i really shouldn't google things
05:34:16 <Bike> i should just live in a box, in connecticut.
05:34:20 <elliott> i read that page once and thought it was silly and went up to the enclosing directory and saw a link to esr's "Anti-Idiotarian Manifesto" and then I decided to ignore everything they say forever
05:34:24 <elliott> true story!
05:34:36 <Bike> nice.
05:34:38 <elliott> well half silly and half obviously dumb things
05:34:42 <elliott> er as in obviously dumb about ocaml
05:34:45 <elliott> (this is because ocaml is dumb)
05:34:47 <Bike> btw esr came by #lisp the other day
05:34:59 <Bike> he was convinced to use python instead
05:35:04 <ais523> Bike: by #lisp?
05:35:16 <Bike> the channel
05:35:19 <ais523> and were they trying to convince him to use lisp, or to not use lisp?
05:35:44 <Bike> oh, he wanted to make some python thingamajig faster and he said something about liking lisp back when he was an undergrad bla bla bla
05:36:20 <ais523> elliott: Haskell is the Java of functional programming languages, it lives too many levels of abstractions up despite that being technically correct
05:36:20 <Bike> "Additionally, functions take a fixed number of arguments, so, to multiply three numbers, you have to call Int64.mul twice."
05:36:52 <Sgeo> varargs are nice, but I wouldn't really use * as a crowning example
05:36:56 <Sgeo> I would use lift.
05:36:56 <elliott> ais523: random FUD nonsense is the IRC statements of ais523?
05:36:57 <ais523> Bike: and to multiply an arbitrary number of numbers, you use fold
05:37:12 <ais523> elliott: I'm just trying to be as inflammatory as you, but I'm not very good at it :(
05:37:15 <elliott> I like this "No Polymorphism" section which amounts to "the compiler can't infer rank-2 types"
05:37:23 <elliott> ais523: well the trick is you just say things suck
05:37:26 <elliott> people can figure out why for themselves
05:37:42 <ais523> hmm
05:37:52 <Bike> i just like the horror i'm hearing in the voice
05:37:57 <Bike> you have to call the function TWICE
05:38:28 <ais523> in practice it's hard to implement a varargs multiplication that doesn't operate internally via splitting it into separate multiplications
05:38:56 <ais523> "higher order functions taking higher order functions as arguments": couldn't he just say "third order functions"?
05:39:18 <ais523> that's like saying "numbers greater than 1, and by more than 1!"
05:39:28 <Bike> peano haskell
05:40:06 <elliott> Pattern matching
05:40:06 <elliott> This is a very powerful tool, should be easily implemented as a Lisp macro using DESTRUCTURING-BIND.
05:40:12 <elliott> this is the most smug lisp weenie page ever
05:40:58 <ais523> some of the things he lists as disadvantages, such as inability to redefine the internals of a module out underneath it, are probably not actually disadvantages
05:41:48 * Sgeo would consider that a disadvantage...
05:42:06 <Bike> you can't definedly do it in cl anyway `-`
05:42:10 <Sgeo> Or... hmm, maybe allow modules to define points at which internals are allowed to be redefined?
05:42:51 <zzo38> Perhaps it would be good, to allow modules to define the point at which internals are allowed to be redefined, possibly.
05:43:02 <zzo38> It might help a few things, possibly?
05:43:24 <ais523> hmm, why is "Assembly" written in a fixed-width font? I can sort-of see that for the names of other languages
05:43:32 <ais523> but "Assembly"?
05:43:37 <Bike> or just define defineable things you can piggy back your own behavior on, like typeclasses or generics
05:43:37 <zzo38> Consistency?
05:43:42 -!- DHeadshot has quit (Read error: Connection reset by peer).
05:44:06 -!- DHeadshot has joined.
05:49:56 <Sgeo> elliott, apparently IO (IORef a) is a monad
05:50:57 * Sgeo goes to read http://blog.ezyang.com/2011/06/the-iva-monad/
05:54:12 <zzo38> But fmap runs I/O actions so it doesn't seem a functor?
05:55:01 <zzo38> Actually, perhaps that is OK, because it only does readIORef and newIORef
05:55:11 <zzo38> It never writes them, so it is OK, I guess
05:56:49 -!- DHeadshot has quit (Read error: Connection reset by peer).
05:57:07 <zzo38> Actually, no, I don't think so, since other things could still access the IORef
05:57:51 <zzo38> And to compare them
05:58:18 <zzo38> Meaning that fmap id = id doesn't hold because it is a different IORef, so won't be equal
05:59:17 <zzo38> Therefore it isn't a monad
06:00:03 <Sgeo> The value inside the IORef would be the same though
06:00:07 <Sgeo> Oh... hm
06:00:50 <zzo38> But other things can still write to IORef and check if one is equal to another
06:01:32 <zzo38> (I am talking about the "R" monad which they defined)
06:11:51 <zzo38> do { a <- runR r; b <- runR (id <$> r); print (a == b); } won't be equal even if do { a <- runR r; b <- runR r; print (a == b); } is (although that too might be unequal, but it might be equal, too; but the first one is unequal regardless of if the second one is equal or unequal)
06:13:00 <zzo38> But there is read-only IORef types, specifically (CoYoneda IORef)
06:15:38 <Sgeo> I have no idea waht CoYoneda is
06:15:56 <Bike> @hoogle CoYoneda
06:15:56 <lambdabot> No results found
06:16:16 <Bike> good name though
06:16:27 <Bike> let's just name everything after that guy.
06:17:04 <zzo38> It is the left Yoneda lemma
06:17:47 <oerjan> <Bike> Anyway Another Haskell Question: Why does, say, digitToInt throw an exception instead of return a Maybe Int or what have you? <-- digitToInt is mainly intended to use with readInt, which takes a separate function to test whether the digit is in range.
06:18:45 <zzo38> CoYoneda :: forall f x y. (x -> y) -> f x -> CoYoneda f y; is I think, its definition
06:19:19 <zzo38> edwardk has called it Yoneda, but he also called the right Yoneda lemma also Yoneda, which causes confusion.
06:22:23 <zzo38> You cannot write to the IORef in CoYoneda IORef because the type which it stores cannot be known.
06:22:54 -!- TeruFSX has quit (Ping timeout: 252 seconds).
06:23:43 <zzo38> But you can read it by readCoYonedaIORef (CoYoneda x y) = x <$> readIORef y;
06:26:16 <oerjan> `fetch http://oerjan.nvg.org/esoteric/emmental/ul.emm
06:27:01 * oerjan swats HackEgo -----###
06:27:20 <oerjan> `ping
06:27:34 <HackEgo> 2013-03-10 06:27:33 URL:http://oerjan.nvg.org/esoteric/emmental/ul.emm [16417/16417] -> "ul.emm" [1]
06:27:36 <HackEgo> pong
06:27:41 <oerjan> whew
06:28:46 <oerjan> `emmental -f ul.emm -e ((Ho hum)!:aSS)(Ho hum)!:aSS
06:28:47 <HackEgo> emmental: emmental.hs:42:1-56: Non-exhaustive patterns in function pop
06:28:57 <oerjan> funny guy
06:29:56 <oerjan> oh duh
06:30:37 <oerjan> `run emmental -f ul.emm -e '((Ho hum)!:aSS)(Ho hum)!:aSS'
06:30:40 <HackEgo> ​((Ho hum)!:aSS)(Ho hum)!:aSS
06:30:45 <oerjan> there you go!
06:33:02 <oerjan> `run emmental -f ul.emm -e '(0)S((0)(1))(~:^:S*a~^~*a*~:^):^'
06:33:26 <oerjan> there's a possibility it's too slow for that.
06:33:33 <HackEgo> No output.
06:34:17 <oerjan> `run emmental -f ul.emm -e '(0)S((0)('"\n"'))(~:^:S*a~^~*a*~:^):^'
06:34:48 <HackEgo> No output.
06:34:54 <oerjan> hmph
06:35:08 <oerjan> `run echo -f ul.emm -e '(0)S((0)('"\n"'))(~:^:S*a~^~*a*~:^):^'
06:35:09 <HackEgo> ​-f ul.emm -e (0)S((0)(\n))(~:^:S*a~^~*a*~:^):^
06:35:19 <oerjan> oh it's not an actual newline
06:36:34 <oerjan> `run echo -f ul.emm -e $(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^')
06:36:35 <HackEgo> ​-f ul.emm -e (()(*))(~:^:S*a~^a~!~*~:( /)S^):^
06:36:47 <oerjan> `run echo -f ul.emm -e "$(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^')"
06:36:49 <HackEgo> ​-f ul.emm -e (()(*))(~:^:S*a~^a~!~*~:( \ /)S^):^
06:36:59 <oerjan> `run emmental -f ul.emm -e "$(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^')"
06:37:30 <HackEgo> No output.
06:37:41 <oerjan> `run emmental -f ul.emm -e "$(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^')" | head -5
06:38:12 <HackEgo> No output.
06:38:19 <oerjan> it worked on my computer :(
06:39:32 <oerjan> `run emmental -f ul.emm -e "$(echo '((y'; echo ')S:^):^')" | head -5
06:40:03 <HackEgo> No output.
06:40:27 <oerjan> `run emmental -f ul.emm -e '(:aSS):aSS' # This worked a moment ago
06:40:31 <HackEgo> ​(:aSS):aSS
06:41:13 <oerjan> `run emmental -f ul.emm -e "$(echo '((y'; echo '):*:*:*S')"
06:41:16 <HackEgo> No output.
06:41:22 <oerjan> wtf
06:41:28 <oerjan> `run echo -f ul.emm -e "$(echo '((y'; echo '):*:*:*S')"
06:41:29 <HackEgo> ​-f ul.emm -e ((y \ ):*:*:*S
06:41:35 <oerjan> oh duh
06:41:39 <oerjan> `run echo -f ul.emm -e "$(echo '(y'; echo '):*:*:*S')"
06:41:41 <HackEgo> ​-f ul.emm -e (y \ ):*:*:*S
06:41:48 <oerjan> `run emmental -f ul.emm -e "$(echo '(y'; echo '):*:*:*S')"
06:41:52 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y
06:41:59 <oerjan> sheesh
06:42:31 <oerjan> well no use trying anything bigger :P
06:43:37 <elliott> hi
06:43:46 <oerjan> hello!
06:43:58 <oerjan> my underload implementation in emmental is slow!
06:44:45 <Jafet> Is it being too fast
06:44:49 <oerjan> which is expected, really - it optimizes for minimal number of instructions and reserved symbols, not speed.
06:45:11 <Jafet> `cat ul.emm
06:45:13 <HackEgo> ​###1-1111-1#11#1-! \ ###1-1111-1#11##1##1--1--! \ ###1-1111-1 #1#11-11 # ! \ ###1-1111-1 ####1-11-11- #1 ! \ ###1-1111-1 ##1##1--11- #11 ! \ ###1-1111-1 #1#1##1--11- #11##1-1- ! \ ###1-1111-1 #1##1--111 #1##1-- ! \ ###1-1111-1 ###1#11-1-1- #111111 ! \ # \ ###1-1111-1 \ ######1###1###1###1##1###1###1##1 ###1##1####1##1#1##1##1#1 \ ####1##
06:45:22 <Sgeo> Err
06:45:24 <oerjan> (and i suspect the emmental interpreter isn't optimal either.)
06:45:31 <Sgeo> I just read some blatantly false documentation on Hackag
06:45:33 <Sgeo> Hackage
06:45:38 <Jafet> `file bin/emmental
06:45:41 <HackEgo> bin/emmental: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
06:45:58 <oerjan> oh "minimal number of instructions" is "minimal number of _different_ instructions".
06:45:58 <Sgeo> (And by blatantly false I mean it says it returns a True or False when neither is in sight in the type)
06:46:05 <Bike> can I see, sgeo?
06:46:08 <oerjan> so it's not golfed.
06:46:19 <Sgeo> http://hackage.haskell.org/packages/archive/IfElse/0.85/doc/html/Control-Monad-IfElse.html
06:46:21 <Sgeo> awhen
06:46:36 <oerjan> `file src/emmental.hs
06:46:38 <HackEgo> src/emmental.hs: UTF-8 Unicode English text
06:46:46 <oerjan> Jafet: you might try that.
06:46:53 <Bike> these docs seem just kind of bad
06:47:01 -!- FreeFull has joined.
06:47:17 <Bike> (also isn't cond just guards or)
06:47:34 <Bike> oh, a list, duh
06:47:39 <Bike> fuck
06:47:58 <Jafet> `url src/emmental.hs
06:48:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/src/emmental.hs
06:49:16 <Jafet> Authored by Ørjan Johansen.
06:49:32 <Sgeo> https://github.com/mmirman/ImperativeHaskell/blob/master/Main.hs
06:50:50 <Sgeo> http://kormacode.blogspot.com/2011/11/c-style-haskell_10.html
06:51:34 <Bike> :t (=<<)
06:51:36 <lambdabot> Monad m => (a -> m b) -> m a -> m b
06:51:50 <Bike> ...
06:53:48 <elliott> Bike: its flip (>>=)
06:54:55 <oerjan> Jafet: um the Emmental interpreter is cpressey's, i just modified it a little to make it useable on HackEgo.
06:55:11 <Bike> elliott: yes the "..." was the lack of sound of me imagining slapping my forehead.
06:55:30 <Sgeo> http://hackage.haskell.org/packages/archive/simple-observer/0.0.1/doc/html/src/Control-Observer-Synchronous.html
06:55:33 <Bike> but: is there a point to that behind syntactic convenience
06:55:41 <elliott> well it e.g. matches the order of ($), (<$>)
06:55:46 <Sgeo> Why does this use MVar instead of... TVars or IORefs?
06:55:58 <oerjan> you may find more at http://esolangs.org/wiki/Emmental#Computability_class
06:56:01 <elliott> are you just going to go through random packages on haskell and ask us why they're wrong all day....
06:56:04 <elliott> *hackage
06:56:31 <Bike> sgeo could become a masked haskell vigilante
06:56:59 <elliott> oerjan: "Haskell program" is a 404 HTH HAND
06:57:09 <Bike> a shuriken strikes above my head. "you don't need a lambda there!" it is the Mask
06:57:21 <oerjan> oops
06:57:23 <Bike> maskell? work with me sgeo
06:57:51 <elliott> oerjan: "By the necessities of this kind of Emmental programming, 10 byte values have been reserved for the interpreter's internal use. These are all non-printable control codes." pfft, you should have taken the opportunity to use []<>
06:57:52 <Jafet> The masked raskell
06:58:24 <oerjan> elliott: try now, i somehow switche Unl and Emm in the filename :P
06:58:31 <oerjan> *switched
06:58:47 <elliott> yep that works
06:58:54 <elliott> has an encoding problem, though
06:58:58 <oerjan> what
06:59:10 <elliott> - By Ørjan Johansen, February-March 2013.
06:59:19 <elliott> possibly IE manages to guess the right encoding there.
06:59:28 <oerjan> um it's UTF-8
06:59:36 <elliott> yes but your server is not transmitting that fat
06:59:37 <elliott> *fact
06:59:46 <oerjan> *sigh*
06:59:46 <elliott> (and hence it's failing to display the non-ascii utf-8 in my browser)
06:59:47 <Sgeo> I do not understand OI at all
07:00:07 <elliott> also: lens and a license that actually exists? and type signatures??? the enterprisey age of oerjan begins
07:00:10 <Bike> that is a fantastic name, assuming it's some kind of opposite of IO
07:00:26 <Sgeo> http://hackage.haskell.org/packages/archive/oi/0.2.1.0/doc/html/Data-OI.html
07:00:37 <Bike> and by fantastic i mean laughing for a few minuts straight followed by ramming my head into a wall in pained desperation
07:00:45 <Bike> it hurts sgeo. it really hurts
07:01:07 <elliott> as I understand it OI doesn't work.
07:01:26 <Bike> «Datatype for intermediating interaction: OI has two states (programmer cannot distinguish), non-expressed and exressed. `Non-expressed' indicates that no computation is assigned. In other words, it's value is never denotated by any expression. » is it wrong to judge a library by its docs grammatical errors
07:01:37 <oerjan> elliott: i even imported all modules either qualified or with import lists
07:01:39 <Bike> (if it is i want to be right. sorry)
07:01:48 <oerjan> (even lens, it was shorter than i feared)
07:02:12 <elliott> oerjan: there is Control.Lens.Operators for when you want to import Lens qualified but still use the infix, btw
07:02:52 <elliott> though I view explicit import lists for "standard" packages like base and containers as insanity-inducing. and then add lens to that list to avoid additional insanity.
07:04:28 <oerjan> elliott: the thing is that other people view packages missing explicit import lists a insanity-inducing when they break on the slightest upgrade
07:04:45 <oerjan> *as
07:05:15 <oerjan> admittedly i only added the list for lens at the last minute.
07:05:33 <elliott> oerjan: well the point is that base etc. are standard. and that the time you spend maintaining those import lists is longer than the time it takes to fix stuff on upgrades, especially when versioned dependencies mitigate the problem. (ghc has policy not to use them for this reason btw)
07:05:45 <elliott> and then you add lens even though it isn't stable at all because every rule needs an exception :P
07:06:07 <oerjan> elliott: the insanity is when someone _else's_ package breaks and you cannot get hold of them to fix it.
07:06:13 <oerjan> or so i hear.
07:06:22 <elliott> ah. so you believe your coding style has an influence on the world :P
07:06:30 <oerjan> nah.
07:06:39 <oerjan> i just felt like being enterprisy.
07:06:42 <oerjan> *ey.
07:07:25 <oerjan> like, i commented almost everything, added type signatures to just about everything, used the prettyprint module...
07:07:34 <oerjan> and lens.
07:07:52 <elliott> i'm proud of you, son
07:08:14 <Bike> should there be a book like Real World Haskell, except Enterprise Haskell instead of that thing i just named
07:08:19 <oerjan> and did a couple of refactorings.
07:08:40 <elliott> Bike: should there be something like jazz, but more like a banana
07:08:44 <elliott> instead of jazz
07:08:51 <elliott> thinking.... yes
07:08:56 <Bike> fuck bananas, though
07:09:05 <Bike> also that already exists: free jazz.
07:20:40 <Sgeo> I try to install one simple package, and it feels like it's compiling half of Hackage
07:22:18 <Bike> What does it feel like to compile half of Hackage?
07:22:43 <Sgeo> It feels like I should go to sleep instead of waiting up for this thing to finish
07:22:56 <Bike> Well you did lose a whole hour.
07:23:48 <Sgeo> asjdfhklasjdfhlaksjdfh
07:24:07 <Sgeo> The actual package that I wanted failed to compile because of lack of FlexibleContexts
07:31:14 <oerjan> elliott: FEATURED LANGUAGE BLURB NOW INACCURATE, HTH
07:31:33 <oerjan> (<elliott> damn you)
07:35:00 -!- Garuda has joined.
07:35:18 <elliott> oerjan: its ais523's job
07:35:27 <oerjan> OKAY
07:36:39 <ais523> fixed
07:36:44 <ais523> ofc, it's a wiki, you could fix it yourself :)
07:36:56 -!- Garuda has left ("Leaving...").
07:36:58 <oerjan> OH
07:37:19 * oerjan wasn't sure how to formulate, he claims
07:38:15 <ais523> also people aren't used to just casually editing the main page
07:38:47 <oerjan> it's a black hole of templates
07:39:53 <elliott> rip garuda
07:40:07 <elliott> ais523: for what it's worth, I'd rather they don't get into the habit. because do you remember NSQX.
07:40:32 <ais523> elliott: it's OK if they're oerjan
07:40:38 <oerjan> YAY
07:40:41 <Bike> nsqx?
07:40:48 <elliott> hmm, I should just make oerjan an admin. that way he'd be obligated to fix this kind of stuff
07:40:49 <ais523> don't ask
07:40:51 <elliott> Bike: um...
07:40:52 <elliott> `quote NSQX
07:40:57 <HackEgo> No output.
07:41:00 <elliott> what.
07:41:00 <Bike> Oh.
07:41:01 <elliott> `quote NSQX
07:41:02 <ais523> `pastlog <NSQX>
07:41:03 <HackEgo> No output.
07:41:05 <ais523> elliott: I don't think there are any
07:41:08 <elliott> no, what, there was an NSQX quote
07:41:13 <ais523> maybe it got penta`quoted
07:41:14 <elliott> `quote Well.*day
07:41:17 <HackEgo> No output.
07:41:19 <Bike> I'll wait here.
07:41:19 <elliott> HELP
07:41:20 <elliott> `help
07:41:21 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
07:41:31 <elliott> if someone removed it I will slay them
07:41:34 <HackEgo> No output.
07:41:42 <oerjan> elliott: this is all your fault for getting people into the habit of deleting quotes hth
07:41:47 <elliott> Bike: here you go:
07:41:49 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/rev/df5488147554
07:41:50 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/rev/9673f347ec4d
07:41:59 <elliott> the first one especially.
07:42:22 <ais523> elliott: those don't really get across how NSQX behaved
07:42:24 <elliott> so far he is the only person to have ever evaded a block on the esolang wiki
07:42:32 <ais523> elliott: not counting spambots?
07:42:38 <elliott> those aren't people, ais523
07:42:43 <ais523> and possibly whoever it was who was impersonating lament?
07:42:43 <Bike> A very enthusiastic day.
07:43:10 <elliott> Bike: this may also help http://esolangs.org/wiki/User_talk:NSQX
07:43:17 <Bike> that was kind of boring though did y- oh
07:43:32 <elliott> pictured: my skill at diplomacy gradually weakening
07:43:40 <Bike> btw enthusiasm isn't usually a quality that i would ascribe to units of time
07:44:15 <elliott> oh another good nsqx quote (nsquote)
07:44:16 <elliott> This seems like a good idea, and I support it, but I suspect NSQX will manage to mess it up somehow. —Maharba 05:45, 22 April 2012 (UTC)
07:44:26 <Bike> nsqxote?
07:44:49 <oerjan> don nsqxote
07:44:55 <Bike> wow it's weird seeing you like, write actual sentences
07:45:08 <elliott> yeah i try to avoid doing it
07:45:12 <Bike> in the past
07:45:18 <ais523> wow, nsqx was less than a year ago
07:45:21 <elliott> well
07:45:21 <Bike> i guess that makes it ok, just don't do it again
07:45:24 <ais523> I thought it was further back, somehow
07:45:32 <Bike> or in another place i can see it, retroactively speaking
07:45:36 <elliott> you should have seen my on-channel outburst when i woke up and the main page was totally fucked and recent changes had like 500 changes by one guy in it
07:45:45 <elliott> it involved a lot of allcaps yelling asking what the fuck is going on
07:45:52 <Bike> that's what nsqx did?
07:46:16 <elliott> http://esolangs.org/w/index.php?title=Main_Page&oldid=31480
07:46:18 <elliott> nsqx's main page
07:46:26 <elliott> except the template he used got deleted
07:46:36 <elliott> also http://esolangs.org/wiki/Nonsense_Query_List.
07:47:13 <Bike> man, i've seen sql worse than that.
07:47:34 <ais523> elliott: are you sure about that being nsqx's main page? apart from the formatting error, it looks like the current one
07:47:44 <elliott> Bike: oh right he also started botting
07:47:45 <elliott> 14:11, 30 March 2012 (diff | hist) . . (0)‎ . . m UniCode ‎ (Wikipedia python library)
07:47:48 <elliott> 14:11, 30 March 2012 (diff | hist) . . (0)‎ . . m UniCode ‎ (Wikipedia python library)
07:47:51 <elliott> 14:11, 30 March 2012 (diff | hist) . . (0)‎ . . m UniCode ‎ (Wikipedia python library)
07:47:54 <elliott> 14:11, 30 March 2012 (diff | hist) . . (+57)‎ . . m UniCode ‎ (Wikipedia python library)
07:47:58 <elliott> ais523: yes he introduced a formatting error and the "most recent languages" thing
07:48:01 <elliott> but it took him about 50 revisions
07:48:04 <ais523> elliott: right
07:48:14 <ais523> also how did the most recent languages work? manual updating?
07:48:19 <elliott> yes
07:48:22 <elliott> templated
07:48:25 <elliott> containing his language ofc :P
07:48:29 <ais523> ofc
07:48:40 <ais523> I think Special:Newpages is transcludable
07:48:44 <ais523> so you might be able to do it that way
07:48:57 <Bike> so elliott what's an example of a thing that doesn't fill you with rage? like let's say, an esolang
07:49:02 <elliott> i like underload
07:49:13 <elliott> and ///
07:49:19 <elliott> i think /// is my favourite or second-favourite esolang maybe
07:49:35 <Bike> fuck, everybody likes underload.
07:50:08 <elliott> who wouldn't like a language whose article's first section describes a specific aspect of the language and then goes on to admit nothing ever implemented it
07:50:21 <Bike> granted
07:50:21 <monqy> even i like underload…yikes!
07:50:54 <Bike> terrifying
07:50:55 <elliott> also as a rule we like things oerjan has a hard time programming in.
07:51:07 <oerjan> wait what
07:51:12 <elliott> well for instance, ///.
07:51:21 <ais523> well a language has to be at least moderately good (or dupdog) for people to seriously try programming it
07:51:26 <elliott> you found underload a bit too easy so you had to make it terrible and remove 90% of it for it to appeal
07:51:27 <Bike> Wait, what's the point of the reserved characters?
07:51:32 <elliott> Bike: there isn't one
07:51:40 <elliott> they were meant to be for overload, the language underload is a tarpit of
07:51:40 <oerjan> O KAY
07:51:44 <ais523> Bike: so you can output unmatched parens, etc
07:51:45 <elliott> but overload doesn't exist
07:51:51 <Bike> what the hell is - oh
07:51:53 <elliott> ais523: err, they don't let you do that
07:52:09 <elliott> at least not according to [[Underload]]
07:52:09 <ais523> elliott: I have a few unfinished Overload interps lying around, which may or may not implement the same language
07:52:12 <ais523> hmm
07:52:24 <ais523> I guess I could try to dig them out?
07:52:33 <Bike> also isnt underload a tarpit of like, joy
07:52:36 <ais523> unfinished because I never manged to work out Overload's specs
07:52:40 <ais523> Bike: it's a tarpit of Overload
07:52:41 <Bike> or... i don't remember
07:52:46 <ais523> Overload has some similarities to Joy, but not that many
07:52:53 <oerjan> elliott: i followed the same approach for emmental, btw
07:52:55 <ais523> Underload removed most of the complexity that other languages don't have
07:53:02 <ais523> Overload has pointers, for instance
07:53:06 <elliott> oerjan: heh
07:53:25 <elliott> monqy: do you like /// btw
07:53:29 <elliott> i feel it's important for people to like ///
07:53:38 <Bike> man i feel like i should be compiling a fucking #esoteric talmud here
07:53:45 <Bike> there's just so much history and subtlety
07:54:03 <ais523> and if you're wondering how pointers work in a concatenative language
07:54:07 <ais523> it's, umm, interesting
07:54:27 <Bike> well i wasn't wondering but now i sort of am
07:54:40 <oerjan> concatenative languages are pointless, duh
07:55:09 <Bike> you can still have a thing that points it's just that the points themselves are gone!
07:55:21 <oerjan> fancy
07:55:33 <ais523> oh it also had goto
07:55:41 <Bike> um what
07:55:47 <monqy> 23:53:25 <elliott> monqy: do you like /// btw
07:55:48 <monqy> 23:53:29 <elliott> i feel it's important for people to like ///
07:55:48 <monqy> yes
07:56:00 <ais523> if it encountered a literal pointer in source code
07:56:03 <ais523> it interpreted it as a goto
07:56:16 <ais523> and ^ was actually implemented by putting a pointer to the next statement at the end of the top stack element
07:56:24 <ais523> then detaching and jumping to that stack element
07:56:34 <ais523> actually, ^ wasn't a primitive, you could implement it in the rest of the language
07:56:54 <ais523> (it is a primitive in Underload)
07:57:00 <elliott> Bike: here's the #esoteric history: hey guys remember those good days. no. no we don't. every day before now is complete shit and everyone in the past was awful
07:57:43 <Bike> elliott: no that's generalized history. what happens is that you go over all the complete shit with a fine toothed comb to find the little nuggets of digested shit and then you compile those into a book and let it rot for like a thousand years or so and then it's canon.
07:57:58 <ais523> I dunno
07:58:12 <ais523> there used to be more esolang discussion, but the offtopic discussion used to be more awful, too
07:58:20 <ais523> nowadays we have less esolang discussion, but more interesting offtopic dicussion
08:14:30 <zzo38> Do you know if it is possible for a Verilog simulation to import and export MIDI files?
08:15:18 <ais523> zzo38: I don't, although at least output seems likely
08:15:29 <elliott> Bike: as long as the book says that Bike sucks i'm ok
08:15:30 <ais523> and it would be easy if you had a preprocessor/postprocessor
08:16:21 <Bike> ;_;
08:19:55 <zzo38> I am trying to think of how to do some specific kind of ordering of records having the same primary order (such as a timestamp), such that you can insert stuff before or after or in between any of them, move stuff, delete stuff, while still working. Does SQL even support such things?
08:22:15 <ais523> zzo38: couldn't you just use a secondary ordering as a tiebreak?
08:22:36 <zzo38> ais523: That is what I thought, but then it isn't "everywhere dense"
08:24:02 <zzo38> SQL has no surreal number type, fraction type, or accurate real number type.
08:25:01 -!- epicmonkey has joined.
08:29:13 -!- oerjan has quit (Quit: leaving).
08:29:16 <zzo38> Possibly a custom collation might work, but I don't know of the speed or size of such things
08:32:28 <zzo38> What do you think is best?
08:33:13 -!- Taneb has joined.
08:34:46 <Taneb> I did not expect this snow
08:34:52 <Taneb> elliott, can you confirm snow?
08:35:07 <elliott> confirmed
08:37:22 <ais523> my laptop said it was rainsnowing earlier, but I didn't look out of the window to check
08:37:25 <ais523> apparently it's now snowing
08:37:30 <ais523> perhaps I'll see if there's snow on the ground
08:37:57 <ais523> observation results: I can't see snow on the ground
08:38:35 <Taneb> Yeah, but you're stupidly far midlands
08:43:37 <zzo38> Is there any better way than what I suggested? It could be made the index of these fields together, and then make a view which orders them and adds fields for before and after, so that you can make insert in between.
08:47:12 <ais523> *apparently it's now sunny with clouds
08:47:18 <ais523> weird typo
08:47:31 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
09:01:26 -!- Yonkie has joined.
09:13:53 -!- Bike has quit (Quit: leaving).
09:14:27 -!- DHeadshot has joined.
10:00:22 -!- nooga has joined.
10:06:36 <hagb4rd> moin ihr stricher
10:07:50 <hagb4rd> *wrongchan*
10:08:05 <hagb4rd> scusi
10:19:31 <mroman> ja
10:19:45 <mroman> die wenigsten hier sprechen überhaupt Deutsch vermutlich.
10:20:10 <Vorpal> <Taneb> I did not expect this snow <-- is it unusual at this time of year over there?
10:20:12 <hagb4rd> ich dachte schon ich wäre der einzige
10:20:25 <Taneb> Mid march? Not unheard of, but yes unusual
10:20:29 <hagb4rd> good morning together
10:20:37 <Vorpal> Taneb, it is -10 C or so today here, was like +2 a couple of days ago though
10:22:38 <Vorpal> Taneb, hm or is "here today" more idiomatic?
10:22:43 <Vorpal> rather than "today here"'
10:22:48 <Vorpal> s/'$//
10:22:53 <Taneb> Yes, I think it would be
10:22:59 <Vorpal> ah, good to know
10:40:25 <Deewiant> Vorpal: https://en.wikipedia.org/wiki/Place%E2%80%93manner%E2%80%93time (and https://en.wikipedia.org/wiki/Adjective#Adjective_order for adjectives)
10:40:58 <myname> .oO( senor vorpal kickasso? 9
10:41:00 <myname> )
10:42:13 <monqy> yes
10:43:43 <olsner> Vorpal: you should be ready for random snow at least until may
10:48:12 <Vorpal> olsner, well yes
10:48:23 <Vorpal> why wouldn't you be
10:49:26 <olsner> ah, I read the message the wrong way, I thought you were the one who didn't expect the snow
10:49:54 <Vorpal> Deewiant, interesting
10:50:12 <Vorpal> olsner, though i have to say, it is really rare in may
10:50:30 <Vorpal> at least in these parts of Sweden
10:50:35 <Vorpal> probably not rare up north
10:58:25 -!- Taneb has quit (Ping timeout: 256 seconds).
11:17:10 <zzo38> Does vi or vim or emacs have a mode to ring the bell once a specified column is reached?
11:20:02 <monqy> i hope not
11:20:17 <monqy> what if i accidentally enable it? i do not want the bell
11:20:36 <olsner> is that what type writers had?
11:25:37 <zzo38> Some typewriters had such thing.
11:27:47 -!- sebbu2 has changed nick to sebbu.
11:31:07 -!- nooodl has joined.
11:45:00 -!- Phantom__Hoover has joined.
11:45:00 -!- Phantom_Hoover has joined.
11:45:08 -!- Phantom__Hoover has quit (Client Quit).
11:48:31 <FreeFull> Why does reactive-banana have filterJust when Data.Maybe has catMaybes
11:48:39 <FreeFull> :t filterJust
11:48:41 <lambdabot> Not in scope: `filterJust'
11:48:43 <FreeFull> :t catMaybes
11:48:44 <lambdabot> [Maybe a] -> [a]
11:49:29 <olsner> because bananas hate cats and maybes
11:50:33 <ion> simianMaybes
11:52:11 <zzo38> catMaybes also seems that can be written in many ways, such as: catMaybes = (>>= toList); or catMaybes x = do { Just y <- x; [y]; }; or in other ways too, I guess.
11:53:20 <FreeFull> :t toList
11:53:22 <lambdabot> Not in scope: `toList'
11:53:22 <lambdabot> Perhaps you meant one of these:
11:53:22 <lambdabot> `Data.Foldable.toList' (imported from Data.Foldable),
11:54:08 <elliott> FreeFull: because it works on Behaviors instead iirc?
11:54:12 <FreeFull> zzo38: I personally would have written it as a fold, but the monadic version might be better
11:54:31 <FreeFull> elliott: Rather than lists?
11:55:06 <elliott> yes
11:55:44 <FreeFull> Fair enough
11:55:52 <zzo38> FreeFull: You could fold too, but toList is foldable, anyways.
11:56:40 <FreeFull> You can do (Foldable f) -> f (Maybe a) -> f a
11:56:45 <FreeFull> Which is more general
11:57:03 <elliott> FreeFull: ...no you can't.
11:57:09 <elliott> (and Behavior can't be an instance of Foldable)
11:57:24 <FreeFull> elliott: Oh right, you'd need to know the constructor
11:57:58 <zzo38> Foldable does not imply Functor; Foldable just means it can be converted to a list.
11:58:42 <FreeFull> Well you can't do it for Functors
11:58:52 <FreeFull> At least not without additional restraints too
11:58:55 <zzo38> Yes, you can't do it for Functors either.
11:59:31 <zzo38> You could do it for Alternative.
12:00:24 <zzo38> Or for Functor+Plus.
12:02:29 <zzo38> Actually, I don't think so.
12:02:38 <zzo38> But you could with MonadPlus.
12:02:44 <zzo38> Alternative is not enough.
12:03:07 <FreeFull> How do some and many work anyway
12:03:41 <zzo38> catMaybes = (>>= maybe mzero return);
12:04:06 <monqy> FreeFull: badly
12:04:12 <monqy> FreeFull: alt. they don't
12:04:25 <FreeFull> I seem to get bottom for anything but Nothing
12:04:28 <monqy> FreeFull: alt. they only make sense for things like parser combinators
12:04:48 <FreeFull> :t \x -> do { Just y < x; return x; }
12:04:50 <lambdabot> Couldn't match expected type `m0 a0' with actual type `Bool'
12:04:50 <lambdabot> In a stmt of a 'do' block: Just y < x
12:04:50 <lambdabot> In the expression:
12:04:51 <monqy> but if you think of them in terms of applicative parsers they make perfect sense
12:04:57 <zzo38> Well, some and many can do other things too, but mostly for parsers.
12:04:58 <FreeFull> :t \x -> do { Just y <- x; return x; }
12:05:00 <lambdabot> Monad m => m (Maybe t) -> m (m (Maybe t))
12:05:07 <FreeFull> Oh, right
12:05:10 <monqy> other things too "but not much"
12:05:54 <FreeFull> :t \x -> do { Just y <- x; return x; } [Just 3]
12:05:56 <lambdabot> parse error on input `['
12:06:02 <FreeFull> :t (\x -> do { Just y <- x; return x; } $ [Just 3])
12:06:03 <lambdabot> Num a => ([Maybe a] -> Maybe t) -> [Maybe a] -> Maybe t
12:06:10 <zzo38> If you have a instance Alternative IO, then you could automatically stop reading on error, for example.
12:06:59 <FreeFull> Control.Applicative seems to only come with [] and Maybe instances
12:07:20 <zzo38> Any monad on (->) is also applicative, though.
12:08:03 -!- carado_ has joined.
12:08:09 <FreeFull> Haskell only does monads on (->) anyway, right?
12:09:38 <zzo38> Yes.
12:10:17 <elliott> FreeFull: http://hackage.haskell.org/packages/archive/base/4.6.0.1/doc/html/Control-Applicative.html#control.i:Applicative
12:10:31 <elliott> and all the standard monad transformers etc. are instances
12:10:55 <zzo38> (Haskell cannot automatically define the instances, though)
12:11:05 <FreeFull> elliott: What about Alternative?
12:11:30 <elliott> oh, you meant Alternative
12:11:46 <elliott> the docs still list more than that there
12:12:00 <elliott> (ReadP, ReadPrec, STM, arguably: ArrowMonad/WrappedMonad/WrappedArrow)
12:12:39 <FreeFull> return = pure; >>= = ????????
12:12:44 <zzo38> In other categories though, it is not necessarily the case that all monads are applicative.
12:13:05 <FreeFull> Oh wait, other way around
12:13:34 <zzo38> Yes.
12:13:45 <zzo38> pure = return; (<*>) = ap;
12:15:02 <FreeFull> pure = return; (<*>) f a = f >>= \f -> return (f a)
12:15:12 <zzo38> I prefer using fmap/pure/liftPair instead of <*> but that can work too; liftPair is workable with any tensor category, though.
12:15:14 <FreeFull> I am always tempted to abuse Haskell's scoping
12:15:33 <elliott> that definition is... not quite right
12:15:52 <FreeFull> elliott: Oh right
12:15:57 <FreeFull> pure = return; (<*>) f a = f >>= \f -> return (f <$> a)
12:16:06 <elliott> still no :P
12:16:10 <FreeFull> Damn =P
12:16:20 <monqy> @src ap
12:16:20 <lambdabot> ap = liftM2 id
12:16:31 <monqy> "there you have it"
12:17:01 <FreeFull> The return is unnecessary
12:17:14 <monqy> have you considered thinking it through
12:17:24 <FreeFull> No
12:17:46 <elliott> dropping the return doesn't work either
12:18:07 <elliott> oh hm
12:18:17 <elliott> :t \p q -> p >>= \f -> fmap p q
12:18:18 <lambdabot> (a -> b) -> (a -> a) -> a -> b
12:18:20 <elliott> er
12:18:21 <elliott> :t \p q -> p >>= \f -> fmap f q
12:18:22 <lambdabot> (Monad m, Functor m) => m (a -> b) -> m a -> m b
12:18:24 <elliott> right that works.
12:18:28 <FreeFull> =P
12:19:11 <FreeFull> of course liftM2 id is better
12:21:29 <monqy> imo liftM2 ($) is better than liftM2 id because it makes it more clear even though it's the same thing
12:22:44 <Jafet> imo clarity is overrated
12:23:00 <elliott> monqy: um liftM2 id is shorter
12:23:51 <monqy> liftM2($)
12:24:09 <elliott> help
12:25:14 <Jafet> liftM2$id
12:25:30 <zzo38> liftM2 is also same as liftA2, specifically because all monads in Haskell are applicative, that it can do that, I think is the reason.
12:26:41 -!- DHeadshot has quit (Ping timeout: 248 seconds).
12:26:41 <zzo38> All categories have monads (at least an identity monad, and if it has final objects, also a Finalize monad).
12:26:46 <Jafet> You are right, except not all monads are applicatives. So, well, you weren't right.
12:27:24 <zzo38> They are (in Haskell, not in general), but the instance is not necessarily defined.
12:28:31 -!- DHeadshot has joined.
12:28:59 <zzo38> A category with final objects has a Finalize monad for each final object of that category, actually.
12:29:32 <Jafet> :t let f :: Monad m => ((a -> b -> c) -> m a -> m b -> m c) -> d; f = undefined in f liftM2
12:29:34 <lambdabot> Ambiguous type variable `m0' in the constraint:
12:29:34 <lambdabot> (Monad m0) arising from a use of `f'
12:29:34 <lambdabot> Probable fix: add a type signature that fixes these type variable(s)
12:29:50 <Jafet> :t let f :: Monad m => ((a -> b -> c) -> m a -> m b -> m c) -> d; f _ = undefined in f liftM2
12:29:52 <lambdabot> Ambiguous type variable `m0' in the constraint:
12:29:52 <lambdabot> (Monad m0) arising from a use of `f'
12:29:52 <lambdabot> Probable fix: add a type signature that fixes these type variable(s)
12:30:31 <Jafet> :t let f :: (Monad m => (a -> b -> c) -> m a -> m b -> m c) -> d; f _ = undefined in f liftM2
12:30:32 <lambdabot> d
12:30:35 <Jafet> :t let f :: (Monad m => (a -> b -> c) -> m a -> m b -> m c) -> d; f _ = undefined in f liftA2
12:30:36 <lambdabot> Ambiguous type variable `m0' in the constraint:
12:30:36 <lambdabot> (Applicative m0) arising from a use of `liftA2'
12:30:36 <lambdabot> Probable fix: add a type signature that fixes these type variable(s)
12:36:16 -!- ogrom has quit (Quit: Left).
12:40:41 -!- zzo38 has quit (Remote host closed the connection).
12:52:38 -!- Taneb has joined.
13:08:55 -!- Arc_Koen has joined.
13:10:44 -!- Arc_Koen has quit (Client Quit).
13:11:00 -!- Arc_Koen has joined.
13:12:56 <Arc_Koen> @tell Oerjan "In any case I believe this proves Emmental Turing-complete. However it may happen to do so in a way which I have previously disagreed with Chris Pressey on whether it counts or not. :P " what does that mean?
13:12:56 <lambdabot> Consider it noted.
13:13:56 <Arc_Koen> @tell Oerjan also my attempt to use qdeql was so close, but you didn't use it at all :(
13:13:56 <lambdabot> Consider it noted.
13:14:11 -!- kallisti1 has changed nick to kallisti.
13:15:09 <olsner> I wonder if lambdabot treats nicks case sensitively or not
13:16:22 <Arc_Koen> you couldn't have wondered that three minutes earlier could you :(
13:19:59 -!- nooga has quit (Ping timeout: 255 seconds).
13:26:26 <olsner> it wasn't a pertinent question back then
13:32:00 <elliott> @tell Olsner hello
13:32:00 <lambdabot> Consider it noted.
13:33:02 <Arc_Koen> @tell ARC_KOEN I don't even remember if I tried talking to myself yet
13:33:02 <lambdabot> You can tell yourself!
13:33:06 <Arc_Koen> ok
13:33:39 <olsner> elliott: hi
13:33:39 <lambdabot> olsner: You have 1 new message. '/msg lambdabot @messages' to read it.
13:36:36 <olsner> omg it worked !
13:56:35 -!- copumpkin has quit (Ping timeout: 240 seconds).
13:57:08 -!- copumpkin has joined.
14:02:52 -!- atehwa has quit (Ping timeout: 246 seconds).
14:10:22 -!- atehwa has joined.
14:17:28 -!- FreeFull has quit (Quit: Bbl).
14:44:17 -!- sebbu has quit (Ping timeout: 248 seconds).
14:52:07 <Phantom_Hoover> wait...
14:52:14 <Phantom_Hoover> @tell ELLIOTT hmm
14:52:14 <lambdabot> Consider it noted.
14:52:35 <Phantom_Hoover> oh, right
14:53:03 <elliott> Phantom_Hoover: wait since when are you here
14:53:03 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
14:53:32 <Phantom_Hoover> i've been here for 3 hours...
14:53:43 <elliott> fuck you
14:54:14 <Phantom_Hoover> (HOW THE FUCK IS IT SNOWING IN MARCH)
14:55:01 <elliott> magickque
14:55:07 <olsner> Phantom_Hoover: basically snow is like rain but when it's cold enough to freeze it'll come down as "snow" instead
14:55:27 <Phantom_Hoover> why does england get all the damn sno
14:55:28 <Phantom_Hoover> w
14:56:00 -!- sebbu has joined.
14:56:01 -!- sebbu has quit (Changing host).
14:56:01 -!- sebbu has joined.
14:57:08 <fizzie> I don't think you've got quite all of it.
14:57:31 <fizzie> Finnish Meteorological Institute says there's a 49 cm snow cover here, for example.
14:57:32 <Phantom_Hoover> how dare you lump me in with the english
14:57:48 <olsner> we haven't had much snow here for a long time, maybe that's the snow that you're getting
14:59:20 -!- carado_ has changed nick to carado.
15:00:57 -!- FreeFull has joined.
15:10:28 -!- wareya_ has quit (Read error: Connection reset by peer).
15:11:02 -!- wareya has joined.
15:21:05 -!- DHeadshot has quit (Read error: Connection reset by peer).
15:53:15 <Sgeo> Got FreeGame to work
15:53:20 <Sgeo> Needed a newer version
15:55:44 <Sgeo> Is it bad that I don't entirely understand FlexibleContexts UndecidableInstances etc., and plan on letting GHC tell me if I ever need them?
15:58:21 <Sgeo> Functions of type a->a are monoids, right?
15:58:33 <Sgeo> mempty = id; mappend = .
15:58:34 <Sgeo> erm
15:58:37 <Sgeo> mappend = (.)
15:58:45 <Sgeo> Or would it be flip (.)?
15:58:45 <monqy> we call them "Endo" here
15:58:52 <monqy> and "Dual Endo" ;)
15:58:58 <monqy> er
15:59:02 <monqy> (Endo a)
15:59:06 <monqy> Dual (Endo a)
15:59:08 <monqy> "something like THat
15:59:50 <Taneb> Sgeo, yes, but as newtype Endo a = Endo {appEndo :: a -> a}
16:00:07 <Taneb> Because "instance Monoid m => Monoid (a -> m)" exists
16:00:49 <Taneb> And they'd overlap if you want mempty :: String -> String, for example
16:00:57 <Taneb> (is it id or const ""?)
16:02:19 <elliott> const ""
16:02:21 <elliott> oh
16:02:21 <elliott> nm
16:04:41 <FreeFull> Taneb: const "" is a -> String though
16:04:54 <Sgeo> Basically, I'm imaginging how one would write "plugins" for SimpleIRC bots. Each plugin would have a function IrcConfig->IrcConfig that adds its own event handlers to the config
16:04:56 <Taneb> FreeFull, and why can't a be String?
16:05:08 <FreeFull> It could be
16:05:11 <FreeFull> It could be anything
16:05:36 <Taneb> So, const "" is a valid mappend fo String -> String, yeah?
16:05:38 <Taneb> mempty, rather
16:05:52 <Taneb> Sgeo, Endo IrcConfig
16:06:04 <Sgeo> Also, SimpleIRC still sucks for being not as typesafe as it should be
16:06:59 <Sgeo> There's only one type of event handler, and every message (except for one) gets the same type of message passed to it, and the types in that record tend to have Maybes
16:07:39 <Sgeo> So rather than "Ok, the event handler for this message will always receive XYZ", it's "the event handler for this message must be capable of dealing with parts of the message not being there"
16:19:05 <Sgeo> @hoogle runMaybeT
16:19:05 <lambdabot> Control.Monad.Trans.Maybe runMaybeT :: MaybeT m a -> m (Maybe a)
16:28:48 <Taneb> :t MaybeT [Nothing, Nothing, Just 1]
16:28:50 <lambdabot> Not in scope: data constructor `MaybeT'
16:29:27 <Taneb> MaybeT [] Integer
16:30:12 -!- sebbu has quit (Ping timeout: 248 seconds).
16:33:56 -!- TeruFSX has joined.
16:34:12 <FreeFull> :t runMaybeT $ do { x <- [3..10]; return x; }
16:34:14 <lambdabot> Not in scope: `runMaybeT'
16:36:57 <Taneb> How can I express ap in terms of fmap, return, and join?
16:38:46 <elliott> first express (>>=)
16:39:12 <Taneb> f <*> x = join (fmap (uncurry fmap . flip (,) x) f)
16:39:45 <Taneb> Actually, I can make that nicer...
16:40:14 <Taneb> no i can't
16:41:00 <Deewiant> join (fmap (flip fmap x) f)
16:42:03 -!- sebbu has joined.
16:42:03 -!- sebbu has quit (Changing host).
16:42:03 -!- sebbu has joined.
16:46:55 <Taneb> Thanks, Deewiant
16:47:17 <Deewiant> No need to make a tuple just so that you can uncurry...
16:47:31 <Taneb> Of course
16:52:18 -!- Taneb has quit (Ping timeout: 264 seconds).
16:56:27 -!- Taneb has joined.
17:03:53 -!- AnotherTest has joined.
17:08:54 <AnotherTest> This is very weird:http://stackoverflow.com/questions/15268229/ebnf-whitespacing-in-meta-identifiers/15324944
17:09:28 <AnotherTest> I've sort of tried to answer the question. Although I actually find it hard to believe that the standard would have missed something that obvious
17:12:25 -!- Bike has joined.
17:23:25 <Taneb> The Gall-Peters projection makes me uncomfortable
17:24:44 <Bike> why
17:25:04 <Taneb> Maybe I'm just too used to Mercator
17:25:47 <AnotherTest> Mercator looks better
17:29:13 <AnotherTest> Great, I found a bug in iceweasel
17:38:43 -!- Taneb has quit (Ping timeout: 260 seconds).
17:39:27 -!- Taneb has joined.
17:47:46 <Sgeo> ^list
17:47:46 <fungot> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
17:47:50 <Taneb> Thanks
17:48:02 <Fiora> thankies
17:49:16 <Sgeo> yw
17:49:33 <Sgeo> The bot in MSPA that I made is so... early that we sometimes think it's a false alarm when it isn't
17:49:47 <Fiora> oh gosh the pun
17:50:11 <Fiora> (john: still totally adorkable)
17:50:16 <Taneb> Trivia: I know someone who actually answered an exam question along the lines of "Nuclear power plants work by nuclear fish"
17:50:31 <Taneb> The options were Nuclear Fission, Nuclear Fusion, and Nuclear Fish
17:51:18 <Fiora> that sounds like a debaitable answer
17:51:20 <Fiora> were they shore?
17:51:45 <Taneb> I am afraid they were a few kippers short of a shoal
17:51:47 <Fiora> it sounds pretty outraygeous to me
17:52:30 <Taneb> `pastelogs <Taneb> Trivia:
17:53:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29785
17:53:19 <Taneb> ...
17:53:24 <Taneb> Thanks, HackEgo.
17:54:10 <Taneb> Anyway, now I shall leave.
17:54:30 <Arc_Koen> what's a nuclear fish?
17:54:43 <Taneb> It's a joke answer to an easy exam question
17:55:13 <Arc_Koen> so not a fish with glowing eyes and lethal touch?
17:55:57 -!- ogrom has joined.
18:38:49 -!- Frooxius has quit (Quit: ChatZilla 0.9.90-rdmsoft [XULRunner 1.9.0.17/2009122204]).
18:39:06 -!- Frooxius has joined.
18:41:02 -!- Frooxius has quit (Client Quit).
18:41:16 -!- Frooxius has joined.
18:45:28 -!- carado_ has joined.
18:45:31 -!- carado has quit (Quit: Leaving).
18:46:09 -!- carado_ has changed nick to carado.
19:12:38 <Vorpal> <Arc_Koen> so not a fish with glowing eyes and lethal touch? <-- it could be
19:22:39 -!- nooga has joined.
19:45:50 -!- c00kiemon5ter has joined.
19:57:55 -!- sirdancealo2 has quit (Quit: ragequit).
19:59:42 <Vorpal> You know what the world doesn't need?
19:59:48 <Vorpal> Harlem shake (gangnam style)
20:00:50 <Taneb> Harlem shake (gangnam style) (dubstep remix)
20:00:58 <Bike> psy dancing the actual harlem shake would be kinda fun
20:03:46 <Taneb> Also, I quite like the occasional dubstep
20:04:04 <Bike> burial's pretty nice
20:04:28 <Taneb> I'm not "into it", but I find it pleasant to listen to
20:04:36 <Taneb> In the same way I enjoy classical music
20:05:42 <Vorpal> <Taneb> Harlem shake (gangnam style) (dubstep remix) <-- oh my god
20:05:54 <Taneb> Please say it exists
20:06:43 <Vorpal> I don't think so
20:06:48 <Taneb> Aww
20:06:59 <Taneb> Saying that, I've never actually heard Harlem Shake
20:07:00 <Vorpal> "Psy Does the 'Harlem Shake' + Announces 'Gangnam Style' Followup
20:07:00 <Vorpal> PopCrush ‎- 5 hours ago"
20:07:02 <Vorpal> oh my god
20:07:13 <Vorpal> I'm scared to click that link
20:07:13 <Taneb> "Gangnam Shake"
20:08:01 <Vorpal> Bike, looks like your wish has come true (before you made it?)
20:08:24 <Bike> cool
20:08:35 <Vorpal> just google harlem shake gangnam style
20:08:37 <Vorpal> first hit
20:08:45 <Vorpal> I'm not going to click it
20:09:03 <Taneb> Retroactive wish granting
20:09:19 <Taneb> I wish that Czechoslovakia was two countries
20:09:38 <Taneb> Slovakia, and... something like Czechia but that sounds stupid so not that
20:13:21 <Bike> :/
20:13:26 <FreeFull> What's wrong with Czech Republic
20:13:39 <kmc> i dunno, i think "czechia" sounds better
20:13:48 <Taneb> That's a much better name than Czechia, FreeFull
20:13:50 <Taneb> Thanks
20:13:51 <kmc> what's the endonym in common use
20:13:53 <FreeFull> In Polish, it's just called Czechy
20:15:20 <Taneb> kmc, "Czech", if an endonym is what I think it is
20:16:18 <kmc> i think you are mixing up endonyms and demonyms
20:16:30 <kmc> i'm asking what people in czech republic call the country in their native language
20:16:33 <kmc> in common use
20:17:08 <kmc> bbl
20:17:08 <Bike> czechworld
20:17:32 <FreeFull> Česká republika
20:17:53 <FreeFull> Or just Česko
20:20:45 -!- Taneb has quit (Ping timeout: 276 seconds).
20:21:40 -!- Taneb has joined.
20:21:58 -!- augur has quit (Remote host closed the connection).
20:27:45 -!- epicmonkey has quit (Ping timeout: 248 seconds).
20:43:10 -!- AnotherTest has quit (Quit: Leaving.).
20:47:55 -!- oerjan has joined.
20:50:30 -!- ogrom has quit (Ping timeout: 256 seconds).
20:51:54 -!- ogrom has joined.
20:59:45 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
21:01:51 <Taneb> Aaaaaargh
21:03:20 -!- ais523 has joined.
21:04:20 -!- Frooxius has quit (Ping timeout: 248 seconds).
21:05:32 -!- Frooxius has joined.
21:07:09 <oerjan> the universe vs. Taneb: 25-3
21:07:09 <lambdabot> oerjan: You have 2 new messages. '/msg lambdabot @messages' to read them.
21:07:14 <oerjan> @messages
21:07:15 <lambdabot> Arc_Koen said 7h 54m 19s ago: "In any case I believe this proves Emmental Turing-complete. However it may happen to do so in a way which I have previously disagreed with Chris Pressey on whether it
21:07:15 <lambdabot> counts or not. :P " what does that mean?
21:07:15 <lambdabot> Arc_Koen said 7h 53m 19s ago: also my attempt to use qdeql was so close, but you didn't use it at all :(
21:07:36 <oerjan> Arc_Koen: aww
21:07:42 <Taneb> I'm doing substantially worse than Scott Pilgrim
21:08:46 <Taneb> Alas, this is Taneb's brain vs Taneb
21:09:42 <oerjan> Arc_Koen: chris pressey has quandaries about whether it is TC unless it can do TC computation on data given through the language's official input method - which i don't use at all :P
21:09:55 <oerjan> or that's my impresssion anyway.
21:10:20 <oerjan> @tell Arc_Koen chris pressey has quandaries about whether it is TC unless it can do TC computation on data given through the language's official input method - which i don't use at all :P
21:10:20 <lambdabot> Consider it noted.
21:10:38 <oerjan> @tell Arc_Koen s/it/a language/
21:10:38 <lambdabot> Consider it noted.
21:12:54 <oerjan> @tell Arc_Koen aww. well you can do an implementation that actually handles input, then.
21:12:55 <lambdabot> Consider it noted.
21:15:07 -!- Bike has quit (Quit: leaving).
21:16:44 <oerjan> @tell Arc_Koen Hey, maybe you can make an implementation that doesn't use the _stack_. or only the top element, that is.
21:16:45 <lambdabot> Consider it noted.
21:19:23 <oerjan> @tell Arc_Koen hm wait you need the stack to use ! :(
21:19:23 <lambdabot> Consider it noted.
21:21:24 <ais523> elliott: we seem to have a persistent spambot who's got around the captcha somehow, I've set abusefilter to recognise its edits and disallow them (no blocks yet); there might theoretically be false positives but we haven't had any all year
21:21:46 <ais523> specifically, it looks for ".<br>" and a capital letter, but no newlines, in a new user's first edit, and only if it's to a user page
21:22:43 <Taneb> I wish I had the drive to actually do things
21:22:49 <Taneb> That'd be cool
21:22:56 <oerjan> Taneb: you too, eh?
21:23:51 -!- abumirqaan has quit (Read error: Operation timed out).
21:24:17 -!- abumirqaan has joined.
21:24:29 <ais523> this is a trivially easy restriction for a spambot author to modify their spambot to get around, but unless they're targetting Esolang specifically they won't
21:26:05 <oerjan> they could use a genetical algorithm to tweak things trivially until they pass, and keep site-specific data without actually doing anything manually. in theory.
21:26:12 <oerjan> *genetic
21:26:44 <oerjan> but if they cared that much, they wouldn't use <br> in the first place.
21:29:50 -!- Phantom_Hoover has joined.
21:31:32 <Taneb> oerjan, you are a criminal mastermind
21:31:43 <oerjan> THANK YOU
21:34:42 <oerjan> <FreeFull> How do some and many work anyway
21:35:16 <Taneb> Who knows
21:35:21 <oerjan> some and many only make sense in alternatives where the same action can either succeed or fail at different times.
21:35:57 <FreeFull> Digging up old conversations
21:35:59 <FreeFull> Like bones
21:36:00 <oerjan> most simple monads do not have that property.
21:36:13 <oerjan> it's called "logreading"
21:37:06 <FreeFull> So they are useless for the Alternative instances that come with Control.Applicative
21:37:08 <oerjan> State(T) and IO can do it, but neither Maybe, Reader or Writer give that property.
21:38:13 <FreeFull> Reader doesn't allow you to modify the values you read, and Writer doesn't allow you to read them
21:38:40 <FreeFull> Maybe doesn't have any "side-values"
21:38:43 <FreeFull> Neither does []
21:40:20 -!- mroman has left.
21:41:01 <oerjan> > runState (many $ do x <- get; guard (x < 10); put (x+1); return x) 0
21:41:03 <lambdabot> No instance for (Control.Monad.MonadPlus
21:41:03 <lambdabot> Data.Functor.I...
21:41:26 <oerjan> oh hm
21:42:11 <oerjan> > runStateT (many $ do x <- get; guard (x < 10); put (x+1); lift $ Just x) 0
21:42:13 <lambdabot> Just ([0,1,2,3,4,5,6,7,8,9],10)
21:42:17 <oerjan> there you go
21:42:21 <oerjan> FreeFull: ^
21:43:30 <oerjan> State alone doesn't have the Alternative part.
21:44:25 <FreeFull> Is this StateT Int Maybe
21:44:37 <oerjan> probably Integer, by defaulting
21:45:45 <oerjan> > runStateT (many $ do x <- get; guard (x < 3); put (x+1); lift $ [x]) 0 -- seeing what happens with lists
21:45:47 <lambdabot> [([0,1,2],3),([0,1],2),([0],1),([],0)]
21:46:21 -!- zzo38 has joined.
21:47:30 <oerjan> > evalStateT (many $ do x <- get; guard (x < 3); put (x+1); lift $ [x]) 0
21:47:32 <lambdabot> [[0,1,2],[0,1],[0],[]]
21:49:01 <oerjan> right, with lists the failure case is _always_ included after the success, so you get an automatic branch at each iteration that doesn't completely fail
21:49:24 <oerjan> i'm sure that could be used for _something_ :P
21:49:57 <oerjan> sadly it's in the wrong order to give an infinite list. hm...
21:50:02 <oerjan> :k Backward
21:50:04 <lambdabot> Not in scope: type constructor or class `Backward'
21:50:05 <Sgeo> ^list
21:50:06 <fungot> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
21:50:06 <oerjan> :k Backwards
21:50:08 <lambdabot> Not in scope: type constructor or class `Backwards'
21:50:13 <Taneb> What, again?
21:50:42 <Taneb> Bah, I can't watch sound ATM
21:50:57 <Taneb> ...I really need to fix my graphics card driver thingy on my computer
21:50:58 <Fiora> hussie is incredibly silly
21:51:19 <Arc_Koen> oerjan: buuuuuuuut nobody will know that
21:51:19 <lambdabot> Arc_Koen: You have 5 new messages. '/msg lambdabot @messages' to read them.
21:51:28 <oerjan> :t forwards
21:51:30 <lambdabot> Not in scope: `forwards'
21:51:31 <Taneb> :k Backwards
21:51:32 <lambdabot> Not in scope: type constructor or class `Backwards'
21:51:32 <Arc_Koen> that's the problem when we just say "I just proved this language is TC"
21:51:52 * oerjan swats lambdabot for not having Backwards -----###
21:51:52 <Taneb> We need a time machine and ask Alan Turing
21:51:59 <Taneb> And Alonzo Church
21:52:05 <oerjan> Arc_Koen: :/
21:52:22 <zzo38> Sure, considering the list to have success/failure is one possible way to look at it, and is a reasonable way to do so in some circumstances.
21:52:25 <Arc_Koen> @messages
21:52:25 <lambdabot> oerjan said 42m 5s ago: chris pressey has quandaries about whether it is TC unless it can do TC computation on data given through the language's official input method - which i don't use at all :
21:52:25 <lambdabot> P
21:52:25 <lambdabot> oerjan said 41m 47s ago: s/it/a language/
21:52:25 <lambdabot> oerjan said 39m 30s ago: aww. well you can do an implementation that actually handles input, then.
21:52:25 <lambdabot> oerjan said 35m 41s ago: Hey, maybe you can make an implementation that doesn't use the _stack_. or only the top element, that is.
21:52:27 <lambdabot> oerjan said 33m 2s ago: hm wait you need the stack to use ! :(
21:52:50 <Arc_Koen> oh I just watched this fun time travel series pilot
21:53:07 <Arc_Koen> apparently the pilot wasn't a success because they didn't make the series
21:53:26 <Arc_Koen> why do they keep canceling all my favourite time travel series :(
21:53:33 <Taneb> Fiora, what's the music to the update so I can hum it while it's muted?
21:53:51 <Taneb> Arc_Koen, did you hear the time travel Irregular Podcasts?
21:53:55 <Arc_Koen> nope
21:54:02 <Arc_Koen> I'm npt really into podcasts
21:54:17 <Taneb> http://irregularwebcomic.net/podcasts/ numbers 14, 17, and 18
21:54:21 <Taneb> They're more like radio plays
21:54:42 <Sgeo> Taneb, if it helps, the song is Elevatorstuck
21:54:53 <Arc_Koen> ok I'll listen to them right now
21:55:31 <Taneb> Thanks
21:55:46 <Arc_Koen> but you know deep down I feel no time travel series can be truly realistic
21:55:57 <Taneb> This one goes for silliness
21:56:01 <Fiora> Taneb: it's like, the elevator music
21:56:05 <Arc_Koen> because what you could do if you had a time machine is SO HUGE
21:56:22 <Taneb> Arc_Koen, Primer is about as realistic it gets
21:56:27 <Arc_Koen> so any use of a time machine shown in a series is *nothing* compared to its actual potential
21:56:34 <Arc_Koen> Primer, hmm
21:56:38 <Arc_Koen> I'll look into it
21:57:02 <Taneb> What a silly Homestuck update
21:57:05 <Taneb> And goodnight, folks
21:57:06 -!- Taneb has quit (Quit: Leaving).
21:57:41 <oerjan> oh wait Backwards won't help for this
21:57:43 <Arc_Koen> Taneb: #14 is really weird
21:57:54 <Arc_Koen> I think he's listing all bacteria he knows
22:00:08 -!- Bike has joined.
22:03:13 -!- DHeadshot has joined.
22:13:02 -!- TeruFSX has quit (Ping timeout: 250 seconds).
22:18:12 <zzo38> Do you like this idea of the INI for describing preferred input and so on of NES/Famicom game? http://forums.nesdev.com/viewtopic.php?p=108450#p108450
22:19:24 -!- zzo38 has quit (Remote host closed the connection).
22:20:17 <oerjan> <Sgeo> Is it bad that I don't entirely understand FlexibleContexts UndecidableInstances etc., and plan on letting GHC tell me if I ever need them?
22:20:41 <oerjan> note that if you follow ghc's advice like that, you might end up getting redundant options.
22:21:33 <oerjan> in my last program, it suggested several things before FlexibleInstances, all of which are implied by it
22:22:01 <oerjan> (i think FlexibleContexts was one)
22:31:04 <oerjan> `run paste </dev/null
22:31:12 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.15934
22:31:40 <oerjan> `pastelogs <Taneb> Trivia:
22:32:17 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21731
22:32:40 <oerjan> oh he left.
22:39:25 -!- ogrom has quit (Quit: Left).
22:54:08 -!- Sgeo has quit (Ping timeout: 248 seconds).
22:54:08 -!- nooodl has quit (Ping timeout: 248 seconds).
22:54:11 -!- nooodl_ has joined.
22:54:12 -!- Sgeo has joined.
23:11:00 <tswett> Hey, who wants to buy one ten thousandth of my post-tax income for all time?
23:11:06 <tswett> Only $750. This is not an offer.
23:15:39 <coppro> on ten thousandth?
23:15:41 <coppro> hmm
23:15:43 <coppro> no
23:17:06 <Bike> How long do you intend to be alive?
23:29:22 -!- DH____ has joined.
23:29:37 -!- DHeadshot has quit (Read error: Connection reset by peer).
23:33:53 -!- DH____ has quit (Read error: Connection reset by peer).
23:34:01 -!- DHeadshot has joined.
23:38:35 -!- zzo38 has joined.
23:40:30 -!- DHeadshot has quit (Read error: Connection reset by peer).
23:40:51 -!- DHeadshot has joined.
23:43:38 <ais523> hmm, that translates to more than $7.5 million lifetime earnings = a good deal
23:43:50 <ais523> that seems likely, I guess
23:43:53 <ais523> given inflation
23:44:02 <ais523> although, you need to take into account alternative investments
23:44:07 -!- Bike has quit (Ping timeout: 260 seconds).
23:44:10 <Sgeo> D&D multiplication is weird
23:44:16 <ais523> also there's a potential loophole; if you do the deal with 10 thousand different people
23:44:34 <ais523> then you get $7.5 million, which is enough to live off, and so never have to make any money at all and so don't have to pay them back
23:44:44 <ais523> Sgeo: think of it as added percentages
23:44:51 <ais523> it's not ×2, it's +100%
23:46:54 <Sgeo> o.O, and that works out identically?
23:46:56 <Sgeo> Hm
23:47:17 -!- Bike has joined.
23:48:25 <zzo38> Yes, D&D multiplication does work like that, although the DM which I play with always uses actual multiplication. I too think they write it like that wrongly; in Icosahedral RPG rules they should be written what is meant instead, whether it is x2 or +100% or whatever!!
23:52:08 <Jafet> Dungeons & Dragons, the original roll-playing game.
23:54:35 -!- Bike has quit (Ping timeout: 245 seconds).
23:54:52 <Jafet> ais523: you'd have to make the deals simultaneously though
23:54:59 <Jafet> Receiving $750 is income
23:55:37 <ais523> hmm
23:56:12 <ais523> yeah but you'd still end up with quite a lot, after rounding errors
23:56:17 <ais523> around half, I think, maybe a bit more
23:56:33 -!- Bike has joined.
23:59:19 <oerjan> > sum [ x*0.075 | x <- [0..9999] ]
23:59:20 <lambdabot> 3749624.9999999995
23:59:52 <oerjan> > sum [ x*0.075 | x <- [0..9999] ] / 7500000
23:59:54 <lambdabot> 0.49994999999999995
←2013-03-09 2013-03-10 2013-03-11→ ↑2013 ↑all