←2013-02-20 2013-02-21 2013-02-22→ ↑2013 ↑all
00:00:00 <ais523> then that tells me where the far corner is
00:00:15 <ais523> quintopia: you have to make the area around the corners with no flags indistinguishable from the edge
00:00:17 <quintopia> who said flags are in the corners
00:00:20 <ais523> oh
00:00:25 <ais523> I didn't, but I meant to
00:01:01 <nooga> i got let d n = [ x | x <- [1..n-1], n `mod` x == 0 ] and let sd n = sum $ d n
00:01:13 <ais523> I guess the next step in the strategy would be attempting to mine under the non-flag corners as the opponent tried to measure them
00:01:15 <quintopia> but yeah, even in that case: build borders on the two sides near my flag moving towards the enemy flag. make the rectangle smaller and smaller
00:01:32 <ais523> quintopia: yeah, that corresponds to the "slow rush", I think
00:01:38 <nooga> but [(x,y) | x <- [1..10000], y <- [1..10000], x /= y, sd x == y, sd y == x] seems inefficient
00:01:46 <ais523> might have to tweak the timings to stop that being /too/ effective
00:02:04 <ais523> also, the opponent would probably be able to outpoke that
00:02:17 <quintopia> if they know where to poke
00:02:18 <ais523> I'm not convinced that this works, but I can't think of an obvious breaking strategy
00:02:31 <ais523> quintopia: well you're doing move, check, mine, move, check, mine…
00:02:37 <ais523> I'm doing move, check, move, check…
00:02:44 <ais523> so I reach the corner first, if we're aiming for the same corner
00:02:57 <quintopia> i was think reverse mining from the corner
00:03:02 <ais523> reverse decoy setup :)
00:03:07 <quintopia> obv
00:03:22 <quintopia> but if you pick the wrong corner
00:03:41 <ais523> yeah
00:03:42 <quintopia> i could make several borders on the other side
00:03:47 <quintopia> and
00:03:48 <quintopia> boom
00:04:00 <ais523> also if the playfield is approximately square
00:04:04 <quintopia> well
00:04:08 <quintopia> i'm assuming it isn't
00:04:08 <ais523> I'll see an unexpected 4 when I was looking for 3s and 5s
00:04:14 <quintopia> because that would be too easy then
00:04:15 <FreeFull> nooga: I started with the primes library
00:04:15 <ais523> I'm assuming it has a random chance to be
00:04:19 <ais523> but usually isn't
00:04:49 <FreeFull> My solution is a bit slow though, takes 3 seconds
00:05:06 <nooga> my takes minutes
00:05:12 <nooga> i know it's really naive
00:05:20 <quintopia> anyway, i like zzo's old idea for modifying bfjoust
00:05:31 <ais523> the one with a doubling cube?
00:05:31 <FreeFull> I wrote an isAmicable function and then filtered on it
00:05:36 <quintopia> where , reads in a random number to the current cell
00:05:46 <ais523> actually I don't know if he had that idea, but he should have done
00:05:54 <ais523> quintopia: that wasn't actually the idea, his , read the opponent's .
00:05:58 <ais523> but reading in random does indeed make sense
00:06:00 <quintopia> and . writes out yeah that
00:06:04 <quintopia> it was both actually
00:06:05 <nooga> uh
00:06:07 <nooga> bbl
00:06:19 <ais523> part of the problem is that [,] seems like the best clear loop ever
00:06:21 <FreeFull> Maybe for the 2D bfjoust you could actually have something where all your movements are mirrored
00:06:38 <FreeFull> Or rather rotated 180°
00:06:40 <quintopia> ais523: well, i had several ideas for how to modify it
00:06:49 <FreeFull> So that you basically have two players at once
00:06:54 <quintopia> but that idea doesn't work
00:07:00 <quintopia> if the random number is never zero
00:07:02 <ais523> it's as fast as a 2-cycle clear on average, and is immune to all types of lock
00:07:13 <ais523> hmm
00:07:28 <ais523> I'd actually like to see something like a ± instruction that randomly increments or decrements the current cell
00:07:39 <ais523> that's good for making random /decisions/, but doesn't exceed any sort of speed of light
00:07:52 <ais523> and [±] is a valid, hard-to-lock clear loop, but a very slow one
00:07:54 <quintopia> yep that's what i was thinking too
00:08:05 <quintopia> that , would read in a 1 or -1
00:08:11 <quintopia> and add it to the current value
00:08:40 <quintopia> but also
00:08:49 <quintopia> i thought it might be cool to leave the bf as it is
00:09:00 <quintopia> and make the randomness in the meta parts of the syntax
00:09:01 <ais523> I was wondering about that too
00:09:09 <ais523> oh, I thought you meant 1/0/-1
00:09:16 <ais523> you mean a ()*?
00:09:17 <ais523> or whatever?
00:09:20 <quintopia> yeah
00:09:35 <ais523> I'm not sure I like 0-cycle randomness
00:09:48 <ais523> control structures having a cost is what prevents them just being spammed everywhere
00:09:59 <quintopia> huh
00:10:02 <quintopia> you lost me
00:10:19 <FreeFull> How about being able to plant a mine that teleports you or your opponent to a random spot when dug up
00:10:39 <FreeFull> Too good?
00:10:55 <quintopia> (+)*/0,60/ could output up to 60 plusses and those 60 plusses will take 60 cycles to execute
00:11:15 <FreeFull> Maybe planting the mine could teleport you to a random spot too
00:11:20 -!- augur has joined.
00:12:00 <ais523> FreeFull: it doesn't sound as good as a mine that just makes you win the game when it's dug up
00:12:15 <ais523> quintopia: I'm thinking in terms of (one strategy)*/0,1another strategy
00:12:21 <ais523> err, missing slash, but you know what I mean
00:12:29 <FreeFull> ais523: Then you'd just plant it and dig it up
00:12:33 <FreeFull> How about moveable flags?
00:12:46 <quintopia> ais523: i don't see any problem with that
00:12:58 <ais523> quintopia: you're making the decision in 0 cycles
00:13:00 <ais523> it feels like it should take 1
00:13:16 <ais523> FreeFull: flags in BF Joust can't be moved, for good reason
00:13:18 <Sgeo> Is bfc maintained...
00:13:23 <Sgeo> why would bfc need to be maintained
00:13:25 <ais523> otherwise you'd wait for the opponent to rush
00:13:30 <ais523> then move your flag to behind them
00:13:39 <ais523> I imagine something similar would happen in Minesweeper Joust
00:14:01 -!- Sanky has joined.
00:14:10 <quintopia> ais523: a game doesn't usually hang in the balance of a single cycle, or even five cycles
00:14:14 <ais523> also it might lead to a theoretically unbeatable triplock variant
00:14:26 <FreeFull> I see
00:14:27 <ais523> quintopia: yeah but when it does it's awesome
00:14:46 <FreeFull> ais523: Even if the flag is always moved to where your opponent currently is?
00:15:01 <ais523> FreeFull: then you move the flag on the first cycle
00:15:09 <FreeFull> Unless the opponent is on their own flag
00:15:09 <ais523> now your opponent can't possibly win via flag zeroing
00:15:12 <FreeFull> Then it fails silently
00:15:47 <ais523> now it's not obviously broken, but I'm still not convinced it's interesting to play
00:16:06 <quintopia> ais523: i'm fine with , randomly adding either 1 or -1, then. then you can do a strategy choice as +,[strategy]otherstrategy
00:16:09 <ais523> part of the problem: say you flag-teleport during the enemy decoy setup, now you can only be beaten if the opponent zeros their own decoys
00:16:22 <ais523> say you /don't/ do that, now you're probably going to win if the opponent zeros their own decoys
00:16:25 <ais523> quintopia: yeah
00:16:47 <quintopia> ais523: do you see anything that anyone could complain about with having that command?
00:16:56 <quintopia> besides elliott
00:17:03 <quintopia> he doesn't play anyway
00:17:21 <FreeFull> What if you are able to teleport the enemy's flag to random place instead?
00:18:59 -!- DH____ has joined.
00:19:55 <oerjan> <nooga> but [(x,y) | x <- [1..10000], y <- [1..10000], x /= y, sd x == y, sd y == x] seems inefficient <-- you definitely don't want that y <- [1..10000], you _know_ y should be = sd x if it fits at all.
00:20:18 -!- DHeadshot has quit (Ping timeout: 252 seconds).
00:20:27 <ais523> quintopia: I'd like a separate hill for it, it'd play out very differently
00:20:43 <ais523> something as simple as a random polarity on the clear would make defence rather harder to write
00:20:56 <quintopia> okay we'll set it up as soon as i ruin the current hill
00:20:57 <ais523> also it being unclear whether one program beat another or not would hurt
00:21:17 <ais523> quintopia: I'm not 100% convinced that it's possible to always beat everything via special-casing
00:21:47 <quintopia> well, i'm still going to try
00:21:54 -!- carado has quit (Ping timeout: 256 seconds).
00:22:30 <ais523> quintopia: btw, I thought up a hilarious optimism variant
00:22:38 <ais523> you attempt to lock the enemy on cell 9
00:22:43 <ais523> and use the lock to complete your decoy setup
00:22:46 <quintopia> beating everything 90% of the time would be good enough, right?
00:22:50 <ais523> only /then/ do you clear :)
00:23:11 <ais523> quintopia: well… the problem is
00:23:28 <ais523> suppose I write ill_bet_you_have_three_decoys
00:23:43 <ais523> and the matching programs for two and one (zero and four have already been written)
00:23:51 <ais523> and five and six and seven and eight and so on
00:24:04 <ais523> one of those programs will beat pretty much any non-defence program you could write
00:24:07 <ais523> and defence has its own issues
00:24:14 <quintopia> finite hill
00:24:17 <ais523> which one, of course, will depend on your decoy setup
00:24:20 <quintopia> good luck keeping all of them on it
00:24:29 <ais523> and there's room for all the programs from 0 to 29 on the hill
00:24:55 <quintopia> you don't think it's possible to beat all of them at once?
00:25:12 <ais523> !bfjoust ill_bet_you_have_twentynine_decoys (>)*29((+)*110[+][-.--[-.--]])*-1
00:25:15 <EgoBot> ​Score for ais523_ill_bet_you_have_twentynine_decoys: 0.0
00:26:23 <ais523> huh, it beats every other program on tape length 30 but atewah_test_rush (and on one polarity, david_werecat_ill_take_the_stairs)
00:26:26 <quintopia> anyway, a metastrategy that requires 29 programs teaming up to beat it is pretty much the definition of ruining the hill so unless you've got something better, you've proved my point
00:26:39 <ais523> quintopia: well it's an existence proof
00:26:59 <ais523> and it needs far fewer programs to do it in practice
00:27:10 <ais523> because you can't set 29 decoys and do even remotely well against pretty much anything
00:27:12 <FreeFull> You only should be allowed to have 3 programs at a time
00:27:47 <quintopia> FreeFull: or as many as you want at a time! infinite hill!
00:27:49 <ais523> really I just wanted to write a program called ill_bet_you_have_twentynine_decoys
00:28:02 <ais523> FreeFull: I have more than 3, but they're pretty varied in how they work
00:28:13 <ais523> we have a sort of informal agreement not to spam the hill with similar variants of the same program
00:28:52 <quintopia> but no such informal agreement against special casing the hell out of some battles
00:28:55 <ais523> quintopia: the other thing is that a program that gets a 100% record purely through excessive tweaking will tend to fall very quickly
00:29:13 <ais523> when it's beaten by all the random programs that get submitted
00:29:26 <ais523> unless it has a very solid core strategy and just tweaks against its bad matchups
00:29:45 <quintopia> ais523: this is exactly why i came up with the alternate idea of giving programs extra credit for time spent on the hill
00:29:55 <ais523> quintopia: I like that idea
00:30:17 <ais523> it might be interesting to have any program that had ever topped the hill permanently on the hill, barring deliberate attempts at hill manipulation
00:30:28 <ais523> plus a fixed number of newcomers, 30 or so
00:30:29 <quintopia> and not a multiplier. an exponentially decaying constant bump
00:30:40 <Phantom_Hoover> "A South African inventor brought the Blaster car mounted flamethrower to market in 1998 as a security device to defend against carjackers.[39] It has since been discontinued, with the inventor moving on to pocket-sized self-defence flamethrowers.[40]"
00:30:48 <Phantom_Hoover> [[wp:flamethrower]]
00:30:53 <ais523> but that would face a problem of people just tweaking against the permadenizens
00:30:59 <Phantom_Hoover> i know nothing about this person but already i love them
00:31:16 <ais523> Phantom_Hoover: South Africa is reasonably famous for allowing people to legally use deathtraps to protect their own property
00:31:18 <quintopia> like, one years gets you 25 extra points, 2 years gets you 37.5 extra points, 3 years gets you 43.75 extra points etc.
00:31:41 <ais523> quintopia: yeah, but that would probably lead to programs that were actually theoretically unbeatable
00:31:49 <ais523> except by another program that stayed on the hill with them for 10 years
00:31:52 <Phantom_Hoover> yeah but like a /self-defence/ flamethrower??
00:31:59 <ais523> unless there was an actual concerted effort to take them down
00:32:07 <ais523> Phantom_Hoover: it's probably less effective than a gun
00:32:08 <quintopia> ais523: how so? that sequence tops out at 50 extra points.
00:32:15 <ais523> quintopia: yeah, but 50 points
00:32:15 <Phantom_Hoover> that's just the result of a mind convinced to solve all of life's problems with flamethrowers
00:32:20 <quintopia> you could set the excess at any value
00:32:23 <ais523> imagine trying to beat, say, space_hotel by 50 points
00:32:35 <ais523> that's a really neatly designed puzzle
00:32:39 <ais523> err, program
00:32:47 <ais523> it resists most of my attempts to beat it via non-cheesy means
00:32:55 <quintopia> in the fixed point algorithm scores are higher and more varied
00:33:03 <ais523> hmm, OK
00:33:15 <quintopia> but again, set it to any total you like
00:33:18 <quintopia> 15 extra points
00:33:19 <quintopia> whatever
00:33:55 <ais523> quintopia: anyway I don't see any fun in repeatedly making mindblowingly tweaked gimmick programs
00:34:09 <ais523> doing it once would be great
00:34:20 <ais523> but after that you'd expect the author to get bored
00:34:27 <ais523> and get back to regular play
00:35:01 <quintopia> or to keep doing it until it becomes impossible! TROLOLOLOLOL!!!!!
00:35:33 <ais523> quintopia: well we reverted the hill after I wrote a program that beat everything, and elliott submitted 48 copies of it and pushed everything else off the hill
00:35:36 <ais523> which was admittedly a neat exploit
00:35:38 -!- doesthiswork has quit (Quit: Leaving.).
00:35:45 <ais523> but really against the spirit of things
00:36:25 <ais523> the "correct" way to defend against excessive tweaking, and the method actually used in Original BF Joust (which only ever ran one round, IIRC), is to put a time lag between programs being submitted and them hitting the hill
00:36:34 <ais523> so the submissions are made without knowledge of each other
00:36:40 <ais523> but that'd be less fun in terms of the community aspects
00:37:04 <quintopia> yeah that misses one major point
00:37:50 <ais523> what point?
00:38:10 <quintopia> the process of incrementally adding new strategies
00:38:22 <quintopia> which i reeeeaallly think should include mixed strategies!!!!!
00:39:14 <ais523> quintopia: mixed strategies have nasty game-theoretic implications, really
00:39:27 <ais523> like, if you have three programs A, B, and C, which are the only legal deterministic programs
00:39:31 <ais523> and you can randomly choose between them
00:39:37 <ais523> what's the best random mix?
00:39:53 <quintopia> there isn't one
00:39:55 <quintopia> so what
00:40:01 <ais523> (the game theory answer is "they're all equally good on average, and if the opponent produces something that has no disadvantages, it has no advantages either and it doesn't matter what you run")
00:40:27 <ais523> so what would actually happen would depend a lot on the actual random numbers
00:40:28 -!- sebbu has quit (Ping timeout: 272 seconds).
00:40:33 <quintopia> we have far more than 3 strategies
00:40:36 <ais523> unless you averaged over all possible randomnesses, which would be very slow
00:40:40 <ais523> quintopia: I know, that's just an example
00:40:41 <quintopia> and we are humans
00:41:05 <quintopia> and we could get so much more complexity by tinkering with the distributions like that
00:41:44 <ais523> basically I'm thinking in terms of the game being more interesting in knowing which strategies beat which other strategies
00:41:50 <ais523> or to put it another way, I don't play BF Joust to win
00:41:55 <ais523> I play it to know more about the game
00:42:03 <ais523> I enjoy finding winning strategies
00:42:05 <ais523> but don't mind if their beaten
00:42:22 <ais523> and the vast majority of my good programs have had things that just beat them outright
00:42:26 <ais523> (all the defence programs, for instance…)
00:42:53 -!- augur has quit (Remote host closed the connection).
00:43:27 -!- augur has joined.
00:43:43 -!- carado has joined.
00:44:15 <ais523> I actually suspect that the BF Joust ruleset itself is flawed, even ignoring any hill effects
00:44:20 <ais523> just we haven't broken it yet
00:45:06 <ais523> the thing that has me most worried is death_to_defence, and poking to a lesser extent
00:46:52 <quintopia> i don't think you should be worried
00:46:54 -!- DH____ has quit (Read error: Connection reset by peer).
00:46:56 <quintopia> and i think you are wrong
00:47:10 -!- DHeadshot has joined.
00:47:22 <quintopia> i think for every strategy there is a counterstrategy (that may be much more complicated)
00:47:24 <ais523> wrong in what respect? the basic ruleset?
00:47:55 -!- augur has quit (Ping timeout: 260 seconds).
00:48:18 -!- oerjan has quit (Quit: leaving).
00:48:49 <quintopia> for instance, maybe there is a clear that can defeat every lock
00:49:11 <quintopia> but we can be certain said clear will take a hell of a lot of time to accomplish said clearing
00:49:23 <ais523> quintopia: what about timer clears?
00:49:55 <Sgeo> Hum. The inactive Active Worlds wikia was vandalized by someone in the Active Worlds community to point to their own wiki.
00:49:57 <quintopia> so then we develop a quicker sort of full tape clear that only requires it to be locked for so many cycles...not forever
00:49:59 -!- augur has joined.
00:50:03 <Sgeo> I don't know whether to leave it there or not
00:50:34 <Phantom_Hoover> it's wikia
00:50:36 <Phantom_Hoover> who gives a shit
00:50:36 <quintopia> Sgeo: no one cares!
00:50:45 <Phantom_Hoover> it's activeworlds
00:50:46 <quintopia> just leave it
00:50:48 <Phantom_Hoover> who gives a shit
00:51:20 <ais523> if it's wikia, just leave it
00:51:35 <ais523> that place needs to become a ghost town
00:52:03 <Sgeo> The MSPA wiki is on wikia
00:52:28 <ais523> Wikia used to be OK, but it's got increasingly evil over time
00:53:17 <Phantom_Hoover> the mspa wiki is when i really started hating wikia
00:53:33 <Phantom_Hoover> an interstitial for every. single. link. to the actual comic
00:54:04 <Sgeo> Clicking the green thing next to the link helps
00:54:14 -!- augur has quit (Remote host closed the connection).
00:54:51 -!- augur has joined.
00:54:56 * Sgeo kind of trolled ##wikia just now
00:55:02 <Sgeo> <Sgeo> I apologize to the Creatures community, the NetHack community, and the Active Worlds community, for my decisions to start those wikis on Wikia.
00:55:02 <Sgeo> <Sgeo> That is all
00:55:48 <ais523> Sgeo: that was possibly a bad idea
00:56:01 <Sgeo> :/ Creatures wiki is still on Wikia
00:56:20 <Sgeo> But... Wikia wasn't oblivious to our hate, were they?
00:56:33 <ais523> no
00:56:37 <ais523> but we'd prefer to let things die
00:56:39 <ais523> than stir them up
00:56:51 <ais523> I had considered reporting Wikia to Google for black hat SEO
00:56:55 <ais523> but am not sure how or if it's worthwhile
00:57:18 <ais523> (the links between all the individual wikias at the bottom seem to exist only for SEO purposes and not for actual people who'd want to use the wikis)
00:59:10 <ais523> IMO search engines should also deprioritise sites for obnoxious advertising
00:59:15 <ais523> but Google clearly wouldn't do that
00:59:35 -!- augur has quit (Ping timeout: 260 seconds).
01:00:40 <kmc> you can't apologize to A by going up to B and saying "I apologize to A"
01:00:53 <Sgeo> http://pastie.org/private/ojojgjppm6diios6tfxxkg
01:00:56 <Sgeo> the replies
01:01:02 <Sgeo> (from before PH joined)
01:01:15 <Phantom_Hoover> sgeo does not really understand things like 'who he's talking to'
01:02:50 * Sgeo was intending mostly to troll.
01:02:56 <Sgeo> But maybe I should go apologize
01:03:00 <Sgeo> To those communities
01:03:07 <Phantom_Hoover> you are literally the worst troll
01:03:16 <Phantom_Hoover> do you want, like, lessons
01:03:18 <Phantom_Hoover> in being a dick
01:04:44 -!- madbr has joined.
01:04:46 <madbr> sup
01:05:51 <madbr> ok, VLIW processing unit design is hard
01:06:00 <madbr> the problem is long feedback loops
01:06:57 -!- pikhq has quit (Remote host closed the connection).
01:08:45 <Bike> who's trolling? did i get trolled?
01:10:37 <madbr> one cycle feedback? awesome, just asign a register to that instruction kthnx
01:11:04 <madbr> two cycle -> complexity balloons up and the design becomes monstruous kinda fast
01:11:13 -!- Nisstyre-laptop has quit (Quit: Leaving).
01:11:26 <Phantom_Hoover> so i was thinking
01:11:42 <Phantom_Hoover> can you make a language super-tc just by expanding the amount of data it can operate on
01:12:07 <Bike> sure, include a halting oracle as data
01:12:25 <Phantom_Hoover> like, as in expanding it to operate on an infinite amount of data in finite time
01:13:06 <Bike> sure, that's a real computer
01:13:17 <Bike> or a zeno machine probably
01:13:20 <Sgeo> That means it could answer the halting problem in finite time
01:13:21 <Sgeo> ?
01:13:35 <quintopia> Phantom_Hoover: you could use that to solve NP problems in P time
01:13:36 <Sgeo> Oh, misunderstood what Bike meant by real computer.
01:13:44 <Bike> a real numbers computer, i mean
01:13:49 <Phantom_Hoover> right
01:13:57 <Bike> not a computer i actually have, alas
01:14:01 <quintopia> but you could not use it do decide undecidable problems
01:14:35 <Phantom_Hoover> but chaitin's constant etc.
01:16:26 <madbr> x86 keeps living on (ps4 is x86)
01:16:44 <madbr> by now it's probably going to survive forever
01:17:17 <Phantom_Hoover> the other thing i was thinking involved splitting a tc system down into sub-tc components in some sense, like in ais523's proof of that thing
01:18:00 <quintopia> that thing that is in his nick :P
01:19:54 <kmc> oh is that where 523 comes from
01:20:04 <Phantom_Hoover> no
01:20:07 <Phantom_Hoover> the other thing
01:20:16 <quintopia> which other thing
01:20:23 <Phantom_Hoover> the 523 was the thing his university added to his username so he stuck with it
01:20:30 <Phantom_Hoover> quintopia, the wolfram thing
01:21:04 <quintopia> huh, i always assumed he added the 523 himself referencing that TM
01:21:14 <Bike> what does that tm have to do with 523
01:21:39 -!- DHeadshot has quit (Ping timeout: 276 seconds).
01:23:59 <quintopia> the (2,3) TM simulates a cyclic tag system using 5 systems
01:24:44 -!- pikhq has joined.
01:25:04 -!- nooga has quit (Ping timeout: 240 seconds).
01:26:03 -!- madbr has quit (Quit: Radiateur).
01:26:20 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:42:17 -!- GOMADWarrior has joined.
01:46:29 <ais523> quintopia: 6, really, they're numbered starting from 0
01:46:38 <ais523> (one thing the paper reviewer disliked)
01:50:10 -!- constant has changed nick to trout.
02:09:19 -!- monqy has quit (Quit: hello).
02:09:21 -!- Nisstyre-laptop has joined.
02:13:35 <quintopia> ais523: that doesn't answer the question. did the uni assign your nick?
02:16:56 <ais523> quintopia: yes
02:16:59 <ais523> they did
02:17:14 <ais523> I thought that was obvious, did you expect PH to be lying about that for no reason?
02:34:13 -!- doesthiswork has joined.
02:40:26 -!- FreeFull has quit (Ping timeout: 255 seconds).
02:40:57 -!- FreeFull has joined.
02:50:56 -!- augur has joined.
02:55:00 -!- augur has quit (Remote host closed the connection).
02:55:07 -!- augur has joined.
03:01:55 -!- GOMADWarrior has quit (Ping timeout: 260 seconds).
03:06:51 <quintopia> ais523: no i gave about equal odds he was right and that he was mistaken and you handpicked your nick for some inscrutable reason
03:07:09 <ais523> fair enough
03:07:13 <ais523> it's random, not handpicked
03:07:22 <ais523> although I suspect the "ais" is a reference to my initials
03:13:46 <Sgeo> `list
03:13:48 <Sgeo> `slist
03:13:54 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti
03:13:54 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
03:16:16 <ais523> `mlist
03:16:18 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: mlist: not found
03:16:28 <ais523> we should notify people about new mezzacotta too
03:16:30 <ais523> just to be complete
03:20:58 <tswett> We should also notify people about new tweets.
03:21:33 <tswett> All new tweets.
03:31:59 <quintopia> i just tweeted in my pants
03:36:25 <kmc> shachaf: did you solve cruptopizzles #14?
04:05:06 -!- jix has quit (Ping timeout: 244 seconds).
04:06:40 -!- jix has joined.
04:45:35 -!- Sgeo has quit (Read error: Connection reset by peer).
04:46:52 -!- Sgeo has joined.
04:55:39 -!- Digital_Versicol has joined.
04:55:52 -!- Digital_Versicol has left.
05:09:15 -!- Frooxius has quit (Ping timeout: 260 seconds).
05:14:54 * pikhq finally has cause to play with mosh; yay.
05:15:06 -!- carado has quit (Ping timeout: 264 seconds).
05:15:08 <pikhq> So far my impression is "neat".
05:16:36 <quintopia> what is mosh
05:16:58 <pikhq> http://mosh.mit.edu/
05:17:21 -!- TeruFSX has quit (Ping timeout: 248 seconds).
05:17:41 <pikhq> SSH, but more tolerant of things like "dropped connection" or "moving IP addresses".
05:20:35 * kmc is a Mosh developer and would be happy to ramble on about how it works :)
05:20:41 <kmc> we also have #mosh
05:21:08 <pikhq> I'm just noting that it's actually quite neat.
05:21:23 <kmc> cool :)
05:21:28 <pikhq> Admittedly I am not testing it in one of the environments where it's heavily needed...
05:21:43 <pikhq> I am SSHing from laptop to desktop over home Wifi right now.
05:21:59 <pikhq> i.e. pretty near ideal latency.
05:22:34 <pikhq> But, I can suspend this sucker and have the connection still going.
05:22:39 <kmc> until someone turns on the microwave oven :)
05:22:40 <pikhq> Which is nice.
05:23:04 <pikhq> Also, the reason I'm doing this is really silly.
05:23:09 <pikhq> mplayer remote control. :P
05:25:48 <kmc> you should run mplayer -vo caca over Mosh
05:25:51 <kmc> it works much better than over SSH :)
05:27:02 <pikhq> I'm sure.
05:27:13 <pikhq> Let me guess: it actually works in a meaningful sense.
05:28:49 <kmc> not that well
05:28:52 <kmc> just better than SSH :)
05:28:58 <pikhq> Hah.
05:33:41 -!- Nisstyre-laptop has quit (Remote host closed the connection).
05:35:45 -!- Nisstyre-laptop has joined.
05:40:31 -!- monqy has joined.
05:47:22 <kmc> '“ISO 2022 locking escape sequences oh flying spaghetti monster please kill me now.” — actual USENIX peer review on reading the Mosh paper.'
05:48:34 <pikhq> Hah. :)
05:48:57 <monqy> thanks usenix
05:51:23 <kmc> thusenix
05:55:22 <Sgeo> Google is advertising the Chromebook inside the new tab thing on Chrome
05:56:52 <kmc> tacky
05:57:36 <Bike> hm, chromium still just shows me a destroying vision of my innermost self
06:10:10 -!- ais523 has quit.
06:17:06 <doesthiswork> kmc: I didn't know that people even made "look around you" references
06:17:53 <kmc> :)
06:21:17 <doesthiswork> delimited continuations are weird, you're evaluating along minding your own business when suddenly the next form turns inside out and is gobbled up by it's stomach
06:22:05 <pikhq> doesthiswork: We do here.
06:22:16 <pikhq> <3 Look Around You.
06:23:13 <doesthiswork> actually come to think of it, that makes perfect sense that this channel would like look around you
06:25:33 <Bike> sardonic mockery with lots of nice big words
06:33:49 <quintopia> now using mosh on irssiconnectbot
06:37:52 <quintopia> and now configured to be usable
06:39:02 <quintopia> and it looks like i have keyboard access to symbols again?
06:39:06 <quintopia> hurray?
06:44:58 <kmc> hurrah
06:45:58 -!- kmc has set topic: PKCS#7 (pronounced like "punshki") IS ENOUGH | http://codu.org/logs/_esoteric/.
06:49:14 -!- evincar has joined.
06:59:01 <mroman> pkcs?
07:02:56 <kmc> pkcs or it didn't happen
07:10:59 -!- FreeFull has quit (Quit: bye).
07:34:41 -!- blsqbot has joined.
07:34:50 <mroman> !blsq 5 5 .+
07:34:50 <blsqbot> 10
07:35:00 <mroman> !blsq 1R@<-
07:35:00 <blsqbot>
07:37:10 <Sgeo> `slist
07:37:14 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:37:27 <mroman> I just hope it does not crash my server :)
07:38:02 <mroman> I'm rather short on memory.
07:38:10 <mroman> I don't even have 100MB
07:39:01 <mroman> !blsq 1R@1R@z[
07:39:02 <blsqbot>
07:39:46 <mroman> !blsq 1R@1R@z[<>R@_+
07:39:46 <blsqbot>
07:42:28 <Sgeo> 'We shall shorthand that to "PH".
07:42:28 <Sgeo> Then, whenever he's prominently in a panel, we can call out "The PH levels are off the chart!"'
07:42:32 <Sgeo> (from Reddit)
07:44:27 <doesthiswork> `olist
07:44:29 <HackEgo> shachaf oerjan Sgeo
07:44:52 <Sgeo> No?
07:53:06 -!- epicmonkey has joined.
08:17:30 -!- fftw has quit (Ping timeout: 264 seconds).
08:24:11 -!- fftw has joined.
08:26:50 -!- sebbu has joined.
08:30:17 <shachaf> oerjan: What does it take to get me taken off `list?
08:30:22 <shachaf> People keep putting me back on.
08:31:17 <shachaf> I've clearly requested not to be on the list -- have had my name removed from the list multiple times -- and they just revert it. What shall I do about it?
08:32:34 <oklopol> what is it?
08:32:36 <shachaf> kmc: Nope. OK, I'll actually work on it tomor^H^H^Hday.
08:33:03 <shachaf> oklopol: It's a list of people who've run `list.
08:33:06 <shachaf> Which I haven't.
08:34:30 -!- evincar has quit (Quit: leaving).
08:35:28 -!- Bike has quit (Quit: no such place).
08:42:35 <oklopol> cool
08:42:38 <oklopol> `list
08:42:46 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti
08:42:49 <oklopol> ?olist
08:42:50 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
08:42:52 <oklopol> `olist
08:42:53 <HackEgo> shachaf oerjan Sgeo
08:42:56 <oklopol> ...
08:43:01 <oklopol> are you sure it's that
08:43:09 <oklopol> because it's double broken then
08:43:23 <oklopol> also what's list
08:43:58 <monqy> list is the list of people who have used `list..no idea what olist is
08:44:22 <Sgeo> `help
08:44:22 <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/
08:45:22 <oklopol> `list
08:45:26 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
08:45:46 <oklopol> haha that's genius
08:45:50 <doesthiswork> `I lost the game
08:45:51 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: I: not found
08:46:02 <shachaf> Would you stop it?
08:46:03 <Sgeo> `liste
08:46:05 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: liste: not found
08:46:08 <oklopol> stop what
08:46:09 <shachaf> You're all obnoxious people.
08:46:13 <Sgeo> shachaf, I am looking to see who to blame
08:46:14 <shachaf> What does it take to get taken off the list?
08:46:34 <Sgeo> Every change to HackEgo is recorded.
08:46:59 <shachaf> Sgeo: Who is to blame is bad code.
08:47:05 <Sgeo> Looks like elliott's fault
08:47:05 <Sgeo> http://codu.org/projects/hackbot/fshg/index.cgi/rev/6077517c1381
08:47:28 <shachaf> OK then.
08:48:03 <shachaf> elliott: You in particular are being obnoxious about this. Why do you do it? What would it take to get you to stop?
08:48:07 <Sgeo> `sed -ie "s/ shachaf//" bin/list
08:48:08 <HackEgo> Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... \ \ -n, --quiet, --silent \ suppress automatic printing of pattern space \ -e script, --expression=script \ add the script to the commands to be executed \ -f script-file, --file=script-file \ add the contents of script-
08:48:14 <Sgeo> `run sed -ie "s/ shachaf//" bin/list
08:48:17 <HackEgo> No output.
08:48:20 <shachaf> (Note: If Sgeo's comment was made in error, please disregard previous message.)
08:48:27 <shachaf> monqy: order of the stick updates
08:48:50 <shachaf> Sgeo: Thanks.
08:48:54 <shachaf> Let's see how long it lasts.
08:49:00 <doesthiswork> `olist
08:49:01 <HackEgo> shachaf oerjan Sgeo
08:49:10 <Sgeo> shachaf, you're welcome
08:49:11 <doesthiswork> :D
08:49:16 <shachaf> doesthiswork: You should stop running `olist when there aren't actually updates.
08:49:32 <shachaf> It's disappointing to see it run and then see that no update actually happened.
08:49:40 <doesthiswork> I wanted to see if it worked
08:50:01 <oklopol> ohh
08:50:19 <Sgeo> `olist is just a fixed list of people
08:50:20 <HackEgo> shachaf oerjan Sgeo
08:50:21 <Sgeo> ...dammit
08:50:23 <oklopol> i read `olist as `list in shachaf's message
08:50:26 <oklopol> erm
08:50:28 <oklopol> the other way around
08:50:31 <shachaf> You "checked if it worked" one hour ago.
08:50:45 <oklopol> so olist does what it's supposed to do and list is just an annoying command for luls
08:51:21 <Sgeo> `list
08:51:24 <HackEgo> cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
08:51:25 <monqy> `smlist wow get ready for 30 days of mega again!!!!!
08:51:27 <HackEgo> shachaf monqy elliott
08:51:55 <oklopol> so what is olist, as i meant to ask before
08:52:12 <monqy> i hear it's an "order of the stick" list
08:52:23 <monqy> i guess the o stands for "of" there
08:52:59 <shachaf> monqy: do you read "order of the stick"
08:53:02 <monqy> no
08:53:06 <monqy> i read super mega though
08:53:10 <shachaf> why not
08:53:14 <shachaf> yes i saw the update, thx
08:53:31 <doesthiswork> shachaf : I though Sgeo was supressing your name from hackego's output and so ran olist to see if I had guessed right
08:53:52 <doesthiswork> vampirism was a surprise
08:54:08 <monqy> imo suppress curse words from hackego's output because of #esoteric is family friendly
08:54:28 <shachaf> what are some good curse words to suppress
08:54:32 <shachaf> is "shachaf" a curse word
08:54:43 <doesthiswork> pole smoking
08:55:13 <monqy> that's a good example, doesthiswork
08:55:59 <monqy> "shachaf" is more like one of those things a cartoon would say instead of a curse. we could replace all "p*** s******" with "shachaf"
08:56:30 <doesthiswork> catamorphism, anamorphism, bijection, surjection
08:57:28 <doesthiswork> I've got the best curse word to censor "("
08:58:25 <doesthiswork> and "->"
08:59:14 <monqy> i find :) offensive please replace with ☺
09:06:48 <shachaf> ÷)
09:07:00 <shachaf> monqy: what about :☺)
09:07:09 <monqy> ☺bscene
09:08:12 <shachaf> ☺rjan
09:08:32 <shachaf> monqy: is the cons operator in haskell offensive when sectioned
09:10:18 -!- epicmonkey has quit (Ping timeout: 272 seconds).
09:10:58 -!- Zerker has joined.
09:11:02 <monqy> what sort of section are we talking here
09:13:01 <shachaf> like ( : )
09:13:05 <shachaf> but without spaces
09:13:11 <shachaf> or (1 : )
09:13:17 <shachaf> that second one
09:13:33 <monqy> ( :[ ])
09:13:48 <shachaf> (☺
09:14:06 -!- sebbu has quit (Ping timeout: 272 seconds).
09:21:23 -!- nooga has joined.
09:21:50 -!- epicmonkey has joined.
09:23:05 <shachaf> monqy: do you know anything about mage tower
09:23:25 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)).
09:24:47 <monqy> nope
09:36:00 -!- Taneb has joined.
09:36:26 <doesthiswork> the card game?
09:36:51 <Taneb> No, the latin swear word
09:37:18 <Taneb> Hang on, what were we talking about?
09:37:31 <Taneb> Because that only makes sense if we are talking about one reasonably obscure card game
09:37:50 <monqy> mage tower???
09:39:18 <Taneb> No, Sopio
09:39:36 <Taneb> Awesome card game
09:42:40 <Taneb> Anyone know any funny variants on the "when all you have is a hammer" quote
09:42:45 <Taneb> Said by famous people
09:45:20 <doesthiswork> when all you have is a nail, everything looks like a hammer
09:45:28 -!- DHeadshot has joined.
09:50:18 <Taneb> doesthiswork, that doesn't work
09:50:19 <Taneb> :P
09:50:37 <doesthiswork> “The civil rights movement in America turned around the corner with Martin Luther King’s 'If I Had a  Hammer’ speech.”
09:51:53 <Taneb> https://www.google.co.uk/search?q=when+all+you+have+is+a+hammer+it's+time+to+seriously+reevaluate+your+life&oq=when+all+you+h&aqs=chrome.0.59j57.2330&sourceid=chrome&ie=UTF-8#hl=en&safe=active&sclient=psy-ab&q=when+all+you+have+is+a+hammer+it%27s+time+to+seriously+reevaluate+your+life&oq=when+all+you+have+is+a+hammer+it%27s+time+to+seriously+reevaluate+your+life&gs_l=serp.3...3170.3693.1.3948.2.2.0.0.0.0.71.139.2.2.0.les%3B..0.0...1c.1.4.p
09:51:53 <Taneb> sy-ab.DZf566slBdc&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.42661473,d.d2k&fp=874b575464b2f52f&biw=1301&bih=682 doesn't give any relevant links at all
09:52:03 <doesthiswork> software engineering is all about using the right wrench to hammer in the screw
09:52:11 <Taneb> I don't think I need most of that url
09:52:21 <doesthiswork> *nail works better than "hammer"
09:53:35 <Taneb> Basically, I'm giving someone a hammer for their birthday
09:54:37 <doesthiswork> get them a beer too
09:55:01 <doesthiswork> and a yoyo for their dog
09:56:18 <doesthiswork> so they can get hammered while they hammer
09:57:43 <doesthiswork> "remeber that time e played hammer tag?" 'no...' "Yeah, I won"
10:01:46 <Jafet> When all you have is O'Neil
10:04:12 -!- monqy has quit (Quit: hello).
10:07:21 <doesthiswork> ``All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer.'' -- IBM maintenance manual (1925)
10:07:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `All: not found
10:07:27 <doesthiswork> woops
10:09:11 -!- Nisstyre-laptop has quit (Ping timeout: 255 seconds).
10:36:52 -!- nooga has quit (Ping timeout: 252 seconds).
10:45:05 -!- carado has joined.
10:52:51 -!- nooga has joined.
10:53:51 -!- Taneb has quit (Quit: Leaving).
11:25:34 -!- copumpkin has quit (Ping timeout: 240 seconds).
11:26:06 -!- copumpkin has joined.
11:53:46 -!- oerjan has joined.
11:55:49 <oerjan> <Sgeo> ...dammit <-- I TAKE IT THIS WAS A FALSE ALARM
11:57:43 <oerjan> `rm bin/liste
11:57:46 <HackEgo> No output.
11:58:21 <oerjan> Sgeo: IT'S NOT sed -ie DAMMIT
11:58:39 <fizzie> Taneb: "You gots hammer? Bhaal once drop hammer on big godly toe. Jump around and swear for days, he did." -- Cespenar the Imp.
11:58:46 <fizzie> (Searched Wikiquote for "hammer".)
11:59:16 <oerjan> a favorite story among imps, i assume
12:00:49 <Sgeo> So that's what that liste thing is!
12:01:01 <oerjan> yep!
12:01:34 <Sgeo> What does sed -ie do exactly?
12:01:57 <fizzie> Edis in-place, makes "e" the backup file suffix.
12:02:20 <Sgeo> Ah
12:03:14 <oerjan> and it's easy not to notice because the actual -e option is so _optional_.
12:05:08 <fizzie> `run ls */*e
12:05:10 <HackEgo> bin/addquote \ bin/define \ bin/delquote \ bin/fortune \ bin/fueue \ bin/google \ bin/hyfinate \ bin/pastaquote \ bin/paste \ bin/quine \ bin/quote \ bin/relcome \ bin/resume \ bin/shove \ bin/translate \ bin/wehlcohme \ bin/welcome \ factor/factor.image \ ibin/befunge \ ibin/kipple \ ibin/linguine \ ibin/malbolge \ interps/Makefile \ share/awesome
12:05:25 <fizzie> Those all seem reasonable.
12:05:30 <oerjan> fizzie: i think i got the rest last time i checked :P
12:05:43 -!- doesthiswork has quit (Quit: Leaving.).
12:06:01 <fizzie> `relcome just_testing
12:06:03 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/relcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/relcome: cannot execute: Permission denied
12:06:05 <oerjan> and i've taken to look at the repository listing for strange things occasionally. (and for whoever asked the other day, no it's not because of shachaf.)
12:06:35 <oerjan> *looking
12:06:42 <fizzie> `sh bin/relcome
12:06:44 <HackEgo> No output.
12:06:57 <fizzie> I don't quite know what's up with that.
12:07:08 <shachaf> `cat bin/relcome
12:07:09 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:07:16 <shachaf> `relcome 13
12:07:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/relcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/relcome: cannot execute: Permission denied
12:07:26 <oerjan> i think it's supposed to make it renglish, but it's broken somehow
12:07:28 <shachaf> Hmm, that doesn't even use the argument like that.
12:07:30 <shachaf> It should.
12:07:41 <shachaf> imo relcome 13 should rot13
12:07:44 <oerjan> er, *ingrish
12:08:25 <fizzie> It needs to relcome the person relcomed, though.
12:08:57 <fizzie> Oh, so it's a rainbow-welcome, I see.
12:10:40 <oerjan> `run chmod a+x bin/relcome
12:10:43 <HackEgo> No output.
12:10:46 <oerjan> `relcome What about now?
12:10:48 <HackEgo> ​/bin/sh: Can't open \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:11:01 <oerjan> wat
12:11:23 <oerjan> `cat bin/relcome
12:11:24 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:11:55 <oerjan> `run sed -i 's/ \\ /\n' bin/relcome
12:11:56 <HackEgo> sed: -e expression #1, char 9: unterminated `s' command
12:12:06 <oerjan> `run sed -i 's/ \\ /\n'' bin/relcome
12:12:07 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
12:12:11 <oerjan> argh
12:12:15 <oerjan> `run sed -i 's/ \\ /\n/' bin/relcome
12:12:19 <HackEgo> No output.
12:12:27 <oerjan> `relcome Testing ho
12:12:30 <HackEgo> Testing: Welcome to the international hub for esoteric programming language design and deployment! For
12:12:33 <oerjan> finally
12:12:53 <shachaf> Oh.
12:12:57 <shachaf> That's much better.
12:13:05 <shachaf> `relcome oerjan
12:13:08 <HackEgo> oerjan: Welcome to the international hub for esoteric programming language design and deployment! For m
12:13:10 <oerjan> i suspect somewhat had just copy/pasted HackEgo's output back into the file, thus turning newline into " \ "
12:13:22 <oerjan> MAYBE
12:14:02 <oerjan> that seems cut off, is it just because of the extra length of the color codes?
12:14:03 <fizzie> The length limits hit that thing pretty hard.
12:14:18 <oerjan> yeah
12:15:34 <fizzie> `run echo $(welcome someone | wc -c) $(relcome someone | wc -c)
12:15:38 <HackEgo> 242 814
12:15:42 <fizzie> Nasty business.
12:16:38 <shachaf> Business
12:16:40 <shachaf> Er.
12:16:42 <shachaf> Nusiness
12:17:03 <oerjan> `yes
12:17:05 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
12:17:56 <oerjan> still at 350
12:20:43 <shachaf> There should be a randomized relcome.
12:20:46 <oerjan> > 350/242
12:20:48 <lambdabot> 1.4462809917355373
12:20:58 <oerjan> > 350%242
12:21:00 <lambdabot> Not in scope: `%'
12:21:00 <lambdabot> Perhaps you meant `R.%' (imported from Data.Ratio)
12:21:05 <oerjan> > 350 R.% 242
12:21:07 <lambdabot> 175 % 121
12:21:15 <oerjan> > 350 R.% 240
12:21:17 <lambdabot> 35 % 24
12:21:58 -!- Phantom_Hoover has joined.
12:23:07 -!- Taneb has joined.
12:23:59 <oerjan> `python --version
12:24:00 <HackEgo> Python 2.7
12:24:11 <Taneb> `ghc --version
12:24:14 <HackEgo> The Glorious Glasgow Haskell Compilation System, version 7.6.1
12:24:39 <oerjan> Taneb: we just need Gregor to install lens, and we'll be all set
12:24:49 <Taneb> `cabal --version
12:24:50 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cabal: not found
12:25:02 <Taneb> `run ghc-pkg list | paste
12:25:09 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.4130
12:25:32 <oerjan> even if cabal were there, it wouldn't get out of the sandbox since hackage isn't on the whitelist, and besides it would probably timeout anyway.
12:26:19 -!- azaq23 has joined.
12:26:27 -!- azaq23 has quit (Max SendQ exceeded).
12:28:06 <oerjan> > (350-250)/4
12:28:07 <lambdabot> 25.0
12:28:12 -!- azaq23 has joined.
12:29:29 <oerjan> > length . concat $ [chr 3 : show i | i <- [0..15]]
12:29:31 <lambdabot> 38
12:29:53 <oerjan> > 38/16
12:29:56 <lambdabot> 2.375
12:30:15 <oerjan> > 100/3.375
12:30:17 <lambdabot> 29.62962962962963
12:30:37 <oerjan> oh wait
12:30:42 <oerjan> > 100/2.375
12:30:44 <lambdabot> 42.10526315789474
12:31:23 <oerjan> > [length . concat $ [chr 3 : show (i `mod` 16) | i <- [0..i]] | i <- [40..50]]
12:31:26 <lambdabot> [94,96,99,102,105,108,111,114,116,118,120]
12:31:39 <oerjan> ok 42 looks about right
12:32:00 <oerjan> > 250/42
12:32:01 <lambdabot> 5.9523809523809526
12:33:25 <oerjan> `run welcome | ghc -e 'interact (show . length . words)'
12:33:33 <HackEgo> 30
12:33:44 <oerjan> `welcome
12:33:46 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:34:41 <oerjan> `cat bin/relcome
12:34:43 <Jafet> Just copy 300 bytes of lens at a time until all of it is in hackbot
12:34:43 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:35:10 <nortti> `relcome
12:35:12 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more info
12:35:15 <nortti> ah
12:35:23 <oerjan> Jafet: the problem is we would have to break up the actual compilation into small enough pieces
12:35:27 <oerjan> not to timeout
12:35:41 <Jafet> Compile and the copy it
12:35:45 <oerjan> and i'm not sure cabal supports it
12:35:54 <Jafet> It might timeout whenever you try to load it, though
12:36:14 <oerjan> Jafet: someone who has ghc on a linux machine would have to do that
12:36:17 <oerjan> (i.e. not me)
12:36:57 <Jafet> This sounds complicated. Perhaps we should ask fungot.
12:36:58 <fungot> Jafet: i wonder if i'm evil and fnord to soon??? or later??
12:37:15 <olsner> fungot: yes you are
12:37:16 <fungot> olsner: and there are primitives in postscript, so i should use
12:37:45 <fizzie> `reelcome shachaf
12:37:47 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:37:48 <oerjan> `run sed -i 's/\(raw_input[(][)]\)/string.split(\1)/ bin/relcome
12:37:49 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
12:38:11 <oerjan> fizzie: hey i was just going to that. except i thought splitting on actual words
12:38:40 <oerjan> maybe white should be left out :P
12:38:48 <Jafet> You should pick a sensible palette
12:38:55 <fizzie> I just shuffled in int((350-len(w))/3) color-changes in random locations.
12:39:14 <oerjan> fizzie: ah
12:39:20 <fizzie> It does mean it almost always starts with the default color, though.
12:39:26 <olsner> leaving out black-on-black might be an idea too
12:39:26 <Jafet> > (350 - 242) `div` 3
12:39:27 <lambdabot> 36
12:39:45 <Jafet> `run welcome | wc
12:39:47 <HackEgo> ​ 1 30 233
12:40:02 <oerjan> fizzie: well you could "just" make sure the start is always one of the positions
12:40:13 <fizzie> It seems that I managed to break the "put nick in front" bit, though. If it ever worked.
12:40:29 <fizzie> `cat bin/reelcome
12:40:31 <HackEgo> ​#!/bin/sh \ welcome | python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+str(random.randrange(1,16)) for c in p)"
12:40:38 <fizzie> Oh, I just left the $@ out.
12:41:25 <fizzie> `run sed -i -e 's/welcome/welcome $@/' bin/reelcome # I like the -e.
12:41:29 <HackEgo> No output.
12:41:32 <Jafet> `run python -c "print ''.join(chr(3) + str(i) + ':-) ' for i in range(0,16))"
12:41:34 <HackEgo> :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
12:41:52 <fizzie> Oh, so black is color 1.
12:42:01 <fizzie> I left 0 out, because I thought that was black.
12:42:13 <oerjan> um i asked you to leave out white
12:42:25 <oerjan> so that's ok i guess
12:42:28 <fizzie> Yes, but also black.
12:42:32 <fizzie> Oh, that was olsner.
12:42:33 <Jafet> `run python -c "print ''.join(chr(3) + str(i) + '(-:' + str(i) + ' ' for i in range(0,16))"
12:42:34 <HackEgo> (-:0 (-:1 (-:2 (-:3 (-:4 (-:5 (-:6 (-:7 (-:8 (-:9 (-:10 (-:11 (-:12 (-:13 (-:14 (-:15
12:42:49 <fizzie> All you o-folks look so similar, it's a natural mistake.
12:42:54 <Taneb> `run python -c "print" ''.join(chr(3) + str(i) + ':-) ' for i in range(2,15))"
12:42:55 <HackEgo> bash: -c: line 0: syntax error near unexpected token `(' \ bash: -c: line 0: `python -c "print" ''.join(chr(3) + str(i) + ':-) ' for i in range(2,15))"'
12:43:05 <Taneb> `run python -c "print ''.join(chr(3) + str(i) + ':-) ' for i in range(2,15))"
12:43:07 <HackEgo> :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
12:43:19 <shachaf> Jafet: plz golf me a up a utf8 encoder/decoder
12:43:34 <fizzie> `run sed -i -e 's/1,16/2,15/' bin/reelcome
12:43:38 <HackEgo> No output.
12:43:39 <Jafet> There should be one in the blah logs somewhere.
12:44:02 <shachaf> Oh.
12:44:12 <shachaf> I don't have blah logs.
12:44:37 <fizzie> `run sed -i -e 's#/3#/3+1#' -e "s/in p/in 'C'+p/" bin/reelcome
12:44:41 <HackEgo> No output.
12:44:42 <fizzie> `reelcome someone
12:44:45 <HackEgo> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ TypeError: cannot concatenate 'str' and 'list' objects
12:44:48 <fizzie> ...
12:45:02 <shachaf> `reelcome
12:45:04 <HackEgo> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ TypeError: cannot concatenate 'str' and 'list' objects
12:45:21 <fizzie> `run sed -i -e "s/'C'+p/['C']+p/" bin/reelcome
12:45:24 <HackEgo> No output.
12:45:25 <fizzie> Forgot it was a list.
12:45:28 <fizzie> `reelcome someone
12:45:30 <HackEgo> someone: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:45:40 <shachaf> `reelcome HackEgo
12:45:43 <HackEgo> HackEgo: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:45:57 <shachaf> That's good!
12:46:09 <shachaf> fizzie: Can you spin it out into its own script, like h?
12:47:49 <fizzie> `run cp bin/reelcome bin/colorize
12:47:52 <HackEgo> No output.
12:48:04 <fizzie> `run sed -i -e 's/welcome $@ | //' bin/colorize
12:48:08 <HackEgo> No output.
12:48:14 <fizzie> `run echo testing, testing | colorize
12:48:16 <HackEgo> testing, testing
12:48:22 <Jafet> `run bin/welcome | python -c "import random; w=raw_input().split(' '); r=[4,7,8,9,2,13,6]; s=random.randrange(0, len(r)); print ' '.join(chr(3) + str(r[(i+s)%len(r)]) + w[i] for i in range(len(w)))"
12:48:24 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:48:57 <fizzie> The word-based and fixed-color thing is perhaps a bit more rainbowy.
12:49:28 <oerjan> excellent
12:49:32 <fizzie> ^rainbow2 is also a selected palette
12:49:32 <fungot> ...too much output!
12:49:35 <oerjan> `cat bin/reelcome
12:49:36 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "import random; w=raw_input(); p=list('x'*len(w)+'C'*int((350-len(w))/3+1)); random.shuffle(p); i=(c for c in w); print ''.join(i.next() if c=='x' else chr(3)+str(random.randrange(2,15)) for c in ['C']+p)"
12:50:10 <oerjan> `run reelcome hm now what
12:50:13 <HackEgo> hm: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:50:27 <oerjan> `cat bin/welcome
12:50:29 <HackEgo> ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; }
12:51:38 <fizzie> Man, there's so many moving parts in there.
12:51:49 <oerjan> `run sed -i 's/[$][@]/"$@"/;s/python.*/colorize/' bin/reelcome
12:51:53 <HackEgo> No output.
12:51:54 <fizzie> Anyway, I scriptized Jafet's thing too.
12:51:58 <fizzie> `run welcome | rainwords
12:51:59 <oerjan> `cat bin/reelcome
12:52:00 <HackEgo> ​#!/bin/sh \ welcome "$@" | colorize
12:52:01 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:52:43 <shachaf> `run ? HackEgo | colorize
12:52:46 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing.
12:52:57 <oerjan> `cat bin/relcome
12:52:58 <HackEgo> ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
12:53:15 <oerjan> `run mv bin/r{e,}elcome
12:53:19 <HackEgo> No output.
12:53:29 <oerjan> it was broken anyhow
12:53:34 * shachaf geese to sleep
12:53:51 <fizzie> `run ls bin/*come
12:53:53 <HackEgo> bin/relcome \ bin/welcome
12:54:03 <fizzie> Oh, right, the others mostly deal with capitalization.
12:56:45 <fizzie> So, there's... welcome, WELCOME, WELCOME, WeLcOmE, wehlcohme, emoclew and relcome. Did I miss any?
12:56:56 <fizzie> This must be one of the most welcoming channels in freenode.
12:57:01 <oerjan> `run (echo '#!/bin/sh'; echo 'welcome "$@" | rainwords') >bin/rwelcome
12:57:05 <HackEgo> No output.
12:57:10 <fizzie> Except for people looking the "wrong kind of esoterica", of course.
12:57:21 <oerjan> `rwelcome everyone
12:57:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/rwelcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/rwelcome: cannot execute: Permission denied
12:57:33 <oerjan> `run chmod a+x bin/rwelcome
12:57:35 <HackEgo> No output.
12:57:36 <oerjan> `rwelcome everyone
12:57:38 <HackEgo> everyone: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
12:58:23 <Jafet> > let utf8 :: Char -> [Word8]; utf8 c = let n = ord c in map toEnum $ if n < 0x80 then [n] else let (x:xs) = reverse $ map (`mod`0x40) $ takeWhile (>0) $ iterate (`shiftR` 6) n in 256 - 2^(7-length xs) + x : map (0x80+) xs in map (utf8 . chr) [0x0, 0x100..]
12:58:26 <lambdabot> [[0],[196,128],[200,128],[204,128],[208,128],[212,128],[216,128],[220,128],...
13:01:56 <oerjan> 0x40 ?
13:02:29 <oerjan> i think maybe you want 0x3f
13:03:03 <Jafet> > let utf8 :: Char -> [Word8]; utf8 c = let n = ord c in map toEnum $ if n < 0x80 then [n] else let (x:xs) = reverse $ map (`mod`0x40) $ takeWhile (>0) $ iterate (`shiftR` 6) n in 256 - 2^(7-length xs) + x : map (0x80+) xs in utf8 $ chr 0x100000
13:03:04 <lambdabot> [244,128,128,128]
13:03:15 <Jafet> Looks correct
13:03:23 <oerjan> oh wait duh
13:03:38 <oerjan> somehow i read `mod` as .&.
13:03:50 <Jafet> I think .&. was ambiguous in lambdabot for some stupid reason
13:03:55 <Jafet> :t (.&.)
13:03:57 <lambdabot> Bits a => a -> a -> a
13:05:00 <fizzie> One from Data.Bits and another from QuickCheck, I think.
13:05:04 <fizzie> Maybe it's been sensiblized?
13:05:14 <Jafet> Actually golfing that is left as an exercise to shachaf.
13:05:18 <oerjan> it has to happen occasionally
13:09:17 <oerjan> :t bits
13:09:18 <lambdabot> (Applicative f, Bits b, Indexable Int p) => p Bool (f Bool) -> b -> f b
13:18:54 <oerjan> <ais523> we should notify people about new mezzacotta too
13:19:01 <oerjan> has he been thinking about feather again
13:21:51 -!- DHeadshot has quit (Ping timeout: 276 seconds).
13:22:26 -!- KingOfKarlsruhe has joined.
13:42:42 -!- myndzi has quit (Ping timeout: 264 seconds).
13:43:48 <elliott> 08:48:03 <shachaf> elliott: You in particular are being obnoxious about this. Why do you do it? What would it take to get you to stop?
13:43:55 <elliott> shachaf: You in particular are being obnoxious about this. Why do you do it? What would it take to get you to stop?
13:44:08 <elliott> In fact I didn't do anything since the last time you decided to waste an hour trolling the channel about it. But for the unwarranted accusation,
13:44:18 <elliott> `undo 2196
13:44:23 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ The next patch, when reversed, would delete the file liste, \ which does not exist! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored
13:44:41 <elliott> Ugh.
13:44:53 <elliott> I wish people knew how to use sed.
13:45:25 <elliott> `run echo '#!/bin/sh' >>bin/liste; echo 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol' >>bin/liste
13:45:29 <HackEgo> No output.
13:45:31 <elliott> `undo 2196
13:45:34 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ The next patch, when reversed, would delete the file liste, \ which does not exist! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored
13:45:41 <elliott> Hmm, interesting.
13:45:49 <elliott> `undo 2196
13:45:51 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ The next patch, when reversed, would delete the file liste, \ which does not exist! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored
13:45:51 <oerjan> elliott: what the heck are you doing now
13:46:03 <elliott> oerjan: Good question.
13:46:17 -!- myndzi has joined.
13:46:18 -!- iamcal_ has quit (Ping timeout: 264 seconds).
13:46:20 <elliott> `run mv bin/liste liste
13:46:23 <HackEgo> No output.
13:46:27 <elliott> `undo 2196
13:46:33 <HackEgo> patching file list \ Hunk #1 FAILED at 1. \ 1 out of 1 hunk FAILED -- saving rejects to file list.rej \ patching file liste \ Unreversed patch detected! Ignore -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored -- saving rejects to file liste.rej
13:46:50 <elliott> Hmm.
13:46:52 <Sgeo> elliott, are you trying to undo the removal of shachaf?
13:47:04 -!- Frooxius has joined.
13:47:08 <oerjan> elliott: bin/liste is not supposed to exist, also i already deleted it
13:47:17 <elliott> oerjan: Yes, but reversing a patch wanted to make it exist.
13:47:20 <elliott> `run rm list.rej liste.rej liste
13:47:24 <HackEgo> No output.
13:47:54 <elliott> `run hg cat -r 2195 bin/list >bin/list
13:47:59 <HackEgo> No output.
13:48:02 <elliott> Maybe there should be an `undofile ors omething.
13:48:04 <oerjan> elliott: also shachaf has already been removed
13:49:05 <fizzie> oerjan: Well, he had been removed; elliott just added him back.
13:50:05 <oerjan> ic
13:50:49 <oerjan> `revert 2220
13:50:51 <HackEgo> Done.
13:51:18 <elliott> `revert
13:51:20 <HackEgo> Done.
13:51:22 <elliott> For a start that adds a list.rej file.
13:51:43 <oerjan> elliott: this has gone on far enough, and although shachaf _has_ been obnoxious deleting bin/list entirely, you are being obnoxious too if you keep this on
13:51:47 <elliott> For another, as far as I can tell shachaf just likes to complain about whatever the bots are doing and will use it as an excuse to whine no matter no matter what, so I don't see any reason to just make him move on to something else.
13:51:59 <oerjan> `revert
13:52:01 <HackEgo> Done.
13:52:20 <elliott> oerjan: So when he was demanding to be kicked all the time the non-obnoxious thing would have been to do that?
13:52:33 <elliott> He gets pinged 10x more than `list actually would just by whining about it all the time.
13:53:26 <elliott> I don't know why he likes kicking up a fuss in #esoteric and nowhere else but it's blatantly obvious he does and I don't see that spinning the what-he-kicks-up-a-fuss-about roulette is productive at all.
13:53:57 <elliott> If his behaviour is obnoxious in #esoteric it's been so longer than `list.
13:54:18 <oklopol> i don't see how that's an argument against removing him from `list, just an argument for banning him perhaps
13:54:41 <oklopol> hmm
13:54:54 <elliott> oklopol: I don't see why you would hack around the problem (and defeat the whole point of `list). It's just pandering.
13:55:03 <elliott> Especially since he got on `list by specifically trying to mess with it himself.
13:55:46 <fizzie> Incidentally, what is the whole point of `list? It's never been exactly clear to me.
13:55:58 <oklopol> it's genius
13:56:00 <oerjan> elliott: i think you are being equally childish
13:56:03 <oklopol> best thing ever
13:56:08 <oklopol> that's the point
13:56:33 <oklopol> (i think he's being more childish)
13:56:42 <elliott> oerjan: You can do something about my behaviour if you'd like too.
13:57:59 <oklopol> like, perhaps, tell you you are being childish
13:58:41 * Sgeo looks for the commit in which shachaf was first placed on the list
13:58:51 <oklopol> erm
13:58:55 <elliott> oklopol: Is the idea to work as well as telling shachaf he's being obnoxious?
13:59:00 <oklopol> presumably that happened when he used the command?
13:59:41 <fizzie> oklopol: It happened somewhat circuitously. It's not exactly a foolproof command, after all.
14:00:01 <oklopol> k, just extrapolating from the fact i'm now on it
14:00:09 <elliott> oerjan: Anyway if we're just going to make random exceptions for people whose reasons are clearly bunk then removing it entirely *is* the right thing to do.
14:00:39 <oklopol> i don't get what people have against being pinged
14:00:50 <elliott> I think the fact that one person has kicked up so much gigantic fuss over a tiny pointless thing says something, though. (Yes, yes, the obvious rebuttal is "two people", but that's unfair since I'm hardly the only person who asked him to stop and reverted it a bunch when he was just removing it rather than getting Sgeo to run sed for him.)
14:02:31 <Sgeo> http://codu.org/projects/hackbot/fshg/index.cgi/rev/49d044dabc89
14:02:33 <fizzie> I don't quite get what this whole thing about "exceptions" is. Am I somehow not allowed to do `list and then subsequently remove myself from it?
14:02:42 <Sgeo> This is the first time that shachaf appears on the list.
14:03:03 <elliott> fizzie: If the point of `list is to keep track of the number of people who have got themselves on `list...
14:03:13 <oerjan> elliott: i am not convinced that allowing people to remove themselves from bin/list is incompatible with it existing at all
14:03:26 <elliott> (Of course it's pointless and it doesn't matter who's on `list. That's sort of the point.)
14:03:38 <oerjan> and admittedly it _was_ annoying that shachaf couldn't manage to do it himself.
14:03:44 <elliott> Sgeo: I don't see what the point of doing detective work is when both me and oerjan were there at the time.
14:03:56 <elliott> oerjan: Couldn't manage to or didn't *want* to because it was too easy?
14:04:06 <elliott> Just removing it causes 10x the fuss.
14:04:08 <oerjan> whatever
14:04:12 <oerjan> yes.
14:04:14 <elliott> This is hardly an uncommon pattern with shachaf's use of the bots in here.
14:04:30 <nooga> http://projecteuler.net/problem=21 my solution: let sd n = sum [ x | x <- [1..n-1], n `mod` x == 0 ] in sum [x | x <- [1..10000], x /= sd x, (sd $ sd x) == x]
14:04:50 <nooga> i feel that it's a lame solution, though
14:04:55 <elliott> nooga: sd (sd x) == x is probably nicer than (sd $ sd x)
14:04:56 <oerjan> the thing is, most of the changes to list recently have been either shachaf deleting the list, other people trying to remove him cleanly, or you reverting both shachaf and the other people
14:05:21 <nooga> elliott: doesn't change a fact that it's SLOOOOOW
14:05:28 <nooga> and I think i know why
14:05:49 <nooga> but i don't know haskell too well and can't find more optimal solution
14:06:22 <elliott> oerjan: Let's see, there's also you reverting shachaf removing the list, ais523 reverting shachaf removing the list, ais523 reverting shachaf running obviously broken sed on the list (followed up by shachaf deleting the list),
14:06:33 <elliott> you reverting shachaf removing the list,
14:06:39 <elliott> ais523 reverting shachaf removing the list,
14:07:04 <elliott> OK, that looks like all.
14:07:27 -!- boily has joined.
14:07:31 <elliott> (And no, most of those reverts were not followed by an attempt to cleanly remove.)
14:08:00 <elliott> Anyway maybe it should just be deleted at this point since it's wasting so much time; isn't it a shame when people spoil the fun?
14:08:43 <Sgeo> And you're not spoiling the fun by vetoing "keep shachaf's name removed but keep the list"?
14:09:05 <elliott> I think I have even less desire to argue this with you than with shachaf, especially since you weren't even there when this bullshit started.
14:09:09 <elliott> *than with oerjan
14:10:34 <elliott> Anyway I've said all I care to, at least until this starts up again.
14:10:37 <oerjan> <elliott> (And no, most of those reverts were not followed by an attempt to cleanly remove.) <-- true. i was also annoyed by shachaf's obnoxiousness in removing the list and so didn't fix it. but i _still_ think it is time to end this back-and-forth in hopefully a reasonably amicable manner.
14:10:43 <elliott> oerjan: You probably want to rm list.rej if you're keeping this revision.
14:10:48 <Phantom_Hoover> you know you should probably either explain why shachaf has to be on the list no matter how much he complains
14:10:55 <Phantom_Hoover> or just let him be taken off
14:10:55 <oerjan> also shachaf doesn't seem to be here at the moment
14:11:00 <oerjan> `rm b/list.rej
14:11:02 <HackEgo> rm: cannot remove `b/list.rej': No such file or directory
14:11:06 <oerjan> wat
14:11:08 <elliott> `rm list.rej
14:11:12 <HackEgo> No output.
14:11:27 <elliott> Phantom_Hoover: see above reply to Sgeo. (Can we just adopt a world-wide policy that people don't try and join in things they don't know the context of?)
14:11:35 <Phantom_Hoover> no, elliott
14:11:36 <oerjan> oh the b was just a tag
14:11:51 <Phantom_Hoover> because your petty little squabble is intruding onto the channel that everyone else shares
14:12:03 <elliott> oerjan: Well, think of it this way: if something like this starts again you have pretty clear proof of a pattern.
14:12:20 <elliott> I wish the obnoxiousness wasn't there too. (On my part too.0
14:12:22 <elliott> *)
14:12:33 <elliott> Phantom_Hoover: I think you should probably just shut up.
14:12:42 <Sgeo> I fully agree with Phantom_Hoover.
14:12:42 <Phantom_Hoover> if shachaf wants off the list then just /let him off the fucking list/
14:12:43 <elliott> Or log-read maybe? But at least don't say stupid untrue things.
14:12:49 <elliott> He's off the list?
14:12:52 <elliott> Stop being idiots.
14:13:24 <Phantom_Hoover> you know, you're an extremely unpleasant person when anyone else tries to call you out on your behaviour
14:14:25 <elliott> Are you going to dig further into the realms of cluelessness or recognise that you maybe don't have a full understanding of any situation just by jumping into it on IRC days after everything happens and then either stop flinging accusations or actually research it?
14:14:34 <elliott> This casting of everything into an X-vs.-Y is ridiculous.
14:14:44 <elliott> You should know better, considering how much you complained about oerjan's handling of cheater.
14:15:13 <elliott> IRC is such a waste of time.
14:16:45 <Sgeo> My understanding is that shachaf accidentally got on the list when he tried to get fungot on the list. He did not realize that this happened immediately after it happened.
14:16:45 <fungot> Sgeo: hmm... doesn't seem to work
14:19:40 <Sgeo> The bot does not indicate that a person got on the list for the `list that put them on.
14:20:12 <Sgeo> As such, when the `list that put shachaf on got executed, shachaf's nick was not visible on it. `list would not be executed again until much later.
14:20:42 <oerjan> hm rm list.rej doesn't show up in the repository listing. and there was a similar case recently with another empty file. istr that HackEgo before didn't include empty files in the repository at all, but now it's just not always shown in the history...
14:20:59 <elliott> oerjan: ?
14:21:00 <elliott> oerjan: http://codu.org/projects/hackbot/fshg/index.cgi/rev/8087af320e07
14:21:03 <elliott> Shows up for me
14:21:34 <elliott> `rm run~
14:21:37 <oerjan> oh duh
14:21:38 <HackEgo> No output.
14:22:01 <oerjan> i was looking at a subpage showing just bin/list :P
14:22:10 <fizzie> Uh... what's that radio.php?... doing?
14:22:24 <oerjan> there _was_ such a case some days ago, though... it was pretty old too i think
14:23:03 <oerjan> hm...
14:23:07 <oerjan> `cat bin/list
14:23:08 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol
14:23:13 <elliott> fizzie: You'd have to ask hagb4rd.
14:23:39 <elliott> fizzie: http://codu.org/logs/log/_esoteric/2013-02-19#211727hagb4rd
14:24:08 <fizzie> I... see. (I don't.)
14:24:40 <oerjan> `run sed -i 's/; echo /; tail -1 bin/list; exit\n/' bin/list # I think this might be less insidious
14:24:41 <HackEgo> sed: -e expression #1, char 25: unknown option to `s'
14:24:50 <oerjan> if i could make it work, that is
14:25:12 <fizzie> oerjan: I think the insidiousness was also part of the genius? Maybe. I'unno.
14:25:21 <fizzie> oerjan: These are deep waters.
14:25:21 <mroman> I hate to ask this but what's 'the list'?
14:25:37 <elliott> oerjan: I like the echo thing.
14:25:40 <fizzie> mroman: It's a list of who will be shot first, when the revolution comes.
14:25:44 <elliott> I wonder what on earth .hg_archival.txt.
14:25:44 <oerjan> OH WELL THEN
14:25:46 <elliott> is.
14:25:54 <Sgeo> oerjan, what does your change do (if it worked)
14:26:15 <Sgeo> mroman, it's a list of people who ran `list
14:26:22 <Sgeo> (for the most part)
14:26:37 <oerjan> Sgeo: it makes it show the changed list immediately
14:26:43 <Sgeo> Yay!
14:27:07 <elliott> it was intentional that it did not do so on ais523's part, btw
14:28:18 <Sgeo> @ask ais523 How would you feel about `list displaying the changed list immediately? Would it ruin the effect you were going for?
14:28:18 <lambdabot> Consider it noted.
14:28:52 <elliott> Um, I specifically said it was weird and he said it was intentional at the time.
14:46:17 -!- Taneb has quit (Ping timeout: 244 seconds).
14:50:37 <Phantom_Hoover> Sgeo, look, shachaf's off the list. So long as it stays that way just let it be.
14:51:01 <elliott> Such a noble defence force.
14:51:24 <Sgeo> Phantom_Hoover, ok, I'm fine with that.
15:01:49 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
15:02:35 -!- augur has quit (Remote host closed the connection).
15:06:38 -!- GOMADWarrior has joined.
15:10:24 -!- impomatic has quit (Ping timeout: 276 seconds).
15:20:12 -!- oerjan has quit (Quit: leaving).
15:43:39 -!- nooodl has joined.
15:46:46 -!- augur has joined.
15:48:57 <mroman> !blsq "1001011"F:u[vv^^{1\/?/2\/LG}m[?*++
15:48:57 <blsqbot> 0.9852281360342514
15:51:10 <mroman> !blsq "1223334444"F:u[vv^^{1\/?/2\/LG}m[?*++
15:51:10 <blsqbot> 1.8464393446710157
15:51:11 <quintopia> pikhq: i only have to install mosh-server on my server to make all this work right?
15:53:41 -!- carado_ has joined.
15:56:40 -!- iamcal_ has joined.
15:58:09 <elliott> quintopia: if "this" is mosh then yes
16:09:12 -!- epicmonkey has quit (Ping timeout: 276 seconds).
16:12:31 -!- oklopol has quit (Ping timeout: 245 seconds).
16:30:56 <kmc> you don't even need to install it; you can build it from source in your home directory and just use mosh --server=/home/whatever/...
16:31:03 <kmc> but installing is easiest and we have packages for lots of OSes
16:31:28 -!- carado has quit (Ping timeout: 256 seconds).
16:41:36 <pikhq> quintopia: Right, though mosh just needs to be somewhere in the PATH of the user you're logging in as.
16:45:04 <nooga> bllobloblobloblob
16:48:10 <kmc> well said
17:33:41 -!- sebbu has joined.
17:33:54 -!- sebbu has quit (Changing host).
17:33:54 -!- sebbu has joined.
17:50:16 -!- augur has quit (Remote host closed the connection).
17:58:25 -!- sebbu has quit (Ping timeout: 248 seconds).
18:00:12 -!- FreeFull has joined.
18:02:33 <boily> blobblobblobblobblob (hi all!)
18:02:47 <FreeFull> Can someone show me a typical use of profunctors?
18:04:01 <quintopia> can someone show me a regex that will harvest strings from a source file
18:04:29 <quintopia> i suspect its easy, but i dont remember how to make it match the shortest length string
18:05:33 <FreeFull> quintopia: Special-case it?
18:05:48 <FreeFull> That's not a good use for regex
18:05:50 -!- sebbu has joined.
18:19:45 -!- augur_ has joined.
18:23:10 <Gregor> Somebody posted on craigslist at 10:30 in the morning, today. I replied at about 11:30. They replied to me, saying that it sold yesterday. wut.
18:23:39 <mroman> At least he was honest.
18:23:52 <Gregor> It's honest to put a listing on craigslist for something that's already been sold?
18:23:58 <mroman> No.
18:24:07 <mroman> It's honest saying he sold it yesterday.
18:24:17 <mroman> He could've lied and told you he sold it 11:29:59
18:24:44 <mroman> or yesterday is figurative speech.
18:25:11 <Gregor> Yesterday can't be a figure of speech for "a half an hour ago" X-D
18:25:33 <elliott> maybe they are in a different timezone!
18:26:33 <Gregor> ... this is craigslist. I know what city they're in X_X
18:26:38 <kmc> quintopia: you mean string literals?
18:29:37 <kmc> In [12]: print re.search(r'"([^"]|\\")+?(?<!\\)"', r'abcd "foo\"bar" baz').group(0)
18:29:40 <kmc> "foo\"bar"
18:30:51 <elliott> Gregor: they can be in that city remotely.
18:30:55 <elliott> remotely.?
18:30:56 <kmc> probably not the best way
18:31:04 <Gregor> X_X
18:31:10 <Gregor> It lists the post time in terms of the city where it's posted.
18:31:17 <Gregor> Not in terms of whatever retarded way you think it lists it.
18:31:31 <elliott> have you noticed im not being serious
18:31:35 <Gregor> YES I HAVE
18:31:36 <elliott> and also know how craigslist works
18:33:09 -!- olsner has quit (Read error: Operation timed out).
18:33:35 -!- olsner has joined.
18:35:01 -!- dessos has quit (Quit: leaving).
18:35:17 -!- sebbu2 has joined.
18:35:18 -!- sebbu2 has quit (Changing host).
18:35:18 -!- sebbu2 has joined.
18:36:26 -!- dessos has joined.
18:38:23 -!- FreeFull has quit.
18:38:37 <boily> FreeFull: profunctors weird me. you have dimap :: p b c -> p a d, where a -> b goes back in time, and c -> d goes forward. how is that even possible?
18:38:42 -!- sebbu has quit (Ping timeout: 276 seconds).
18:38:58 <boily> @tell FreeFull profunctors weird me. you have dimap :: p b c -> p a d, where a -> b goes back in time, and c -> d goes forward. how is that even possible?
18:38:58 <lambdabot> Consider it noted.
18:42:24 -!- FreeFull has joined.
18:42:46 <kmc> hm maybe just ([^"]|\\")+?[^\\]
18:43:12 <FreeFull> What about a single " in a comment?
18:43:12 <lambdabot> FreeFull: You have 4 new messages. '/msg lambdabot @messages' to read them.
18:44:24 <kmc> then you're fucked
18:48:14 <FreeFull> I wonder why elliott linked those cellular automata rules to me
18:50:36 -!- sebbu2 has changed nick to sebbu.
18:54:08 <nortti> http://tech.slashdot.org/story/13/02/21/0358238/us-stealth-jet-has-to-talk-to-allied-planes-over-unsecured-radio
18:55:32 <kmc> FreeFull: parsing multiline comments and string literals is tricky
18:55:48 <kmc> OCaml disallows unbalanced quotes inside comments
18:56:03 <kmc> Haskell allows them, but this means there are valid Haskell expressions you can't comment out
18:56:08 <kmc> {- print "-}" -}
18:57:47 <elliott> IIRC D has both nesting and non-nesting comments
18:57:58 <elliott> /* ... */ and /+ ... +/; I forget which is which
18:58:20 <kmc> for this reason?
19:03:27 <elliott> No idea the reason.
19:04:22 <kmc> in lua you can comment as --[[ .. ]] or --[=[ ... ]=] or any other number of = signs
19:04:38 <kmc> they don't nest but each level can contain the smaller ones
19:04:53 <kmc> also if you drop the -- then the brackets by themselves are a multiline string literal
19:05:11 <elliott> Lua is so weird
19:05:27 <pikhq> In several ways.
19:05:42 <kmc> it seems pretty reasonable
19:05:47 <kmc> from what little i've seen
19:05:53 <Gregor> So pikhq, you gonna mine and craft?
19:05:55 <pikhq> Float-only sucks.
19:05:58 <pikhq> Gregor: Maybe.
19:06:12 <pikhq> Right now I am watching Minecraft LP's, actually.
19:08:10 <nortti> why are you watching Minecraft LP
19:08:17 <nortti> +s?
19:08:18 <pikhq> Cause.
19:08:43 <pikhq> In my defense, it's a guy who plays with nearly every mod in existence.
19:08:48 <pikhq> Otherwise this would be boring as fuck.
19:09:09 <nortti> who?
19:09:15 <pikhq> direwolf20
19:09:56 -!- monqy has joined.
19:10:08 <nortti> the only minecraft lp I can tolerate is far lands or bust
19:10:12 <kmc> pikhq: eh
19:10:19 <Deewiant> /+ +/ nests, the other was just to make copy-pasting C easier
19:10:20 <kmc> float-only sucks, but machine ints also suck
19:10:26 <kmc> and 64-bit floats gives you 32-bit ints
19:10:36 <kmc> maybe languages should just have two numerical types: "fast" and "correct"
19:10:59 <pikhq> At least the integers mod 2^32-1 are actually numbers.
19:11:05 <kmc> yeah
19:11:09 <elliott> kmc: Lua indexes lists from 1!!!!
19:11:14 <kmc> elliott: ow my brain
19:22:55 -!- impomatic has joined.
19:30:52 <mroman> neat
19:30:53 -!- atehwa_ has joined.
19:31:01 <mroman> let's make a language that indexes lists from i
19:31:06 <mroman> (where i = sqrt(-1))
19:31:24 -!- atehwa has quit (Read error: Operation timed out).
19:31:50 <Slereah> But imaginary numbers have the same structure as real numbers
19:31:51 <mroman> also the haskell syntax highlighter on rosettacode is wrong.
19:31:55 <Slereah> So it would be identical
19:32:44 <pikhq> I'm a little surprised to find that mosh actually is pulling out predictions at times.
19:32:54 <pikhq> I am literally connecting over a LAN.
19:33:04 <pikhq> Guess sometimes it lags slightly anyways?
19:33:08 <kmc> did you pass one of the --predict=... flags?
19:33:11 <pikhq> No.
19:33:15 <kmc> huh
19:33:15 <pikhq> Just the defaults.
19:33:24 <kmc> so not only is it predicting, but it's lagging enough to show the underline on predictions
19:33:24 <pikhq> It's predicting like a single character though.
19:33:28 <pikhq> Yes.
19:33:34 <pikhq> But not often.\
19:33:38 <kmc> (it will predict without underline if the lag is sufficiently small)
19:33:55 <kmc> (because Keith thought that underline appearing and disappearing is distracting. but probably it's better marketing if it always underlines!)
19:34:10 <elliott> just don't ruin the game
19:34:25 <pikhq> Meh, guess that just means mosh has benefits even over a LAN.
19:34:36 <pikhq> Admittedly, Wifi.
19:34:53 <pikhq> Everybody's favorite variable-lag LAN technology.
19:36:33 <mroman> nah
19:36:42 <mroman> LAN over power is much worse.
19:37:35 <pikhq> Really, that's laggy too?
19:37:57 <pikhq> Figured that'd be vaguely reasonable, aside from being a bus.
19:38:49 <mroman> My experiences with it are pretty bad.
19:39:30 <mroman> It works fine.
19:39:44 <mroman> unless someone uses his vacuum cleaner, the heater or something else
19:40:18 <mroman> or somebody is using the stove in the kitchen
19:40:21 <mroman> it's pretty bad then.
19:40:31 <mroman> but that was 5 years ago.
19:40:39 <mroman> Maybe it's better these days.
19:41:04 <pikhq> Kinda impressed you'd get interference like that from stuff aside from microwaves.
19:41:13 <pikhq> Isn't that stuff using the 2.4GHz band?
19:42:00 <kmc> hm did pikhq discover the game yet
19:42:24 <pikhq> Which game?
19:43:19 <nortti> pikhq: the game
19:43:39 <pikhq> nortti: Oh, fuck you guys.
19:43:53 * pikhq lost the game
19:44:03 * nortti too
19:44:53 <kmc> not that one actually
19:45:02 <kmc> there's a game you can play if you're using irssi in mosh
19:45:08 <kmc> probably other programs in mosh as well
19:45:57 <pikhq> Certainly have not heard of it.
19:46:20 <kmc> it's more fun if you figure out what tha game is
19:46:25 <kmc> but i'll tell you if you insist
19:46:41 <kmc> it requires a bit of lag
19:46:45 <elliott> Has anyone actually discovered the game independently before being given any information on it?
19:46:50 -!- Taneb has joined.
19:46:53 <kmc> i think shachaf and i both did
19:47:10 <elliott> I think the game is probably very hard to play on a LAN.
19:48:44 <kmc> not with netem!
19:48:54 <kmc> actually a dumb way to simulate lag is to run mosh-server in valgrind :)
19:49:47 <elliott> Run mosh-server in weboflies!
19:51:04 <kmc> i forgot what that does
19:52:10 <elliott> kmc: It's kind of tricky to explain, but operationally it makes a program run slower.
19:52:28 <elliott> kmc: Basically the idea is to make Linux programs reproducible through incredible amounts of sandboxing.
19:52:42 <elliott> It was intended for TASing
19:52:43 <pikhq> Its intent is to let you do tool-assisted speedruns of Linux games.
19:52:48 <kmc> oh dear
19:52:49 <pikhq> e.g. nethack
19:52:53 <kmc> "linux games"
19:52:59 <pikhq> kmc: Nethack.
19:53:08 <Gregor> Team Fortress 2???
19:53:10 <elliott> It wasn't for NetHack, was it?
19:53:18 <elliott> he NetHack TAS uses DOS.
19:53:19 <elliott> *The
19:53:21 <pikhq> elliott: Maybe not.
19:53:29 <pikhq> That's a good example at least.
19:53:33 <elliott> Also it has graphical support. (Enigma???)
19:53:38 <elliott> Ask ais523, I guess.
19:53:45 <kmc> TAS of /usr/games/wump
19:53:51 <pikhq> Probably easier for anything with a DOS port to just do that.
19:54:02 <pikhq> Reproducible DOS is easy.
19:54:29 <elliott> Maybe it was for DNA Maze!!!
19:57:18 <FreeFull> I wonder if sum . map fromEnum is a good idea for counting how many Trues are in a list, or if there is a better way
19:58:02 <kmc> i think «length . filter id» is more obvious
19:58:07 <kmc> :t length . filter id
19:58:08 <lambdabot> [Bool] -> Int
19:59:18 -!- oerjan has joined.
20:00:18 <boily> I like to think «foldr ((+) . fromEnum) 0» is faster, as it implies only a single pass on the list.
20:00:43 <elliott> if the whole notion of passes over a list existed, Haskell would be hideously inefficient
20:00:53 <elliott> length consumes the list as filter produces it there
20:01:58 <pikhq> boily: Yeah, but GHC optimizes length . filter id into a tiny little loop.
20:02:24 <boily> the combined magic of GHC and lazy evaluation at work again.
20:02:40 <boily> it's true that «length . filter id» looks like the obviest solution.
20:03:20 <FreeFull> length . filter id works too
20:04:51 <Taneb> boily, do Francophonics air-quote horizontally?
20:05:49 <boily> no, we rabbit-ears the same as anglophones.
20:06:06 <Taneb> Okay
20:06:06 <kmc> i would'nt really wory about which one is faster
20:06:17 <kmc> until you have some benchmarks (using criterion of course)
20:06:21 <Taneb> kmc, rethink apostrophe placement
20:06:54 -!- Bike_ has joined.
20:06:56 <elliott> I like would'nt
20:07:47 <boily> Taneb: but then, when we quote someone that said something stupid and/or unbelievable, we sometimes say «ouvrez les guillemets [INSERT QUOTE HERE] fermez les guillemets».
20:07:50 <FreeFull> How about join . take 1 for a safe head for lists of lists?
20:08:27 <Gregor> boily: I assume that translates roughly to "opening quote" <blerrr> "closing quote"?
20:08:44 <Gregor> Sort of like how Anglophones might say "Quote <stuff> unquote"
20:09:03 <Taneb> Gregor, is "blerrr" English for the French "INSERT QUOTE HERE"
20:09:08 <Gregor> Naturally.
20:10:13 <FreeFull> Is it possible to set fixity of an operator within ghci?
20:10:32 <Taneb> I don't think so, which is rather annoying
20:14:45 <oerjan> hm i thought ghci supported all declarations now
20:15:01 <oerjan> however, you need to set it in the same let as you put the definition
20:15:41 <oerjan> (the general rule is that a fixity declaration must be in the exact same scope as its corresponding definition)
20:16:31 <oerjan> and the let block of ghci, like the let of a do, presumably is such an "exact scope" region
20:16:39 <Taneb> Ah
20:16:44 <Taneb> That'll be where I'm going wrong
20:17:36 <oerjan> > let (+) = (Prelude.+); infixl 9 + in 1 + 2 * 3
20:17:38 <lambdabot> 9
20:19:16 <oerjan> (that also shows how you might redefine a fixity of something else, provided that something else is imported qualified. doesn't work for constructors, alas.)
20:20:00 <oerjan> also might need NoMonomorphismRestriction
20:20:38 <oerjan> (or an explicit type annotation as well)
20:20:58 -!- carado_ has quit (Ping timeout: 256 seconds).
20:21:39 <elliott> huh does it really not work for constructors
20:22:10 <oerjan> ...there's no way to define one constructor to be the same as another, is there?
20:22:50 <oerjan> note that you are defining the same name in a new scope, not changing the actual original fixity
20:23:01 <elliott> oh I meant redefining fixity
20:23:09 <elliott> > let infixl 9 + in 1 + 2 * 3
20:23:11 <lambdabot> The fixity declaration for `+' lacks an accompanying binding
20:23:12 <lambdabot> (The fixity...
20:23:15 <elliott> hm I thought that worked
20:23:16 <elliott> oh well
20:26:34 <oerjan> argh i opened the ghc user guide to check something, but i've forgotten what it was... :P
20:28:59 <oerjan> oh RULES it was
20:29:03 <kmc> MoMonomorphismRestrictionMoProblems
20:29:47 <boily> a momorphism is a morphism with a peachy smell.
20:29:59 -!- doesthiswork has joined.
20:30:55 <oerjan> i wanted to see which of length . filter id and foldl' ((+) . fromEnum) 0 is more likely to be optimized well. in fact i suspect it's the latter, because length is _not_ listed as a good consumer.
20:31:24 <oerjan> (disclaimer: anyone willing to look at actual core may find the _true_ answer.)
20:31:26 <kmc> why not?
20:31:35 <kmc> and isn't length a foldr, which makes it a good consumer?
20:31:39 <oerjan> no reason, it just isn't
20:32:00 <oerjan> length should certainly be a foldl or foldl' not a foldr
20:32:22 <elliott> oerjan: note that there is a rule to specialise length on Int/Integer to foldl' IIRC
20:32:24 <kmc> mm right
20:32:35 <elliott> oh wait length is monomorphic
20:32:37 <kmc> because you can't consume it incrementally
20:32:40 <elliott> so I guess it is foldl'
20:32:52 <elliott> kmc: well, you can for genericLength
20:32:56 <kmc> right
20:32:58 <elliott> which is foldl iirc :(
20:33:00 <elliott> or maybe not?
20:33:22 <kmc> so that's why foldr isn't better... but why is it worse?
20:33:24 * kmc rusty :(
20:33:28 <oerjan> oh and foldl' isn't a good consumer either, probably part of that "cannot fuse both foldr and foldl" problem i vaguely recall
20:35:20 <elliott> kmc: well you want something strict
20:35:24 <elliott> or you'll build up thunks
20:35:34 <oerjan> they settle on build/foldr fusion for lists, which somehow means the other way will blow up or something if you try to do it simultaneously
20:35:35 <elliott> and "strict foldr' is very silly, it eats up stack space
20:35:39 <elliott> *"
20:35:55 <elliott> (I think)
20:37:10 <boily> there should be a foldm for cases like this.
20:37:17 -!- kallisti has joined.
20:37:17 -!- kallisti has quit (Changing host).
20:37:17 -!- kallisti has joined.
20:37:24 <elliott> boily: you mean, monoid fold?
20:37:26 <kmc> ah yeah
20:37:29 <elliott> :t fold
20:37:31 <lambdabot> (Foldable t, Monoid m) => t m -> m
20:37:37 <boily> elliott: no, fold middle.
20:37:39 <elliott> > foldMap Sum [1, 2, 3]
20:37:40 <lambdabot> Sum {getSum = 6}
20:37:47 -!- ais523 has joined.
20:38:32 <elliott> ais523: what game did you make weboflies for?
20:40:52 <ais523> elliott: I didn't have one in particular in mind
20:40:52 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
20:40:57 <ais523> @messages
20:40:57 <lambdabot> Sgeo asked 6h 12m 41s ago: How would you feel about `list displaying the changed list immediately? Would it ruin the effect you were going for?
20:41:14 <ais523> elliott: actually it went the other way round, I started seeking out Linux games as a way to test it
20:41:28 <ais523> Sgeo: the current version is a bit harder to figure out
20:48:44 <kmc> http://www.youtube.com/watch?v=eSRcvrVs5ug
20:49:18 <kmc> "No instructions were dispatched in the making of this demo (except to copy memory to the framebuffer). All computation is done in the MMU."
20:49:47 <Bike_> useful
20:49:52 -!- Bike_ has changed nick to Bike.
20:50:27 <Bike> wow, that is slow
20:51:09 <kmc> when 900 page faults you reach, run fast you will not
20:52:10 <nortti> ok. now I know what eso-os will run on
20:52:37 <oerjan> run, or run not; there is nSegmentation fault (core dumped)
20:55:39 -!- dessos has quit (Quit: leaving).
20:56:25 -!- Taneb has quit (Quit: Leaving).
20:58:27 -!- carado has joined.
21:03:12 -!- azaq23 has quit (Max SendQ exceeded).
21:04:07 -!- azaq23 has joined.
21:04:16 -!- azaq23 has quit (Max SendQ exceeded).
21:26:19 <shachaf> oerjan: Thanks.
21:29:18 <shachaf> elliott: I don't see why that was necessary -- "for the unwarranted accusation, \ `undo 2196" makes it obvious that putting me on the list is done vindictively, as some sort of punishment -- but I'm glad it's over.
21:29:48 <oerjan> please let it _be_ over. thx.
21:30:10 <elliott> shachaf: It was out of frustration. You're free to read what I said afterwards and not take it out of context, but somehow I doubt it is actually over.
21:30:27 <oerjan> *sigh*
21:30:42 <Bike> these things are important oerjan
21:30:59 <shachaf> OK.
21:31:17 <oerjan> _ _ _ _ _ _
21:31:17 <oerjan> _| || |_ _| || |_ _| || |_
21:31:17 <oerjan> _____ _____ _____ _____ _____|_ .. _|_ .. _|_ .. _|
21:31:17 <oerjan> |_____|_____|_____|_____|_____|_ _|_ _|_ _|
21:31:17 <oerjan> |_||_| |_||_| |_||_|
21:31:51 <Bike> bringing out the big guns huh
21:31:58 <shachaf> oerjan: Well having this long conversation about me while I'm not here and then not wanting me to talk about it is hardly fair!
21:32:04 <shachaf> But anyway there's not much point to saying anything.
21:32:19 <oerjan> shachaf: i think i implied that actually
21:33:32 <olsner> kmc: is that the result of that talk you linked to ages ago?
21:33:42 <Bike> it is
21:34:21 <olsner> if only the information was available without having to watch and listen to people talking about it
21:38:31 <boily> oerjan: that *is* one huge flyswatter.
21:39:11 <oerjan> nah it's just perspective
21:43:57 <kmc> i think the slides are going up sometime soon
21:44:08 <kmc> also you could just watch the video on mute and speed through the spaces between slides
21:44:12 -!- monqy has quit (Quit: hello).
21:44:54 <kmc> https://twitter.com/sergeybratus/status/303188668271714305 says "slides soon"
22:01:33 -!- TeruFSX has joined.
22:03:00 <kmc> that talk was cool not just for the turing tarpit at the end
22:03:22 <kmc> more for the useful tricks with x86 paging quirks that it discussed
22:03:37 <kmc> like using split instruction/data TLBs to emulate NX on chips that don't have it
22:04:03 <olsner> yes, but I got that part from hanging around here and letting you repeat most of the talk for me :P
22:04:16 <kmc> a service i provide gladly
22:04:18 <olsner> also from reading some document about PaX
22:04:26 <kmc> i don't really understand the details of the tarpit
22:04:41 <kmc> i think i'd need to read about 20 pages of Intel manual to understand it
22:04:48 <kmc> and i don't know that there's any deep insight buried under that
22:04:58 <olsner> sounds like the details would be tricky
22:05:17 <kmc> the PaX thing makes me pine for soft-filled TLBs
22:08:53 <olsner> sounds like the basic principle is to put the stack in specific locations such that it overwrites page tables and changes the conditions that will cause future traps
22:09:34 <olsner> could also overwrite the pointer to the stack
22:10:39 -!- boily has quit (Quit: Poulet!).
22:19:14 -!- carado_ has joined.
22:25:25 -!- carado has quit (Ping timeout: 246 seconds).
22:30:29 -!- Arc_Koen has joined.
22:31:32 <pikhq> https://github.com/jbangert/trapcc Slides
22:32:03 <kmc> nice
22:40:00 -!- impomatic has quit (Quit: impomatic).
23:00:48 <olsner> hmm, I think I understand how it works now
23:08:51 <olsner> it's seems more an x86 hardware task-switching hack than something to do with the MMU
23:09:33 <olsner> *its seams
23:09:38 <olsner> *it seems
23:10:07 -!- kallisti has quit (Ping timeout: 260 seconds).
23:13:39 -!- FreeFull has quit (Ping timeout: 244 seconds).
23:14:54 -!- FreeFull has joined.
23:15:21 <elliott> olsner: *itz eems
23:15:37 <oerjan> eems? where?
23:15:54 <olsner> eems upon eems! can you not see them?
23:16:19 <elliott> eems
23:16:20 <elliott> eem
23:16:22 <elliott> fuck
23:16:23 <elliott> eems
23:16:23 <elliott> eems
23:16:27 <elliott> ^ eems upon eems
23:16:43 <olsner> eem upon fuck
23:17:19 <elliott> yes
23:19:54 <oerjan> it looks like an eem possibility
23:20:50 -!- FreeFull has quit.
23:21:43 <olsner> the possibility is eemingly eem
23:22:53 -!- GOMADWarrior has quit (Ping timeout: 255 seconds).
23:31:07 <quintopia> kmc: thx
23:41:56 -!- nooga has quit (Ping timeout: 256 seconds).
←2013-02-20 2013-02-21 2013-02-22→ ↑2013 ↑all