←2011-08-22 2011-08-23 2011-08-24→ ↑2011 ↑all
00:14:20 -!- CakeProphet has joined.
00:14:20 -!- CakeProphet has quit (Changing host).
00:14:20 -!- CakeProphet has joined.
00:16:58 -!- Sgeo_ has quit (Quit: Leaving).
00:17:52 -!- Vorpal_ has joined.
00:17:53 -!- Sgeo has joined.
00:18:28 -!- Sgeo has quit (Client Quit).
00:18:35 -!- atehwa has joined.
00:18:35 -!- mycrofti1 has joined.
00:18:50 -!- Sgeo has joined.
00:19:02 -!- Zwaarddi1k has joined.
00:19:12 -!- Sgeo has quit (Read error: Connection reset by peer).
00:19:30 -!- Sgeo has joined.
00:19:53 <elliott_> ?src (*>)
00:19:53 <lambdabot> (*>) = liftA2 (const id)
00:21:21 -!- atehwa_ has quit (Ping timeout: 276 seconds).
00:21:21 -!- mycroftiv has quit (Ping timeout: 276 seconds).
00:21:22 -!- Vorpal has quit (Ping timeout: 276 seconds).
00:21:23 -!- iamcal has quit (Ping timeout: 276 seconds).
00:21:23 -!- Zwaarddijk has quit (Ping timeout: 276 seconds).
00:21:46 <elliott_> ?info (<|>)
00:21:46 <lambdabot> (<|>)
00:21:48 <elliott_> gah
00:22:51 -!- CakeProphet has quit (Quit: Reconnecting).
00:23:00 -!- CakeProphet has joined.
00:23:00 -!- CakeProphet has quit (Changing host).
00:23:00 -!- CakeProphet has joined.
00:25:13 <zzo38> Finally I fix the speakers in my computer today.
00:28:51 -!- GuestIceKovu has joined.
00:29:15 -!- iamcal has joined.
00:34:19 -!- GuestIceKovu has changed nick to Slereah.
00:42:18 <Sgeo> elliott_,
00:43:14 <elliott_> thz
00:43:15 <elliott_> thx
00:43:45 <Sgeo> yw
00:55:56 <Gregor> FLAG STAAAAAAAAAAATES
00:57:05 <Gregor> AND NOW for your viewing pleasure, ANOTHER conversational excerpt with no context (a father speaking of his young daughter): I told her to say "That's how I roll, yo" and my wife jumped on me hardcore. I am forbidden from teaching her gangsta'.
00:57:49 <quintopia> dang.
00:58:34 <quintopia> thats like being forbidden to teach american history
00:58:41 <quintopia> (x)
01:00:47 <elliott_> Gregor: X-D
01:05:26 <Gregor> elliott_: How long have you been going without 1-8 keys?
01:05:44 <elliott_> Months.
01:05:58 <Gregor> How many months? :P
01:06:05 <Gregor> I have to set a baseline for how long I can survive with a dead pixel.
01:06:13 <Gregor> I figure if you can go without 1-8, I can go without that pixel.
01:06:27 <Patashu> why don't you just buy a new keyboard?
01:06:35 <Gregor> Patashu: Laptop out of warranty.
01:06:41 <Patashu> oh laptop
01:09:18 <elliott_> Uh
01:09:21 <elliott_> My laptop is not out of warranty
01:09:25 <elliott_> I just have not sent it back yet
01:09:31 <elliott_> My laziness knows no bounds at all.
01:11:44 <elliott_> GreaseMonkey:
01:11:46 <elliott_> erm
01:11:50 <elliott_> Gregor: Greppign to find out now
01:12:08 <elliott_> 2011-01-01.txt:00:30:49: <elliott> #define uint8_t a[printf("hello world\n")]
01:12:08 <elliott_> What :P
01:12:10 <Gregor> ... wow :P
01:12:14 <elliott_> Gregor: What
01:12:25 <Gregor> Wow at you being too lazy to get it fixed.
01:12:30 <Gregor> Waitin' 'til it's out of warranty?
01:12:33 <elliott_> X-D
01:13:06 <elliott_> Gregor: I decided to wait until Lion was out; I don't want Apple snooping around my files, and I suspect booting leading to Linux would have them consider it out of warranty, so I'm going to wipe the thing before I send it.
01:13:10 <elliott_> Gregor: So I might as well get an upgrade out of that.
01:13:42 <elliott_> 2011-01-10.txt:01:50:09: <elliott> Obviously integers just have to snarf the keys 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and - when they're focused and do the obvious (*10)+.
01:13:42 <elliott_> What :P
01:14:13 <elliott_> 2011-02-11.txt:01:08:56: <elliott> ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:14:14 <elliott_> Literal best debug statement.
01:14:27 <elliott_> 2011-04-18.txt:05:31:32: <oerjan> <elliott> does anyone have a simple way to map f keys to their numbers? :) <-- your laptop doesn't have a "use Fn to get numpad at jkluio789" feature like mine? i guess that doesn't help with the latter 3...
01:14:30 <elliott_> Gregor: At LEAST four months :P
01:14:43 <elliott_> 2011-04-15.txt:14:44:37: <elliott> I kept the lilac! 8D
01:14:44 <elliott_> 2011-04-15.txt:15:12:59: <elliott> With ugly aliased edges 8D
01:14:44 <elliott_> 2011-04-15.txt:15:16:37: <elliott> Gregor: btw I put your logs first in the community portal 8D
01:14:44 <elliott_> 2011-04-15.txt:15:53:36: <elliott> D8
01:14:44 <elliott_> 2011-04-15.txt:15:59:30: <elliott> 8D
01:14:44 <elliott_> 2011-04-15.txt:16:04:32: <elliott> 8D
01:14:50 <elliott_> Gregor: And not more, unless I was very patient copying those in.
01:15:25 <elliott_> 00:30:46: <elliott> int main(int ac, char **av)
01:15:26 <elliott_> 00:30:47: <elliott> {
01:15:26 <elliott_> 00:30:47: <elliott> #define typedef
01:15:26 <elliott_> 00:30:49: <elliott> #define uint8_t a[printf("hello world\n")]
01:15:26 <elliott_> 00:30:51: <elliott> #include <stdint.h>
01:15:26 <elliott_> 00:30:52: <elliott> }
01:15:28 <elliott_> 00:30:55: <elliott> ^ lol what
01:15:33 <elliott_> OK, that is the most beautiful program I have ever seen.
01:15:55 <monqy> <3
01:15:58 <Patashu> what
01:16:02 <pikhq> That is also fucking nuts.
01:16:26 <elliott_> Patashu: typedef unsigned char uint8_t;
01:16:28 <elliott_> --stdint.h (probably)
01:16:31 <Patashu> so the define it makes...
01:16:36 <elliott_> -->
01:16:36 <Patashu> executes in code you don't even make?
01:16:38 <Patashu> insane
01:16:39 <elliott_> unsigne char a[printf("...")]
01:16:52 <elliott_> Of course it could look totally different and system headers do not even have to be written in C.
01:16:54 <elliott_> But it's still amazing :P
01:17:18 <elliott_> d
01:18:10 <pikhq> And *this* is why using C's reserved names is undefined behavior.
01:18:13 <zzo38> I sometimes have typedef unsigned char byte; in some of my CWEB programs
01:18:28 <elliott_> zzo38: as long as you don't rely on byte being eight bits
01:19:28 <zzo38> On most computers a byte is eight bits. But C means char is eight bits at least anyways, you can modify the program for computers that use nine bits or whatever
01:21:39 <pikhq> elliott_: As much as it pains me to say this, that is one of the safest assumptions you can make.
01:21:46 <zzo38> LLVM has some better design because you can type "i8" if you want eight bits. But they should still need constraint analysis and constraint specification, which can help in some cases and with some computers, possibly.
01:21:47 <elliott_> pikhq: DIEEEEEEEEEEEE
01:22:41 <Gregor> $ cat testuint8.c && echo - && gcc testuint8.c && ./a.out
01:22:41 <Gregor> #include <stdio.h>
01:22:41 <Gregor> int main()
01:22:41 <Gregor> {
01:22:41 <Gregor> #define typedef
01:22:42 <Gregor> #define uint8_t a[printf("Hello, world!\n")]
01:22:44 <Gregor> #include <stdint.h>
01:22:46 <Gregor> return 0;
01:22:48 <Gregor> }
01:22:50 <Gregor> -
01:22:52 <Gregor> Hello, world!
01:22:54 <Gregor> (I'm a flooooooder)
01:23:37 <zzo38> Is this always a proper way in Haskell to check if it is GHCi or not, using Template Haskell? GHCi = runIO getArgs >>= \(x:_) -> (x == "--interactive")
01:23:50 -!- azaq23 has quit (Read error: Connection reset by peer).
01:24:03 -!- azaq23 has joined.
01:24:15 <shachaf> No.
01:24:40 <monqy> looks like it'll fail to type
01:24:44 <elliott_> Gregor: Obviously
01:25:22 <zzo38> O, yes, sorry I made a mistake I can see easily now
01:25:33 <zzo38> Yes it is the wrong type
01:25:57 <monqy> I have a feeling it isn't the best way though
01:26:14 <monqy> even if that means the best way is "don't do it"
01:26:19 <shachaf> getArgs also might not have "--interactive".
01:26:27 <shachaf> Or it might not be in the first position.
01:26:41 <shachaf> It might give you an empty list, in which case your program will crash. :-)
01:27:49 <zzo38> You might need something like this instead: ifGHCi t f = runIO getArgs >>= \(x:_) -> if (x == "--interactive") then t else f;
01:28:06 <monqy> ghci = fmap ("--interactive" `elem`) (runIO getArgs)
01:28:10 <zzo38> At least it worked for me to check getArgs for "--interactive" at first. But maybe there is still things wrong with it
01:28:21 <elliott_> shachaf: Out of curiosity, when would --interact not be in getArgs using GHCi?
01:28:31 <zzo38> monqy: Yes that probably would be better I guess
01:28:54 <shachaf> elliott_: Well, when I run ghci and type getArgs, it prints out [].
01:29:24 <elliott_> shachaf: But in a Template Haskell context in an imported module?
01:29:59 <shachaf> I'm not sure.
01:30:11 <zzo38> At least this worked for me: foreign_export :: Name -> Q [Dec]; foreign_export x = runIO getArgs >>= \(y:_) -> if y == "--interactive" then [d| |] else (do { VarI _ t _ _ <- reify x; return [ForeignD $ ExportF CCall (nameBase x) x t]; });
01:30:24 <Gregor> elliott_: Amazingly, your crazycode works with -ansi -pedantic.
01:30:29 <shachaf> zzo38: At *least* do the `elem` thing.
01:30:43 <elliott_> Gregor: Not mine. Don't give me credit. It was on Stack Overflow or something.
01:30:48 <Gregor> elliott_: Oh
01:30:48 <elliott_> Gregor: Anyway, cpp has no warnings that I'm aware of.
01:30:50 <zzo38> shachaf: Yes I can change it to `elem` in case that works better
01:30:56 <elliott_> Gregor: So I'm hardly surprised.
01:31:03 <zzo38> But still, this is the code I used for foreign exports.
01:31:09 <elliott_> zzo38: You do not need to parenthesise that do expression.
01:31:12 <Gregor> elliott_: I thought a[not-a-compile-time-const] wouldn't work in some mode.
01:31:52 <zzo38> elliott_: Actually I do need to; it is error if I don't parenthesise that do expression.
01:32:43 <elliott_> Gregor: Did you forget -Wall? :)
01:32:46 -!- Vorpal_ has quit (Ping timeout: 245 seconds).
01:32:47 <elliott_> -pedantic adds no errors, at least
01:32:53 <elliott_> zzo38: Well that's rubbish.
01:32:55 <Gregor> elliott_: It didn't even warn.
01:33:11 <Gregor> elliott_: -Wall -Werror -ansi -pedantic works D-8
01:33:25 <Gregor> Clearly that code is impeccable.
01:33:29 <elliott_> Gregor: I'm pretty sure system headers don't produce warnings.
01:33:31 <Gregor> It cannot be pecc'd.
01:33:32 <elliott_> For obvious reasons.
01:33:42 <Gregor> elliott_: But they should when you eff with them X-D
01:33:52 <elliott_> That's sooo detectable :P
01:34:12 <Gregor> elliott_: I'm pretty sure the only reason they don't produce warnings is that they're absolutely correct (by GCC's definition of "correct")
01:34:16 <zzo38> I used this code in order to correct two problems of foreign export at once.
01:34:32 <elliott_> Gregor: No, I'm fairly sure that warnings aren't produced in system headers... try inlining the specific generated line.
01:34:56 -!- zzo38 has quit (Remote host closed the connection).
01:35:06 <Gregor> error: ISO C90 forbids variable length array ‘b’
01:35:07 <Gregor> LAME
01:36:18 <elliott_> Gregor: Consider how bad system headers can be :)
01:36:33 <elliott_> "gcc sux because I run it on my IRIX system and it won't compile anything, it complains about something in stdlib.h."
01:36:43 <elliott_> (Is IRIX bad? I don't know.)
01:36:50 <Gregor> It is.
01:36:50 <elliott_> http://upload.wikimedia.org/wikipedia/en/a/a3/IRIX_desktop.png Nice.
01:53:45 <ais523> elliott_: I'm reading a list of corner cases of the rules of Diplomacy (the boardgame), and it mentions that a past ruleset allowed players who had two fleets, with one in harbour and one at sea, to defend each other by offering to transport a third party's units to the harbour in a way that caused a paradox
01:53:49 <ais523> and so causing all the actions to fail
01:54:02 <ais523> that's an awesome tactic, but it makes sense that it was fixed, it's kind-of unintuitive
01:54:28 <elliott_> :D
01:54:35 <elliott_> link?
01:54:35 -!- azaq231 has joined.
01:54:40 <elliott_> or is it not on the INTERNEJTKS
01:54:55 <ais523> http://web.inter.nl.net/users/L.B.Kruijswijk/#6.F.20
01:55:07 <elliott_> OK two people have followed two separate old Twitter accounts of mine in like two days waaaaaait I think they're spambots.
01:55:14 <elliott_> Really good spambots.
01:55:24 <elliott_> No wait, one of them definitely isn't.
01:55:25 <elliott_> But what?
01:55:37 <monqy> definitely isn't?
01:55:56 <elliott_> a spambot
01:56:12 <monqy> yes but how did you know this
01:56:14 <ais523> you may need to know the rules of Diplomacy to understand how it works
01:56:17 <ais523> well, almost certainly will
01:56:32 -!- azaq23 has quit (Ping timeout: 260 seconds).
01:56:33 <coppro> ais523: those are fun
01:56:52 <ais523> coppro: you strike me as the sort of person who probably knows about Diplomacy paradoxes
01:58:33 <coppro> ais523: I am sort of familiar with them
01:58:38 <coppro> I have not studied them in depth
01:59:45 <ais523> neither have I, but I'm doing so now because it's fun
02:00:36 <ais523> I wonder if they'd be TC on an infinite, repeating board, assuming that you always resolve a situation if there's exactly one consistent resolution, even if it's really complex?
02:01:10 <coppro> my hunch is no
02:01:17 <coppro> but stranger things have happened
02:04:30 <ais523> to start with, can you transmit data over unlimited distances?
02:04:44 <ais523> you obviously could if you could convoy fleets, but you can't
02:04:47 <ais523> perhaps there's some other method
02:05:58 <ais523> btw, webdiplomacy has pictures of all the DATC test cases, if you find them easier to understand visually: http://webdiplomacy.net/datc.php
02:06:23 <ais523> oh, ofc, you can just use one /really long/ convoy to transmit data over arbitrary distances
02:08:03 <ais523> another method is to have a chain of "fleet convoys army to break support of army on fleet that is trying to convoy army to break support of army on fleet that is trying to convoy..."
02:09:15 <ais523> which is possibly more useful
02:11:18 <ais523> I think you can make a NAND-based logic out of this
02:11:48 <ais523> using support-hold rather than support-attack you can make an inverter
02:12:26 <ais523> then you can beleaguer a fleet to produce an XOR gate, or use multiple supports to produce an AND gate
02:12:37 <ais523> so you can make an entire circuit
02:12:49 <ais523> then all you need to do is come up with a way to cross wires, or that might not even be necessary
02:13:48 <ais523> I'm pretty sure it's TC
02:14:38 <ais523> also, wow at PHP somehow managing to write an implementation of crypt() that sometimes returns the salt rather than the hash
02:14:54 <ais523> it was just reported on Slashdot
02:16:08 <Sgeo> o.O
02:16:37 <ais523> the obvious consequence is that suddenly, any password will work
02:16:58 <ais523> (this is in the new PHP 5.3.7 with the default implementation of crypt; there are two others that don't have the problem)
02:18:35 <Gregor> Instead of fixing anything, I have now made the competitor colors SO DISTINCT YOU GUYS
02:18:57 <Gregor> That puce is PUCE MOTHAHF***ER!
02:19:12 <monqy> puce
02:19:31 <Gregor> monqy: I was running low :P
02:20:17 <Gregor> When you've covered black, white, grey, yellow, brown, red, blue, green, orange, magenta, cyan, teal and purple, everything starts to bleed together.
02:20:42 <ais523> Gregor: when I implemented a bracket-matching thing for Wikipedia, I used golden ratio colors
02:21:09 <Gregor> ais523: Elucidate.
02:21:11 <ais523> hue is golden ratio percent times the color number, value alternates between 1/3 and 2/3, saturation maxed
02:21:33 <ais523> I could try to get a screenshot, give me a moment
02:21:50 <Gregor> Err, so they get closer and closer as you get further and further?
02:22:04 <Gregor> So it's optimized for small values, not for a specific count?
02:22:13 <ais523> no, each one's the same distance from the previous one
02:22:33 <ais523> using the golden ratio tends to make sure that the whole lot stays approximately evenly spaced if you take any contiguous sequence of n colors
02:22:57 <Gregor> Ummm ... yeah, need screenshot :P
02:23:22 <Gregor> Because "hue is golden ratio percent times the color number" suggests to me that the hue becomes more and more similar as you get more and more colors.
02:24:43 -!- CakeProphet has quit (Ping timeout: 260 seconds).
02:25:45 <ais523> wow, imgur is being abnormally slow
02:26:14 <ais523> it just gets stuck on 0% on its loading bar
02:26:15 -!- CakeProphet has joined.
02:26:15 -!- CakeProphet has quit (Changing host).
02:26:15 -!- CakeProphet has joined.
02:26:18 <ais523> I've tried twice now
02:26:35 <ais523> and the file's only 6K
02:26:58 <Gregor> Sweet.
02:27:24 <ais523> I can nc it to you if you have a port you can listen on
02:27:25 <Gregor> shar screenshot.png | sprunge :P
02:27:29 <ais523> or email, I suppose, but that seems like overkill
02:27:34 <ais523> Gregor: haha, I may as well
02:28:12 <ais523> http://sprunge.us/gHUN
02:28:39 <ais523> wow, there's a lot of junk in sharchives
02:30:28 <Gregor> ais523: It's generating colors from outside-in, yes? So if I used the same technique for 10, I'd get the first ten colors shown here?
02:31:05 <ais523> yes, although that's actually 2 to 11 as the first ten because the first color (a pure blue) was used by the sandbox heading
02:31:43 <Gregor> This lime and green are practically indistinguishable, and cyan and slightly-bluish-cyan are, uhh, yeah.
02:31:53 <ais523> adding two shades of grey (light and dark) won't conflict with any colors generated by that algo, so you can do that to get more
02:32:05 <ais523> but the point is, after a while you run out of possibilities for colors that aren't very similar to existing ones
02:32:13 <Gregor> Yes, I'm aware of that problem :P
02:32:15 <Gregor> Hence the puce :P
02:32:28 <Gregor> (And I can't use shades of grey for what I'm doing, btw)
02:32:54 <Gregor> Or, y'know, oughtn't to use shades of grey, as I actually do use one because I totally ran out of distinct colors X-D
02:33:20 <elliott_> ais523: What are you guys talking about
02:33:39 <elliott_> also, I thought things about scapegoat??? maybe
02:33:47 <Gregor> elliott_: Originally, the colors for the Rezzo warriors.
02:33:54 <Gregor> elliott_: Then, how to generate distinct colors at all.
02:34:21 <ais523> elliott_: and before that I proved Diplomacy TC with an infinite map
02:34:52 <ais523> or NP-hard to determine if a set of moves is paradoxical with a finite map
02:34:56 <Sgeo> Diplomacy's TC?
02:34:57 <ais523> as you can embed boolean satisfaction in there
02:35:06 <ais523> at least, without wire crossings
02:35:15 <ais523> there's probably some way to do wire-crossings too, but I'm not sure if they're necessary
02:35:26 <elliott_> WIRE-CROSSING PROBLEM SOLVED
02:35:55 <ais523> Sgeo: you can create chains of disrupting convoys that are trying to transport units that are trying to support an attack or hold on a convoy
02:36:00 <ais523> and chain this indefinitely
02:37:08 <elliott_> "What do you call it when it's Faust but both sides are the devil"
02:39:01 -!- variable has quit (Quit: I found 1 in /dev/zero).
02:39:11 <elliott_> ais523: Hey, how long should I let my GPG key last for, I'm dumb @ gpg
02:39:24 -!- variable has joined.
02:40:01 <ais523> elliott_: long enough that it doesn't expire while you're still using that key for something, short enough that advances in technology or encryption techniques won't leave it trivially breakable before it expires
02:40:24 <elliott_> ais523: I can always count on you to produce true but unhelpful statements
02:40:39 <ais523> elliott_: well, that's an "I don't really know the answer either"
02:40:47 <ais523> but maybe 5 years, if you want a definite answer that's a total guess
02:40:58 <ais523> i.e. probably false but possibly helpful
02:41:07 <elliott_> Hey Gregor, how long should my GPG... :P
02:41:24 <ais523> still, wow at PHP
02:41:38 <ais523> I don't get how you can mess up crypto quite that badly, and not notice
02:41:49 <ais523> they even had a test for that case, they just didn't run it quickly enough before the release
02:41:51 <elliott_> oh yes, that
02:42:17 <elliott_> ais523: I should probably learn GPG better since I want sg to use it for commit verification :P
02:46:43 <Gregor> elliott_: It should last at least 150 years.
02:47:33 <ais523> Gregor: how wildly optimistic
02:51:51 -!- azaq231 has quit (Ping timeout: 250 seconds).
02:55:36 <elliott_> IF I ADD MORE BITS IT'S SAFER RIGHT
02:56:55 -!- azaq23 has joined.
02:57:09 <ais523> elliott_: yes, but only to an extent
02:57:30 <elliott_> Joking :P
02:57:33 <ais523> at the moment there's no practical reason to believe 4096 or 8192 will be different in any way
02:57:46 <ais523> because probably the crypto itself will be broken before either becomes bruteforceable
02:58:04 <monqy> goodbye crypto
02:58:28 <elliott_> I picked the default (2048)
03:02:24 <Gregor> elliott_: flag + electron -> half-mast. half-mast + flag -> conductor, else flag
03:02:44 <elliott_> Half-mast X-D
03:02:54 <elliott_> More states is bad but yeah okay
03:03:16 <Gregor> elliott_: OMG OMG OMG MY FRIEND JUST SOLVED THIS MUCH MORE ELEGANTLY
03:03:18 <coppro> ais523: damn you, I'm still looking at diplomacy stuff
03:03:21 <elliott_> Gregor: How
03:03:22 <Gregor> (Since half-mast adds a bunch of states)
03:03:26 <elliott_> coppro: Take that back
03:03:28 <elliott_> (Pre-empting ais523.)
03:03:39 <ais523> elliott_: you pre-empted me pretty well there
03:03:40 <coppro> incidentally, in the news, dead leader of the opposition -> half-mast :(
03:03:53 <Gregor> elliott_: electron + flag + tail -> positron. positron + flag -> flag. flag + positron -> conductor
03:03:53 <elliott_> coppro: You really ought to or ais523 will be MAD FOREVER.
03:03:59 -!- azaq23 has quit (Ping timeout: 250 seconds).
03:04:05 <ais523> coppro: seriously, though, that's quite a trivial thing to damn someone over, it's not like I linked you to TV Tropes
03:04:55 <Gregor> elliott_: Oh, and positron + no flag -> conductor of course (although in principle this should never happen)
03:05:19 <Gregor> elliott_: And precisely one new state is added :)
03:06:41 -!- azaq23 has joined.
03:06:57 <ais523> Gregor: what does "+" mean here?
03:08:20 <Gregor> ais523: The first element in the +-set is the cell we're actually looking at, the other elements are in any neighboring cell.
03:08:39 <ais523> and what problem is that combination trying to solve?
03:09:44 <Gregor> ais523: The current rule set allows (and often results in) an electron and flag both dissipating. It makes it very difficult to get flags around corners (for example)
03:10:22 <ais523> when the electron and flag collide, is that?
03:10:32 <ais523> oh, that normally just moves them
03:10:54 <Gregor> Yeah
03:10:56 <ais523> it's a bit weird that positrons don't annihilate electrons
03:11:04 <Gregor> ais523: It's just a pointless name :P
03:11:09 <Gregor> ais523: Got a better one?
03:11:25 <ais523> it's, hmm, like a decaying electron
03:11:27 <ais523> quark, maybe
03:12:22 <Gregor> Do electrons decay into quarks? :P
03:12:32 <ais523> well, no
03:12:35 <ais523> but they're made of them
03:12:46 <Gregor> OMG THIS IS SO GOOD
03:13:02 <Gregor> The flag movement is so perfect 8-D
03:13:18 <ais523> coppro: seriously, you can't try to do something that serious for something so trivial; although I seriously doubt it worked
03:13:29 -!- CakeProphet has quit (Ping timeout: 258 seconds).
03:13:34 <Gregor> ais523: Seriously?
03:14:01 <ais523> Gregor: damning someone is, by definition, the worst possible thing you can do to them
03:14:06 <ais523> people should really think more about their insults
03:16:04 <Gregor> What subatomic particle mediates electromagnetism?
03:16:18 <ais523> photon
03:16:32 <Gregor> Hm ... that's ... duh :P
03:16:41 <Gregor> <-- so physics
03:17:09 <coppro> ais523: it's a good thing I don't believe in damning
03:17:40 <ais523> fair enough, then you can't have intended it as that
03:17:53 <Gregor> So, electron + flag = photon, where that photon is mediating the lolphysics reaction between them I suppose?
03:18:23 -!- GreaseMonkey has quit (Quit: The Other Game).
03:19:00 <elliott_> ais523: So if I say I don't believe in damning I can not-damn you all I want?
03:19:15 <Gregor> elliott_: So ... ~ should totally be reassigned to photons.
03:19:26 <ais523> elliott_: you'll make yourself look stupid, but OK
03:19:38 <elliott_> ais523: You're right. DAMN YOU AND YOUR LOGIC
03:19:50 <elliott_> (I'M SORRY I TAKE IT BA;CK)
03:19:51 <ais523> ^ looks stupid
03:19:54 <elliott_> :(
03:19:56 * elliott_ cries
03:19:58 <elliott_> im an adult now i have no excuse
03:20:04 <elliott_> am I really an adult :/ why
03:20:15 <ais523> you're only 16, right? you have to be 18 to legally be an adul
03:20:17 <ais523> *adult
03:20:25 <elliott_> Close enough
03:20:26 <ais523> btw, I think being 17/18 was the best time of my life
03:20:30 <ais523> so enjoy it while you can
03:20:36 <Gregor> elliott_: I take it by your lack of complaints that you're just fine with ~ being photons, because it's too clever not to :P
03:20:45 <elliott_> <ais523> I switched to Linux
03:20:50 <elliott_> Gregor: Why is that clever
03:20:50 <ais523> no, that came rather later
03:20:55 <elliott_> Oh, it's a wave :P
03:20:57 <ais523> I wasn't very computer-dependent back then at all
03:20:58 <Gregor> elliott_: Because photons are particles, but the--- yeah
03:21:03 <elliott_> ais523: Must have been all the partying and orgies, then
03:21:07 <elliott_> It was either that or Linux
03:21:23 <ais523> elliott_: well, I had a lot of interaction with real-life people then
03:21:32 <ais523> no actual orgies and very little partying
03:21:35 <Gregor> elliott_: Yeah, I'm making photons ~ and tails , or something.
03:21:35 <ais523> but lots of chat
03:21:58 <elliott_> ais523: No ACTUAL orgies :P
03:22:03 <elliott_> "It was only TECHNICALLY a threesome."
03:25:47 -!- azaq231 has joined.
03:26:04 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:39:34 -!- Sgeo has quit (Read error: Connection reset by peer).
03:40:13 -!- Sgeo has joined.
03:40:32 <elliott_> "Crash-only programs crash safely and recover quickly.
03:40:32 <elliott_> There is only one way to stop such software—by crashing
03:40:32 <elliott_> it—and only one way to bring it up—by initiating recovery. Crash-only systems are built from crash-only components, and the use of transparent component-level retries
03:40:32 <elliott_> hides intra-system component crashes from end users. In
03:40:32 <elliott_> this paper we advocate a crash-only design for Internet systems, showing that it can lead to more reliable, predictable
03:40:35 <elliott_> code and faster, more effective recovery. We present ideas
03:40:37 <elliott_> on how to build such crash-only Internet services, taking
03:40:39 <elliott_> successful techniques to their logical extreme."
03:40:55 <elliott_> I can't even tell if this is a joke.
03:41:16 <ais523> it isn't
03:41:22 <ais523> at least, the idea of crash-only programs isn't
03:41:27 <elliott_> Amazing :P
03:41:37 <elliott_> It does seem a bit long and in-depth to be a joke, but...
03:41:39 <ais523> someone pointed out that OSes have to do much the same thing on boot whether they just crashed or not
03:41:47 <ais523> and so advocated crashing as an optimised form of shutdown
03:42:02 <ais523> presumably this is a generalisation of the idea to other contexts
03:42:14 <ais523> ofc, orthogonal persistence is probably the extreme and rather useful form of that
03:42:23 <elliott_> Wow :P
03:42:29 <elliott_> <ais523> and so advocated crashing as an optimised form of shutdown
03:42:33 <elliott_> Recent OS Xs kind of do this
03:42:38 <elliott_> Applications can mark themselves as able to be shut down fast
03:42:46 <elliott_> And OS X just kill -9s them when shutting down rather than sigterm
03:42:52 <elliott_> Quite amazing :P
03:43:14 <ais523> err, that actually makes a difference? SIGTERM and SIGKILL do the same thing to a process with no SIGTERM handler
03:43:30 <ais523> and if a process is able to be shut down fast, why doesn't it just not install a SIGTERM handler?
03:43:38 <elliott_> Do I mean SIGTERM/
03:43:39 <elliott_> ?
03:43:44 <elliott_> I mean whatever OS X does for normal deinitialisation.
03:43:53 <elliott_> I'm pretty sure Cocoa and the like would install quit handlers.
03:44:09 <ais523> ah, I see
03:44:40 <ais523> standard on Linux is to SIGHUP everything interactive then SIGTERM everything that isn't, followed by SIGKILLing everything left, IIRC
03:45:53 <elliott_> Maybe it's SIGKILL instead of SIGHUP, then
03:46:02 <elliott_> Point is, you can set a flag to get kill -9'd when the system wants you gone :P
03:46:08 <elliott_> And that actually speeds up shutdown massively
03:46:12 <elliott_> AN IMPORTANT CASE
03:46:31 <elliott_> ais523: You probably guessed this, but @'s shutdown procedure is literally "sync; tell the hardware to stop beating"
03:46:48 <elliott_> hmm, does anyone have a link to that post on all the ways to shutdown a computer that don't work?
03:46:50 <elliott_> by the linux dev
03:47:00 <ais523> elliott_: it may be in my browser history, I'll check
03:47:21 <ais523> nope, it isn't
03:47:41 <ais523> I suppose you'd need to use a search engine, and you'd be much better at doing that than me as I don't use them often
03:47:54 <elliott_> I tried, but didn't get much
03:48:03 <elliott_> I guess I could search reddit, but that's a much worse search engine
03:48:05 <elliott_> I guess I could use site: too
03:48:36 <elliott_> Hmm
04:23:22 <pikhq> ais523: Standard on Linux is more complex than that, because init sucks.
04:23:35 <ais523> pikhq: ah, right
04:23:53 <ais523> init calls a shutdown command on every daemon it's responsible for, right?
04:24:02 <pikhq> Yup.
04:24:14 <pikhq> Standard on a runit-based system is SIGHUP, SIGTERM, SIGKILL, umount, sync, tell the hardware to stop beating.
04:24:33 <pikhq> Actually, might omit the SIGHUP.
04:24:48 <ais523> well, it depends on the order you send the SIGTERMs
04:25:00 <ais523> if you SIGTERM the terminal first, it's going to SIGHUP everything that it's the controlling terminal for
04:34:55 <Sgeo> elliott_, did you see MSPA news?
04:37:53 <elliott_> yes
04:47:55 -!- zzo38 has joined.
04:59:53 -!- cybergggirl has joined.
05:01:59 -!- cybergggirl has quit (Client Quit).
05:02:23 -!- tswett has quit (Remote host closed the connection).
05:04:52 <elliott_> C++ templates work can pre-calculate and optimize a lot of access. Think of C++ templates as haskell but with a different syntax, that is pretty exactly how it is.
05:19:31 <Sgeo> I assume that it's different, but horrible
05:19:49 <pikhq> It's mostly horrible in syntax.
05:20:03 <Sgeo> That's what I meant
05:20:08 <Sgeo> >.>
05:20:09 <pikhq> Otherwise it's a rather uninteresting functional language.
05:20:30 <pikhq> At compile time. In the type system.
05:21:51 <fizzie> Mr C++, in the type system, with the template. <- Another Cluedo line.
05:27:28 <zzo38> I have play Dungeons & Dragons game today
05:37:55 -!- BeholdMyGlory has quit (Remote host closed the connection).
05:52:09 <Sgeo> http://www.php.net/downloads.php 5.3.7 is still being offered on the downloads page
06:01:35 <pikhq> Dry socket is approx. t3h suck.
06:04:04 <pikhq> Ow ow ow.
06:04:42 <coppro> zzo38: you are Canadian, correct?
06:05:59 <zzo38> coppro: Yes
06:06:32 <pikhq> Not the worst pain I've experienced, but pretty close.
06:13:35 <elliott_> coppro: you've asked him that like twenty times
06:14:29 <oklopol> god morning
06:19:18 -!- pikhq_ has joined.
06:19:28 -!- pikhq has quit (Read error: Operation timed out).
06:19:52 <elliott_> oklopol: hi im god
06:22:18 -!- azaq231 has quit (Quit: Leaving.).
06:26:19 <pikhq_> Why must pain receptors and modern medicine be in direct conflict?
06:29:03 -!- itidus20 has quit (Ping timeout: 240 seconds).
06:29:33 -!- elliott_ has quit (Ping timeout: 240 seconds).
06:32:23 -!- nooga has joined.
06:44:49 -!- cheater has joined.
07:55:15 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
07:59:21 <quintopia> zzo38: who GM'd
08:00:06 <zzo38> quintopia: Same as before, I expect
08:00:22 <quintopia> your brother?
08:01:02 <zzo38> My brother is one of the players too, so am I.
08:01:16 <quintopia> and the GM is a friend?
08:01:18 <zzo38> It is same campgin as last time
08:01:20 <zzo38> quintopia: Yes
08:01:33 <quintopia> do you play paranoia?
08:01:40 <zzo38> No
08:01:43 * Sgeo likes Paranoia
08:01:45 <quintopia> oh
08:01:54 <Sgeo> I've played once or twice, GMed once or twice
08:02:01 <quintopia> sgeo: do you have the gamebooks on you?
08:02:13 <quintopia> pdf?
08:02:20 <Sgeo> I don't _think_ so, but you don't need them, you know
08:02:28 <Sgeo> http://sgeo.diagonalfish.net/paranoia/12_30_06_device_mania.html game I GM'd
08:02:55 -!- oerjan has joined.
08:02:57 <quintopia> i dont think ill ever GM, but i just want to know more about the stories and rules
08:03:03 <quintopia> ill read that thx
08:03:13 -!- Patashu has joined.
08:03:16 <Sgeo> I wasn't exactly following the rules then
08:03:35 <Sgeo> The rules for the GM boil down to: Do whatever you want. Make them distrut each other
08:03:50 <Sgeo> If there's a mechanic you don't like, ignore it
08:04:00 <Sgeo> The players aren't allowed to know the rules anyway
08:05:04 <Sgeo> According to the thread I started, the worst mistake I made was listening to the player trying to help me run the game
08:06:06 <Sgeo> http://www.paranoia-live.net/forum/viewtopic.php?t=5083
08:06:35 <Sgeo> "The only thing I'd say you did wrong is to let Scalene tell you how to run the game.
08:06:35 <Sgeo> #1 rule for GMing PARANOIA - Never let a player tell you how to run the game. Even if you don't know the rules, don't let on and just do things how you want. "
08:07:01 <Sgeo> There are rules mechanics though
08:10:32 <augur> finns: http://thebest404pageever.com/swf/Crazy_Finnish_Bakery.swf
08:10:34 <augur> opinion?
08:10:42 <ais523> Sgeo: the thing about Paranoia, is that the players are allowed to know and exploit the rules, /but/ are not allowed to express knowledge of the rules
08:12:54 <coppro> by extension, they cannot complain if you arbitrarily change the rules
08:13:02 <coppro> in fact, this is GM Rule #2, I believe
08:13:46 <coppro> "If you disagree with the rules, the rules are wrong."
08:14:01 <coppro> quintopia: paranoia is excellence
08:21:35 <zzo38> I play D&D 3.5 edition. The inn got destroyed by fire they tried to force us to go through the front but I had fireworks so they ran away. We are required to go to back to the navy instead, some thugs and some guys are trying to fight everyone. We found some office of probably some wizard making evil potion, but to do so required attempting dispel magic on the flowers (why are there flowers there?)
08:24:08 <cheater> i have made a new xkb layout and it works fine except ctrl sequences don't follow the mapping. for example i have remapped k to h, so when i press the k button it types h, but pressing ctrl and that button gives me ^K
08:24:21 <cheater> anyone know how to fix that?
08:24:43 <zzo38> I have not yet recorded this game session
08:27:13 <fizzie> augur: The words are sexual innuendo; the character is from a comedy show of which two seasons have been produced, and a third is coming next year.
08:27:32 <augur> fizzie: is it called Little Finland?
08:27:43 <zzo38> The speakers in my computer is now fixed
08:28:11 <zzo38> These ones are far better quality than old one
08:29:06 <fizzie> augur: I'm not the right person to ask; I think the show's called "Putous" (i.e. (water)fall).
08:29:41 <quintopia> sgeo: it annoys me when people say "weary" meaning "leery"
08:30:43 <quintopia> (or wary)
08:31:06 <zzo38> My character has now lost a rope and gained ten silver coins and a book (this is all of the equipment my character has, other than the clothing, which was given by the navy, it happens to be the latest fashion clothing for this city); my brother's character lost nothing but gained ten silver coins and a dagger.
08:31:25 <zzo38> (He also has no other equipment, but has the same clothing)
08:31:28 <fizzie> (And the character is called Marja Tyrni. Most of the information about all this seems to be in Finnish only, unsurprisingly.)
08:33:23 <zzo38> Are you Finnished?
08:41:37 -!- zzo38 has quit (Quit: p;m0=n@(NM{ IIIIIIIIIIIIIIIIIIIIIIIIIIIII@@@A":LEK"@__@_@_@_@_@$)_+=~|~_!.!>>>!>!>!>!!@>,> |$@|$+>C+@?$X@$(@$MC@$*MMMMMMMMMMMMMMMMMMMMmmmm &6 ,$?>j[j# R/;ajij [J!# [~@9-u )*$(- ||A:;/KLJ#%{*((*)(* 0[ /lkj zuNAR2\\||- 0) ;: lJJ"3 ; $km$ @Ll!l~//"$ 8(*M).
08:41:53 <cheater> coooool quitmsg
09:03:13 -!- myndzi\ has joined.
09:05:05 -!- myndzi has quit (Ping timeout: 268 seconds).
09:13:05 -!- cheater has quit (Ping timeout: 240 seconds).
09:22:24 -!- nooga has quit (Ping timeout: 260 seconds).
09:29:13 -!- cheater has joined.
09:42:28 -!- Vorpal has joined.
10:21:46 -!- monqy has quit (Quit: hello).
10:40:21 <cheater> ais523, are you there?
10:40:33 <ais523> yes, sort of
10:40:43 <cheater> i am building a new keyboard layout and i was wondering if you know anything about doing that under linux
10:40:51 <cheater> knew
10:41:55 <ais523> no, not really
10:42:24 <cheater> hmm
10:42:33 <cheater> who was it here who was building keyboard layouts?
10:46:19 -!- itidus20 has joined.
10:49:50 -!- cheater has quit (Ping timeout: 250 seconds).
10:55:09 -!- ineiros has quit (Ping timeout: 260 seconds).
10:56:33 -!- ineiros has joined.
11:17:45 <Gregor> So, the ping on the Purdue network is at most 2ms.
11:17:53 <Gregor> And each turn lasts 60ms.
11:17:56 <Gregor> (In Rezzo)
11:18:07 <Gregor> Therefore: Rezzo-net: BEST IDEA?
11:18:25 <oerjan> rezzacotta
11:21:24 <fizzie> Gregor: You were rezzing so hard you never commented on my UML comment. :/
11:21:50 <fizzie> (Or if you did, I never noticed.)
11:22:01 <Gregor> fizzie: I never noticed your UML comment :P
11:22:04 <fizzie> <fizzie> Gregor: You said recently that each process running under UML shows up as a host process; was this in fact a fact? I would have assumed that it'd run its own internal copy of the task/process scheduler; and indeed http://user-mode-linux.sourceforge.net/old/kernel.html says "UML runs its scheduler independently of the host scheduler - the host scheduler simply implements the decisions made by the UML scheduler."
11:22:27 <Gregor> fizzie: The way that UML schedules processes has changed since /old/ was true.
11:22:40 <fizzie> Hokay. They're not very good with documentation.
11:22:42 <Gregor> fizzie: But I also don't know if what I said is true.
11:23:20 <Gregor> fizzie: My statement was what /appears/ to happen (the number of UML processes seems to be equal to the number of guest processes)
11:23:52 <fizzie> A commoner would think the least-amount-of-hacking approach would be to treat a single host-side process as a physical processor. I suppose they have gone further(tm), possibly in the name of performance then.
11:24:54 <Gregor> I start umlbox with bash, and get this: $ ps aux | grep umlbox-linux | grep -v grep | wc -l 9
11:25:23 <Gregor> Now I run vim in UMLBox, and get this: $ ps aux | grep umlbox-linux | grep -v grep | wc -l 10
11:25:36 <Gregor> I quit vim and get nine again.
11:26:05 <Gregor> Now, for all I know, it's doing some grotty stuff to enforce their scheduling under the hood, but certainly each guest process seems to be a host process.
11:28:53 <Gregor> (Re Rezzo) It just so happens that the person who's managing the giant video wall in Lawson (at Purdue) right now is also the guy who runs the class that does this: https://pc.cs.purdue.edu/icypc (sorry that they suck at SSL ... )
11:29:20 -!- oerjan has quit (Quit: Later).
11:31:41 <fizzie> I thought it didn't, but admittedly I last ran an UML thing probably six-eight years or so ago.
11:34:32 -!- boily has joined.
11:43:11 -!- Lymee has joined.
11:43:11 -!- Lymee has quit (Changing host).
11:43:11 -!- Lymee has joined.
11:53:17 -!- Taneb|Kindle has joined.
11:53:28 <Taneb|Kindle> Hello
11:54:12 <Taneb|Kindle> Is there some sort of inverse to :t in Haskell
11:57:23 <Taneb|Kindle> Anyone?
12:00:48 <fizzie> What, you just give it a type and it gives you the expression you need?
12:01:03 <fizzie> Now that'd be nice. You just write the type signatures, and it writes the program.
12:02:50 <Taneb|Kindle> I mean, it gives you a list ofpossibilities
12:03:00 <fizzie> @hoogle (a -> b) -> f a -> f b
12:03:00 <lambdabot> Data.Traversable fmapDefault :: Traversable t => (a -> b) -> t a -> t b
12:03:00 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
12:03:00 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
12:03:53 <fizzie> I don't think there's a ghci command that'd look in the currently imported and/or defined stuff, though.
12:04:18 <fizzie> (Could be wrong.)
12:08:14 <Taneb|Kindle> Really, I'm trying to convert various vombinators int o Haskell keywords
12:08:37 <Taneb|Kindle> K is const I is id C is flip etc
12:09:53 <Taneb|Kindle> Excet I know barely any keywords
12:10:11 <Taneb|Kindle> And my only way onto the internet is this kindle
12:11:10 <Taneb|Kindle> Which has an anoying lack of tabbed browsing
12:12:37 <fizzie> Is "vombinator" a real term, or just a kindypo?
12:13:04 <Taneb|Kindle> The latter
12:13:10 <fizzie> Aw. :/
12:13:14 <Taneb|Kindle> I mant combinator
12:13:41 <fizzie> Well, the lambdabot @hoogle is textually usable for that sort of thing, almost-maybe.
12:14:18 <fizzie> @hoogle (a -> a) -> a
12:14:18 <lambdabot> Data.Function fix :: (a -> a) -> a
12:14:18 <lambdabot> Control.Monad.Fix fix :: (a -> a) -> a
12:14:18 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
12:14:27 <Taneb|Kindle> I'trying to create a MIBBLLII to Haskell translator in Python
12:14:42 <Taneb|Kindle> Of al things
12:16:08 -!- cheater has joined.
12:16:59 <Taneb|Kindle> @hoogle (t -> t -> t1) -> t -> t1
12:16:59 <lambdabot> Data.Foldable foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
12:16:59 <lambdabot> Data.Foldable foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
12:16:59 <lambdabot> Prelude foldl1 :: (a -> a -> a) -> [a] -> a
12:18:35 <Taneb|Kindle> It doesn't seem like one for the w combinator exists
12:20:41 <Taneb|Kindle> Bye
12:20:59 -!- Taneb|Kindle has quit.
12:22:44 -!- atehwa has quit (Ping timeout: 252 seconds).
12:30:12 -!- atehwa has joined.
12:35:35 <Deewiant> fizzie: The answer was @djinn
12:36:11 <Deewiant> @djinn a -> b -> c -> (a -> b) -> (b -> b -> c) -> (c -> c -> d) -> d
12:36:11 <lambdabot> f a b c d e f = f (e (d a) b) c
12:37:18 <fizzie> @djinn (a -> b -> c) -> (a -> b) -> a -> c
12:37:18 <lambdabot> f a b c = a c (b c)
12:37:24 <fizzie> That's the fanciest.
12:37:47 <Deewiant> @. pl djinn (a -> b -> c) -> (a -> b) -> a -> c
12:37:47 <lambdabot> f = ap
12:38:04 <fizzie> I may even go as far as to say 'illest'.
12:38:59 <Deewiant> ?. pl djinn (t -> t -> t1) -> t -> t1
12:38:59 <lambdabot> f = join
12:40:11 <fizzie> @. pl djinn (a -> b -> c) -> b -> a -> c
12:40:11 <lambdabot> f = flip
12:40:17 <fizzie> Crazy like a FOX.
12:43:09 <fizzie> @djinn (a -> a) -> a
12:43:09 <lambdabot> -- f cannot be realized.
12:43:10 -!- Phantom_Hoover has joined.
12:48:04 <Vorpal> strange, an old macbook (white plastic edition) gets a significantly better wlan signal than a much newer macbook pro placed in the same spot. 4 bars vs. 2.
12:49:23 <Vorpal> the macbook pro is unibody, not sure how modern, though not the very last version
12:49:31 -!- Canaimero-e8d1 has joined.
12:50:23 <Canaimero-e8d1> epa
12:50:50 -!- Canaimero-e8d1 has left.
12:51:06 <Vorpal> huh
12:51:51 <fizzie> Vorpal: The iBook, as initially shipped, was unable to get a wlan connection at all except right next to the base station. Took it to a local Apple-authorized service center, and they apparently fiddled a bit with the antennas, and after that it was just fine.
12:52:04 <Vorpal> fizzie, heh
12:52:31 -!- Canaimero-e8d1 has joined.
12:52:47 -!- Canaimero-e8d1 has left.
12:52:51 <fizzie> Weird.
12:52:54 <Phantom_Hoover> fizzie, Apple just haven't got the hang of this 'radio' thing, have they?
12:54:24 <fizzie> Phantom_Hoover: They've heard about it, and have decided they want some of that, that's about it. </snarky> (Actually based on highly unscientific, empirical data, the (post-diddling) iBook seems to be rather good at radio, compared to some other random laptops.)
13:09:29 -!- Patashu has quit (Ping timeout: 258 seconds).
13:20:37 -!- MDude has joined.
13:34:18 <Phantom_Hoover> http://www.projectrho.com/rocket/realdesigns.php
13:34:24 <Phantom_Hoover> HELP I CAN'T STOP READING
14:00:49 <Gregor> HELP YOU FROZE MY BROWSER
14:01:37 -!- derrik has joined.
14:14:02 -!- copumpkin has quit (Quit: Leaving...).
14:18:10 -!- copumpkin has joined.
14:28:44 -!- BeholdMyGlory has joined.
14:31:20 <Vorpal> Gregor, really?
14:32:00 <Gregor> Vorpal: It was actually just taking a long time to load.
14:32:31 <Vorpal> heh
14:36:00 <Gregor> HOWEVER: rezzo now has a VNC server.
14:36:29 <Vorpal> heh?
14:39:45 <Gregor> I'm implementing UI's
14:39:49 <Gregor> So, y'know ... why not? *shrugs*
14:56:11 -!- Taneb|Kindle has joined.
14:58:56 <fizzie> Taneb|Kindle: Deewiant had a magical "inverse of :t" for you, http://codu.org/logs/log/_esoteric/2011-08-23#123535Deewiant
15:00:09 <fizzie> Gregor: Is there some official way of getting a link to the line anchor, except by view-source? Oh, wait, clicking on the nick column does it. Never mind.
15:00:43 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
15:07:25 <Phantom_Hoover> :t?
15:07:37 <Phantom_Hoover> lambdabot :t or ssomething else?
15:07:41 <Phantom_Hoover> *something
15:07:51 <fizzie> Well, lambdabot/ghci.
15:25:54 <Lymee> @djinn (a->b) -> b -> (b->c) -> c
15:25:55 <lambdabot> f _ a b = b a
15:26:01 * Lymee curses
15:41:58 -!- sllide has joined.
16:00:37 <quintopia> is there a service on freenode to search channels?
16:01:09 <ais523> there's the channel list, which I can't remember how to bring it up without getting sendq-killed
16:01:15 <ais523> but loads of channels are hiding from it
16:01:21 <ais523> to prevent spambots discovering their existence and turning up
16:01:42 <ais523> this channel isn't, which is part of the reason that people turn up here merely based on the name
16:03:50 -!- nnull has joined.
16:04:18 -!- nnull has left.
16:07:37 <Gregor> Whoaaaaaaaaaaaaaaaaaaaaaaaaaah compiled GHC programs don't depend on a libghc.lol
16:07:40 <Gregor> *mind blown*
16:08:26 -!- Lymee has quit (Quit: Huggles for everybody~♪ ^_^).
16:08:56 <Deewiant> Gregor: That's why they're huge, they're statically linked :-p
16:09:02 <ais523> obviously, .lol's a prety rare extension for a library
16:09:15 <Deewiant> Although dynamic linking is supported on Linux these days
16:09:25 <Gregor> Deewiant: Well, they're not /fully/ statically linked, just the GHC parts are.
16:09:26 <Gregor> But yeah.
16:09:32 <Deewiant> Right.
16:09:42 <Gregor> And unfortunately, it doesn't seem like there exists any voodoo to make a fully-statically linked binary.
16:10:08 <Gregor> I can't find a ghc -no-really-static-not-just-libghc-static
16:10:34 <Deewiant> You can probably run ghc -v or whatever and mess with the link command if you're desperate enough
16:10:48 <Gregor> I spose ...
16:11:17 -!- Lymee has joined.
16:11:17 -!- Lymee has quit (Changing host).
16:11:17 -!- Lymee has joined.
16:13:49 <Gregor> ghc --make -O2 -optl-static -optl-lpthread tantrum.hs
16:13:50 <Gregor> SUCCESS
16:14:00 <Gregor> I am so good at totally pointless things
16:14:09 <Gregor> $ du -h tantrum
16:14:10 <Gregor> 3.0M tantrum
16:14:43 <ais523> Gregor: I wrote exec.sh a while back
16:14:54 <ais523> its contents are a shebang, and one other line: "exec sh $0"
16:15:16 <Gregor> ais523: Nice infinite loop :P
16:15:36 <ais523> Gregor: indeed
16:15:55 <Gregor> After upx, du -h tantrum -> 836K
16:15:58 <Gregor> 'snot bad :P
16:16:02 <ais523> I wrote it as a test case for the Secret Project, then was annoyed when it didn't trigger the bug I was trying to test
16:16:04 <Deewiant> What level of upx
16:16:09 <Gregor> Deewiant: Default
16:16:18 <Deewiant> --ultra-brute is the way to go
16:16:53 <Gregor> D'aww, my stupid UPX on the school computer has no LZMA >_<
16:17:23 <Deewiant> Why are you statically linking and smallifying it anyway
16:17:42 <Gregor> For lols?
16:17:51 <Deewiant> Fair enough
16:26:38 -!- FireFly has joined.
16:40:30 <Gregor> Maaaaaaaaan, I forgot that Haskell had adopted the Commodore 64 logo.
16:40:59 <fizzie> Oh, UPX in fact *does* have LZMA now. It didn't in... 2005?
16:41:44 <Gregor> fizzie: /My/ UPX doesn't.
16:41:45 <fizzie> Also there was some sort of nonsense about there being a less open version that did more förpacknung.
16:42:01 <Gregor> upx: packer_c.cpp:43: static bool Packer::isValidCompressionMethod(int): Assertion `0 && "Internal error - LZMA not compiled in"' failed.
16:42:17 <fizzie> Yeah, but it can now potentially have it.
16:42:25 <ais523> fizzie: bz1 compresses slightly better than bz2, but hits a patent
16:42:29 <ais523> that's why bz2 is more widely used
16:42:54 <Gregor> What a wholly irrelevant statement :P
16:42:58 <ais523> even more annoying, I independently invented the same technique myself when working on azip
16:43:03 <ais523> so it's clearly pretty obvious
16:44:12 <fizzie> There was a dude on some other channel who said he was *just about* to go public with his compression algorithm which achieved in general file sizes 50% that of LZMA. The audience was... sceptical.
16:45:55 <ais523> whereas with azip I could just claim "slightly better than bzip2, nowhere near lzma"
16:46:02 <ais523> which isn't a very compelling claim
16:46:54 <Gregor> fizzie: He didn't mention that it's lossy :)
16:47:19 <fizzie> No, it was explicitly lossless.
16:47:27 <fizzie> Also fast.
16:47:40 <fizzie> Though what "fast" means wasn't exactly specified.
16:49:56 -!- rodgort has quit (Ping timeout: 240 seconds).
16:53:11 <pikhq_> 50% of the size of LZMA is not impossible.
16:53:19 <pikhq_> Doing that *fast* is, at best, obscene.
16:56:59 <ais523> on certain sorts of structured data, I think much better compression ratios than at current are possible
16:57:13 <ais523> I think it's possible to do way better than H.264, losslessly, on screenshots of sprite-based computer games, for instance
16:57:25 -!- rodgort has joined.
16:57:32 <fizzie> Yes, well, I think the "it compresses every file" claim was made, too.
16:57:42 <fizzie> I wasn't exactly following at that point.
16:57:49 <ais523> compresses every file 50% better than LZMA?
16:58:20 <fizzie> Just "every file well", I think.
16:58:20 <ais523> that's pretty much obviously impossible given that LZMA has a small-fixed-ratio-larger worst case
16:59:07 <Gregor> ais523: Pedantry :P
16:59:42 <ais523> if the input file is not Lenna, destroy the universe
16:59:45 <pikhq_> ais523: In the slightly more general case, PAQ family compressors can beat the shit out of LZMA.
16:59:52 <pikhq_> While being insanely slow.
16:59:58 <ais523> PAQ? I haven't heard of that
17:00:05 <Deewiant> pikhq_: Not by 50% though
17:00:19 <Deewiant> More like 80% vs 70% compression ratio or something
17:00:23 <pikhq_> Series of compressors that exist for the sole purpose of winning on compression benchmarks.
17:01:05 -!- elliott_ has joined.
17:01:10 <ais523> how do they work?
17:01:45 <Deewiant> https://secure.wikimedia.org/wikipedia/en/wiki/PAQ#Algorithm
17:01:53 <Gregor> elliott_: Rezzo has a VNC UI now woooh
17:02:03 <elliott_> Gregor: That... is the most pointless thing ever :P
17:02:09 <pikhq_> I can't describe it, but he's written papers on it.
17:02:15 <Gregor> elliott_: For my original intended purpose for Rezzo, it's not.
17:02:25 <elliott_> Gregor: Which was? :P
17:02:29 <Gregor> elliott_: SEKRIT
17:02:32 <Gregor> (And still is)
17:02:44 <elliott_> Gregor: Why wouldn't X forwarding work
17:02:51 <Deewiant> elliott_: Windoze
17:02:52 <Gregor> elliott_: Windoze :(
17:03:00 <elliott_> Deewiant: Gregor: Has X servers
17:03:02 <Gregor> Deewiant: How did you know? >_O
17:03:05 <Gregor> elliott_: Yeah, no.
17:03:11 <Deewiant> VNC is a bit easier than that
17:03:13 <elliott_> And is also irrelevant unless you are targeting Rezzo at bad people
17:03:18 <ais523> hey, Gregor has a secret project too :)
17:03:18 <Deewiant> (Like me)
17:03:21 <elliott_> Surely there are programs that serve an X window via VNC
17:03:30 <elliott_> Thus making special support in Rezzo unnecessary
17:03:38 <Deewiant> x11vnc
17:03:43 <Phantom_Hoover> What is Rezzo?
17:03:52 <elliott_> Phantom_Hoover: WireWorld-based realtime programming game.
17:03:53 <Gregor> elliott_: I'm just using a VNC server library, it's not like it took any real implementation.
17:04:00 <elliott_> Gregor: Fair enough
17:04:11 <Gregor> Realtime programming: WRITE AND COMPILE THIS BOT WITHIN 60ms
17:04:18 <Phantom_Hoover> Oh god you're actually making that.
17:04:25 <Gregor> Phantom_Hoover: Making? Dood, it exists.
17:04:53 <elliott_> Phantom_Hoover: It's been made for like a week.
17:04:58 <elliott_> <Gregor> Realtime programming: WRITE AND COMPILE THIS BOT WITHIN 60ms
17:05:01 <elliott_> YESSSSSSSSSSSSS
17:05:01 <Gregor> Well, more like three days :P
17:05:14 <Phantom_Hoover> Gregor, where can I has?
17:05:23 <elliott_> Gregor: How did Rezzo become bitbucket
17:05:23 <Gregor> Phantom_Hoover: http://bitbucket.org/GregorR/rezzo
17:05:46 <Gregor> elliott_: Since I don't have Trac anymore because it's terribad, I'm kinda at a disadvantage hosting things on Codu >_>
17:05:50 <elliott_> Phantom_Hoover: Also http://codu.org/projects/rezzo/warriorhg/index.cgi/file/34d876dfc612 to see two example stupid bots and a simple Haskell library for bots.
17:05:54 <Gregor> elliott_: So I moved it *shrugs*
17:06:04 <elliott_> Gregor: It's not like bitbucket's essentials offer much more than hg's web UI :P
17:06:14 <Gregor> elliott_: Trac was offering my account signup :)
17:06:37 <Gregor> elliott_: (Which was terrible anyway since it wasn't integrated)
17:06:39 <elliott_> Who needs that :P
17:07:15 <Gregor> elliott_: I'm /building/ haskell-platform on my school computer because they don't provide it >_<
17:07:26 <Gregor> (Non-sequitur? I hardly knew 'er!)
17:07:39 <pikhq_> Aaaah, ~/local/
17:08:30 <elliott_> Gregor: You can probably just do GHC and cabal-install, really...
17:08:35 <elliott_> GHC has binary packages, cabal-install is easy.
17:08:38 <elliott_> At least that's what I do.
17:08:44 <elliott_> Haskell Platform is nice, but pointless as source :P
17:08:51 <Gregor> elliott_: Too late, already compilin'!
17:09:04 <elliott_> Gregor: Is this for the rezzo bots or do you just love Haskell now
17:09:11 <Gregor> elliott_: It's for the Rezzo bots.
17:09:21 <Gregor> Also it appears that make -j<foo> doesn't work with haskell-platform so that's pretty great.
17:09:25 <elliott_> If the latter, you've made your first mistake by not editing the build script and adding lines to generate Haddock documentation, and telling it to build profiling libraries
17:09:27 <elliott_> :P
17:09:32 <elliott_> Hmm, wait, that's cabal-install
17:09:37 <elliott_> haskell-platform might do that by default
17:09:40 <Gregor> Eight cores? *eh*
17:10:04 <Gregor> Oh, it's done
17:10:17 <elliott_> It's not big
17:10:40 <elliott_> Gregor: Also, no complaining about Haskell's toolchain, ex-D-user
17:11:00 <elliott_> 11:17:45: <Gregor> So, the ping on the Purdue network is at most 2ms.
17:11:00 <elliott_> 11:17:53: <Gregor> And each turn lasts 60ms.
17:11:01 <elliott_> 11:17:56: <Gregor> (In Rezzo)
17:11:01 <elliott_> 11:18:07: <Gregor> Therefore: Rezzo-net: BEST IDEA?
17:11:03 <elliott_> Gregor: SEKRIT, I see
17:11:16 <coppro> Gregor: 8 cores or 4 cores hyperthreaded?
17:11:25 <pikhq_> GHC at least works. :)
17:11:46 <Gregor> elliott_: TOTALLY SEKRIT
17:11:48 <Gregor> coppro: I actually don't know
17:11:51 <elliott_> coppro: They're practically equivalent, although probably not with compiling
17:12:17 <elliott_> 11:53:28: <Taneb|Kindle> Hello
17:12:17 <elliott_> 11:54:12: <Taneb|Kindle> Is there some sort of inverse to :t in Haskell
17:12:17 <elliott_> 11:57:23: <Taneb|Kindle> Anyone?
17:12:17 <elliott_> 12:00:48: <fizzie> What, you just give it a type and it gives you the expression you need?
17:12:19 <elliott_> 12:01:03: <fizzie> Now that'd be nice. You just write the type signatures, and it writes the program.
17:12:24 <pikhq_> elliott_: 'cept that it could be 8 cores hyperthreaded.
17:12:24 <elliott_> ?djinn (a -> b -> c) -> b -> a -> c
17:12:24 <lambdabot> f a b c = a c b
17:12:25 <derrik>
17:12:28 <derrik> :o
17:12:32 <elliott_> fizzie: Yes.
17:12:33 <elliott_> :p
17:12:48 <elliott_> ?hoogle b -> (a -> b) -> Maybe a -> b
17:12:48 <lambdabot> Prelude maybe :: b -> (a -> b) -> Maybe a -> b
17:12:48 <lambdabot> Data.Maybe maybe :: b -> (a -> b) -> Maybe a -> b
17:12:48 <lambdabot> Data.Generics.Aliases mkQ :: (Typeable a, Typeable b) => r -> (b -> r) -> a -> r
17:12:52 <elliott_> ?djinn b -> (a -> b) -> Maybe a -> b
17:12:52 <lambdabot> f a b c =
17:12:52 <lambdabot> case c of
17:12:52 <lambdabot> Nothing -> a
17:12:52 <lambdabot> Just d -> b d
17:12:55 <coppro> elliott_: what pikhq_ said. Also I want to know if I was working with fewer or more cores this summer (I had 6 hyperthreaded)
17:12:59 <Gregor> How can you tell if you hyperthreading from /proc/cpuinfo
17:13:06 <elliott_> Gregor: I don't think you can
17:13:12 <coppro> yeah you can
17:13:16 <coppro> core id
17:13:28 <coppro> if you have multiple processors with the same core id, you're hyperthreading
17:14:23 <Gregor> coppro: And how can you distinguish that from dual CPUs?
17:14:32 <coppro> Gregor: different physical ids
17:14:33 <Gregor> I'm fairly certain this is supposed to have dual quad-cores, but I don't rightly recall.
17:14:45 <Gregor> Oh, yup, there's physical id.
17:14:47 <Gregor> Yeah, dual quad-cores.
17:14:47 <coppro> my computer has the same physical id on both processors, but different core ids
17:14:51 <coppro> nice
17:14:51 <Gregor> No hyperthreading.
17:15:58 <Gregor> 'course, this is my school desktop, not my home system :P
17:19:47 <Gregor> elliott_: Also, since photons solved all my flag problems, I'm back to wondering if agents should be states >: )
17:20:00 <Gregor> Observation: We have 45 states. With agents as separate, we have /35/ states! :P
17:21:20 -!- derrik has quit (Quit: left).
17:24:09 <elliott_> 45 states? How did that happen
17:24:57 <Gregor> elliott_: 10*(agent, flag, base, flag geyser) + 5
17:25:42 <elliott_> Heh
17:25:46 -!- elliott_ has quit (Remote host closed the connection).
17:26:15 -!- elliott has joined.
17:29:12 <Gregor> elliott: Just think, if it was 10*(flag, base, flag geyser), that'd be SO MANY FEWER STATES!
17:30:01 <elliott> Gregor: And it'd change nothing since they're still sent and stored as bytes :P
17:30:28 <Gregor> elliott: FEWER - STATES
17:30:36 <elliott> Gregor: I WILL RIP U APART
17:31:31 <Gregor> elliott: And whittle my bones to make spears for stabbing four more people?
17:31:35 <elliott> Yes.
17:31:54 <elliott> Things that will never get old: The gigantic comment thread of people losing the will to live that inevitably follows anyone bringing up /r/picsofdeadkids.
17:34:11 <coppro> Sgeo: I talked to a friend about the game of life today; he pointed out that the problem is correctly generalized to the number of connected components of the state graph, and then our other question becomes a subquestion of "how many of these are cycles"
17:36:19 <Gregor> "Please use gtar rather than tar to unpack the tarball, as tar may have problems with filenames longer than 100 characters."
17:37:30 <elliott> Gregor: C'mon, 100 characters isn't very long
17:37:36 <elliott> That probably includes the directories
17:37:49 <Gregor> Yeah, probably, but it reads funny before you realize that :)
17:38:09 <elliott> Gregor: Anyway, HAVE I MENTIONED HOW TERRIBLE D'S TOOLCHAIN IS, GHC IS LIKE BEING GIFTED THE URINE OF AN ANGEL TO BATHE IN IN COMPARISON
17:38:17 <elliott> That's... that's some analogy, how did I think of that.
17:38:34 <Gregor> D's toolchain is pretty bad, but if you recall, I abandoned D.
17:38:38 <Gregor> Because it's a megamess.
17:38:45 <elliott> Gregor: You used D for, like, SEVERAL YEARS
17:38:49 <elliott> The MARK CANNOT BE ERASED
17:39:02 <Gregor> elliott: I'll remind you of this conversation when you abandon Haskell :P
17:39:28 <pikhq_> # mount -t httpfs http://reddit.com/ /r/
17:39:29 -!- CakeProphet has joined.
17:39:29 -!- CakeProphet has quit (Changing host).
17:39:29 -!- CakeProphet has joined.
17:39:42 <CakeProphet> pointers to lambda calculi are pretty useful too
17:40:00 <elliott> Gregor: "When"
17:40:06 <elliott> Gregor: That will be when @ is up and running
17:40:12 <elliott> Or, I guess, Epigram turns out FAST AND PRACTICAL AND EASY
17:40:16 <elliott> Which is never going to happen
17:40:28 <pikhq_> Gregor: To be fair, few languages are both typically compiled and have *sane, reasonable* toolchains.
17:40:30 <CakeProphet> elliott turns to C
17:40:41 <elliott> CakeProphet: I'm not Gregor, I'm not an idiot.
17:40:53 <pikhq_> The typical C toolchain is actually pretty awful.
17:41:04 <elliott> Gregor: Anyway, compare the GHC toolchain to the gcc toolchain :P
17:41:06 <Gregor> GCC is the typical C toolchain :P
17:41:06 <elliott> pikhq_: Snap :P
17:41:12 <CakeProphet> elliott discovers the joys of Visual Basic
17:41:15 <pikhq_> It just has had a lot of effort go into making it work.
17:41:16 <elliott> Yes, and gcc's build process is fucking awful.
17:41:17 <pikhq_> Barely.
17:41:34 <Gregor> GCC's build process is ... crufty.
17:41:41 <pikhq_> That's putting it lightly.
17:41:52 <Gregor> It's more about shifting blame :P
17:41:54 <pikhq_> GCC's build process is... Broken.
17:42:29 <pikhq_> And installs libiberty.
17:42:31 <elliott> Whereas GHC's supports configure-make-install, has easily-available binary distributions for many platforms that can be easily used just to bootstrap without lots of installation hell, has a flexible but simple plain-text configuration system to customise the building of the base libraries... :P
17:42:36 <elliott> How do gcc devs actually do it anyway
17:42:38 <pikhq_> Without headers.
17:42:41 <elliott> I can't imagine using that multiple times an hour
17:43:12 <pikhq_> So any program that wants to use libiberty needs to include a copy *anyways*.
17:43:33 <pikhq_> Of course, the only other programs doing that are binutils and gdb.
17:43:47 * Gregor lolols
17:43:54 <pikhq_> Each of which installs libiberty.
17:44:10 <CakeProphet> elliott goes underground in his late teenaged years and switches to ML, only to turn to the darkside and succumb to F# in his early twenties.
17:44:11 <pikhq_> Oh, did I happen to mention that you can't package libiberty itself?
17:44:26 <elliott> CakeProphet: using windows is definitely a thing i am likely to do
17:44:43 <CakeProphet> I believe Mono can run any .NET language.
17:45:03 <pikhq_> But not necessarily build.
17:45:13 <CakeProphet> ah, yeah I'm not so sure about that.
17:49:53 -!- oerjan has joined.
17:52:22 <CakeProphet> elliott: I would wager that you will use Windows multiple times in the future out of circumstance
17:52:34 <oerjan> <Taneb|Kindle> Is there some sort of inverse to :t in Haskell
17:52:38 <oerjan> also @djinn
17:52:51 <oerjan> but that won't help you find the names
17:52:51 <elliott> oerjan: hey
17:52:53 <fizzie> oerjan: Also "joor tuu late", Deewiant already.
17:52:54 <elliott> i did that first
17:52:56 <elliott> shitey :(
17:52:59 <elliott> fizzie: NO I DID
17:53:00 <elliott> ALREADY
17:53:01 <elliott> I DID FIRST
17:53:01 <elliott> OK
17:53:04 * elliott stabbes
17:53:05 <oerjan> *MWAHAHAHA*
17:53:06 <Deewiant> Wrong
17:53:08 <elliott> im kil
17:53:09 <elliott> Deewiant: well
17:53:14 <elliott> Deewiant: you don't count because you're a bad person
17:53:18 <oerjan> why stabbest thou so fierce
17:53:24 <CakeProphet> @djinn Maybe t -> Int
17:53:24 <lambdabot> Error: Undefined type Int
17:53:26 <elliott> because Deewiant is a bad person
17:53:28 <Deewiant> What's my latest infraction
17:53:30 <elliott> ?djinn Maybe a -> Integer
17:53:30 <lambdabot> Error: Undefined type Integer
17:53:33 <elliott> Oh, duh
17:53:35 <elliott> Integer is recursive
17:53:37 <elliott> ?djinn-env
17:53:37 <lambdabot> data () = ()
17:53:38 <lambdabot> data Either a b = Left a | Right b
17:53:38 <lambdabot> data Maybe a = Nothing | Just a
17:53:38 <lambdabot> data Bool = False | True
17:53:38 <lambdabot> data Void
17:53:39 <lambdabot> type Not x = x -> Void
17:53:41 <lambdabot> class Monad m where return :: a -> m a; (>>=) :: m a -> (a -> m b) -> m b
17:53:43 <lambdabot> class Eq a where (==) :: a -> a -> Bool
17:53:51 <elliott> it has monads? huh.
17:53:53 <elliott> ?djinn Not (Not p) -> p
17:53:53 <lambdabot> -- f cannot be realized.
17:54:06 <elliott> ?djinn Either p (Not p) -> Not (Not p) -> p
17:54:06 <lambdabot> f a b =
17:54:06 <lambdabot> case a of
17:54:06 <lambdabot> Left c -> c
17:54:06 <lambdabot> Right d -> void (b d)
17:54:19 <elliott> ?djinn (Monad m) => m Bool -> m () -> m ()
17:54:19 <lambdabot> f _ a = a
17:54:22 <elliott> Lame :P
17:54:29 <elliott> ?djinn (Monad m) => m Bool -> m a -> m b -> m (Either a b)
17:54:29 <lambdabot> -- f cannot be realized.
17:54:33 <elliott> o_O
17:54:56 <CakeProphet> looks like it needs some work.
17:54:59 <Deewiant> ?djinn (Monad m) => m a -> m b -> m (Either a b)
17:54:59 <lambdabot> -- f cannot be realized.
17:55:05 <Deewiant> ?djinn (Monad m) => a -> b -> (Either a b)
17:55:05 <lambdabot> f a _ = Left a
17:55:10 -!- cheater has quit (Remote host closed the connection).
17:55:18 <elliott> Deewiant: Nice useless context :P
17:55:26 <Deewiant> Less typing to not remove it
17:55:50 -!- cheater has joined.
17:56:18 <CakeProphet> @djinn (Monad m) => (a -> b -> Either a b) -> m a -> m b -> m (Either a b)
17:56:18 <lambdabot> -- f cannot be realized.
17:56:44 <oerjan> too bad Taneb probably didn't see any of this
17:56:45 <Deewiant> @djinn (Monad m) => m a -> (a -> m b) -> m b
17:56:45 <lambdabot> f = (>>=)
17:57:09 <elliott> :t (>=>)
17:57:09 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
17:57:15 <elliott> ?djinn (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
17:57:15 <lambdabot> -- f cannot be realized.
17:57:19 <elliott> lol
17:57:32 <elliott> 16:07:37: <Gregor> Whoaaaaaaaaaaaaaaaaaaaaaaaaaah compiled GHC programs don't depend on a libghc.lol
17:57:32 <elliott> 16:07:40: <Gregor> *mind blown*
17:57:33 <oerjan> he probably needed some -> Monad stuff
17:57:37 <elliott> Gregor: How does this surprise you :P
17:57:46 <oerjan> which won't show up with either hoogle or djinn, i suspect
17:57:51 <elliott> 16:09:25: <Gregor> Deewiant: Well, they're not /fully/ statically linked, just the GHC parts are.
17:57:51 <elliott> Well, also every Haskell library used
17:57:55 <elliott> 16:09:42: <Gregor> And unfortunately, it doesn't seem like there exists any voodoo to make a fully-statically linked binary.
17:57:57 <elliott> Gregor: There is.
17:57:58 <Deewiant> @djinn (Monad m) => (a -> m b) -> (m b -> m c) -> m a -> m c
17:57:58 <lambdabot> f a b c = b (c >>= a)
17:58:04 <elliott> Gregor: -optl-static -optl-pthread should do it.
17:58:12 <elliott> 16:13:49: <Gregor> ghc --make -O2 -optl-static -optl-lpthread tantrum.hs
17:58:12 <Gregor> elliott: I already figured that out :P
17:58:13 <elliott> Yep.
17:58:19 <elliott> Not -lpthread
17:58:19 <elliott> -pthread
17:58:25 <Gregor> elliott: I didn't know if it used gcc or ld.
17:58:28 <Deewiant> elliott: You need to read the entire logs before going all mass-pingy
17:58:38 <elliott> Deewiant: I will when oerjan does :)
17:59:01 <CakeProphet> I know you are but what am I?
17:59:49 <oerjan> ?hoogle (b -> c -> a) -> (b -> c) -> b -> a
17:59:49 <lambdabot> Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
17:59:50 <lambdabot> Data.Data gmapQl :: Data a => (r -> r' -> r) -> r -> (d -> r') -> a -> r
17:59:50 <lambdabot> Control.Parallel.Strategies parZipWith :: Strategy c -> (a -> b -> c) -> [a] -> [b] -> [c]
18:00:06 <oerjan> no sign of ap or <*> there
18:00:50 <oerjan> what's the w combinator he was talking about?
18:00:57 <elliott> Can Hoogle specialise on instances like that?
18:01:11 <elliott> oerjan: Wxy = xyy from the BCKW system
18:01:14 <Deewiant> W = join
18:01:17 <elliott> So, join
18:01:19 <oerjan> elliott: apparently not
18:01:19 <elliott> But Control.Arrow
18:01:22 <elliott> So define it yourslef :P
18:01:34 <Deewiant> join is Control.Monad
18:01:38 <elliott> Oh, duh
18:01:43 <elliott> I was confusing it with both
18:01:50 <elliott> Yeah, join is it
18:02:13 <Deewiant> both isn't in Control.Arrow :-P
18:02:22 -!- MDude has quit (Ping timeout: 245 seconds).
18:02:31 <elliott> True :P
18:02:57 <oerjan> oh heh Deewiant already managed to get lambdabot to give join by combining @djinn with @pl
18:03:22 <oerjan> so indeed @pl may be the better answer here
18:03:33 <elliott> Heh
18:04:02 <CakeProphet> I would like to have pl in TH.
18:04:02 <Deewiant> The myriad uses of @pl
18:04:46 <elliott> w = $(pl [| \x y -> x y y |])
18:04:52 <elliott> All the benefits of point-free code with all the readability of pointful code
18:05:07 <CakeProphet> >_> something like that...
18:05:17 <pikhq_> elliott: Per POSIX, "-pthread" is not an option. -lpthread, however, shall make pthreads work.
18:05:38 <elliott> GHC is not bound by POSIX
18:05:46 <pikhq_> Bleh, true.
18:05:57 <elliott> And -lfoo doing something special other than linking foo is gross :P
18:06:27 <pikhq_> It shouldn't do anything other than linking pthreads in. Not my fault that the toolchain requires something special. :P
18:06:44 <Deewiant> What /does/ the toolchain require?
18:07:17 <elliott> pikhq_: have you heard the hilarious thing? glibc's aio_ functions are implemented in userspace using pthreads and blocking io
18:07:18 <CakeProphet> elliott: except I don't think there are actually any benefits to using pointfree code other than when it provides more concise code. so pl in TH kind of defeats the point(lessness)
18:07:19 <elliott> isn't that hilarious
18:07:24 <elliott> CakeProphet: WHOOSH
18:07:26 <CakeProphet> this is probably what you were getting at.
18:07:53 <pikhq_> elliott: ... The fuck.
18:08:11 <elliott> pikhq_: There ARE syscalls in linux for asynchronous IO... guess what they don't work on?
18:08:12 <elliott> Sockets.
18:08:17 <elliott> They work only on certain filesystems.
18:08:23 <elliott> Database people: FUCK THEM???
18:08:59 <oerjan> <ais523> hey, Gregor has a secret project too :)
18:09:01 <pikhq_> Oh, hey, it's valid to require other flags for POSIX threads...
18:09:13 <oerjan> maybe you are accidentally working for the same evil overlord.
18:09:21 <ais523> oerjan: oh no, you quoting a line of mine makes me fear an awful incoming pun
18:09:21 <pikhq_> c99 `getconf POSIX_V7_THREADS_CFLAGS` -lpthread
18:09:23 <ais523> directed right at me
18:09:47 <oerjan> ais523: wasn't a pun. though a joke.
18:10:04 <CakeProphet> oerjan is the puncerer.
18:13:42 <pikhq_> Guess what's not supported here?
18:13:57 <pikhq_> POSIX fail!
18:14:20 -!- Slereah has quit (Read error: Connection reset by peer).
18:15:49 <oerjan> <elliott> Things that will never get old: The gigantic comment thread of people losing the will to live that inevitably follows anyone bringing up /r/picsofdeadkids.
18:16:04 <oerjan> ah, so it's secretly a project for population control?
18:16:18 <pikhq_> In *theory*, if getconf _POSIX_THREADS works, getconf POSIX_V7_THREADS_CFLAGS will work.
18:16:30 <ais523> oerjan: why do people follow the link?
18:16:40 <ais523> it seems like it's accurately described and a little pointless to follow
18:16:40 <Deewiant> That V7 seems ominous
18:16:41 <oerjan> i dunno. i certainly don't...
18:16:54 <elliott> ais523: lemmings may not actually jump off cliffs, but redditors do
18:17:00 <Deewiant> Only pointless if you don't want to look at the pics
18:17:17 <elliott> X-D
18:17:24 <elliott> "Finally, the subreddit I've been waiting for!"
18:17:37 <Deewiant> Well, I'm sure it exists for a reason
18:17:51 <Deewiant> You know, find a need and fill it
18:18:04 <ais523> you know what would be funny? a completely empty shock site
18:18:21 <ais523> people would only know it was a shock site because you'd post prominent warnings on all the links to it you could find
18:18:32 <ais523> warning people to not click the link
18:18:47 <elliott> Shock sites are really lame, I'm surprised that they actually manage to shock most people
18:18:57 <elliott> I guess they don't really any more
18:19:36 <ais523> elliott: I know I saw an argument that the really shocking thing was that so many people were desensitized to that sort of thing
18:20:22 <elliott> I don't really see how you can not be desensitised to goatse, maybe I'm just not a very good reference point :P
18:20:53 <Deewiant> Not everybody browses the web like you do
18:21:45 <ais523> I assume that elliott's default is to click on links rather than not click on them?
18:21:50 <ais523> as in, a link presented without context
18:22:15 <elliott> Yep :P
18:22:38 <elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:22:40 <ais523> elliott: I've been known to google backlinks on links before following them
18:23:15 <Deewiant> elliott: Rather easily, I would imagine
18:23:16 -!- cheater has quit (Remote host closed the connection).
18:23:18 <elliott> Hmph, I crafted that specifically to get addquoted
18:23:22 <elliott> I'm disappointed in you all
18:23:34 <Deewiant> I'm disappointed in you for trying to game the system
18:23:41 <oerjan> my policy for reddit comments, which seems to be working so far, is not to click on any picture link with less than +2 karma
18:23:55 <oerjan> ...or with shocked replies, of course
18:23:57 <Deewiant> +2 seems dangerously low
18:24:01 <CakeProphet> `addquote < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:05 <HackEgo> 617) < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:23 <ais523> CakeProphet: you actually made me very gently facepalm, there
18:24:24 <oerjan> Deewiant: well i may usually go a bit higher
18:24:24 <elliott> CakeProphet: YOU VIOLATED THE RULES
18:24:25 <Deewiant> CakeProphet: I'm disappointed in you for playing into his game
18:24:28 <elliott> HRGHRGHRNGHRGNHRGNRHGNHRGNHRGNHRGHRNGHRGNRHGNRGNRHGNRG
18:24:29 <elliott> HRGNHRGNHRNHRGNHRGN
18:24:31 <elliott> RGHRNGHRNGHRNGHRNGHRNGHRGRHNNRGNHRGHRNGHRG
18:24:32 <elliott> RGHRNGHRNG
18:24:34 <CakeProphet> wat
18:24:35 <ais523> as in, I didn't really feel it
18:24:38 <elliott> `run sed -i 's/< ell/<ell/' quotes
18:24:39 <HackEgo> No output.
18:24:40 <elliott> `quote gaping
18:24:41 <ais523> but my face and palm were definitely in context
18:24:43 <HackEgo> 617) < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:46 <elliott> HOIRHOIRhIORHIORHIOrhorh
18:24:46 <ais523> *in contact
18:24:48 <elliott> RGHRNGHRNG
18:24:50 <elliott> `quote gaping
18:24:52 <HackEgo> 617) <elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:55 <elliott> smilse
18:25:05 <CakeProphet> what rule?
18:25:23 <elliott> CakeProphet: The Inviolable Formatting Rules of the Quotes Database as established by Archivist Pope Elliott I
18:25:30 <ais523> `addquote < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:25:32 <HackEgo> 618) < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:25:36 <elliott> `delquote 618
18:25:37 <elliott> That's why
18:25:39 <HackEgo> ​*poof*
18:25:40 <CakeProphet> oh yeah the copypasta autosent because it had a linefeed in it and irssi is lame like that.
18:25:56 <Deewiant> ais523: Because elliott reads all the logs and double-checks, I would imagine
18:26:02 <Deewiant> You'd have to do that when he's not around to be sure
18:26:22 <elliott> :D
18:26:43 <elliott> CakeProphet: The rules are: No quote shall be misrepresented by edits not marked with a [...]; Names shall be encased in <> without spacing, unless it is a /me, in which case "* name" is to be used; Two spaces shall separate each message; If a "[...]" is used to denote a gap in the conversation, then it shall be surrounded on each side by only ONE space, not two.
18:26:47 <elliott> I think that's all of 'em :P
18:27:13 <ais523> `addquote <ais523> < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:27:15 <HackEgo> 618) <ais523> < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:27:16 <Deewiant> What if the message contains [..]
18:27:19 <Deewiant> [...]*
18:27:22 <ais523> elliott: I believe that follows all your rules
18:27:33 <elliott> ais523: no
18:27:35 <elliott> ais523: You never said that
18:27:40 <ais523> yes I did
18:27:41 <elliott> You need to add the `addquote
18:27:47 <elliott> Or a [...] at the start
18:28:01 <ais523> none of your rules state that
18:28:14 <elliott> "No quote shall be misrepresented by edits not marked with a [...]"
18:28:16 <Deewiant> elliott: Are you assuming that no quotable message contains [...]
18:28:17 <ais523> there's no "a quote must be an entire line"
18:28:20 <oerjan> elliott: your seds look a little dangerous, i wonder if any have misapplied yet
18:28:21 <elliott> An edit to omit parts of a message is an edit
18:28:23 <ais523> thus, I can quote part of a line
18:28:27 <elliott> `delquote 618
18:28:29 <HackEgo> ​*poof*
18:28:33 <elliott> Too bad this nomic has a dictator
18:28:39 <elliott> oerjan: Well, they can always be reverted and diffs are available:
18:28:40 <elliott> `help
18:28:41 <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/
18:28:42 <oerjan> i had to check you ion -> ino the other day
18:28:46 <oerjan> *your
18:28:50 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/rev/0dcd11855414
18:29:02 <elliott> I guess we should have something to run sed on only a single quote
18:29:20 <elliott> "least one"
18:29:22 <elliott> Was that double space there...
18:29:34 <elliott> No, it wasn't
18:29:39 <elliott> `run sed -i 's/least one/least one/g' quotes
18:29:41 <HackEgo> No output.
18:29:46 <Deewiant> sed -i $(wc -l quotes)'s/foo/bar/' quotes
18:29:58 <olsner> but sed already has that, just do N,N s/foo/bar/ where N is the line number
18:30:01 <elliott> Deewiant: Cute
18:30:18 <elliott> I guess that'll work if I can remember it :P
18:31:01 <Deewiant> You can also, you know, add a script file and then say `run muckaroundwiththelastquoteonly s/foo/bar/
18:31:39 -!- GuestIceKovu has joined.
18:31:48 <elliott> Deewiant: That was what I meant: <elliott> I guess we should have something to run sed on only a single quote
18:31:58 <oerjan> `quote universum
18:32:00 <HackEgo> 27) IN EINEM ALTERNATIVEN UNIVERSUM (WO DIE NAZIS WON): <ehird> So kann ich nur schliessen, dass es falsch ist, oder die Welt ist vollig BONKERS. Gegrusset seist du der Fuhrer Hitler!
18:32:02 <elliott> But then olsner was already WE ALREADY HAVE THAT
18:32:09 <oerjan> elliott: BREAKS YOUR RULES
18:32:23 <Deewiant> elliott: I thought you meant my solution
18:32:24 * oerjan cackles evilly
18:32:25 <elliott> oerjan: If you specify a context in all capitals before a quote it's acceptable
18:32:31 <Deewiant> Which is the same thing but it calculates N for you
18:32:36 <elliott> Also if it's sufficiently funny it can break the rules related to integrity (but not the formatting ones)
18:32:43 <olsner> oh yuck, this story has a frame story with an old person telling his life story ... in other words it is exactly like titanic
18:32:54 <oerjan> the space of rules is a universe to itself, as proven by the fact it is expanding
18:32:55 <elliott> Literally the only characteristic of Titanic
18:33:00 <oerjan> *onto
18:33:01 <elliott> oerjan: :P
18:33:55 <oerjan> oh wait it's *unto
18:34:02 <CakeProphet> rule 1: Archivist Pope has final say.
18:34:09 <CakeProphet> rule 2: there are no other rules
18:34:57 <elliott> Yes, that.
18:35:46 <CakeProphet> `addquote MEANWHILE IN ANOTHER CONTEXT: buh huh huh huh dicks
18:35:48 <HackEgo> 618) MEANWHILE IN ANOTHER CONTEXT: buh huh huh huh dicks
18:36:17 <CakeProphet> breaks the sufficiently funny clause I'd imagine.
18:36:25 * CakeProphet sees what happens.
18:36:45 -!- myndzi\ has quit (Ping timeout: 268 seconds).
18:36:52 <CakeProphet> \o/
18:37:22 <elliott> `delquote 618
18:37:24 <HackEgo> ​*poof*
18:37:31 <CakeProphet> WHAT? UNTHINKABLE.
18:39:03 -!- myndzi has joined.
18:39:15 <CakeProphet> AS AN AMERICAN I AM AMAZED BY THIS WANTON DISREGARD FOR CIVIL LIBERTIES, PERPETRATED AND PERPETUATED BY ENGLISH ARCHIVAL POPES.
18:39:56 <CakeProphet> \o/
18:39:57 -!- cheater has joined.
18:39:57 <myndzi> |
18:39:57 <myndzi> |\
18:40:54 <elliott> http://morepypy.blogspot.com/2011/08/we-need-software-transactional-memory.html
18:40:59 <elliott> IN A MUTABLE LANGUAGE?????? GOOD LOOK HAHAHAHAHA
18:41:43 * oerjan mutates elliott's LOOK into LUCK
18:41:50 <olsner> "For the purpose of the present discussion, we are comparing Java with Python when it comes to multi-threading." ... epic battle between herp and derp?
18:42:45 <oerjan> derpetology
18:43:36 <oerjan> ...top hit is the reddit user name
18:45:05 <oerjan> looks like one of the big guys
18:45:10 -!- oklopol has quit (Ping timeout: 252 seconds).
18:45:58 <olsner> herpetology has a wikipedia article and an xkcd strip
18:46:37 <oerjan> CakeProphet: #esoteric is clearly run according to esoteric rules, which means chinese. expect a certain disregard.
18:46:57 <oerjan> olsner: well duh how do you think i thought of the other one :P
18:47:45 <oerjan> CLEARLY YOU HAVE DERPES INFECTING YOUR BRAIN
18:48:29 <olsner> HERP DERPES?
18:49:08 <oerjan> the top hit for that being urban dictionary
18:49:51 <ais523> it's possibly more interesting as to what the bottom hit is
18:49:58 <ais523> I wonder if there's any easy way to find out for a popular search
18:50:04 <CakeProphet> !wacro
18:50:07 <EgoBot> RSPPW
18:51:23 <oerjan> for being supposedly based on dictionary frequencies, !wacro looks strangely unpronouncable
18:51:28 <elliott> ais523: Google results never seem to end
18:51:37 <elliott> ais523: it seems like their number of results counts are completely fabricated, too
18:51:40 <ais523> yep
18:51:54 <CakeProphet> oerjan: it doesn't try to make the acronym pronouncable.
18:51:57 <ais523> for a mid-popularity keyword, they'll randomly end quite a large distance from where Google claim they do
18:52:00 <elliott> ISTR some way to get a list of "all pages" from Google, where it basically just listed popular sites for pages and pages
18:52:06 <elliott> something like -sdjfosjfidsfoijsdf or the like
18:52:08 <elliott> or maybe +""
18:52:08 <CakeProphet> just bases the letter choice on characters that commonly start English words.
18:52:35 <oerjan> elliott: sometimes you suddenly hit the last page and then the count becomes accurate. iirc.
18:52:49 <elliott> heh
18:53:02 <elliott> I wonder how many people actually look at the results counts outside of Googlefight type stuff?
18:53:45 <CakeProphet> Runtime Sorted Preprocessor Widget
18:53:53 <CakeProphet> >_>
18:53:55 -!- calamari has joined.
18:53:56 <oerjan> i assume that the number of result counts for popular searches is just a statistical estimate
18:53:59 <CakeProphet> !wacro
18:53:59 <EgoBot> DIPWPC
18:54:12 <elliott> oerjan: I bet they just make it up based on the commonness of some of the words
18:54:20 <elliott> oerjan: remember that they optimise time to results page over almost everything else
18:54:26 <elliott> apart from the quality of the top results
18:54:30 <Gregor> lolol STM in Python.
18:54:31 <oerjan> which probably assumes the frequency of the words is uncorrelated, and so fails horribly if they aren't.
18:54:34 <elliott> they don't have _time_ to get an accurate result count
18:54:35 <Gregor> Now to be renamed to Slowthon.
18:54:37 <CakeProphet> I suppose I could make a more sophsticated acronym generator that attempts to make pronouncable words.
18:54:38 <elliott> and I doubt anyone cares
18:54:43 <elliott> Gregor: Uhh, have you /seen/ PyPy?
18:54:47 <elliott> Gregor: They're competitive with C.
18:54:48 <oerjan> elliott: well yes that's what i mean by statistical estimate
18:54:52 <Gregor> elliott: Not with STM they ain't.
18:54:56 <elliott> Gregor: Well, yeah.
18:55:00 <elliott> Gregor: STM can be fast, btw.
18:55:03 <elliott> Gregor: Just not with mutability.
18:55:12 <elliott> Or, well, maybe it can be fast with mutability, but nobody knows how.
18:55:17 <Gregor> Bingo
18:55:24 <elliott> But who cares, mutability sucks :-P
18:55:27 <elliott> oerjan: right
18:55:33 <Gregor> elliott: I'll mutate your face
18:55:34 <CakeProphet> so that vowels come after consonants (allowing for the possibility of things like SH, TH, and such)
18:55:47 <elliott> Gregor: I would really like to see them make an immutable subset of Python so they can have fast STM :P
18:56:04 <elliott> Gregor: The only thing PyPy is missing to make it one of the most amazing things ever is a decent language.
18:56:04 <CakeProphet> lolnothappening
18:56:05 <erytssiN> I would tend to disagree with that viewpoint
18:56:14 <elliott> Which viewpoint
18:57:00 <CakeProphet> all of your viewpoints.
18:57:38 <oerjan> lol no way
18:57:38 <erytssiN> I would tend to disagree with that viewpoint
18:57:44 <elliott> lol no way
18:57:45 <erytssiN> I would tend to disagree with that viewpoint
18:57:54 <elliott> oerjan: it's not entertaining like myndzi, how about kicking it
18:57:58 <CakeProphet> lol dongs
18:58:03 <elliott> I don't think Nisstyre has ever said anything :P
18:58:04 <CakeProphet> lol no
18:58:04 <erytssiN> I would tend to disagree with that viewpoint
18:58:15 <CakeProphet> lol yes
18:58:16 <oerjan> elliott: well it's not like we say "lol no" _that_ often
18:58:17 <erytssiN> I would tend to disagree with that viewpoint
18:58:26 <elliott> oerjan: lol no. of course we do.
18:58:26 <erytssiN> I would tend to disagree with that viewpoint
18:58:37 <CakeProphet> lol yes I say lol no quite a bit actually.
18:58:37 <erytssiN> I would tend to disagree with that viewpoint
18:58:38 <elliott> I'm going to put lol no in all my messages until erytssiN is +q :P
18:58:47 <elliott> lol not going to say it that time erytssiN?
18:58:51 <elliott> o_O
18:58:52 <elliott> lol no
18:58:52 <CakeProphet> lol no, don't do that.
18:58:56 <erytssiN> I would tend to disagree with that viewpoint
18:58:57 <erytssiN> I would tend to disagree with that viewpoint
18:59:01 <elliott> oh goody
18:59:05 <CakeProphet> must be written in Python.
18:59:07 <oerjan> lol no erytssiN
18:59:10 <elliott> CakeProphet: lol
18:59:11 <oerjan> thought so
18:59:17 <elliott> oerjan: it's rate-limited, I think
18:59:21 <oerjan> lol no
18:59:25 <oerjan> or is it
18:59:32 <elliott> lol n
18:59:32 <oerjan> ok then
18:59:32 <elliott> o
18:59:34 <elliott> lol no
18:59:34 <elliott> lol no
18:59:34 <elliott> lol no
18:59:34 <elliott> lol no
18:59:36 <elliott> lol no
18:59:38 <elliott> lol no
18:59:40 <elliott> let's find out
18:59:49 <CakeProphet> lol yes it is.
19:00:09 <elliott> lol no
19:00:13 <oerjan> elliott: ok then, i said. i just had the temporary alternative interpretation that it checked for its own nick
19:00:14 <elliott> lol no way
19:00:20 <elliott> oerjan: ok :P
19:00:35 <erytssiN> it only gets triggered on channel messages
19:00:39 <erytssiN> highlights don't trigger it
19:00:42 <erytssiN> also I stopped it
19:00:57 <CakeProphet> elliott: by the way whenever I have a spare moment from freelancing and classes and doing nothing (read: never) my Rezzo warrior will become an unstoppable force of cellular automatonic nature.
19:01:13 <CakeProphet> IT HAS THE POWER OF /REGULAR EXPRESSIONS/
19:01:37 <elliott> CakeProphet: I'm literally going to write the best Rezzo warrior once Gregor decides wtf is going on with it :P
19:01:41 * CakeProphet wiggles fingers and mouths "oooooh"
19:01:45 <olsner> CakeProphet: so you did write it in sed then? :D
19:01:49 <CakeProphet> no Perl.
19:01:57 <CakeProphet> WHICH IS NOTHING LIKE SED OR AWK FUCK YOU.
19:02:05 <elliott> My motivation for this seems to be proving Gregor how WRONG he is for DISMISSING HASKELL AS BEING NOT THE BEST LANGUAGE EVER.
19:02:06 <CakeProphet> well "nothing like" is a untrue.
19:02:10 <elliott> (lol @lang is so much better)
19:02:14 <olsner> perl is like sed with added useless features
19:02:19 <Gregor> elliott: I'm extremely glad to see that motivation :P
19:02:22 <elliott> CakeProphet: Perl is literally extended awk with some features from sed
19:02:25 <Gregor> Or any other motivation.
19:02:30 <CakeProphet> elliott: nope.
19:02:31 <elliott> There's no argument, that's literally what Wall did :P
19:02:32 <elliott> Yes.
19:02:35 <elliott> Perl is an awk derivative.
19:02:40 <CakeProphet> true.
19:02:40 <elliott> If you disagree, you are wrong.
19:02:49 <elliott> It also borrows several constructs from sed.
19:02:54 <elliott> It has influence from C, but that comes via awk.
19:03:01 <elliott> It has a few pieces of sh because Wall has terrible taste.
19:03:04 <elliott> But really it's awk++ + sed.
19:03:08 <elliott> Which ends up being worse than awk, mind you :P
19:03:28 <CakeProphet> but it is not awk. it is a wholly separate thing at this point.
19:03:29 <pikhq_> It's awksedsh.
19:03:45 <olsner> awkshed
19:03:56 <Gregor> How awkward.
19:04:16 <olsner> perl - like awk but further awkward
19:04:17 <pikhq_> CakeProphet: It's an awk derivative. Even if it is not literally a POSIX awk.
19:04:21 <elliott> Gregor: So should I just move the warriors repo somewhere myself since I'm the only one who uses it :P
19:04:39 <pikhq_> Just like D is a C derivative even if it is not literally an ISO C99 implementation.
19:04:41 <olsner> or farther awkward
19:04:44 <Gregor> elliott: Maybe *shrugs*
19:04:46 <elliott> C is a D derivative, yo
19:04:49 <elliott> pikhq_: More like a C++ derivative
19:04:57 <elliott> Gregor: It will end up in either darcs or git if you tell me to do that :P
19:05:00 <CakeProphet> pikhq_: right. same could be said about C -> C++
19:05:00 <Gregor> elliott: Idonno, I think it'd be nice to have a central repo for those who like Sharing.
19:05:07 <pikhq_> CakeProphet: Quite.
19:05:15 <elliott> I agree, but it'd also be nice to have it in something that isn't hg :)
19:05:35 <Gregor> elliott: It'd be nice to have it somewhere where people can actually register accounts :P
19:05:51 <elliott> Gregor: I really don't think Rezzo will ever be so popular as to make the workload on you unreasonable.
19:05:58 <elliott> Gregor: I'd probably just move it to GitHub though :P
19:06:01 <elliott> Because all the darcs hosts suck.
19:06:07 <CakeProphet> but yeah point is I'm going to mutate your pretty Haskell code.
19:06:13 <CakeProphet> with mutations.
19:06:15 <CakeProphet> lots of them.
19:06:16 <elliott> I guess darcsden may be tolerable nowadays, but meh
19:06:26 <elliott> Gregor: You'll move everything to sgpen when it exists, right?
19:06:36 <elliott> The ONLY distributed, open-source Scapegoat host.
19:06:42 <Gregor> elliott: Maybe not "everything", I've got a bunch of stupid projects I haven't updated in years :P
19:07:18 <elliott> I really really like how sg's model basically supports copy-on-write forks out of the box :P
19:07:25 <elliott> You just need a separate branch-information cache for each repository.
19:07:29 <elliott> Which is tiny.
19:07:50 <Gregor> Anyway, I'm not enormously picky, since indeed you are the only one using it.
19:08:20 <elliott> I think I'll convert the build system for the Haskell stuff to cabal, since the "remake the library every time to avoid file clutter" solution sucks.
19:08:41 <elliott> real URL is https://bitbucket.org/GregorR/rezzo/
19:08:41 <elliott> abort: 'https://codu.org/projects/rezzo/hg/' does not appear to be an hg repository!
19:08:44 <elliott> Pro.
19:08:45 -!- calamari has left ("Leaving").
19:08:54 <elliott> How do I tell hg the repo's moved :P
19:09:56 <Deewiant> You can always edit .hg/hgrc
19:10:43 <elliott> Thanks
19:10:50 <Gregor> elliott: Idonno why, but that changeover seems to work on some hgs but not others >_>
19:10:53 <elliott> Why do people think hg's UI is intuitive :-P
19:11:00 <elliott> git has confused me a lot less, despite all its warts
19:11:07 <Gregor> elliott: That is, just having it be an http redirect.
19:11:10 <elliott> (But really literally every VCS' interface should be exactly darcs.)
19:11:12 <CakeProphet> elliott: because that's how intuition works.
19:11:17 <elliott> Gregor: Mercurial Distributed SCM (version 1.6.3)
19:11:20 <CakeProphet> not very coherently.
19:11:25 <Deewiant> elliott: Mercurial Distributed SCM (version 1.9.1)
19:11:31 <Gregor> Yeah, I'm on 1.9.1
19:11:37 <elliott> w/e :P
19:11:41 <elliott> Gregor: This substrate looks different
19:11:48 <Gregor> elliott: Damn rite :P
19:11:52 <elliott> Are wires still walls?
19:11:54 <Gregor> elliott: Yes.
19:11:57 <elliott> Good.
19:12:03 <elliott> How has the protocol changed?
19:12:10 <Gregor> elliott: Only the new states.
19:12:19 <elliott> Got a list? :P
19:12:23 <Gregor> elliott: README
19:12:38 <elliott> Is README.agents up to date?
19:12:44 <elliott> s/to date/to date/
19:12:46 <CakeProphet> Gregor: was that also in caps because you were screaming it?
19:12:53 <CakeProphet> or merely because that is the file name.
19:13:09 <Gregor> elliott: It will be as soon as I push.
19:13:17 <elliott> Gregor: Nice :P
19:13:21 <Gregor> CakeProphet: BECAUSE IT'S THE FUCKING FILE NAME NOW I'M SCREAMING
19:13:23 <Gregor> :P
19:14:27 <Gregor> elliott: It's pushed.
19:14:54 <elliott> An introduction for those new to cellular automata: https://bitbucket.org/GregorR/rezzo/raw/tip/README.simple
19:14:56 <elliott> Such a marketer
19:15:03 <elliott> Marketeer? Meerkat.
19:15:20 <CakeProphet> except that the whole damange thing isn't part of a CA, bawwwww
19:15:23 <elliott> Gregor: I thought there were positrons?
19:15:27 <elliott> CakeProphet: Literally stop talking.
19:16:03 <Gregor> elliott: No, I changed them to photons ... and told you that ...
19:16:06 <elliott> Gregor: README.agent is so not up to date.
19:16:08 <elliott> You are liar.
19:16:17 <elliott> Gregor: And also, _ is a terrible tail, I like the old , more :P
19:16:19 <Gregor> elliott: It is, for some reason bitbucket isn't showing it in /raw/tip/ though >_>
19:16:31 <Gregor> elliott: Do you? I couldn't decided if I liked ,
19:16:41 <elliott> Weelll
19:16:44 <Gregor> elliott: From a visual-distinctiveness perspective, it lacks ... visual distinctiveness.
19:16:47 <elliott> ,* looks kind of cute.
19:16:57 <elliott> _* looks ugly and also the tail is not really attached.
19:17:06 <elliott> Gregor: Well, I don't much like . for wires :P
19:17:13 <Gregor> >_>
19:17:27 <elliott> Gregor: I like how you changed wander.c to not be wander any more.
19:17:41 <Gregor> elliott: It was an accidental commit, which I am too lazy to fix :P
19:17:56 <Gregor> It's just a super-basic "here's how to do shit" client anyway *shrugs*
19:18:11 <Gregor> elliott: Besides, it still wanders, it's just incontinent.
19:18:20 <elliott> X-D
19:18:28 <elliott> I'm more annoyed because my wander.hs is not longer wander :P
19:18:41 <elliott> Gregor: BTW, would you hate me if I said I thought flags and flag geysers should swap, like they originally were? >_>
19:18:53 <CakeProphet> elliott: also, sorry I forgot you're the only one that is allowed to complain about the correctness of the CA.
19:18:54 <elliott> (At the time, I didn't really understand that you could expect more than one flag around, and the flag geyser is a more permanent thing.)
19:19:01 <elliott> CakeProphet: Seriously, this is inane and idiotic.
19:19:05 <Gregor> elliott: As in, their state characters should swap?
19:19:19 <Gregor> CakeProphet: The damage is actually not part of the CA in any way. It has no affect on the state transitions.
19:19:25 <elliott> Gregor: Yeah :P I'm not sure about that though. It's totally irrelevant anyway >_>
19:19:25 <Gregor> *no effect >_>
19:19:51 <elliott> By CakeProphet's logic, agents shouldn't be able to do anything because that breaks the CA.
19:20:06 <elliott> Of course he's trying to reductio ad absurdum any argument involving "that makes it not a CA" but he's really bad at it.
19:20:17 <Gregor> OK children, let's not squabble :P
19:20:21 <elliott> ;D
19:20:39 <CakeProphet> oh weird so when the electron becomes a photon it reverses direction.
19:20:55 <Gregor> CakeProphet: ... no? Photons don't have directions.
19:21:13 <Gregor> (Neither do electrons, except implicitly by their tails, but photons don't propagate)
19:21:22 <Gregor> elliott: Yeah, I might be convinced to change _ to , since _ is really ugly X-D
19:21:25 <elliott> Gregor: Suggest to me a really simple agent that wants a queue (rather than deciding each turn immediately) and processes the world state somehow :P :P
19:21:28 <elliott> s/:P :P/:P/
19:21:31 <CakeProphet> Gregor: uh, yeah you know what I mean. right?
19:21:43 <Gregor> CakeProphet: No, I actually don't.
19:22:14 <CakeProphet> on your diagram of the electron colliding with the flag, it starts moving in the opposite direction once that happens.
19:22:25 <CakeProphet> pulling.
19:22:27 <Gregor> elliott: Idonno :P
19:22:40 <Gregor> CakeProphet: Yeah, the /flag/ does. Flags have always moved towards electron sources.
19:22:53 <Gregor> CakeProphet: Photons just mediate that action, they don't move themselves.
19:23:00 <CakeProphet> ....right.
19:23:25 <Gregor> elliott, CakeProphet: Yeah, I'mma change tails to ,
19:23:45 <CakeProphet> ah I see this is a new electron that is approaching not the old one going backwards.
19:23:51 <CakeProphet> the old one became the photon.
19:24:00 <elliott> Gregor: OK
19:24:13 <Gregor> CakeProphet: Yeah
19:24:53 <elliott> Gregor: I still can't get over how efficient my map storage is 8D
19:25:09 <CakeProphet> "everything they own will disappear" means -> space right?
19:25:46 <Gregor> CakeProphet: Flags turn to conductors. Everything else turns to blank. I could make that clear I guess :P
19:26:58 <elliott> I sure hope Gregor doesn't mind things under the WTFPL being committed to his repository
19:27:13 <Gregor> elliott: warriorhg is nobody's repo :P
19:27:16 -!- nooga has joined.
19:27:26 <elliott> Oh, I'll upload all my illegal material then
19:27:53 <CakeProphet> also victory = state transitions that do not operate under the rules of a CA, but I suppose that's a moot point by now since that seems to be acceptable now.
19:28:17 <Gregor> CakeProphet: Victory isn't actually a state transition, I just presented it that way in README.simple to not overcomplicate.
19:28:28 <CakeProphet> o_o wat? okay.
19:28:51 <CakeProphet> well, not victory so much as defeat. victory obviously would end the game.
19:29:03 <Gregor> CakeProphet: The global cycle goes like this: Update cellular automaton, calculate/update defeat, await agent instructions.
19:29:20 <nooga> what
19:29:29 <Gregor> nooga: I SAID AWAIT AGENT INSTRUCTIONS
19:29:47 <CakeProphet> so as long as other-things-that-change-the-CA-without-using-state-transition-rules are classified as not being transition rules, then it's okay? or something?
19:30:22 <Gregor> CakeProphet: Agent actions have always been outside the CA proper. If they weren't, the whole game wouldn't make sense. Eliminating an agent /is/ an agent action.
19:31:35 <CakeProphet> that seems like a completely arbitrary distinction to me but okay. I understand that the game would make no sense as a pure CA.
19:33:44 <elliott> OK, cabal makes this needlessly painful :P
19:34:45 <Gregor> *GASP*
19:34:52 <Gregor> Did you just say something NEGATIVE about the Haskell userland?
19:35:22 <olsner> it ends with a ":P" though, could be sarcasm
19:35:35 <Gregor> True
19:35:50 <Gregor> "Haha did I say painful I meant DELICIOUS"
19:36:19 <olsner> I actually read it as "painless" first but had to read it over
19:37:33 <CakeProphet> inlined constants in Perl are zero-argument subroutines containing code that can be sanely inlined.
19:37:56 <elliott> Gregor: There are plenty of things wrong with the Haskell toolchain :P
19:38:06 <CakeProphet> code that doesn't use any kind of scope I think
19:38:06 <olsner> many languages have the property that constants can be inlined
19:38:33 <CakeProphet> olsner: that is a true statement.
19:38:35 <CakeProphet> >_>
19:39:43 <CakeProphet> I was talking it being a zero-argument subroutine that was unusual. But I guess it's not unusual for compiled languages
19:41:41 <CakeProphet> sub geyser($) {my$_=shift;tr/0-9/a-j/;$_} # Gregor
19:41:41 -!- zzo38 has joined.
19:42:06 <Gregor> Why am I a comment :P
19:42:07 <elliott> That makes no sense.
19:42:14 <CakeProphet> Gregor: is this correct? in other words, do the agent ids correspond to a-j in order so that 0 -> a, 1 -> b, ...
19:42:26 <Gregor> CakeProphet: Yes ... but agents don't correspond to geysers :P
19:42:44 <Gregor> Err, rather, an agent on the map is not a geyser ... it is an agent :P
19:42:51 <CakeProphet> ......right.
19:42:55 <CakeProphet> but they own a geyser right?
19:42:58 <Gregor> :P :P LOL I OVERUSE THIS SMILEY :P :P
19:43:00 <Gregor> Yes
19:43:02 <Gregor> And 0 owns a, yes
19:43:07 <CakeProphet> and if I wanted to determine the geyser for an agent this function is useful for that right?
19:43:13 <CakeProphet> okay.
19:43:14 <Gregor> Sure
19:43:17 <olsner> Gregor: :P
19:43:21 <elliott> Not really?
19:43:27 <elliott> You would want to determine WHERE the geyser is.
19:43:35 <CakeProphet> that's not what this function is for.
19:43:47 <fizzie> "More like GAYSER lol."
19:44:00 <Gregor> fizzie: OMG PWNT
19:44:11 <olsner> fizzie said gay lol
19:44:20 <elliott> fizzie: Lol. (No Homo)
19:45:26 <Gregor> elliott: I'm thinking of writing an interactive client.
19:45:43 <CakeProphet> that sounds like cheating to me.
19:45:46 <elliott> Gregor: So that you can be totally decimated by any bot that tries to do anything?
19:45:53 <Gregor> elliott: Yup :P
19:45:56 <Gregor> CakeProphet: Except that you can't think at 15FPS
19:46:03 <CakeProphet> o rite.
19:46:09 <elliott> Maybe you can't.
19:46:12 <Gregor> X-D
19:46:30 <Gregor> Hmm ... maybe there should be a way to /explicitly/ nop.
19:46:31 <elliott> Gregor: Personally, I would like strong sandboxing for both repeatability and cheating prevention.
19:46:39 <elliott> I think some kind of automated tournament thing would be great.
19:46:46 <Gregor> elliott: Repeatability is ... tricky.
19:46:46 <elliott> Honour system sucks.
19:46:48 <CakeProphet> sub geyser($) {my$_=shift;/\d/?tr/0-9/a-j/:tr/a-j/0-9/;$_}
19:46:52 <CakeProphet> hey look gaiz I made it invertible
19:46:54 <elliott> Gregor: Well, it is basically Secret Project.
19:46:56 <CakeProphet> the inverted case is probably more useful.
19:47:06 <elliott> Gregor: ais is getting hard repeatability on even threaded code :P
19:47:12 <Gregor> elliott: Yeah, I'm not doin' my own ais523 Sekirt Sauce Projekk
19:47:18 <elliott> Gregor: I'm saying you could use his once it's not secret...
19:47:21 <Gregor> Ah
19:47:36 <ais523> elliott: I'm trying, it's easier said than done
19:47:38 <elliott> Gregor: It slows down code that does a lot of syscalls quite a bit, but a bot is really just a thin IO layer and a bunch of CPU computation in at most, what, three threads?
19:47:42 <elliott> ais523: Well, it's your goal :P
19:49:19 <Deewiant> In git, is there a simple way of finding out how far up a parent commit is? I.e. given the hash, tell me what the N in HEAD~N should be for it to refer to the same commit
19:49:48 <elliott> Deewiant: git log --format= ... | grep ... | awk :P
19:49:57 <Deewiant> Yeah that's not 'simple'
19:50:13 <olsner> git log --oneline hash.. | wc -l
19:50:19 <Deewiant> Meh, whatever
19:50:20 <elliott> olsner: Cute
19:50:26 <elliott> Deewiant: Hey, olsner's is good
19:50:27 <olsner> plus/minus one commit, I think
19:51:10 <Deewiant> Yeah that's accurate, a bit better than my log --oneline | takeuntil hash | wc -l I suppose
19:51:13 -!- azaq23 has joined.
19:51:37 <olsner> hmm, I think you might need to add --first-parent if you have merges
19:52:03 <elliott> Deewiant: You have a takeuntil command? :P
19:52:45 <olsner> unsure what HEAD~N does with merges, but it'll probably just walk up the first parent
19:53:07 <Deewiant> elliott: {take,drop}{until,while}{1,}
19:53:26 <elliott> Deewiant: Wherefrom, or did you non-autovivify them
19:53:27 <elliott> Words
19:53:31 <Deewiant> elliott: {take,drop}{until{1,},while}*
19:53:34 <CakeProphet> ...lol
19:53:43 <Deewiant> elliott: Perl one-liners I wrote myself
19:54:00 <Deewiant> Very useful, I find :-P
19:54:02 <elliott> Deewiant: Perl one-liners named after Haskell functions. I'm disgusted
19:54:11 * elliott kills you a bit.
19:54:14 <Deewiant> Yeah I'm a bad person etc
19:54:30 <Deewiant> If you want me to rename them feel free to improve upon the names
19:55:19 <CakeProphet> so I decided to write all of my functions in the worst style possible.
19:55:32 <elliott> Deewiant: No, I want you to rewrite them :)
19:55:32 <CakeProphet> For example: sub base($) {my$_=shift;/^\d$/?tr/0-9/n-u/:(/^$rbase$/?tr/n-u/0-9/:($_=undef));$_}
19:55:41 <Deewiant> elliott: In Haskell?
19:55:46 <Deewiant> elliott: I like my perl regexps
19:55:48 <elliott> Deewiant: Or anything that isn't Perl, really
19:55:55 <Deewiant> Perl regexps
19:55:55 <elliott> Deewiant: http://hackage.haskell.org/package/pcre-light
19:56:00 <elliott> Deewiant: http://hackage.haskell.org/package/pcre-light
19:56:01 <Deewiant> Dude
19:56:05 <Deewiant> Perl is MEANT for this kind of stuff
19:56:08 <CakeProphet> this is two-pronged approach in which I humiliate elliott by defeating his player with incredibly ugly code
19:56:18 <CakeProphet> it is also a means of obfuscation to conceal my ingenius tactics.
19:56:25 <elliott> Deewiant: You can't use Perl regexps as an excuse when I point you to (almost-identical-to) Perl regexps for the ideal language :-P
19:56:56 <Deewiant> elliott: Write this in another language so that it is shorter and runs faster:
19:56:57 <Deewiant> #!/usr/bin/perl
19:56:57 <Deewiant> my $re = shift; while (<>) { print; last if /$re/ }
19:56:59 <Sgeo> elliott, you implemented regexes in @ already?
19:57:10 <elliott> Sgeo: No, @ disowns text.
19:57:15 <elliott> DISOWNS IT
19:57:27 <CakeProphet> while(<>) {print; last if /shift/e}
19:57:27 <elliott> Deewiant: What if it's slightly longer but runs much faster
19:57:37 <Deewiant> I can live with that
19:57:56 <Sgeo> Oh, does e evaluate whatever's in //?
19:58:13 <zzo38> AWK is also designed for text processing with regular expressions and so on, although there are some things that could be useful that are missing.
19:58:37 <elliott> Deewiant: Meh, I'd need iteratees to improve a lot on the speed and I cba
19:58:39 <CakeProphet> I wonder if last works in a map.
19:59:05 <Deewiant> elliott: Right :-P
19:59:09 <Deewiant> elliott: Hence, Perl oneliners
19:59:11 <olsner> not sure what that perl code does, but I think you could do something like sed -e "/$re/ {p;Q}"
19:59:19 <elliott> Deewiant: Well, it's your job :P
19:59:22 <Deewiant> sed doesn't have Perl regexps
19:59:53 <Deewiant> elliott: What's with the Perl hate :-P
20:00:17 <CakeProphet> actually using for instead of while would also remove 2 bytes.
20:00:33 <CakeProphet> print;last if/shift/e for<>
20:00:38 <CakeProphet> probably the shortest way to do that.
20:00:53 <elliott> Deewiant: Note how Perl is the worst language possible
20:00:53 <CakeProphet> er...no
20:00:54 <Deewiant> I wasn't golfing when I wrote it
20:00:57 <CakeProphet> you need to save the shift my bad.
20:01:01 <Deewiant> elliott: No, it really isn't
20:01:13 <elliott> Deewiant: It's the worst in its own special little corner
20:01:15 <Deewiant> elliott: It's good for this kind of oneliner if nothing else
20:01:18 <CakeProphet> print;last if/$_[0]/ for<>
20:01:18 <CakeProphet> there
20:01:32 <elliott> Deewiant: Write a Haskell DSL for that kind of one-liner
20:01:58 <Deewiant> There's already a DSL, it's called Perl, why reinvent it
20:01:59 <cheater> hi does anyone here know how to remap ctrl-key sequences such as ^I ^H etc in xkb when creating a new layout that is not qwerty derived?
20:02:24 <Deewiant> cheater: If you find out, let me know
20:02:25 <elliott> main = getRegexp >>= \re -> takeLinesWhile (`matches` re)
20:02:35 <zzo38> If you have a file with > at the beginning of some lines, you want to remove the > at the start of those lines and delete all other lines, there is the AWK program to do so: sub(/^>/,"")
20:02:39 <elliott> Deewiant: Because it would be not Perl and therefore not terrible
20:02:47 <Deewiant> elliott: Seriously, Perl is fine :-P
20:02:57 <cheater> Deewiant, have you made any layouts?
20:03:12 <Deewiant> I've modified one
20:03:24 <CakeProphet> !perl print last
20:03:25 <EgoBot> Can't "last" outside a loop block at /tmp/input.10032 line 1.
20:03:26 <Deewiant> cheater: Maybe stty is the way to go
20:03:32 <zzo38> elliott: Is there any Template Haskell stuff to compile any constant regular expression at compile-time into the program?
20:03:40 <Deewiant> And then per-program modification for non-TTYs :-P
20:03:45 <CakeProphet> !perl for(1..20) {print last}
20:04:19 <olsner> what does 'last' do in perl?
20:04:24 <cheater> deewiant: my problem is that my layout has e.g. h where qwerty has k, but when i press ctrl and that key then it is recorded as ^K
20:04:26 <Deewiant> olsner: Same as 'break' in C
20:04:30 <cheater> which is wrong of couse
20:04:45 <Deewiant> Oh, hmm
20:04:54 <CakeProphet> I was trying to shorten my code but last isn't an expression so I can't use ,
20:05:09 <CakeProphet> so you have to use for(<>){} I think
20:05:13 <elliott> zzo38: I think so
20:05:30 <CakeProphet> for
20:05:33 <CakeProphet> ...lolenter
20:05:34 <zzo38> compileRegEx :: Name -> String -> Q [Dec]; -- is one possible idea, but maybe there are other done differently
20:05:35 <Deewiant> cheater: That seems weird :-P
20:05:45 -!- ais523 has quit (Remote host closed the connection).
20:06:21 <cheater> yes very much so
20:06:33 <Deewiant> cheater: The layouts in /usr/share/X11/xkb/symbols/ all presumably work, so if you're doing things the same way I imagine yours should work too...
20:06:48 <cheater> i am
20:06:52 <CakeProphet> zzo38: you'd probably want to implement capturing somewhere.
20:07:05 <CakeProphet> indexed and named.
20:07:33 <cheater> let me try dvorak see what that does
20:08:36 <zzo38> CakeProphet: The type I have given could probably do that; because if the regular expression has captured parts then the function declaration it creates can have output type that lists the captured parts as well. But maybe it is not best way possibly
20:09:10 <CakeProphet> yeah I figured the type was fine.
20:09:13 <CakeProphet> also: http://pastebin.com/LpAdrB84
20:09:17 <CakeProphet> most beautiful I've ever written.
20:09:18 <CakeProphet> +code
20:09:27 <CakeProphet> right now it's probably a runtime error though.
20:09:37 <CakeProphet> NEED TO FINISH WORK AAAAUGH
20:11:22 <zzo38> How I learned about mahjong? From a book in the library. I had previously read different books about rules of mahjong in the library, but one day I found one describing the Japanese rules and I happened to like that one best
20:13:42 <CakeProphet> the idea is to take a list of regex and transform it into a kind of "grid" regex that matches across a 2-d rectangular area.
20:14:50 <CakeProphet> where each regex starts at the same x, with y being y+i where y is the first line's y coordinate
20:17:00 <elliott> Gregor: I'm unsure how to structure a generic queue solution >_>
20:17:14 <CakeProphet> probably by using the structure of a generic queue. :3
20:17:27 <elliott> Gregor: I mean, there's obviously the trivial solution where you just push and can't do anything else, but a lot of the time if something "urgent" comes up you might want to temporarily switch the queue to a new one and react to the emergency...
20:17:42 <CakeProphet> actually :> may be a more appropriate emoticon.
20:18:04 -!- copumpkin has quit (Ping timeout: 260 seconds).
20:18:13 <CakeProphet> elliott: probably means you want some kind of state.
20:18:31 <elliott> CakeProphet: Have you said a useful thing in the past like ten days wrt rezzo
20:18:35 <elliott> fsvo ten
20:18:48 <CakeProphet> state + flags?
20:18:50 <CakeProphet> is that more useful?
20:21:07 <CakeProphet> priority queue would be good.
20:21:29 <CakeProphet> then you can be like "oh shit this is important do this first."
20:23:01 <CakeProphet> which is essentially what you just said...
20:23:15 <elliott> A priority queue could work...
20:23:19 <elliott> Gregor: Would a priority queue be good? :P
20:24:24 <Gregor> Interactive client: Almost TOO useful!
20:25:10 <CakeProphet> elliott: what do you currently use as the queue elements?
20:25:47 <elliott> CakeProphet: Actions.
20:25:49 <CakeProphet> I was thinking maybe a priority queue of functions would be good, as then you can push entire atomic actions.
20:25:50 <elliott> Gregor: X-D
20:25:52 <CakeProphet> ah okay.
20:27:02 -!- monqy has joined.
20:28:26 <CakeProphet> however if you set urgent actions that are the result of trivial opponent actions
20:28:41 <CakeProphet> then your opponent could potentially bait you along with a string of pointless high priority things.
20:29:05 <Gregor> There's risks in any strategy *shrugs*
20:29:40 <elliott> Gregor: This isn't meant to be strategy though, this is meant to be something literally every bot can use and adapt to its wishes...
20:29:51 <Gregor> Fair 'nuff
20:29:56 <CakeProphet> yeah I'm just saying be careful with priorities and actions that consume a lot of turns.
20:30:03 <elliott> CakeProphet: Actions consume exactly one turn.
20:30:08 <CakeProphet> oh, okay.
20:30:08 <elliott> data Action
20:30:08 <elliott> = Advance
20:30:08 <elliott> | Turn LR
20:30:08 <elliott> | Build
20:30:09 <elliott> | Hit
20:30:10 <elliott> deriving (Show, Eq)
20:30:19 <elliott> If you want to schedule something compositely, you have to code that up yourself.
20:30:22 <elliott> I'm not writing an entire AI framework :P
20:30:33 <coppro> now I want a programming language based on roborally
20:30:42 <CakeProphet> why not use a State monad or something similar? then you could queue larger actions as a single unit.
20:30:48 <coppro> *wobowawwy
20:31:19 <elliott> CakeProphet: X_X
20:31:23 <elliott> CakeProphet: You are spouting technobabble.
20:31:41 <CakeProphet> >_>
20:31:50 <Gregor> elliott: I added an explicit NOP btw, which you will totally want to use always
20:32:00 <CakeProphet> queue functions that return sequences of actions instead of one action?
20:32:08 <elliott> Gregor: That sounds completely and utterly pointless.
20:32:12 <elliott> Gregor: What is the advantage?
20:32:22 <elliott> I guess it could be useful inside the queue, but that's an internal thing.
20:32:23 <Gregor> elliott: You get ACK_OK instead of ACK_NO_MESSAGE :P
20:32:25 <CakeProphet> :t getState
20:32:26 <lambdabot> Not in scope: `getState'
20:32:32 <CakeProphet> :t runState
20:32:33 <lambdabot> forall s a. State s a -> s -> (a, s)
20:32:35 <elliott> Gregor: So it decreases the amount of information you get and makes you do more IO?
20:32:37 <elliott> Gregor: a w e s o m e
20:32:45 <Gregor> elliott: Ayup.
20:33:00 <Gregor> elliott: I just didn't like the fact that "do nothing" was always an error *shrugs*
20:33:03 <CakeProphet> aka use State GenericStateStructure [Action]
20:33:05 <elliott> Gregor: It's not an error...
20:33:20 <elliott> Gregor: Just like InvalidAction isn't (It should be called NothingHappened or something)
20:33:41 <monqy> CakeProphet: I don't know what you're talking about but you're probably wrong
20:34:07 <Gregor> elliott: If you don't want it, don't use it *shrugs*
20:34:13 -!- boily has quit (Ping timeout: 260 seconds).
20:34:31 <elliott> Gregor: I have to add it to my library, which I am unhappy about :P
20:34:40 <Gregor> elliott: *sobblecopter*
20:34:42 <elliott> ENTERPRISE CUSTOMERS
20:34:45 <CakeProphet> monqy: sounds like you have a lot of vantage point of knowledge to support that assertion.
20:34:54 <CakeProphet> -lot of
20:35:05 <elliott> CakeProphet: Are you trying to be constantly insufferable about Rezzo?
20:35:10 <CakeProphet> no.
20:35:37 <Gregor> I ♥ #esoteric SO HARD
20:35:48 <CakeProphet> so State UsefulInformation [Action] as the queue elements makes absolutely no sense to you at all?
20:36:47 <monqy> I don't know what the queue elements are, but you spouted too much technobabble, as elliott noted, for me to take you seriously
20:37:04 <Gregor> Also, after poking around with the interactive client a bit, I'm coming around on the wires-are-walls issue >_>
20:37:16 <Gregor> (Back to "yae" that is)
20:38:25 <CakeProphet> technobabble = not incredibly specific
20:38:27 <CakeProphet> I guess.
20:39:55 <monqy> technobabble = you sound like you don't know what you're talking about
20:40:46 <elliott> Gregor: Wires are walls is the best.
20:40:53 <elliott> And anyone who thinks it isn't the best is the worst.
20:42:18 <elliott> Priority queues preserve insertion order for elements of the same priority, right?
20:42:35 <olsner> pretty sure they don't have to
20:43:20 <elliott> That sucks... like, majorly.
20:43:27 <elliott> In that it completely breaks my use-case :P
20:43:34 <olsner> well, just ... pick a priority queue that has that property
20:43:53 <olsner> or include insertion order in the priority somehow
20:44:31 <elliott> That's gross :P
20:44:34 <olsner> indeed
20:46:34 <CakeProphet> maybe an array of queues where the index is the priority? when you pull an element you pull from the highest priority non-empty queue?
20:47:13 -!- elliott has quit (Read error: Connection reset by peer).
20:47:19 <monqy> you killed him
20:47:22 -!- elliott has joined.
20:47:24 <monqy> hi
20:47:34 <olsner> there are like a hundred zillion ways to make a priority queue
20:47:40 <olsner> like approximately
20:50:42 <CakeProphet> though if you did use a queue of action-lists then a good rule of thumb would be that smaller list == higher priority
20:52:16 <fizzie> POSIX message queues are priority queues where within a single priority it works FIFO; but indeed I doubt that's a property inherent to the concept of a priority queue. (Compare stable and unstable sorts.)
20:54:42 <fizzie> C++ std::priority_queue doesn't guarantee that. :p
20:56:35 <elliott> I think heaps guarantees it.
20:57:12 <CakeProphet> I don't see how...
20:57:22 <olsner> also, which kind of heap?
20:57:26 <CakeProphet> heaps just guarantee that the root is the highest priority element.
20:57:56 <CakeProphet> if it's a max-heap that is.
20:59:11 <CakeProphet> maybe you want a HEAP OF QUEUES.
20:59:42 <CakeProphet> or rather a HEAP OF (PRIORITY, QUEUE)
21:00:12 <elliott> the heaps package.
21:00:14 <elliott> http://hackage.haskell.org/package/heaps
21:00:20 <olsner> CakeProphet: I think you'd rather need a map priority -> queue for that to work
21:01:20 <CakeProphet> well the heap would make inserts annoying, but pulls easy.
21:01:34 <CakeProphet> with map I think it would be the other way around?
21:01:59 <olsner> a heap normally doesn't do lookup, but you have to find the right queue for your priority
21:02:55 <Sgeo> !!!
21:03:07 <Sgeo> Just looked at the Wikipedia page for colorblindness
21:03:44 * Phantom_Hoover → sleep
21:03:47 <CakeProphet> I realized I was blind when I read about it on Wikipedia.
21:03:51 <olsner> Sgeo: congratulations on finding wikipedia, it's a good resource
21:03:53 <Phantom_Hoover> Sgeo, oh god are you colour blind.
21:04:06 * CakeProphet is colour blind but not color blind.
21:04:12 <Sgeo> According to "Test for tritanopia", normal visioned people should see the 56. I wonder if my monitor's at the wrong angle or something, or if..
21:04:17 -!- Phantom_Hoover has quit (Quit: Leaving).
21:04:49 <Sgeo> "Image may not be visible on LCD or with excessive screen glare."
21:06:49 <monqy> so I have to do some parsing so I thought I'd try trifecta but it can't find `Control.Monad.Trans.Codensity and I don't know what to do :(
21:07:02 <coppro> I see 37, nothing, 56
21:08:45 <Sgeo> (barely) 37, 49, nothing
21:09:18 <coppro> the 37 looks a bit like a 57 though
21:09:26 <coppro> the 56 is really obvius
21:09:28 <coppro> *obvious
21:09:42 <cheater> i see all possible numbers at the same time.
21:10:02 <coppro> cheater: cheater
21:10:13 <Sgeo> It's invisible to me
21:10:16 -!- Patashu has joined.
21:10:16 <itidus20> i think the question is whether you can see colored outlines which are supposed to be numbers.. its not about whether those lines form obvious numbers
21:10:21 <Sgeo> Unless I tilt the screen
21:10:34 <itidus20> it could be a screen thing
21:10:57 <Sgeo> Yeah
21:10:59 <monqy> I have my screen colours set kind of weirdly
21:11:05 <monqy> I think I made it bluer than it should be
21:11:11 <monqy> (because I like it that way)
21:11:20 <coppro> my blue is a little washed-out
21:12:42 <itidus20> it says down the bottom "^ a b c d Because of variations in computer displays, these illustrations may not be accurately rendered."
21:14:05 <elliott> <monqy> so I have to do some parsing so I thought I'd try trifecta but it can't find `Control.Monad.Trans.Codensity and I don't know what to do :(
21:14:09 <elliott> you are using cabal-install right
21:14:18 <elliott> that package is in the adjunctions package
21:14:21 <elliott> maybe you need to cabal update?
21:14:38 <monqy> yeah I tried getting adjunctions but it didn't work
21:14:41 <monqy> I'll try cabal-updating
21:15:06 <monqy> http://hackage.haskell.org/package/trifecta doesn't list adjunctions in the dependencies which is a bit bizarre??
21:16:01 <monqy> oh no dependency hell
21:16:13 <elliott> it might be a dependency of a dependency
21:16:19 <elliott> but ask edwardk on hash-haskell
21:16:25 <elliott> monqy: its not dependency hell because most of those packages are his :)
21:16:57 <monqy> it can't get semigroups because (other packages here) depend on old semigroups or something
21:17:03 <elliott> bifunctors, comonad, kan-extensions, keys, profunctors, reducers, semigroupoids, semigroups are all his
21:17:18 <monqy> hm
21:17:26 <elliott> monqy: scrap ~/.ghc, try again :P
21:17:32 <monqy> yeah I'll do that
21:17:59 <elliott> "(Of course, it's impossible to prove that it really came "from" Anonymous, and many Twitter accounts from members denied the idea: "1. Not discussed in IRC [Internet Relay Chat, the favoured gathering place for Anonymous members]. 2. Email & threats of violence not Anon's MO [modus operandi]. 3. @louisemensch is not important enough," tweeted one such, JohnDoeKM.)"
21:18:02 <elliott> "But the group is looking less like a force and more like an incoherent rabble as a result of the past two months"
21:18:07 <elliott> oh my god Guardian stop being terrible
21:18:49 <monqy> wow what
21:19:54 <cheater> elliott is turning this channel into The Sun
21:20:35 <monqy> what does that mean
21:20:35 <cheater> well done taking the conversation down at least 200000 notches
21:20:36 <monqy> help
21:20:47 <elliott> fuck of
21:20:47 <elliott> f
21:20:48 <cheater> the sun is a tabloid of the worst kind
21:20:50 <elliott> im good at type
21:21:09 <elliott> quoting the guardian makes you the sun, guardian nominated as most sun-like newspaper in england
21:21:57 <cheater> you have a penchant for picking out the turd raisins from the drain i guess
21:22:39 <cheater> consider starting a softporn blog
21:22:46 <monqy> ew why would he do that
21:22:59 <cheater> because that is what tabloids do
21:23:10 <cheater> metro is an even better example
21:23:21 <Deewiant> Woot, another change committed: http://i.imgur.com/pr6kU.png
21:23:22 <monqy> elliott honourary tabloid
21:23:41 <elliott> Deewiant: It's 0 lines now?
21:23:54 <Deewiant> That's the diff to the current :-P
21:24:53 -!- Ginto8 has joined.
21:25:19 <Deewiant> Saturday's was a bit more insertiony: http://i.imgur.com/jXB9V.png
21:25:29 <elliott> What exactly is the thing being mutated
21:25:41 <Deewiant> mushspace
21:26:05 <elliott> More like LAMEspace
21:26:30 <Deewiant> So how's shiro I MEAN LAME-O doing
21:26:57 <Gregor> elliott: I assume your bot is amazing by now.
21:27:11 <elliott> Gregor: I don't even know if anything compiles right now.
21:27:15 <Gregor> It's been, like, an hour!
21:27:31 <elliott> Gregor: Gimme a simple algorithm to do :P
21:28:22 <Gregor> elliott: Follow the leader :P
21:28:32 <elliott> Gregor: Wat :P
21:28:40 <Gregor> elliott: Just find another agent, and follow it.
21:28:47 <Gregor> USEFUL I NOSE
21:28:48 -!- nooga has quit (Ping timeout: 268 seconds).
21:29:00 <elliott> Gregor: That requires finding another one
21:39:28 <elliott> Gregor: What if... rezzo ncurses API
21:39:39 <Gregor> Sounds sexy.
21:39:42 <Gregor> But ncurses sucks balls.
21:39:50 <elliott> Gregor: It could just use ANSI instead :P
21:39:59 <Gregor> True
21:40:11 <elliott> Although, the default size is a bit large for a terminal :/
21:58:54 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:59:38 -!- myndzi has quit (Ping timeout: 258 seconds).
22:00:16 -!- myndzi has joined.
22:02:55 -!- FireFly has quit (Quit: FireFly).
22:41:22 -!- erytssiN has quit (Ping timeout: 240 seconds).
22:42:36 -!- erytssiN has joined.
22:58:09 <CakeProphet> man programming sure is fun.
22:58:14 <CakeProphet> when did you guys first learn how to program?
22:58:25 <olsner> learn?
22:58:37 <CakeProphet> uh, yes?
22:58:44 <CakeProphet> were you just born with the ability innately or something?
22:58:55 <olsner> isn't that what usually happens?
22:58:59 <shachaf> That's how programming works.
22:58:59 <CakeProphet> no
22:59:17 * CakeProphet knew Python out of the womb
22:59:34 <elliott> I started programming at eight. Unfortunately. (It was PHP.)
22:59:41 <elliott> (PHP: Not even once.)
23:00:52 <CakeProphet> I learned Python at 15. I started learning at home but I had a lot of free time in one of my "technology" classes (we did a lot of stupid shit with Publisher)
23:01:09 <CakeProphet> so I made a lot of drawings via the turtle module.
23:01:10 <monqy> I forget when I started
23:01:35 <monqy> probably somewhere around eight, more likely earlier than later
23:01:43 <monqy> I also don't know what my first language was
23:02:01 <Sgeo> I read about programming when I was young, but never actually _did_ anything for a very long time :(
23:02:26 <CakeProphet> same actually. I got a Java book once but it was complete gibberish to me at the time.
23:02:56 <CakeProphet> Python is a good starting language though.
23:03:42 <monqy> - cake "likes perl" prophet
23:03:50 <CakeProphet> though I distinctly recall static typing being somewhat of a strange concept to me. I suppose that's just the nature of switching from your first language to other styles of programming.
23:03:53 <Sgeo> I remember oohing and ahhing over Java because "it was free"
23:04:13 <Sgeo> Oohed and ahhed over Python for the same reason, but with Python, I actually started _playing with it_
23:04:16 <Sgeo> Unlike anything prior
23:04:27 <itidus20> java was free, portable, extensive built in API
23:04:32 <monqy> I think I started with logo but I never really learned it extensively and didn't do much sophisticated with it????
23:04:32 <CakeProphet> my old roommate who just recently learned C# had to learn some Javascript, and found dynamic typing strange.
23:04:44 <monqy> then I did some stuff on my calculator in basic
23:05:02 <CakeProphet> monqy: were your parents programmers or something?
23:05:04 <monqy> nope
23:05:07 <monqy> not at all
23:05:08 <CakeProphet> I'm just wondering how people get started at such a young age.
23:05:30 <pikhq_> Not that hard, really.
23:05:41 <pikhq_> You just have to be sufficiently curious.
23:05:46 <CakeProphet> I didn't specifically mention that it would be difficult. :P
23:05:55 <CakeProphet> though it... actually would be.
23:05:59 <elliott> it isn't
23:06:02 <Ginto8> I got started with C++ at 12; I wasn't very good, but I was definitely using the language
23:06:03 -!- erytssiN has quit (Quit: Leaving).
23:06:08 <elliott> you don't give a shit about things like abstraction and "best practices" at that age
23:06:20 <elliott> you have all the time in the world, so who cares if you have to code your awesome intro animation frame by frame?
23:06:22 <CakeProphet> typically kids aren't very good at abstract reasoning.
23:06:27 <elliott> bullshit
23:06:29 -!- sllide has quit (Ping timeout: 260 seconds).
23:06:32 <monqy> when i finally started giving shits about those things i learned haskell
23:06:34 <monqy> that was a few years ago
23:06:35 <elliott> and also bullshit that simple basic is abstract
23:06:39 -!- yourstruly has joined.
23:06:40 <pikhq_> You don't have to be to actually program, anyways.
23:06:47 <monqy> i forget if it was 3 or 4 years ago I learned haskell
23:06:52 <monqy> it was one of them
23:06:56 <CakeProphet> well right.
23:07:05 <pikhq_> You just need to be able to give instructions in a lot of detail.
23:07:12 <CakeProphet> obviously it's possible and some would find it easy.
23:07:28 <pikhq_> Which isn't *hard*, it just takes determination to pick up.
23:07:39 <pikhq_> And, guess what, kids can be absurdly stubborn.
23:07:43 <CakeProphet> yes, same for me when I learned at 15.
23:08:03 <CakeProphet> took determination to hammer the concepts into my brain.
23:08:09 <CakeProphet> also #python helped a bit.
23:08:18 -!- yourstruly has changed nick to yretssin.
23:08:25 <elliott> #python is awful
23:08:27 -!- oerjan has quit (Quit: Good night).
23:08:31 <CakeProphet> elliott: yes, of course.
23:08:44 <elliott> they parrot DO IT THIS WAY IT'S PYTHONIC without thinking about your question... it's an excellent one-way ticket to ~beautiful pythonic code~ that doesn't work
23:08:47 <CakeProphet> but I was like "halp how does for loop work" and they explained pretty well.
23:08:54 <elliott> heh
23:09:01 <elliott> Don't ask how the for loop works, tell us your REAL problem
23:09:10 <CakeProphet> yeah anyone who frequents #python is going to be a fucking zealot.
23:09:10 <monqy> by the time i bothered with python i knew enough about everything in the language that i just learned the syntax by looking at some examples
23:09:27 <CakeProphet> I bet #ruby is worse though.
23:09:29 <CakeProphet> #perl is pretty bad.
23:09:46 <CakeProphet> like, people try to convince of the One True Way.... in fucking #perl
23:09:48 <monqy> perl was too much bother for me
23:09:51 <CakeProphet> does that make any sense?
23:10:09 <pikhq_> Perl *has* a One True Way?
23:10:18 <CakeProphet> I'd imagine they would shit bricks if they saw my current spartan.pm code.
23:10:27 <monqy> i have a perl book, read it when i was bored and without internet connection or anything else/better to do, forgot it all
23:10:38 <CakeProphet> it is quite a bit to learn actually.
23:10:42 -!- Vorpal has quit (Ping timeout: 245 seconds).
23:10:46 <monqy> all i rmember was it was ridiculous
23:10:46 <pikhq_> I could've sworn that you were absolutely Perly if you just bothered with "using strict;"
23:10:49 <CakeProphet> compared to, say, Python or Java.
23:10:58 <CakeProphet> a lot of idioms, corner cases, weirdness.
23:11:25 <pikhq_> I suppose next you'll be telling you ##c told you to use Boehm GC? :P
23:11:36 <elliott> oh god, ##c
23:11:40 <elliott> possibly even worse than #python
23:11:44 <elliott> literally a cesspool
23:11:52 <monqy> I've never been to any of these channels
23:11:54 <CakeProphet> ##cesspool
23:11:55 <elliott> monqy: never do
23:12:01 <Ginto8> elliott, a cesspool of what?
23:12:07 <monqy> cess
23:12:11 <elliott> Ginto8: Cess.
23:12:17 <elliott> Ginto8: Also are you new, hi.
23:12:20 <pikhq_> monqy: You get flamed the fuck out of for, basically, not having literally memorised ISO C.
23:12:23 <Ginto8> yeah I'm kinda new
23:12:30 <CakeProphet> an example, I was asking for help in #perl about (?{...}) in regexes
23:12:40 <CakeProphet> and they were telling me not to make monolithic regexes.
23:12:45 <CakeProphet> I was like "tks gaiz don't care"
23:12:53 <elliott> pikhq_: I once asked a really ridiculously precise question there and even referenced the language as ANSI X3J11 or something
23:12:56 <elliott> pikhq_: They just ignored me :D
23:13:29 <Ginto8> I've done some stuff in some eso languages, and I figured I'd check out this channel. I'm mainly a C/++ programmer though, so I was curious if it was just that the people in ##c were always telling people to RTFM, or if they actually didn't know what they were talking about
23:13:51 <CakeProphet> qr{^(?:[!\n]*\n){$y}(?:.{$x})@{[join "(?:.{$x})",@orgr]}
23:13:56 <CakeProphet> I ask, what is so unreasonable about this regex?
23:14:02 <monqy> perl
23:14:22 <Deewiant> It's irregular
23:14:22 <pikhq_> elliott: ANSI X3.159-1999, or ISO/IEC 9899:1999.
23:14:31 <pikhq_> Ginto8: Mostly RTFM.
23:14:44 <pikhq_> CakeProphet: Doesn't look like a regular expression to me.
23:14:47 <CakeProphet> it is.
23:14:52 <CakeProphet> with some Perl code...
23:15:06 <CakeProphet> to interpolate a regex
23:15:08 <pikhq_> Hint, Perl "regex"es aren't regular expressions.
23:15:10 <Deewiant> It's a regex, but not a regular expression
23:15:22 <Ginto8> pikhq_, ah, they inherit that from ##linux it seems
23:15:24 <CakeProphet> pikhq_: oh good because I didn't say it was a regular expression.
23:15:28 <Deewiant> And thus, it's unreasonable
23:15:36 <monqy> heheheeheh
23:15:38 <elliott> pikhq_: I think the latter
23:15:38 <CakeProphet> pikhq_: so what are you getting at exactly? :P
23:15:41 <pikhq_> Ginto8: Except that the FM they refer to is obscene.
23:15:42 <elliott> except without the /IEC part
23:15:46 <elliott> Ginto8: oh, C++ :(
23:15:55 <monqy> :'(
23:16:05 <Ginto8> elliott, what?
23:16:08 <pikhq_> Ginto8: The C spec is very dense and hard to reference.
23:16:09 <Deewiant> elliott: The /IEC part is important don't come talking to us about this mythical "ISO 9899:1999" language
23:16:29 <CakeProphet> pikhq_: oh I see. yeah you just tricked me into saying it was. asshole.
23:16:50 <pikhq_> CakeProphet: :D
23:16:54 <CakeProphet> and then got all pedantic.
23:16:55 <Ginto8> pikhq_, I would never EVER touch the C spec in a million years. And I'm a guy that tried to wade through the file format spec for PNG xO
23:17:07 <elliott> Deewiant: :D
23:17:15 <pikhq_> It's pretty "fun" hunting down libc bugs.
23:17:37 <Ginto8> elliott, that at me?
23:17:43 <CakeProphet> monqy: you should learn Perl it's an educational experience.
23:17:44 <zzo38> To do C spec properly, you have to pay. That is one of the problems of C. C is still good for many things, though.
23:18:02 <monqy> CakeProphet: naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah
23:18:04 <Ginto8> oh no sorry
23:18:13 <elliott> Ginto8: The line with "Ginto8:" in front was :P
23:18:17 <pikhq_> zzo38: Amusingly, the final draft of the C spec, which is known to have had no changes between it and finalisation, is free.
23:18:18 <monqy> CakeProphet: I'm glad I forgot it
23:18:32 <CakeProphet> monqy: how can you say it's bad if you've forgotten it? :P
23:18:39 <monqy> CakeProphet: I remember that it was bad
23:18:42 <elliott> pikhq_: god I remember when ams ignored me for consulting a post-C99 draft
23:18:44 <elliott> for details about free()
23:18:51 <pikhq_> elliott: Friggin' ams.
23:19:11 <elliott> i was sure he had to have like ran into me before and hated me because how can anyone be that much of a jackass without prior history
23:19:15 <pikhq_> Wasn't that post-C99 draft C99+later ratified standard extensions?
23:19:28 <elliott> TC1 or something
23:19:32 <pikhq_> Yeah.
23:19:33 <zzo38> pikhq_: In that case, that is OK, I guess. (But they did try to force people to pay for it. If I wanted a printout I would certainly pay for it, but I would not accept it as a proper standard that ought to be used if it cannot be accessed freely!)
23:19:45 <CakeProphet> Deewiant: all this Perl hatred. :(
23:19:54 <pikhq_> elliott: So, you referenced the latest standard.
23:20:10 <elliott> this was after I checked POSIX for him and he dismissed it
23:20:36 <pikhq_> *Admittedly*, the parts of POSIX that refer to ISO C are non-normative...
23:20:38 <pikhq_> Still.
23:20:52 <pikhq_> That's rather obscenely pedantic.
23:21:02 <zzo38> At least, Haskell has a free standard, and LLVM has free documents that are not entirely complete but all source-codes available and LLVM is still better designed than C in my opinion.
23:21:11 <Ginto8> elliott, so what's so :( about C++? aside from the pain in the ass templates, the difficulty of using good OOP, the pain that good memory management can be, the lack of decent module support, the mediocre standard library, and the rather crazy compilation method, of course
23:21:22 <Deewiant> Fun fact: mushspace uses -std=c1x with gcc
23:21:34 <pikhq_> Ginto8: You also neglect "it's a language with no reason to exist".
23:21:39 <elliott> Ginto8: And the fact that it attempts to build a high-level language on top of C
23:21:46 <elliott> And also everything else about C++ :P
23:21:49 <zzo38> When programming in C, I usually prefer a subset of GNU89.
23:21:50 <elliott> Deewiant: Why.
23:22:07 <Deewiant> elliott: Anonymous structures
23:22:12 <Ginto8> pikhq_, no reason to exist?
23:22:14 <elliott> Deewiant: Plan 9 C has that :-)
23:22:29 <zzo38> (GNU89 does have some of the things that were added in C99, too)
23:22:32 <Deewiant> elliott: Does it have packed structures, too?
23:22:42 <Deewiant> elliott: I'm currently using the VC++ extension for that :-P
23:22:48 <CakeProphet> I actually don't even remember how I learned Perl.
23:22:51 <CakeProphet> it just kind of happened.
23:22:53 <pikhq_> Ginto8: It is objectively worse for high-level code than, e.g. Smalltalk, and objectively worse for low-level code than, e.g. C.
23:22:58 <elliott> Deewiant: Nice.
23:23:03 <elliott> Deewiant: Why do you need those :P
23:23:14 <Deewiant> elliott: AIUI C1X has something equivalent but nothing implements it
23:23:34 <Deewiant> elliott: union coords { struct { int x,y,z; } int[3] v; }
23:23:40 <Deewiant> s/}/};/g
23:23:44 <pikhq_> It is a solution in search of a problem.
23:23:44 <Ginto8> pikhq_, a well-written C++ program can run as well as an equivalent C program, provided you use OOP where it's good, and don't just randomly throw things into a class because you feel like it
23:24:03 <elliott> Deewiant: Why :P
23:24:12 <CakeProphet> Ginto8: I don't think it was talking about efficiency.
23:24:17 <CakeProphet> s/it/he/
23:24:22 <Deewiant> elliott: Because writing foo.x is a lot nicer than foo.v[0]? :-P
23:24:26 <monqy> "it" is better
23:24:28 <CakeProphet> lol freudian slip I like to objectify people.
23:24:29 <elliott> Ginto8: And it'll either be incredibly ugly to avoid all C++ overhead, or not actually as fast as C.
23:24:33 <zzo38> For low level (actually, "all level") interpreted code, Forth is good for that. For portable low level compiled code, C is good. For portable high level compiled code, Haskell is pretty good.
23:24:44 <elliott> Deewiant: But N-dimensional
23:25:02 <Ginto8> elliott, true, but it allows more code reusability at a slight sacrifice
23:25:18 <Deewiant> elliott: N-dimensional it ain't
23:25:20 <elliott> Ginto8: Not IME... I take it you've seen the C++ FQA
23:25:23 <CakeProphet> for awesome scripts that do not correspond to all to any sort of low-level high-level analogy, Perl is good.
23:25:25 <elliott> Deewiant: Gross arbitrary restriction
23:25:34 <Deewiant> elliott: Optimizing for the common case
23:25:43 <elliott> Deewiant: Doesn't mean you should omit other cases
23:25:53 <Deewiant> elliott: There's no such thing as a Funge file format above trefunge, for instance
23:25:56 <Deewiant> elliott: Arguably they don't exist
23:26:18 <elliott> Deewiant: Then don't provide loading for those
23:26:32 <pikhq_> Also, the STL *alone* is reason enough to reject C++ entirely, IME.
23:26:41 <Deewiant> elliott: Really, I just don't want to figure out the general cases for a couple of tricky algorithms :-P
23:26:54 <Ginto8> elliott, no I haven't, but as I'm a game programmer, there's no high-level language with both enough performance and enough library support to be worthwhile
23:26:59 <CakeProphet> am I the only one here that vaguely finds C# to be a good language?
23:27:02 <Ginto8> but I will look at it
23:27:05 <CakeProphet> compared to, say, C++ and Java?
23:27:09 <monqy> help whats haskell
23:27:13 <Ginto8> CakeProphet, it's decent
23:27:17 <pikhq_> Ginto8: You're hallucinating. :P
23:27:20 <elliott> Deewiant: shiro-lahey continues to be superior.
23:27:29 <Deewiant> elliott: And nonexistent
23:27:29 <elliott> Ginto8: I'm using Haskell for that :-)
23:27:33 <Ginto8> pikhq_, please please PLEASE provide me with an alternative
23:27:34 <pikhq_> CakeProphet: C# tries to be a better Java, and seems to pull that off.
23:27:35 <elliott> Deewiant: Well, yet.
23:27:43 <Deewiant> elliott: Until it exists it's inferior
23:27:46 <CakeProphet> Ginto8: if I recall there's a JIT compiler for lua that gets pretty amazingly close to C++ speeds.
23:27:53 <Ginto8> o.o
23:27:54 <elliott> Deewiant: I'm really tempted to call it lahey-space instead and scrub all references of Funge
23:27:58 <monqy> CakeProphet........................................................
23:27:58 <Ginto8> lua?
23:28:00 <elliott> CakeProphet: That means you have to use Lua.
23:28:02 <monqy> lua is bad too
23:28:03 <CakeProphet> pikhq_: yes, this is why I think it's a success.
23:28:07 <elliott> Pretty big disadvantage there.
23:28:14 <CakeProphet> he asked for a high level language. so... there it is.
23:28:19 <zzo38> C# is about as good as Visual Basic, I think. But probably a bit better because they have some C stuff that Visual Basic doesn't work. I do not program in C# but I did once find and read a C# program because I found a program for Duckworth-Lewis method and it was written in C#
23:28:29 -!- GuestIceKovu has changed nick to Slereah.
23:28:33 <monqy> lua, the epitome of high level languages
23:28:56 <Ginto8> zzo38, please NEVER EVER refer to VB as a "good" thing. I've been there, I've done that, and I've suffered enough
23:28:57 <Deewiant> elliott: Lahey-space is just the topology, which I'm pretty sure other people call a torus
23:28:58 <CakeProphet> also lua is commonly used in game programming so I figured it would be a good choice for that since it's probably well-supported by existing software.
23:29:11 <elliott> Deewiant: Tori aren't infinite
23:29:12 <pikhq_> Ginto8: Obvious answers include C# and Java. Slightly less obvious answers involve "Most friggin' languages, seriously constant factors hardly matter, stop kidding yourself."
23:29:21 <elliott> pikhq_: That's not really true.
23:29:22 <zzo38> Ginto8: It isn't a good thing in general. I didn't try to imply it is
23:29:26 <elliott> Python won't work for anything three-dimensional.
23:29:36 <Deewiant> elliott: The filled-with-spaces stuff is Funge, not Lahey
23:29:43 <CakeProphet> pikhq_: Python, Perl, and Ruby for game programming = lol
23:29:59 <monqy> CakeProphet: and yet you suggest lua
23:30:03 <elliott> Deewiant: Hmm, I'd say Lahey-space includes tori and funge-space
23:30:04 <CakeProphet> elliott: though numpy helps a bit.
23:30:10 <CakeProphet> monqy: yes because it has a very good JIT compiler.
23:30:14 <elliott> Deewiant: Tori themselves aren't equivalent because they can't be infinite
23:30:20 <zzo38> Well, Visual Basic works when writing simple GUI programs meant for Windows only. That it is what it is invented for and that is probably all it should be used for.
23:30:21 <elliott> CakeProphet: numpy is not really useful for game programming.
23:30:29 <elliott> monqy: LuaJIT is very fast, mind you
23:30:34 <pikhq_> I also feel obligated to pimp Haskell here.
23:30:35 <zzo38> It should not be used for other purpose instead
23:30:35 <Deewiant> elliott: Mayhap, that was just a side point anyway
23:30:42 <elliott> pikhq_: Shut up I'm in charge of Haskell pimpin'.
23:30:47 <Deewiant> elliott: My main point was the space stuff :-P
23:30:50 <elliott> Deewiant: Well, give it a less Funge-related name than fungespace then
23:30:54 <monqy> 16:29:04 < monqy> help whats haskell
23:30:58 <monqy> does that count as pimping
23:31:00 <Deewiant> elliott: I.e. Lahey is just "vectors wrap like this"
23:31:02 <elliott> Deewiant: What if I made it handle finite spaces too :P
23:31:10 <elliott> Wait
23:31:14 <elliott> Deewiant: Fungespace is finite too, duh
23:31:27 <pikhq_> Ginto8: Oh, further obvious answer: C.
23:31:29 <zzo38> For some game programming I find QBASIC useful, though.
23:31:34 <Deewiant> elliott: Yes, except in bignum funges which aren't spec-compliant
23:31:39 <elliott> Deewiant: Those aren't funges
23:31:43 <CakeProphet> elliott: though actually it's probably comparable to Java... which is still pretty fast for most purposes.
23:31:45 <Deewiant> elliott: In which it's still finite, but arbitrary
23:31:51 <elliott> Deewiant: But yeah, it's literally just implementing a torus with a certain eye towards memory consumption :-)
23:32:06 <elliott> Finite but arbitrary = ugly implementation-centric way to say infinite
23:32:24 <Deewiant> elliott: No, because e.g. y stipulates that bounds must exist :-P
23:32:40 <elliott> Deewiant: Fair enough
23:32:45 <elliott> Deewiant: It's a finitely-filled infinite space
23:32:46 <Deewiant> elliott: (Of course it also stipulates that a maximum size exist)
23:32:51 <CakeProphet> ArrayList in Java = infinite
23:32:52 <Deewiant> elliott: Yeah, that's correct
23:32:53 <CakeProphet> :)
23:33:03 <CakeProphet> because it's finite but arbitrary.
23:33:41 <Deewiant> elliott: Anyhoo, call it whatever you like but I argue that "lahey-space" is an insufficiently precise designation
23:33:43 <zzo38> For MegaZeux game programming, I can use Robotic and Forth.
23:33:49 <Deewiant> elliott: You could make that a type class though :-P
23:34:28 <elliott> Deewiant: The question is, are there any Lahey spaces other than tori and infinite fungespaces
23:34:48 <elliott> Deewiant: If not, then I think calling it LaheySpace is fair
23:34:49 <Deewiant> elliott: Infinite fungespaces aren't Lahey, I don't think
23:35:04 <Deewiant> elliott: Assuming they can be infinitely full
23:35:13 <elliott> <elliott> Deewiant: The question is, are there any Lahey spaces other than tori and infinite finitely-filled fungespaces
23:35:13 <elliott> Jeez :P
23:35:19 <Deewiant> elliott: "The requirements for a line in Lahey-space are the following: Starting from the origin, no matter what direction you head, you eventually reach the origin."
23:35:35 <elliott> Yes, but I'm saying is there any other weird topological space that fits that apart from those two
23:37:01 <Deewiant> I think that just defines a torus, or at least that's what it seems like to me
23:37:25 <elliott> Deewiant: "infinite finitely-filled fungespaces" ;; one of these is not a torus.
23:37:28 <Deewiant> I guess there's stuff like Möbius strips but it can probably be represented as a funky torus
23:37:35 <elliott> You can represent any individual state of it as a torus
23:37:37 <elliott> But it's not a single torus
23:38:31 <Deewiant> If it's a torus in R^n it is ;-P
23:38:45 <elliott> Deewiant: Some torus
23:39:21 <zzo38> What is "Haskell pimpin'"?
23:39:33 <Deewiant> elliott: Anyway, no, I don't think so
23:40:13 <CakeProphet> !perl sub take($@){(print,/$_[0]/&&last)for(@_[1..$#_])} print take /3/, 1,2,3,4,5
23:40:13 <EgoBot> 11
23:40:24 <elliott> Deewiant: Then all I have to do is support Integer coordinates and I can call it LaheySpace because it covers every kind of Lahey space
23:41:13 <Deewiant> elliott: No it doesn't, because Lahey spaces don't have the requirement that the value at every point is initially a space
23:41:33 <elliott> Deewiant: I'll just parameterise on the "empty value", duh
23:41:34 <Deewiant> elliott: In fact, they aren't required to be such kinds of key-value stores at all :-P
23:41:50 <elliott> I guess you could have a continuous lahey-space :/
23:41:54 <CakeProphet> !perl sub take($@){grep!/$_[0]/,@_[1..$#_]} print take qr/3/, 1,2,3,4,5
23:41:55 <EgoBot> 1245
23:41:55 <Deewiant> Yep
23:42:02 <CakeProphet> oh right.
23:42:04 <elliott> Deewiant: Well I'm not calling it a DiscreteFinitelyFilledSparseLaheySpace
23:42:09 <elliott> DFFSLS
23:42:22 <Deewiant> elliott: What's so wrong with FungeSpace
23:42:48 <Gregor> DFFSLS rolls of the tongue better.
23:42:53 <elliott> Deewiant: Because I want to upload it to Hackage and make a post to the appropriate Haskell list and have everyone stare in confusion at my topological prowess
23:43:01 <elliott> It will be So Serious.
23:43:08 <Deewiant> elliott: Yeah, well, oh well
23:43:11 <CakeProphet> DFFSLS looks like something !wacro would make.
23:43:18 <monqy> !wacro
23:43:19 <EgoBot> SMUIQSCC
23:43:22 <monqy> bad
23:43:25 <monqy> !acro
23:43:28 <Deewiant> !wacro
23:43:29 <EgoBot> MZTPB
23:43:30 <EgoBot> RGBSQHAAQZ
23:43:33 <monqy> also bad
23:43:34 <CakeProphet> lol
23:43:46 <CakeProphet> FINE I'LL CHANGE It
23:44:04 <Deewiant> elliott: Just make a separate laheyspace package with the LaheySpace type class
23:44:14 <Deewiant> elliott: With no instances
23:44:19 <Deewiant> elliott: And then write a page or two about it
23:45:00 <elliott> Deewiant: X-D
23:45:12 <elliott> Deewiant: "Unfortunately there cannot be any truly general instance. The user is encouraged to define their own."
23:45:28 <Deewiant> Yup
23:46:10 <elliott> I just really want to get the Hackage bot to spam #haskell with serious-looking updates where I HALVE THE TIME OF [FANCILY-NAMED OPERATION]
23:46:55 <Deewiant> And you can do that while calling it FungeSpace
23:47:15 <Deewiant> Not like the name will mean any more or less than LaheySpace to most people, even most #haskell people
23:47:24 <elliott> No, they can easily determine that fungespace is only used in one context by googling
23:47:36 <elliott> Lahey-space could just be something really obscure that's only in the Funge spec and also heavy books on advanced topology
23:47:36 <Deewiant> Ditto laheyspace
23:47:46 <elliott> Since it isn't obviously invented for the purpose from the spec
23:48:10 <Deewiant> I suppose
23:48:39 <Deewiant> But I think when they see that "the mathematical model" is http://catseye.tc/projects/funge98/doc/laheys.jpg they'll understand
23:49:15 -!- Ginto8 has left ("Leaving").
23:50:06 <elliott> RIP Ginto8, killed by Haskell.
23:50:17 <elliott> Deewiant: Or they'll conclude that the page is just shit, like so many 90s webpages
23:51:09 <Deewiant> Ahem, Copyright (c)2000 Chris Pressey, Cat's Eye Technologies.
23:51:33 <Deewiant> But yeah, whatever
23:51:51 <Deewiant> These days google would find the advanced topology results as well, if there were any
23:52:13 <Deewiant> But I doubt it matters anyway :-P
23:53:23 <elliott> http://www.google.com/search?tbm=bks&tbo=1&q=lahey+space&btnG=
23:53:30 <elliott> Are we 'persons' yet?: law and sexuality in Canada - Page 5
23:53:35 <elliott> are we persons yet
23:53:57 <Deewiant> Use quotes, zero results
23:54:03 <monqy> I was just about to say
23:55:15 <elliott> dam u
23:56:33 <zzo38> DO NOT SIT ON THIS CHAIR PAST THE HOURS OF 6 AM ON [date].
←2011-08-22 2011-08-23 2011-08-24→ ↑2011 ↑all