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