00:18:12 -!- lahwran has quit (Quit: ZNC - http://znc.sourceforge.net). 00:25:27 -!- lahwran has joined. 00:32:51 -!- oklopol has quit (Ping timeout: 260 seconds). 00:44:01 -!- sebbu has quit (Read error: Connection reset by peer). 00:44:29 -!- sebbu has joined. 00:45:46 -!- sebbu2 has joined. 00:49:18 -!- sebbu has quit (Ping timeout: 245 seconds). 01:06:04 -!- sebbu2 has quit (Read error: Connection reset by peer). 01:06:29 -!- sebbu has joined. 01:06:29 -!- sebbu has quit (Changing host). 01:06:29 -!- sebbu has joined. 01:09:31 -!- zzo38 has quit (Remote host closed the connection). 01:21:23 -!- sebbu has quit (Ping timeout: 245 seconds). 01:25:09 @ask ais523 does stealth lose track of where its own flag is during the deep poke? how much bigger would it be if it didnt? 01:25:09 Consider it noted. 01:25:56 * GreyKnight looks baffled, picks up the comment, rotates it, looks baffled again 01:26:17 Oh! bf joust 01:26:22 quintopia: yes, and exponentially larger 01:26:22 ais523: You have 1 new message. '/msg lambdabot @messages' to read it. 01:26:27 @messages 01:26:28 quintopia asked 1m 18s ago: does stealth lose track of where its own flag is during the deep poke? how much bigger would it be if it didnt? 01:26:47 stealth clear is a new sort of clear loop that I should document 01:26:49 also stealth poke 01:26:57 but it has limitations 01:27:13 specifically, it has an order of recognised decoy sizes 01:27:35 and from one decoy to the next, it can move any distance forwards in the order, but only up to 1 backwards 01:28:00 stealth uses 0,-1,1,2,-2,-3,3,5,1,0 01:28:14 the 5 is to recognise its own decoys, when it's forgotten where its flag is 01:28:28 so it can search for its own flag 01:28:31 actually I should remove that in the long-tape case given that its decoys in that case aren't actually size 5 01:28:32 cool 01:28:44 so it doesn't get caught on its own decoys 01:28:54 then the 1,0 is for once it's got past its own decoys 01:29:04 adding the 1 there makes it faster on a row of 0s 01:29:18 i just noticed that the usual reason it loses is that the decoys it leaves near its own flag are always abysmally small. so other pokes go through them like shit through a goose 01:29:20 it's an algorithm with a lot of drawbacks 01:29:27 yeah, it's a fast rush 01:29:30 we haven't had one of those for /months/ 01:29:39 however, there's an innovation 01:29:50 once the clear loop finds something that's larger than its wiggle 01:29:55 then it goes back and sets some large decoys 01:30:06 somewhere vaguely approximately near its flag 01:30:22 its a fast rush? it spends an awful lot of time building decoys for a fast rush 01:30:39 kekeke ais rush 01:30:39 i would expect a fast rush to start clearing once it found an unrecognized decoy. 01:30:44 in fact, much of the logic near the end, apart from the deep undermine, is to do with trying to guess where its own flag is 01:31:02 quintopia: well my definition is that it attacks before setting any large decoys 01:31:04 which it does 01:31:26 does it? on what cases? 01:31:46 it sets large decoys when it finds the first opposing medium or larger decoys on the long-tape cases 01:31:53 (where we define attack as actually trying to clear a flag of course) 01:31:54 like, it actually interrupts the clear to set decoys 01:32:22 this is mostly a bad idea if it's actually on the enemy flag at the time, but the odds of that are pretty low 01:32:24 in general it helps 01:32:39 but the idea is to try its best to get /inside/ the opposing decoy setup 01:33:16 hmm… an alternative definition is to say that a fast rush aims to interact with the opponent while it's setting decoys 01:33:21 does it. in the programs i played it against, the extra decoys end up so far from its flag it would have been better off just trying to clear. which programs does it help against? or is it a short tape thing? 01:33:23 whereas a slow rush instead prefers to make its own decoys secure 01:33:54 they mostly help against slow rushes 01:33:57 actually they might not help any more 01:34:20 they help in the case where an enemy poke sets up large-ish decoys first 01:34:24 it used to be that I trailed to avoid pokes 01:34:29 but it turned out to work better if I didn't 01:35:14 and so pokes can mostly beat it now 01:35:36 -!- oerjan has quit (Quit: Good night). 01:35:41 nah, against pokes it normally finds the enemy flag before they even get back 01:36:02 not against space_elevator 01:36:19 no, not against that 01:36:23 it does against most of the others though 01:36:28 anyway, I tried removing the large decoys as a test 01:36:50 it ends up doing some crazy building of medium decoys across the middle of the tape instead of finding the flag 01:37:01 it hurts against basically all the rush programs 01:37:05 it helps against space_elevator and defence 01:37:20 hmm 01:37:25 yeah, the medium decoy spam is basically because it buys considerably more time than it costs against slow rushes 01:37:37 like, I can set those up faster than I could clear one decoy 01:37:39 did you optimize the size of the large decoys at all? 01:37:44 yes 01:37:53 it was important not to set too many 01:38:00 I tried smallish ones and largish ones 01:38:03 but the very large ones worked best 01:39:02 interesting. cant wait to see the docs on the new strategies 01:39:39 but it hasn't won, so there won't be any :( 01:39:45 apart from the clear loop itself 01:39:53 anyway, look at its trace against quintopia_poke, if you want an example 01:39:59 basically it gets /inside/ poke's decoy setup 01:40:17 and so it finds the flag first, whereas poke finds its interim decoy on cell 3 01:41:05 it sets the extra decoys too far from its flag to matter 01:41:13 but it doesn't matter because it's already found the enemy flag in that case 01:41:47 if you want an example of them helping, look at it against space_hotel on length 25 01:42:17 it gets the flag down first by like 10 cycles :) 01:43:08 i watched both of those already 01:43:12 yep 01:43:25 oh, it also coincidentally helps by completely throwing off the timing of tripwire-based defence algorithms 01:43:26 i'm discounting poke...it's a very stupid program :P 01:43:29 :) 01:45:03 why did you decide that decoy size order 01:45:21 it's fast rushing so it can't afford to set large decoys early 01:45:27 it needs to find the opponent first, and even start clearing 01:45:39 once it's found something it can't clear efficiently, then it sets the large decoys 01:45:59 because clearing a large decoy takes forever, so setting large decoys doesn't significantly slow it down 01:46:59 anyway, the other new strat is the deep undermine (or, well, shallow undermine) 01:47:20 on long tapes, if it finds an enemy large decoy a little beyond its own 01:47:32 so medium-length tapes 01:47:45 it assumes reverse decoy setup with potential trail, and looks for the trail behind the enemy decoys 01:47:58 then it restores it so the opponent can't detect that it's been infiltrated 01:48:09 if the opponent's using forward decoy setup, it runs off the end in that case 01:48:18 but that case is very hard to trigger with a forward decoy setup 01:48:30 some programs can do it on very short tapes 01:50:10 but I just sacrificed those 01:50:21 so I guess the program has different short/medium/long modes 01:50:53 quintopia: oh, looking at this against fast rushes, I know what the medium decoys are for 01:51:02 they're set up fast enough that they can typically overtake the opponent's clear lopo 01:51:04 *loop 01:56:10 hmm, I wonder how I can make stealth better 01:56:17 it doesn't lose very much, but its losses are expected ones 01:56:32 and it does win against the things it's meant to win against 01:56:41 (cookie cutter deep poke with breadcrumb decoy programs) 01:56:55 space_elevator isn't really cookie cutter, it's a bit too old for that 01:58:00 -!- sebbu has joined. 02:07:49 -!- greyooze has joined. 02:08:29 -!- GreyKnight has quit (Ping timeout: 255 seconds). 02:09:02 ais523: i meant the list of sizes to check 02:09:11 in the deep poke 02:09:22 quintopia: oh, it's just 1-3 because those are the only commonly used reverse tripwires 02:09:27 plus its own decoys so it doesn't get caught on them 02:10:26 i've never written a deep poke 02:10:38 anyway, it doesn't actually do a deep poke 02:10:47 unless you consider the interrupted clear to be a poke, which it is in a way 02:10:57 it does a shallow poke 02:11:15 to start off with 02:11:23 the decoy size list is mostly used in the clear loop 02:11:25 to restore decoys 02:12:02 so it's a wiggle clear, with the twist that the wiggle restores the decoys before moving on 02:12:15 oh and it also uses the inflexible timer clear pattern, in order to fit everything in 02:12:18 this explains the weird behaviour 02:12:22 or is it the flexible one? 02:12:26 but there isn't an actual timer clear 02:12:50 I could try to add one, but I don't think it'd help that much 02:14:54 -!- DH____ has quit (Read error: Connection reset by peer). 02:14:59 -!- DHeadshot has joined. 02:20:50 -!- greyooze has changed nick to GreyKnight. 02:24:20 A little light entertainment courtesy of #nethack: Linus chewing out a kernel maintainer: https://lkml.org/lkml/2012/12/23/75 02:24:49 Scary :-S 02:26:58 GreyKnight: that's been going round Reddit and Slashdot several days ago 02:27:29 sorry I'm not really in "the loop" :-P 02:27:53 IRC is pretty much the high water mark of my online socialising 02:29:06 monqy, Fiora 02:32:04 yeah i don't find it that entertaining 02:32:17 i think it's a real problem that open source development is dominated by assholes 02:32:50 we tell ourselves it's a meritocracy but it's really about who can dish out and take the most abuse on mailing lists without burning out 02:34:41 I don't think this was a typical exchange, perhaps Linus was having a bad day and they will kiss and make up later 02:34:59 GreyKnight: I've heard that Linus gets very annoyed at people who are in charge of something when they're not doing their jobs properly 02:35:08 (that's a subsystem maintainer, who's meant to be keeping bad code out) 02:35:17 in the hope that it'll reform them without having to actually fire them 02:36:54 i think he went a bit too far there but the base complaint was valid 02:37:05 maybe a bit less profanity 02:37:28 it's no surprise how many open source projects end up getting forked and renamed just to escape the toxic ruins of a developer community 02:37:51 the substance of the complaint doesn't matter, the only reason anyone is paying attention is the tone 02:37:52 eglibc! 02:38:07 lolredhat 02:39:34 and C-INTERCAL :-) 02:39:40 among other things, it's a diversity problem 02:39:56 GreyKnight: that's never been particularly forked or renamed 02:40:00 it was stolen 02:40:03 YET 02:40:05 and then subsequently returned 02:40:15 (something that /doesn't/ happen to open source projects often) 02:40:17 the people who will put up with mailing list assholes are disproportionately going to be privileged white men who have been told practically from birth that they are god's gift to code 02:40:19 but the name has been the same constantly 02:41:21 if you're from an underrepresented group that already gets tons of "you don't belong here" signals, are you going to put up with that shit? 02:41:25 a few people will, but it's a huge barrier 02:41:49 -!- augur has quit (Read error: Connection reset by peer). 02:41:59 -!- augur has joined. 02:42:10 i also feel like every time linus talks about how it's good to offend people, it emboldens some hacker news asshole who thinks that putting hardcore pornography in conference slides is a great way to stick it to the man 02:42:38 please tell me this is not a thing 02:42:52 ais523: "We stole this but it was so terrible we'd like to give it back"? :o) 02:43:03 There has been inappropriate imagery in conference slides 02:43:07 http://geekfeminism.wikia.com/wiki/Sexualized_presentation 02:43:25 GreyKnight: actualy what happened was that Donald Knuth got involved 02:43:26 it's particularly characteristic of the Rails community 02:43:36 which prompted ESR to investigate, and he then noticed it had been stolen 02:43:41 they combine immature broishness with a misguided sense of rebellion 02:43:46 but it happens everywhere 02:45:04 What has been stolen? 02:45:15 C-INTERCAL? I think 02:45:24 * GreyKnight is confused 02:45:48 yeah, C-INTERCAL 02:48:37 Someone stole it, and then a crack team of ace detectives headed by Donald Knuth and ESR tracked the thieves to their lair downtown. There was a shootout and C-INTERCAL was eventually retrieved and returned to its rightful owners. The end. 02:49:02 GreyKnight: basically, what happened was, that C-INTERCAL had been mostly dormant 02:49:14 oh and Professor Knuth got the girl (of course) 02:49:27 and so when I patched it, I decided to just arbitrarily become maintainer, and released the patched version with the next available version number in the same place 02:49:30 if you're interested in a vision of open source which is more friendly and inclusive, check out https://openhatch.org 02:49:45 and it worked like a charm; at least, the entire esolang community went along with it, also Debian 02:49:56 they work on helping beginners find suitable stuff to work on 02:50:04 and helping them learn skills they need, online or at in-person workshops 02:50:24 -!- sebbu2 has joined. 02:50:25 then Knuth decided (for reasons best known to himself) that he badly needed and esolang compiler 02:50:43 *an INTERCAL compiler 02:50:43 most open source stuff is friendly and inclusive, at least at the beginning ;-) 02:50:44 -!- sebbu2 has quit (Changing host). 02:50:44 -!- sebbu2 has joined. 02:50:58 and, basically, emailed ESR with "hey, aren't you working on an INTERCAL compiler? I need one" 02:51:06 then ESR discovered it had been maintained in his absence 02:51:11 and now we're comaintainers 02:51:14 (he contributed a test suite) 02:51:24 (to the latest version I'd released) 02:52:42 a crack team of ace detectives headed by Donald Knuth and ESR escaped from a maximum security stockade to the Los Angeles underground. Today, still wanted by the government, they survive as soldiers of fortune. 02:53:03 ais523: what's it like working with ESR? 02:53:25 -!- sebbu has quit (Ping timeout: 265 seconds). 02:53:36 kmc: he believes we agree with each other more than I believe we agree with each other 02:53:57 If you need an algorithm, if no one else can help, and if you can find them, maybe you can hire the λ-Team. 02:54:14 #music# 02:55:19 kmc: also he broke the build by not understanding why the autotools stuff was too complex 02:55:28 although to his credit, he reverted when I explained 02:55:55 (basically, it was a case involving cross-compilation) 02:56:12 yeah, C-INTERCAL does even Canadian Crosses just fine 02:57:04 -!- sebbu has joined. 02:58:58 ais523 reading between the lines here and earlier, but have you gone and created the most advanced usage of autotools in the world :-I 02:59:17 * GreyKnight crosses his legs and stares 02:59:32 -!- sebbu2 has quit (Ping timeout: 248 seconds). 02:59:44 GreyKnight: yes 02:59:51 I thought that, I may as well do autotools properly 02:59:56 because probably nobody has before ever 03:00:00 except possibly in automake's test suite 03:01:25 well now 03:01:30 there's something 03:02:17 GreyKnight: let me put it this way: INTERCAL's mission is "different from everything else" 03:02:23 note that this doesn't imply "worse", just "different" 03:02:36 in cases where all existing projects ignored the standards, I made a point of following them 03:02:45 for instance, there's a POSIX standard for tarballs that nobody actually uses 03:02:53 but C-INTERCAL does! 03:03:13 (note that luckily, all standard tar programs can read POSIX standard tarballs; you know, just in case) 03:04:23 hm 03:04:34 that is actually a very valid point 03:04:53 "autotools but correctly" is thus pretty much closer to INTERCAL's mission statement than almost anything else 03:05:16 There exists a correct use of autotools? 03:05:21 it even has automated tests that, e.g., out-of-tree builds work correctly – as part of generating the distribution tarball 03:05:25 Does C-INTERCAL also do things like checking the return code from printf()? 03:05:40 GreyKnight: I'm not sure; it should, but that doesn't mean it does 03:05:43 (which nobody ever does) 03:05:47 I do that 03:05:52 * GreyKnight gasps 03:05:58 (and of course there's the usual issue of "what are you going to do if you get a short write anyway?", with typical uses of printf) 03:06:18 Okay, I have written programs that do that 03:06:39 OTOH, checking the return value from /close/ is actually useful 03:06:43 and yet people hardly ever do that either 03:06:48 http://codepad.org/xVFNe2LP 03:07:18 also flush, which is even rarer 03:07:36 When does fclose fail 03:08:16 GreyKnight: ♫ 03:08:27 Jafet: most commonly, if you've tried to write data since the last flush, it does that asynchronously (because, you know, you didn't flush), and it runs out of disk space trying to complete the async write 03:08:46 there are other ways to set that up, but that particular scenario is actually even a plausible one 03:09:02 Not on my 2TB disks 03:09:22 this is what things like tiny tmpfses and /dev/full are for 03:09:42 $ cat /etc/passwd > /dev/full 03:09:43 cat: write error: No space left on device 03:09:49 /dev/full is one of my favourite special files ever 03:10:06 it's notionally a zero-byte file on a filesystem with a quota of zero 03:10:11 WP says (on [[INTERCAL]]) "[...] C-INTERCAL, formerly maintained by Eric S. Raymond [...]" 03:10:16 GreyKnight: I know 03:10:20 I wrote that 03:10:22 Surely ais523 counts as famous by this stage 03:10:27 because I didn't have a reliable source to prove I maintained it 03:10:31 make yerself a page ;-) 03:10:33 and yet it's easy to prove that ESR maintained it once 03:10:35 oh of course 03:10:38 GreyKnight: the wikipedia page on me was deleted 03:10:40 that would be OR, my mistake 03:10:42 it was probably the right decision 03:11:07 autotools is ridiculous and strange, but it does solve a problem that few other tools handle 03:11:18 Jafet: data expands to fill the space available :-) 03:11:31 no drive is ever big enough 03:11:32 my opinion of autotools actually improved after doing some non-trivial configure.ac editing 03:11:48 "alex smith, the guy who did one cool thing in life, but also happens to maintain c-intercal" best wikipedia article ever" 03:12:02 -!- sebbu2 has joined. 03:12:02 -!- sebbu2 has quit (Changing host). 03:12:02 -!- sebbu2 has joined. 03:12:30 ais523: you're still mentioned on the disambig though 03:12:43 yeah, seems about right 03:12:53 am I still the world's 11th most famous alex smith? 03:12:57 this is an accolade I can get behind 03:13:05 maintaining C-INTERCAL counts as cool surely 03:13:06 I don't see him in disambig 03:13:09 (it is a very common name) 03:13:13 kmc: mainly because nobody wants to write another tool that does that autotools does 03:13:14 Sgeo: disambig for "alex smith" 03:13:23 it needs a /lot/ of disambiguating 03:13:27 Oh, I see 03:13:30 Jafet: aimake! :) 03:13:34 but it's still in early stages 03:13:36 ais523: google only shows 10 results per page 03:13:44 Jafet: based on Wikipedia 03:13:44 But we have faith in you 03:13:45 not on Google 03:13:47 for the lazy: http://en.wikipedia.org/wiki/Alex_Smith_%28disambiguation%29 03:13:52 which is awful at distinguishing alex smiths from each other 03:14:08 oh hmm 03:14:12 [[Alex Smith]] is some American football player, yawn 03:14:12 You're getting it mixed up. Wikipedia is a source of nobility. Google is the source of fame. 03:14:13 it's added a bunch more footballers 03:14:55 Jafet: yeah... Git uses a 3000 line Makefile which is full of explicit "ifeq ($(uname_S),FreeBSD)", rather than testing for the respective features 03:15:09 https://github.com/git/git/blob/master/Makefile 03:15:19 -!- sebbu has quit (Ping timeout: 252 seconds). 03:15:28 I tried to read the [[Alex Smith]] page but I got *bored out of my mind* 03:15:41 GreyKnight: yeah, that isn't me :) 03:15:44 TM proofs are more interesting mio 03:15:46 At first I read that it was calling uname like 3000 times 03:15:46 imo 03:15:53 how did I typo that kill me 03:16:33 i'm sure this approach is better in some ways, but it's not exactly ponies and rainbows 03:16:35 ais523: I know :-P 03:16:49 Makefile conditionals are fun. There isn't an "elseif" directive 03:17:44 endif endif endif endif endif endif endif endif endif endif endif endif endif endif endif endif endif endif 03:17:57 oh, btw, C-INTERCAL actually compiles on DOS 03:18:00 still using autotools 03:18:11 (admittedly you need a DOS port of bash, but they aren't massively hard to come by) 03:18:15 i used to think that the stuff autoconf tests is irrelevant on modern systems 03:18:21 "In week 5, Smith was booed at home and the crowd chanted for his backup, David Carr, before leading the 49ers to two scoring drives to close within three points." I don't understand why we can have pages and pages of this but no Pokemon articles 03:18:35 then i worked on Mosh and saw how much conditional stuff was required to build that on just Linux, FreeBSD, and OS X 03:18:40 (and by now a few other platforms) 03:19:00 of course we also check for a ton of stuff that's irrelevant on modern systems just because 03:19:11 kmc: autotools removed its test for the existence of #! :( 03:19:12 checking if size_t is an integer and not a bobcat... ok 03:19:15 haha 03:19:16 so I had to rewrite it by hand 03:19:29 it's actually relevant on DOS 03:19:30 you couldn't just revert their removal? 03:19:33 sigh 03:19:49 dnl Yes, that is a valid email address. If your mailer doesn't support nested 03:19:51 dnl comments, then get a better mailer. 03:19:54 kmc: I can't commit to autoconf's codebase 03:20:28 ok but you couldn't rip out whatever macro they had and bundle it? 03:20:28 oh yeah, and autoconf is kind-of buggy in other ways too 03:20:30 dnl Don't assume yacc exists just because bison doesn't (wtf autoconf...) 03:20:35 kmc: I pretty much did that 03:21:26 that is fairly wtf 03:21:34 checking if sizeof(int) is non-negative... ok 03:21:47 GreyKnight: which configure script is this? :) 03:22:00 I am making it up for lols :-) 03:22:07 oh, OK 03:22:15 I'm actually running C-INTERCAL's now, just for fun 03:22:16 ...I assumed the bobcat one was made-up too but you never know I guess 03:22:29 (./config.status --recheck in the build dir) 03:22:51 nothing there is massively crazy 03:23:27 although "checking for clock_gettime... no" looks like a bug 03:23:34 because I'm moderately sure clock_gettime exists on Linux 03:23:45 perhaps it's a missing -lrt in the test 03:23:57 really, autotools should let you know what libraries the functions you request exist in 03:24:23 aimake does that, although in order to avoid it scanning the entirety of /usr/lib for functions (which it can do but takes a while), you currently have to suggest to it names of libraries it they might be in 03:24:50 ah, nice 03:25:08 aimake is awesome, but unfinished and a little buggy 03:25:21 in particular, I can't figure out how to get it to make shared libraries, due to a chicken-and-egg problem 03:25:55 (basically, you need to know if the functions included in a file are destined to go into a shared library to know what options to give when compiling it, but need to compile it to see which functions it contains) 03:26:08 the aim of aimake is low-configuration builds that just work 03:26:46 here's a nice comparison: http://sprunge.us/KPED 03:28:12 and here's aimake.config itself: http://sprunge.us/bMJZ 03:29:01 note that nothing in aimake.config could reasonably be guessed by the build system 03:29:20 except maybe the rule for .o 03:30:35 I like this. I have parts of a lisp make system with a similar end in mind 03:30:50 just make it *work* and get out of the way 03:31:33 aimake is written in Perl, and the reason is, because I realised there were only two languages it could possibly be written in 03:31:35 Perl and Python 03:31:42 both have to be widely installed already on people's systems 03:31:48 I think I even backported it to Perl 5.8 03:31:59 oh and it can't use any libraries that aren't part of a standard minimal distribution 03:32:23 you forgot posix sh 03:32:32 this is why it uses Perl syntax for the config file (parseable using Safe+eval, which is part of Perl's standard distribution), rather than something like YAML, which needs libraries or else rewriting a parser from scratch 03:32:34 [/troll] 03:32:42 kmc: I have a feeling that wouldn't work 03:32:51 also, Perl works just fine on Windows 03:32:59 aimake doesn't, but only because of missing entries for Windows in its config files 03:33:03 hm true 03:33:04 kmc: hey, you wouldn't even need to test for a usable shell then! 03:33:08 I only use my thing for my own use so I could at least rely on stuff being installed ;-) 03:33:58 maybe aimake is the future :-o 03:34:02 I hope so 03:34:09 I haven't really used it for anything but nh4 03:34:12 and a few test programs 03:34:16 actually the nh4 repo is the aimake repo atm 03:34:24 I originally had them separate but it was too much effort 03:34:40 the other thing I did with aimake was to ensure that it was all one file 03:34:42 that you could just ship 03:34:56 well you can't atm because I haven't put explicit licensing conditions on it 03:35:17 probably I'd go GPLv3 eventually 03:35:25 Is anyone using nh4 yet 03:35:28 given that it's a build system and thus doesn't need to have the same license as the thing it's building 03:35:36 Jafet: sure; there's a public server, people play on it 03:36:26 someone's playing it atm, actually 03:37:52 Very well 03:40:24 it's not as popular as 3.4.3 yet, though 03:40:29 partly because it's rather unfinished 03:42:57 Hmm, maybe I should start playing Brogue again 03:42:59 I was playing powder the other day 03:43:03 There are no Brogue servers :( 03:43:06 Powder? 03:43:24 It has an interactive tutorial, where at one point there are items on the ground and you are asked to use-identify them 03:43:37 But the items are randomly generated in each tutorial 03:43:44 unfortunately if you use GPL then a lot of people and companies will irrationally shun your software 03:43:55 even if they are totally capable of complying with the terms 03:44:19 using BSD or MIT license will reduce the amount of bullshit and trolls directed your way 03:44:24 kmc, what about public domain? Does that get shunned? 03:44:30 this might be a bad reason to do something, but there you go 03:44:52 Sgeo: no, only by pedants (like me) who point out that it's legally ambiguous at best 03:45:08 wtfpl is fairly unambigious 03:45:11 I thought we were talking about shunning because of a fear of open source in general 03:45:17 An idea that proprietary is better 03:45:23 not all jurisdictions have a concept of "public domain" and even if they do, you can't necessarily place things into it other than by dying and waiting 70 years 03:45:37 Sgeo: no, i'm talking about a hatred of the GPL and a fear of its viral clauses 03:45:51 a lot of companies forbid the use of any GPL software internally, or require explicit approval 03:45:56 and are perfectly fine with permissive licenses 03:46:13 they are terrified that a bit of GPL code will get into something they make and that 10 years later they will get sued for some huge amount 03:46:30 WTFPL is amusing but you should at least pair it with a warranty clause if you're distributing software 03:46:34 Actually, that is not an unrealistic fear 03:46:44 Do warranty clauses even mean anything 03:46:54 CC0 is a long-winded but comprehensive waiver of all copyright and associated rights 03:47:06 Jafet: i don't know, IANAL, but people i've talked to seme to think it's important 03:47:23 and specifically that parts need to be in ALL CAPS because case law holds that warranty disclaimers must be prominent 03:47:38 It's not like software writers assume themselves to be held liable for any bugs anyway 03:47:44 In, since ever 03:47:58 Jafet: yeah, it's not totally unrealistic fear; otoh I think some parties go way too far 03:47:58 can we have an HTML license with blink tags for prominence :-I 03:48:13 also if you use GPL then random trolls who have no interest in your software will join your IRC channel to tell you to burn in hell 03:48:19 it's really remarkable 03:48:58 Jafet: it doesn't matter if you assume yourself to be liable; it matters if the courts hold you liable 03:49:34 and there's some idea that you are liable by default, but can disclaim some of that 03:49:36 Some open-sourced project's project manager attempted to put the project under public domain, without asking any of the contributors (myself included) 03:49:54 If the courts have held programmers liable before, they would not think that they are so liable 03:50:09 I wonder how much case law is there for this 03:50:17 yeah, i don't know 03:51:42 Sgeo: sucks 03:51:42

THIS SOFTWARE IS PROVIDED WITH ABSOLUTELY NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. THE AUTHORS DISCLAIM RESPONSIBILITY FOR ALL LOSS OR DAMAGE CAUSED BY THIS SOFTWARE, EVEN IF USED IN AIR TRAFFIC CONTROL, MOTOR VEHICLES, NUCLEAR REACTORS OR PACEMAKERS IF YOU ARE CRAZY ENOUGH TO DO THAT. DO YOUR EARS HURT YET?

03:53:59 kmc: the all caps thing is because the law just says "prominent"< which is a little hard to define 03:54:07 but there's case law saying that all caps is sufficient 03:54:15 yeah that is what i have heard as well 03:54:19 and faced with a strategy that's known to work, and several others which might or might not work 03:54:24 You never see warranty disclaimers in "about" dialogs though 03:54:27 lawyers tend to take the safe route 03:54:27 Wonder why 03:54:35 Jafet: there's one in jettyplay's, fwiw 03:54:35 i think the intent of the law was to avoid people putting disclaimers in tiny text 03:54:45 kmc: so do I 03:54:45 Jafet: huh, i think i have seen them 03:55:08 hmm, let me look at the EULA the lawyers at work wrote 03:55:28 ah yes, allcaps 03:55:34 for anyone else who wants to laugh, https://sites.google.com/site/thegeometryofsynthesis/download/licence 03:55:59 Isn't licence a verb 03:56:02 yeah 03:56:07 but that's the spelling the lawyers gave us 03:56:11 and who am I to fix it? 03:56:26 (also I'm pretty sure I made that mistake myself in jettyplay) 03:56:57 hm functional FPGA design 03:57:00 interesting 03:57:04 yeah, it's my day job 03:57:08 apart from the teaching 03:57:10 which is also my day job 03:57:13 I have two part-time jobs atm 03:57:39 -!- etb has joined. 03:59:16 dammit stop being good at everything >:-( 03:59:26 I'm not good at everything 03:59:32 but I tend to talk mostly on subjects I'm good at 04:00:05 ais523: stealth does a shallow poke, then builds some decoys before doing its wiggle clear, right? 04:00:14 quintopia: yes 04:00:18 medium-sized ones 04:00:25 5 with a nearby enemy, 7 if it was further away 04:00:31 oh and if it reaches tape length 11, it builds them anyway 04:00:37 then does a wiggled undermine 04:00:52 what if you made the decoy closest to its flag have a value equal to its distance from the flag 04:00:56 if the enemy sets decoys to 11 in the meantime 04:01:07 quintopia: huh, why would that help? 04:01:37 (the wiggled undermine only helps in a specific range of tape lengths, but it's awesome there and beats basically every BF Joust program in existence) 04:02:03 quintopia: you mean to work out where on the tape we were? it's both vulnerable to enemy interference, and requires way too long to check 04:02:10 it could clear it to figure out instantly where its own flag was 04:02:18 and then build the large decoys in front of its flag 04:02:39 hth 04:02:46 quintopia: yeah but if it encounters, say, a "2" 04:02:49 is that two spaces from its own flag 04:02:52 or the enemy trailing 2s 04:02:55 (space_hotel trails 2s) 04:03:35 it could be fooled for sure, but it has a series of 5s in front, so it will probably be back there before the enemy changes it 04:04:32 it often isn't 04:04:34 alternately you could have a sequence of decoys that increase away from the flag. then you will know where you are from any of them and also have error correction built in 04:04:37 especially against the programs it's trying to beat 04:04:39 and fast rushes 04:04:58 actually the medium-sized decoys, I might gain a bit more time by mixing the reverse and forward setup 04:05:19 and the initial decoy setup, I cannot really stall on 04:05:22 time there is really previous 04:05:26 *precious 04:05:29 lol 04:05:33 -!- copumpkin has quit (Ping timeout: 252 seconds). 04:05:39 the 5 on cell 3 is basically the biggest compromise I'm willing to make 04:05:54 and that's only to ensure that pokes don't find the flag itself 04:06:05 -!- copumpkin has joined. 04:06:14 i dont propose to change that setup 04:06:28 im only talking about the decoy build after the shallow poke 04:06:39 while you still know where you are 04:07:13 right 04:07:21 actually originally that code didn't know where it was 04:07:28 I split it out for a little finer control 04:07:36 so I guess I could make the medium build vary 04:08:20 if you dont try the increasing decoys away from the flag thing, i might. it seems like it could provide a lot of data if you could figure out how to analyze it 04:08:57 quintopia: I'd be interested to see what you come up with 04:09:03 actually, I'm kind of happy that stealth isn't #1 04:09:14 it beats the current "best programs", at least over half the time 04:09:20 but it loses to more normal stuff 04:09:23 i didnt actually see where it landed 04:09:27 hopefully this will get a bit of diversity back in the hill 04:09:31 it's like #8 or so 04:09:35 ah 04:09:35 but much higher on points 04:09:49 #10 at the moment 04:09:51 it's dropped a bit 04:10:04 what dropped it 04:10:07 it's #4 on points, though 04:10:13 and just churn at the bottom of the hill 04:11:21 What is bfjoust 04:11:35 http://esolangs.org/wiki/BF_Joust 04:11:43 kind-of surprised you haven't noticed it in the past 04:11:51 but it's the best competitive eso sport ever 04:11:58 (possibly because there aren't many competitive eso sports) 04:12:02 I gather 04:12:31 not to be confused with competitive ero sport 04:12:39 I wonder what's become of corewars 04:12:53 i'm impressed with how deeply BF Joust strategy is developed 04:13:25 yeah, the current rules have kept on giving 04:13:32 although defence is mostly dead nowadays 04:13:45 shudderlock is my best attempt at that and it's #12 04:14:24 MIT runs an AI competition game every year 04:14:33 i guess it is not much like corewars though 04:14:39 http://www.battlecode.org/ 04:15:21 i like the artificial life research that grew out of corewars 04:16:48 quintopia: how does space_hotel deal with shudderlock, btw? 04:16:55 timer clear? 04:17:19 ah yes 04:17:27 flexible timer clear, by the look of it 04:17:50 I'm annoyed at that existing, even though I invented it 04:19:54 wait, is space_hotel vulnerable to triplocks? seriously? 04:20:07 ah, but only on small decoys 04:20:47 !bfjoust small_triplock >>>+++<++([]+++)*-1 04:20:59 ​Score for ais523_small_triplock: 1.8 04:21:02 yeah, that's a good compromise 04:21:13 "BF Joust was introduced as a contest within the nomic Agora" 04:21:17 no way you're going to be able to do an entire full tape clear in four cycles 04:22:22 it's probably vibratable, actually, but only for a draw not for a win 04:34:07 *-1 produces a notionally infinite program, right? 04:35:07 yes 04:39:00 I feel that programs should also be scored on their lengths 04:39:30 Against which competitors does !bfjoust joust? 04:40:04 a selection of 48 programs through BF Joust history 04:40:35 if considering those 48 programs and your new submitted program, your new program doesn't come last 04:40:40 then it pushes the last of those 48 off 04:40:42 and so on forever 04:40:53 so good programs stay for ages because 48 better programs are needed to push them off 04:41:02 but even quite bad programs can stay on the hill for a while if they were submitted recently 04:41:07 because all that's needed is for them to not be last 04:41:26 you can delete programs for the hill if you need to for some reason (most commonly because they're near-duplicates of another) 04:43:18 !bfjoust . >[-.]> 04:43:20 ​Score for Jafet__: 8.0 04:43:34 that is not a very good program 04:43:58 it moves to the second cell, attempts to zero it (it's already zero), moves to the third cell, then just stops 04:44:17 !bfjoust the_first_program_ever [>-] 04:44:20 ​Score for ais523_the_first_program_ever: 0.0 04:44:24 err, what did I get wrong there 04:44:26 oh 04:44:31 !bfjoust the_first_program_ever [>[-]+] 04:44:34 ​Score for ais523_the_first_program_ever: 7.0 04:44:36 that was the first program ever 04:45:21 IIRC 04:45:27 it… doesn't do too well nowadays 04:46:12 !bfjoust (>)*9([-]>)*21 04:46:12 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 04:46:20 !bfjoust dumb (>)*9([-]>)*21 04:46:23 ​Score for kmc_dumb: 18.4 04:47:24 !bfjoust suicide (>)*9[[(-)*128.>]>] 04:47:26 ​Score for etb_suicide: 8.4 04:47:39 !bfjoust suicide < 04:47:42 ​Score for etb_suicide: 0.0 04:47:45 etb: your loop structure is a little broken there, isn't it? 04:48:04 !bfjoust naive_turtle (>)*8(>(-)*128)*21 04:48:07 ​Score for ais523_naive_turtle: 1.4 04:48:13 oh 04:48:15 !bfjoust suicide (>)*9([(-)*128.>]>)*21 04:48:15 !bfjoust naive_turtle (>)*8(>(-)*128.)*21 04:48:18 ​Score for etb_suicide: 19.6 04:48:19 ​Score for ais523_naive_turtle: 3.9 04:48:29 should be at least non-naive enough not to fall off the tape if all works well 04:48:45 suicide's actually good enough to just make the hill 04:48:51 in at #48 :) 04:49:00 w00t 04:49:12 I doubt it'll survive there long :) 04:49:17 !bfjoust test . 04:49:19 waterfall2 got pushed off 04:49:19 ​Score for Jafet_test: 8.0 04:49:30 Jafet: that program consistently scores like 8, and has done for ages 04:49:42 How is score calculated? 04:49:47 ah i'm off now too 04:49:59 Jafet: basically, you get more points for beating better programs 04:50:05 err, more score 04:50:09 and don't lose score for losing 04:50:19 this leads to a circular dependency between scores, but it just solves the equations 04:50:49 So every program is rescored each time a new program gets to the hill 04:51:16 yes 04:51:25 new programs entering at the bottom can shuffle the order on the hill 04:51:32 and when waterfall3 was added and beat every existing program 04:51:42 someone managed to screw up the hill by submitting 47 copies of it 04:51:45 and we had to restore from backups 04:52:01 in the end, they went to just one copy, then I tweaked it to beat the old version of itself too :) 04:53:36 !bfjoust test (+)*100000 04:53:40 ​Score for Jafet_test: 13.7 04:53:50 Jafet: that program is submitted frequently 04:54:00 !bfjoust this_test_worked_better (+--)*-1 04:54:04 ​Score for ais523_this_test_worked_better: 17.0 04:54:07 I wouldn't be surprised 04:54:31 I imagine the programs on the hill detect it 04:54:46 the problem with shudders like that is that they're very easy to add in protection against 04:54:52 without compromising your main strategy at all 04:55:24 something like [-][+[+.++]] is only one cycle than [-] if the opponent isn't actively defending 04:55:30 *only one cycle slower 04:55:41 entering [ with *p==0 moves to after companion ]? 04:55:54 yes 04:55:58 the [ costs a cycle 04:56:02 but the matching ] doesn't 04:56:48 is the idea of +-- to cross zero more often, so that the opponent will be tricked into falling off the end? 04:57:21 kmc: I don't know, I wasn't involved in the early days of shudder 04:57:25 I always preferred vibration 04:57:41 !bfjoust vibration >(+)*128<(+)*128(+-)*-1 04:57:45 ​Score for ais523_vibration: 29.9 04:58:07 oh come on, it's at #18 :) 04:58:10 and why the decoy? 04:58:19 can't set the flag to 0 in time without it 04:58:35 the idea's that most programs move straight on if they see a 0 on a cell 04:58:40 so you can trick them off the end of the tape 04:58:44 oh i see 04:58:46 !bfjoust vibration >>>(+)*128<<<(+)*128(+-)*-1 04:58:49 ​Score for ais523_vibration: 30.0 05:00:00 etb: also re patience: it's generally considered polite to submit programs in-channel so that people can discuss them, all the programs are public knowledge anyway 05:00:18 especially because you're blowing away useful breakdown results 05:00:21 !bfjoust vibration >>>(+)*128<<<(+)*128(+-)*-1 05:00:25 ​Score for ais523_vibration: 30.0 05:00:30 that's better 05:00:53 how is this beating all these top programs? 05:01:01 Gregor: ffspg loses to vibration, of all things! 05:01:13 I assume bfjoust is anything but transitive 05:01:24 ah, sorry 05:01:31 Jafet: definitely, it'd be no fun if it were 05:01:33 didn't want to clutter it in here with beginner experiments 05:02:07 etb: if you want a private place for experiments, there's http://codu.org/eso/bfjoust/egojsout/ 05:02:12 which is an online BF Joust debugger 05:02:17 ais523: All the femdom girls have weird failure cases. 05:02:24 ais523: thanks 05:02:46 Gregor: I'm more amused at all the ways I've discovered to beat it since it utterly dominated the hill 05:02:51 if only I'd found them at the time :) 05:02:58 Heheh 05:03:23 !bfjoust vibration >(+)*128<(+)*128(+-)*-1 05:03:23 ais523: but why is the hill ranked then 05:03:27 ​Score for ais523_vibration: 28.3 05:03:32 !bfjoust vibration >>>(+)*128<<<(+)*128(+-)*-1 05:03:36 ​Score for ais523_vibration: 30.0 05:03:41 Jafet: it measures how you do against a wide selection of programs 05:03:54 like, there are good old programs, and hot new newcomers 05:04:02 and defensive programs and slow rushes and fast rushes 05:04:06 so it's a nice cross-section 05:04:12 and if a strategy starts dominating, you can pick on it 05:04:14 (see: stealth) 05:04:49 !bfjoust mimic (>(+)*128)*5(<)*5(+)*128(+-)*-1 05:04:53 ​Score for etb_mimic: 14.8 05:05:28 etb: interesting 05:05:44 try reading the article on reverse decoy setup on the wiki for an explanation as to why that typically doesn't work 05:05:48 Jafet: Yeah, the hill is a very living entity. There's not even such a concept as a truly "best" program. 05:06:30 ...there's a BF Joust wiki? 05:07:03 Cool, there's a website called programminggames.org 05:07:08 no, the strategies page on esolangs 05:07:17 http://esolangs.org/wiki/BF_Joust_strategies 05:08:38 !bfjoust mimic (>)*9(+)*128(<)*9(+)*128(+-)*-1 05:08:42 ​Score for etb_mimic: 15.9 05:09:04 http://tclrobots.org/sample-robots/ 05:09:05 i called it mimic because i'm just copying vibration 05:09:12 I seem to be reminded of how beautiful Tcl is 05:09:35 etb: this sort of experimentation is fine, it's how everyone got started 05:09:44 tcl is beautiful in the sense that it isn't 05:10:10 and truly, isn't that the greatest beauty of all 05:10:19 Jafet: as an elaboration on what Gregor is saying, something like space_hotel is top of the hill for good reason, but under a metric like "is good at defeating the top programs on the hill", something like stealth does better 05:10:32 well, space_hotel beats everything, or used to at least 05:10:34 but it's similar 05:10:59 Tcl's rather elegant, just needs a different standard library 05:11:16 -!- copumpkin has quit (Ping timeout: 248 seconds). 05:11:32 !bfjoust tetris_slowrush >++++++>(+)*15>(-)*40(>[>>>>(>(+)*40[-][+][-])*25]------>[>>>>(>(-)*40[+][-][+])*25](+)*15> [>>>>(>(+)*40[-][+][-])*25](-)*40>[>>>>(>(-)*40[+][-][+])*25]------>[>>>>(>(+)*40[-][+][-])*25](+)*15> [>>>>(>(-)*40[+][-][+])*25](+)*40)*26 05:11:35 ​Score for quintopia_tetris_slowrush: 18.4 05:11:41 -!- ogrom has joined. 05:11:56 -!- copumpkin has joined. 05:11:58 quintopia: huh 05:12:03 that's using the collision strategy, right? 05:12:11 just with 4s not 2s? 05:12:22 no 05:12:30 hmm 05:12:32 its just a basic slowrush that skips some decoys 05:12:41 well I meant the >>>> in the loop 05:12:49 its not in the loop 05:12:53 oh, right 05:12:55 it just happens once 05:13:15 I should revisit collision some time, really 05:13:49 in this age of everything building loads of decoys, it would make fast rushes faster without really hurting them at all 05:14:01 just fast rush is a bit underrepresented atm 05:14:48 quintopia: oh, I have a request to make 05:15:02 can you submit an edited version of space_elevator that doesn't use parens in comments, please? 05:15:13 -!- TeruFSX has quit (Ping timeout: 252 seconds). 05:15:20 why 05:15:22 cranklance seems not to care, but juiced bitches at it (probably correctly) 05:15:30 it sees ( and ), which are valid commands 05:15:35 but no %n or *n after it 05:15:36 what is juiced 05:15:43 my personal BF Joust interp that I use for testing 05:16:15 basically, ( and ) aren't actually comments in BF Joust 05:16:34 I guess I could just change juiced to be more bug-compatible with cranklance 05:16:35 -!- Frooxius has quit (Ping timeout: 255 seconds). 05:16:38 but I don't like doing that 05:16:45 I bitched enough about the whitespace between * and number thing 05:17:03 i think there's only the one set of parens in space_elevator that isnt code 05:17:08 you can dyke it out yourself 05:17:11 also 05:17:57 why not just add a line to juiced that globally replaces ) not followed by * with )*0 and saves it 05:18:04 then you arent touching your core code 05:18:06 !bfjoust tinkle >[]<(+)*-1 05:18:12 ​Score for etb_tinkle: 13.7 05:18:17 EgoBot: if you're trying to tripwire 05:18:21 set the cell to something nonzero 05:18:28 or your loop will just end immediately 05:18:36 me? 05:18:39 err, yes 05:18:41 is the playing field not randomized? 05:18:46 no, it's all zeros 05:18:48 to start with 05:18:48 ah 05:18:50 apart from the flags 05:18:53 that makes a big difference, hehe 05:18:55 ys 05:18:57 *yes 05:19:00 it's at the core of decoy setting 05:19:11 !bfjoust tinkle >-[]<(+)*-1 05:19:12 ...but thats an interesting idea :P 05:19:15 ​Score for etb_tinkle: 9.6 05:19:17 quintopia: no it isn't 05:19:27 it's basically a race of "who writes the best tuned reverse offset clear" 05:19:39 on offense 05:19:55 that was a quick response 05:20:03 have you considered it previously 05:20:10 because it'd take way too long to clear your own decoys to be able to set them to appropriate values 05:20:18 quintopia: no, just the implications are reasonably clear 05:20:25 it's basically "both programs have infinite free decoys" 05:20:36 "at random values" 05:20:53 thus, there's no incentive to use any sort of clear loop but turtle and reverse offset 05:20:59 on a general note, the history section on the wiki lacks any actual dates 05:21:02 if the playing field was a bilaterally symmetrical distribution selected from {-3,-2,-1,0,1,2,3}? 05:21:03 and the matching defensive programs 05:21:11 etb: hmm, interesting 05:21:15 we could try to determine them, I guess 05:21:23 quintopia: oh, that's more interesting than purely random 05:21:34 wouldn't be too dissimilar to what we have atm, except that fast pokes wouldn't exist 05:21:37 at least an approximate year would be good to know 05:21:39 well i never go the ovcious route 05:21:42 b 05:21:43 and reverse tripwire setting would take a little longer 05:22:06 but you would have a new strategy 05:22:22 "At the beginning of a battle, every cell is set to zero" whoops 05:22:53 -!- nys has quit (Quit: quit). 05:23:01 the one where you implement a palindrome detector that guesses when its in the "backwards" half of the palindrome and then jumps right the other flag 05:23:30 which is foiled by the other player putting decoys in random places etc 05:23:38 quintopia: oh, yeah 05:26:30 !bfjoust geddy_lee (>)*9(((+)*3[-].>)>)*21 05:26:34 ​Score for etb_geddy_lee: 0.0 05:26:57 hm, as good as the original suicide < 05:27:13 * ais523 looks for obvious problems 05:27:17 oh, you have unmatched parens 05:27:19 or at least 05:27:23 a () without a * or % afterwards 05:27:37 ah yes 05:27:39 seems like cranklance interprets that as commenting out everything in between 05:27:42 !bfjoust geddy_lee (>)*9((+)*3[-].>)*21 05:27:45 ​Score for etb_geddy_lee: 9.6 05:29:04 !bfjoust (-)*-1 05:29:04 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 05:29:11 !bfjoust hi (-)*-1 05:29:14 ​Score for shachaf_hi: 13.6 05:29:46 shachaf: that's just a polarity inverted always-increment program 05:29:50 so will have the same score 05:30:04 the best name I ever saw for that program was "you_spin_me_right_round", I forget who came up with it 05:30:14 !bfjoust ho (+)*-1 05:30:18 ​Score for shachaf_ho: 13.6 05:30:24 !bfjoust 'lo (+-)*-1 05:30:28 ​Score for Jafet__lo: 10.1 05:30:36 Maybe I should read the rules. 05:30:37 Probably a parity thing 05:31:15 !bfjoust __ (+-+-+-+)*-1 05:31:19 ​Score for Jafet___: 12.7 05:31:52 !bfjoust vibration >>>(+)*128<<<(+)*128(+-)*-1 05:31:56 ​Score for ais523_vibration: 30.0 05:31:59 let's try without the decoy 05:32:03 !bfjoust vibration (+)*128(+-)*-1 05:32:06 ​Score for ais523_vibration: 28.0 05:32:11 hmm 05:32:15 !bfjoust hi ([+])*-1 05:32:18 ​Score for shachaf_hi: 11.7 05:32:21 !bfjoust vibration >>>>(+)*128<<<<(+)*128(+-)*-1 05:32:25 ​Score for ais523_vibration: 21.1 05:32:29 !bfjoust vibration >>(+)*128<<(+)*128(+-)*-1 05:32:32 ​Score for ais523_vibration: 30.0 05:32:50 using no decoy would beat leviathan 05:32:58 but is less good against various other programs 05:33:27 !bfjoust vibration >>(+)*128<<.(+)*128(+-)*-1 05:33:31 ​Score for ais523_vibration: 17.8 05:33:37 haha, look at that parity dependence :) 05:33:41 !bfjoust vibration >>(+)*128<<(+)*128(+-)*-1 05:33:44 ​Score for ais523_vibration: 30.0 05:34:04 !bfjoust communism (>(+)*128.)*-1 05:34:07 ​Score for Jafet_communism: 8.4 05:34:31 Jafet: a turtle 05:34:37 those did really well back when they were invented 05:34:44 then people started taking countermeasures against them 05:34:50 and now they're sprinkled throughout the hill 05:35:54 !bfjoust quixote (>)*9[>+] 05:35:57 ​Score for etb_quixote: 7.0 05:36:12 ha expected much worse 05:36:15 Has anyone tried genetic programming for bfjoust 05:36:22 yeah, that's likely to jam unless it hits an enemy decoy 05:36:23 Jafet: yes 05:36:31 I assume it didn't work then 05:36:36 evo1 fell off the hill eventually 05:36:47 -!- GreyKnight has quit (Ping timeout: 265 seconds). 05:36:48 it was produced by evolving some of the example programs from the wiki, IIRC 05:37:04 the problem is that a good complex clear loop can't really be generated by evolving at a low level 05:37:13 without way too many tests 05:37:39 Well, evolving at the instruction level isn't going to work 05:38:38 -!- Bike has quit (Ping timeout: 255 seconds). 05:40:38 looking at space_hotel now... my. 05:40:58 normally, there's some sort of pattern 05:41:02 -!- Bike has joined. 05:41:15 just one more complex than can be encoded with ()* and ({})% 05:42:03 Also, they are brainfuck programs 05:42:09 "what do you expect" 05:43:12 compared to our one-liners 05:43:22 6700 lines of generated bf code 05:43:32 it looks goooood 05:45:13 ++++++++++[>++++++++>++++++++++>+++>++++++++++++>+++++++++++<<<<<-]><+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>>+.>++.<++.>>>+++++++.--.+.<<<<<+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. 05:48:17 you can often do pretty well just with one-liners 05:48:25 triplock3 was a one-liner, and did great when it first came out 05:48:33 basically because nobody had invented the countermeasure yet 05:48:45 nowadays everyone protects their code from triplocking 05:48:55 and as such, triplocking fell off the hill altogether 05:49:03 how many people are involved with this 05:49:33 BF Joust? 05:49:43 see for yourself: http://codu.org/eso/bfjoust/in_egobot/report.txt 05:50:14 submitting username is listed on the hill 05:50:28 both for namespacing to avoid clashes, and so we know who to talk to about it 05:56:37 etb: space_hotel is not generated. its all hand-coded with help of copy/paste 05:56:48 quintopia: hott 05:57:26 quintopia: that's impressive 05:58:04 look at gregor's stuff for examples of generated programs 05:58:16 has someone made a bf programming language with a preprocessor to automate copypasting and the like? 05:58:28 i started to 05:58:31 !bfjoust fools_odds (>)*15[-]. 05:58:31 but 05:58:33 lazy 05:58:34 ​Score for etb_fools_odds: 3.8 05:58:58 Fiora: there are some with procedures and stuff. 05:59:09 Fiora: Isn't that what the bfjoust thing does? 05:59:25 and yeah, i was assuming the numbers were some kind of rep count. 05:59:36 wait. run-length encoding. i already asked this. 05:59:47 That seems to be missing the point of brainfuck 05:59:55 -!- TeruFSX has joined. 06:00:05 the shortest possible compiler? 06:00:08 !bfjoust ([+++>(+-)*8]>(-+)*8[+>])*8 06:00:08 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 06:00:11 !bfjoust hi ([+++>(+-)*8]>(-+)*8[+>])*8 06:00:14 ​Score for shachaf_hi: 2.8 06:00:17 yay 06:00:25 how can bf jump to subroutine? 06:00:30 !bfjoust long_tapes (>)*15(>(-)*120(-.)*16)*14 06:00:32 wizard magic. 06:00:33 ​Score for quintopia_long_tapes: 2.7 06:00:39 lul 06:00:52 yeah, but the joust thing obviously isn't flexible enough to avoid heavy copypasting in the creation of, like, space hotel, right? 06:01:03 since it's just RLE 06:01:04 !bfjoust long_tapes (>++)*14(>(-)*120(-.)*16)*14 06:01:07 ​Score for quintopia_long_tapes: 2.1 06:01:13 obviously what is needed is a system that uses brainfuck to generate brainfuck 06:01:25 And then jousts the resulting brainfuck 06:01:27 !!!! 06:01:50 ! ! ! ! ! ! ! 06:01:50 XD 06:01:51 And maybe jousts the generating brainfuck, too 06:01:59 !bfjoust long_tapes >(+)*15(>)*14(>[(-)*120(-.)*16])*14 06:02:00 how about it jousts them until it converges 06:02:02 ​Score for quintopia_long_tapes: 7.3 06:02:09 wooo 06:02:31 ISO Brainfuck 2013... 06:02:54 !bfjoust (+>)*-1 06:02:55 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 06:02:57 !bfjoust hi (+>)*-1 06:03:00 ​Score for shachaf_hi: 0.0 06:03:05 !bfjoust hi (+>-<)*-1 06:03:07 ​Score for shachaf_hi: 10.1 06:03:13 Fiora: do you mean until their scores don't change? 06:03:24 or something? I don't know 06:03:53 rephrase 06:04:28 but seriously, it's impossible, right? you can't carry a cell in tow to count how far to move the pointer 06:04:36 damn bf, so limiting . . . :P 06:04:54 whats impossible? 06:05:01 brainfuck jump to subroutine 06:05:12 What is a subroutine 06:05:16 you can have a macro language that does it though 06:05:23 by copying the relevant code in 06:05:33 ah yes 06:05:34 where the call would be 06:05:47 all subroutines are inlined 06:05:51 Perhaps bfjoust should have macros 06:06:04 it seems to already 06:06:39 if you can call this * and % business macros 06:06:40 They should not be allowed to be recursive, though, so the interpreter should topologically sort the program beforehand 06:07:09 perhaps bfjoust should have many things, but there is no consensus that a particular extension should be added. people pretty much like it as it is. 06:08:36 Jafet: I actually use non-recursive macros for generating programs for submission sometimes 06:08:56 stealth was made like that, together with reindenting the output using emacs brainfuck-joust-mode 06:09:05 it's like cyberpunk blindfolded chess played against every dead master in succession 06:09:17 i like it. good idea, guys. 06:09:18 brainfuck-joust-mode 06:09:42 you. made an emacs mode? 06:09:43 don't worry, it isn't part of the emacs standard distribution 06:09:45 yet, at least 06:09:50 but I already had brainfuck-mode lying around 06:09:53 so it wasn't much modification 06:11:04 also, if only I could come up with a way to do anticipation that doesn't require omitting cases that aren't actually used just to be able to stay on the hill 06:11:31 etb: % and * are nice because although they notionally expand to BF, so you aren't adding anything to the language at all 06:11:46 modern interps can process them way faster than they could process the equivalent expanded code 06:11:50 so you get your results from the hill in faster 06:12:12 have you yet established a journal for brainfuck optimization strategies 06:12:57 is it JITed yet? 06:13:04 Fiora: no 06:13:06 aw 06:13:17 the two-competing-programs aspect makes JITting it a little awkward 06:13:20 although not impossible 06:13:24 ahh 06:13:37 actually here's an idea 06:13:43 instead of using chars lke '>' 06:13:46 use machine instructions 06:13:48 Just make a language that consists of two programs running in parallel 06:13:51 so like '>' is actually an 'inc' 06:13:52 That's corewars 06:14:03 Fiora: so... compile it? 06:14:15 Bike: yeah, but like, let's say one program overwrites the other program or whatever 06:14:23 instead of outputting a '>', it also outputs an inc 06:14:24 or wait 06:14:27 is this different from corewars 06:14:40 I should have checked exactly how it worked first <_> 06:15:51 asking questions and reading is the devil, fiora. 06:15:57 okay so how does bfjoust work 06:16:06 there's an article on it on esolang. 06:16:22 * Fiora reads 06:16:38 oooh 06:17:05 from glancing it looks like they're not in the data, so not so much like corewars 06:17:22 that is cool 06:17:32 here's an idea to allow two programs executed simultaneously with a JIT 06:17:52 compile the two programs, interleave them, and create N copies, one for each possible combination of addresses in the two programs 06:18:12 and then create a state machine 06:18:20 so like, if one program has a jump but the other doesn't, you transition to the appropriate new program 06:18:32 would that work? 06:19:34 oh huh. > and < move to and from the opponent, not specific directions 06:20:10 bfjoust programs can have thousands of instructions 06:20:29 that would be kinda instruction cache murdernig I guess 06:20:44 O(N^2) <_<; 06:22:01 -!- sirdancealot has quit (Ping timeout: 246 seconds). 06:23:30 -!- sirdancealot has joined. 06:23:55 think i could add an eso lang to esolangs under jokes > brainfuck derivatives? 06:24:23 I think making a brainfuck derivative makes you immediately eligible for death by sky burial. 06:25:47 * Sgeo is eligible for death by sky burial. 06:26:10 probably numerous people here are up for one then 06:26:16 "the Bin Laden" 06:27:20 I can't help but wonder if BF Joust counts as a BF derivative... 06:27:56 Worms, the lot of you. Die. 06:28:21 Worms! Oh my god worms! 06:29:48 We are worms, we're the best, and we've come to win the war. 06:30:05 -!- ogrom has quit (Read error: Connection reset by peer). 06:30:09 heegan 06:33:49 brainfuck derivative: a language that records the change over time in a brainfuck program 06:34:02 hichaf 06:34:08 Wouldn't it be the type of one-hole contexts? 06:34:11 Fiora: c.c 06:34:41 c·c 06:35:05 c˙c? 06:35:14 ĉ…č 06:35:29 Fiora: there's reversible brainfuck. 06:41:11 So the way holes in types correspond to the various simple derivative rules (D(f+g) = D(f)+D(g), D(f*g)=f*D(g)+g*D(f)) is actually pretty obvious if you think about it. 06:41:24 The corresponding rules for "normal" derivatives don't seem so obvious. 06:42:04 what is a hole in a type? 06:42:52 Bike: For example, if you have a type Foo a = (a,a,a), then a Foo with a hole in it would involve replacing one of the "a"s with a "hole". 06:43:04 So you might get (_,a,a) or (a,_,a) or (a,a,_) 06:43:49 So "(a,a,a) with one hole" corresponds to data WhichOne = First | Second | Third; (WhichOne,a,a) 06:44:23 I wonder whether there's a way to carry the intuition back to "normal" derivatives. 06:44:53 * shachaf doesn't remember how much Haskell Bike knows. 06:44:59 Bike: (Also you should /nick bicycle.) 06:45:02 ohhh, so it's the pattern matching thin 06:45:03 *thing 06:45:09 Pattern matching? 06:45:14 Oh, that _ is misleading. 06:45:22 ? 06:45:26 It's not pattern matching. 06:45:29 I usually remember _ being used for pattern matching 06:45:32 oh, then what is it? 06:45:59 Let's say you had a dynamically typed language, and a tuple. 06:46:03 For example (5,10,20) 06:46:16 You could replace one of the numbers with a "hole" value. 06:46:25 There are three numbers you could pick. 06:46:28 Right? 06:46:31 Three positions, that is. 06:46:45 So you might say (Hole,10,20) or (5,Hole,20) or (5,10,Hole) 06:47:11 -!- Nisstyre-laptop has joined. 06:47:26 -!- TeruFSX has quit (Ping timeout: 265 seconds). 06:47:35 Does that part make sense? 06:47:41 (These are values now, not types.) 06:47:49 (Sometimes the Haskell type/value punning is a bit unfortunate.) 06:48:35 but wouldn't that change the type? 06:48:55 Sure, but ignoring the type, does the idea of a "hole" make sense? 06:49:05 As just a distinguished thingamajig? 06:49:07 Given a thing with a hole in it, you could find the hole and put something in it, and so on. 06:49:57 It's one position that would normally have a value but now has a hole instead, as a sort of placeholder. 06:51:48 Could I call a lambda a hole, or can I do things with holes that I can't with functions? 06:52:17 As in, the (5, _, 10) hole, can I call that \h -> (5, h, 10), or is it possible to look at the first and third without feeding an argument? 06:52:53 * Sgeo guesses the latter 06:53:05 It's not really the same thing. 06:53:18 Closer to the latter, yes. 06:54:26 :t fst . ($ undefined) 06:54:27 (a -> (b, b1)) -> b 06:55:21 Brilliant! 06:56:57 I was about to ask how it could possibly return a b when given just a function and no a, but then I saw the undefined again 06:57:07 undefined is cheaty 06:57:22 sorry, i'm doing the "derailing explanation with confusing lambdabot output" thing 06:57:40 newtype T = T (T -> T) -- "pretty cool type" 06:57:54 kmc: I think the explainees have lost interest or something. 06:58:15 Anyway this isn't #haskell. 06:58:17 It's kind of discouraging to see "well, that's sort of like a hole, except not" 06:58:36 oh but this derivatives thing is so cool! 06:58:50 It's exactly like a hole. :-) The trouble is communicating exactly what a hole means. 06:58:58 perhaps you need to approach it from navigation / zippers rather than just holes 06:59:01 I thought I'd start with an analogy and proceed with feedback. 06:59:11 Perhaps. 06:59:31 I think explaining zippers is more complicated than explaining holes, though. 07:00:07 I mean, it makes me think I'm probably better off understanding derivatives as operators etc 07:00:33 If I have a type (Functor F) => F A, is a hole effectively a F (Maybe A)? 07:00:51 Hmm, allows for too many holes 07:01:09 Yes. The trick is that you want there to be exactly one hole. 07:01:13 But I haven't gotten to that yet. 07:01:43 Bike: If the things I say are confusing it probably means I'm doing a bad job. Only you can help me get better! 07:02:26 fair. 07:03:33 well, i don't know what this hole thing is. sgeo's earlier try makes me think a tuple (Hole,4) would be like an object that can take a "left" message (which returns... Undefined?), a "right" message (4), and a fill_left_hole message so that later left messages bla bla i haven't even used smalltalk what is wrong with me 07:04:02 I think it's simpler to think of data than of objects. 07:04:23 Hmm, maybe a smaller types is better. 07:04:39 Let's say you have (10,20). That's a pair of two integers. So far does that make sense? 07:04:50 sure 07:05:24 Now let's say we want to poke a "hole" in it. You're not really expected to know precisely what a "hole" is yet; that's why I'm giving examples. 07:05:40 Here are the two options we have: (,20) and (10,) 07:06:30 When we look at that thing, we get two pieces of information: The integer that *isn't* the hole, and the position of the hole. 07:06:41 (Is this where it stops making sense?) 07:07:18 no, I get that much I think. 07:08:00 So about the pair (Hole,20) we can know "it has a hole, at position 0" and "20" (no position? no length of the tuple?) 07:08:33 In Haskell, the length of a tuple is part of the type 07:08:33 It has the hole (let's say there's only ever one hole) at position 0, and 20 at position 1. 07:08:38 The tuple is always of length 2. 07:08:41 Ok. 07:09:14 You could derive (no pun intended) the position of the 20 from the position of the hole 07:09:51 ...above statement not applicable to >2-tuples, so ignore me 07:09:55 I'm trying to make as few assumptions as I can. 07:10:01 Bike: So let's say we wanted a type that captured exactly "a pair of two integers where one of them has been replaced with a hole". 07:10:17 Ok. Such a type would include both (Hole,20) and (10,Hole), yes? 07:10:22 Yep. 07:10:29 So we know that the information we have is (a) an integer, and (b) where the hole is. 07:10:48 (We also know where the integer is, but that's kind of implied, since there are only two possible positions.) 07:11:26 Makes sense? 07:11:43 sure. 07:12:05 So we can define a type: data Where'sTheHole = FirstPosition | SecondPosition 07:12:29 And now we can say that IntegerWithHole = (Where'sTheHole, Integer) 07:12:50 That stores the exact information, right? 07:13:02 Oh, so the type tuple is just a representation, it's got nothing to do with the data tuple position-wise or anything. 07:13:37 I'm not quite sure what you mean, but it sounds right. :-) 07:13:49 oerjan: hi 07:14:24 Also, one tree is isomorphic to seven 07:14:26 Bike, yes. The IntegerWithHole is just two pieces of information together 07:14:37 But six are not isomorphic to none 07:14:42 So our Where'sTheHole type is equivalent to a boolean. 07:14:48 mmhm. 07:15:09 Although you would need more data for larger tuples I guess, hmm. 07:15:23 seven isomorphic trees in a single 24-hour rotation 07:15:35 Bike: OK, so now let's say we had a bigger tuple: 07:15:42 Er, before that. 07:15:52 presumably an n-tuple with one hole could just use a mod-n integer, sgeo. 07:16:12 Right. 07:16:20 OK, so now let's say we had Either 07:16:27 You know how Either works? 07:16:28 The so-called scientific authorities babble that 24 is not divisible by 7. They want to eat your children. 07:16:41 Probably I do, yes. 07:16:48 Hmm, I think Jafet should finish this explanation. 07:17:55 I have already supplied the logical conclusion 07:25:36 -!- asiekierka has quit (Excess Flood). 07:26:12 -!- asiekierka has joined. 07:42:36 -!- copumpkin has quit (Ping timeout: 252 seconds). 07:43:16 -!- copumpkin has joined. 07:55:35 there should be a sim game where you fly the giant stone head from Zardoz 07:58:20 -!- kmc has set topic: Beyond 1984, beyond 2001, beyond love, beyond death | http://codu.org/logs/_esoteric/. 08:23:53 -!- Bike has quit (Quit: leaving). 08:33:48 -!- monqy has quit (Quit: hello). 08:43:16 -!- WeThePeople has quit (Quit: Leaving). 09:01:40 -!- DHeadshot has quit (Ping timeout: 248 seconds). 09:50:12 -!- epicmonkey has quit (Ping timeout: 248 seconds). 10:33:14 -!- AnotherTest has joined. 10:33:20 Hello 10:41:36 -!- Nisstyre-laptop has quit (Ping timeout: 264 seconds). 10:54:34 -!- epicmonkey has joined. 11:27:52 -!- nooodl_ has joined. 11:29:02 -!- nooodl has joined. 11:32:36 -!- nooodl_ has quit (Ping timeout: 248 seconds). 12:00:18 -!- ais523 has quit. 12:10:13 -!- Zerker has joined. 12:16:52 -!- nooodl has quit (Ping timeout: 248 seconds). 12:49:51 -!- olsner has joined. 13:25:24 -!- glogbackup has joined. 13:30:42 -!- Taneb has joined. 13:31:43 -!- sebbu2 has changed nick to sebbu. 13:38:03 -!- sebbu has quit (Ping timeout: 245 seconds). 13:59:05 -!- nooodl has joined. 14:06:03 -!- sebbu has joined. 14:18:03 -!- sebbu has quit (Ping timeout: 245 seconds). 14:42:49 -!- sebbu has joined. 14:54:06 -!- DHeadshot has joined. 15:08:36 -!- sebbu has quit (Ping timeout: 276 seconds). 15:10:35 -!- atslash has joined. 15:10:42 -!- epicmonkey has quit (Ping timeout: 250 seconds). 15:41:30 -!- TeruFSX has joined. 15:58:50 -!- sebbu has joined. 16:03:25 -!- WeThePeople has joined. 16:06:29 -!- TeruFSX has quit (Ping timeout: 244 seconds). 16:14:15 -!- epicmonkey has joined. 16:31:21 -!- Frooxius has joined. 16:53:33 That, by far. was my most successful game of Brogue 16:55:59 -!- WeThePeople has quit (Changing host). 16:55:59 -!- WeThePeople has joined. 16:58:42 -!- sebbu2 has joined. 16:59:01 -!- sebbu2 has quit (Changing host). 16:59:01 -!- sebbu2 has joined. 17:01:48 -!- sebbu has quit (Ping timeout: 245 seconds). 17:01:52 -!- Zerker has quit (Quit: Colloquy for iPad - Timeout (10 minutes)). 17:25:38 -!- atslash has quit (Quit: This computer has gone to sleep). 17:43:23 -!- WeThePeople has quit (Quit: Leaving). 17:53:41 -!- oerjan has joined. 17:55:05 -!- oerjan has set topic: Beyond 1984, beyond 2001, beyond 2525, beyond love, beyond death | http://codu.org/logs/_esoteric/. 17:56:06 i find it somewhat disturbing that shachaf keeps hallucinating me 17:56:26 ... 17:56:43 ? 17:56:47 Taneb: he keeps greeting me when i'm not here 17:56:59 also, hi shachaf 17:57:09 also, hi Taneb 17:57:12 hi 17:57:18 helloerjan 17:57:37 shachaf: ARE YOU SURE I'M REALLY HERE 17:57:48 hi 17:58:16 also, Proxy transformers are ugly :( 17:58:28 Proxy transformers? 17:58:33 from pipes 17:59:40 i assume tekmo has some technical reason not to use the ordinary transformers, but eww 18:00:07 (also StateP should _not_ split the state across >->, eww) 18:00:43 The name Proxy is taken. 18:00:48 sorry tekmo 18:01:07 yes it is and it has been discussed on reddit. but that's not my main point anyway. 18:02:06 although i _do_ like the runIdentityP trick for getting shorter contexts, but that function needs a shorter name 18:04:28 -!- Bike_ has joined. 18:11:00 -!- DHeadshot has quit (Read error: Connection reset by peer). 18:20:19 -!- sebbu2 has quit (Ping timeout: 248 seconds). 18:38:01 -!- DHeadshot has joined. 18:38:07 -!- AnotherTest has quit (Read error: Connection reset by peer). 18:38:18 -!- AnotherTest has joined. 18:44:47 fizzie: oh, you are at aalto.fi, right? 18:44:54 i just realized http://tsunami-udp.sourceforge.net/ is from there 18:45:26 Yes. 18:45:38 I have a friend at the Metsähovi place too. 18:47:49 -!- Bike_ has changed nick to Bike. 18:51:15 Doing his master's thesis, the topic of which I keep forgetting. (I've forgotten it again.) 18:56:27 -!- WeThePeople has joined. 18:58:50 -!- WeThePeople has quit (Changing host). 18:58:50 -!- WeThePeople has joined. 19:03:59 -!- sebbu has joined. 19:04:00 -!- sebbu has quit (Changing host). 19:04:00 -!- sebbu has joined. 19:08:02 you. made an emacs mode? 19:08:16 `quote ais523.*easier 19:08:22 270) elliott: hey, thinking's easier than using the Internet 19:08:31 um 19:08:35 `quote ais523.*wiki 19:08:36 233) OK, I give up, logging into Wikia is harder than writing a Firefox extension 19:08:56 -!- WeThePeople has quit (Quit: Leaving). 19:08:57 ais523 does strange things 19:09:15 `quote 19:09:16 836) `welcome Rawlie * zzo38 has joined #esoteric thank you You're welcome. 19:09:26 836++ 19:09:32 `quote 837 19:09:32 now 837?? 19:09:34 837) seriously q is the best fucking letter in the alphabet 19:09:43 837-- 19:09:45 There, even. 19:09:48 `quote 836 19:09:49 836) `welcome Rawlie * zzo38 has joined #esoteric thank you You're welcome. 19:09:59 @karma 837 19:09:59 837 has a karma of -1 19:10:08 @karma 836 19:10:08 836 has a karma of 1 19:10:50 -!- WeThePeople has joined. 19:11:08 @karma shachaf 19:11:08 shachaf has a karma of 52 19:11:15 -!- WeThePeople has quit (Changing host). 19:11:15 -!- WeThePeople has joined. 19:11:24 I'm not sure how I got all that karma. 19:11:27 shachaf has a full deck 19:11:30 Did someone write a script or something? 19:11:39 @karma-all 19:11:40 "nobody" 2000 19:11:40 "C/C" 359 19:11:40 "(" 145 19:11:40 "+" 106 19:11:40 "g" 103 19:11:41 shachaf shall be reincarnated as king 19:11:42 [1830 @more lines] 19:11:44 @more 19:11:44 "shachaf" 52 19:11:46 "dmwit" 39 19:11:48 "libc" 36 19:11:52 "##c" 35 19:11:56 "elliott" 34 19:12:02 Plugin `more' failed with: thread killed 19:12:02 See? There's no way I should be at 52. 19:12:17 shachaf-- 19:12:22 lambdabot++ 19:12:25 @@ (@karma- shachaf) 19:12:25 You can't change your own karma, silly. 19:12:47 @karma+ java 19:12:47 shachaf's karma lowered to 50. 19:12:49 @karma+ java 19:12:49 shachaf's karma lowered to 49. 19:12:49 @karma+ java 19:12:50 shachaf's karma lowered to 48. 19:12:50 @karma+ java 19:12:50 @karma+ java 19:12:50 shachaf's karma lowered to 47. 19:12:50 shachaf's karma lowered to 46. 19:12:50 @karma+ java 19:12:51 shachaf's karma lowered to 45. 19:13:04 ^ul ((shachaf-- )S:^):^ *MWAHAHAHAHA* 19:13:05 shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shachaf-- shac ...too much output! 19:13:09 @karma+ java 19:13:09 @karma shachaf 19:13:09 olsner's karma lowered to 13. 19:13:09 shachaf has a karma of 13 19:13:09 :D 19:13:15 @karma- java 19:13:15 java's karma lowered to -1. 19:13:26 oerjan: That was excessive. :-( 19:13:33 ^ul ((shachaf++ )S:^):^ *MWAHAHAHAHA* 19:13:34 shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shac ...too much output! 19:13:38 OKAY 19:13:46 That, too, was excessive. 19:14:01 @karma shachaf 19:14:01 shachaf has a karma of 45 19:14:08 ^ul ((shachaf++ )S:^):^ 19:14:09 shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shachaf++ shac ...too much output! 19:14:13 @karma shachaf 19:14:14 shachaf has a karma of 78 19:14:17 nortti......... 19:15:12 shachaf......... 19:15:21 ^ul ((shachaf++ shachaf--)S:^):^ 19:15:21 shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--shachaf++ shachaf--s ...too much output! 19:15:31 @karma shachaf 19:15:31 shachaf has a karma of 79 19:15:32 @karma shachaf--shachaf 19:15:32 shachaf--shachaf has a karma of 16 19:15:42 :D 19:15:42 Woops 19:15:47 @@ @@ (concat $ replicate 100 "(@karma+ nortti) ") 19:15:47 (concat $ replicate 100 "(@karma+ nortti) ") 19:15:54 For that I shall leave forever 19:15:54 @@ @@ (@run concat $ replicate 100 "(@karma+ nortti) ") 19:15:56 "(@karma+ nortti) (@karma+ nortti) (@karma+ nortti) (@karma+ nortti) (@karm... 19:16:05 -!- Taneb has quit (Quit: leaving forever). 19:16:05 @@ @@ (@read (@run concat $ replicate 100 "(@karma+ nortti) ")) 19:16:07 Plugin `compose' failed with: Prelude.read: no parse 19:16:12 @@ @@ @read (@run concat $ replicate 100 "(@karma+ nortti) ") 19:16:13 Plugin `compose' failed with: Prelude.read: no parse 19:16:15 I've forgotten how to do it. 19:16:40 Let's see. 19:16:48 @@ (@run concat $ replicate 5 "(@karma+ nortti) ") 19:16:50 "(@karma+ nortti) (@karma+ nortti) (@karma+ nortti) (@karma+ nortti) (@karm... 19:16:56 hmm 19:17:01 @@ @@ @read (@run concat $ replicate 5 "(@karma+ nortti) ") 19:17:03 Plugin `compose' failed with: Prelude.read: no parse 19:17:16 @@ @@ @read (@run concat $ replicate 1 "(@karma+ nortti) ") 19:17:17 nortti's karma raised to 2. 19:17:22 @@ @@ @read (@run concat $ replicate 5 "(@karma+ nortti) ") 19:17:23 Plugin `compose' failed with: Prelude.read: no parse 19:17:26 @@ @@ @read (@run concat $ replicate 4 "(@karma+ nortti) ") 19:17:28 nortti's karma raised to 3. nortti's karma raised to 4. nortti's karma raised to 5. nortti's karma raised to 6. 19:17:29 -!- monqy has joined. 19:17:40 Hmm, one time I worked out a way to batch those. 19:17:51 @@ @@ @read (@run concat $ replicate 4 "(@karma- nortti) ") 19:17:53 nortti's karma lowered to 5. nortti's karma lowered to 4. nortti's karma lowered to 3. nortti's karma lowered to 2. 19:18:02 @karma nortti 19:18:03 You have a karma of 2 19:18:09 @@ @@ (@run text $ concat $ replicate 5 "(@karma- nortti) ") 19:18:10 Plugin `compose' failed with: Missing ')' in nested command 19:18:22 no wonder poor lambdabot is overworked 19:18:33 @@ @@ (@run text $ concat $ replicate 5 (chr 64 : "(karma- nortti) ")) 19:18:35 Plugin `compose' failed with: Missing ')' in nested command 19:18:41 @@ @@ (@run text $ concat $ replicate 4 (chr 64 : "(karma- nortti) ")) 19:18:42 nortti's karma lowered to -7. nortti's karma lowered to -8. nortti's karma lowered to -9. nortti's karma lowered to -10. 19:19:06 @@ @@ (@run text $ concat $ replicate 4 (chr 64 : "(karma+ nortti) ")) 19:19:07 nortti's karma raised to -9. nortti's karma raised to -8. nortti's karma raised to -7. nortti's karma raised to -6. 19:19:11 -!- TeruFSX has joined. 19:19:17 I don't remember how it worked. :-( 19:19:22 monqy: do you remember 19:19:54 what 19:20:09 @@ @@ (@run text $ concat $ replicate 4 (chr 64 : "(karma+ nortti) ")) 19:20:11 nortti's karma raised to -5. nortti's karma raised to -4. nortti's karma raised to -3. nortti's karma raised to -2. 19:20:25 How to do things in lambdabot. 19:20:28 nortti++ nortti++ 19:20:55 @karma nortti 19:20:55 You have a karma of 0 19:20:58 yay 19:21:07 nortti++ # achieved balance 19:38:06 -!- WeThePeople has quit (Quit: Leaving). 19:40:54 -!- WeThePeople has joined. 19:41:19 -!- TeruFSX has quit (Ping timeout: 260 seconds). 19:48:12 -!- WeThePeople has quit (Quit: Leaving). 19:49:18 -!- WeThePeople has joined. 19:50:03 -!- WeThePeople has quit (Read error: Connection reset by peer). 19:50:12 -!- DHeadshot has quit (Ping timeout: 244 seconds). 19:50:22 -!- WeThePeople has joined. 19:51:39 -!- DHeadshot has joined. 19:58:34 -!- DHeadshot has quit (Read error: Connection reset by peer). 19:58:54 -!- DHeadshot has joined. 20:01:05 -!- Taneb has joined. 20:03:04 -!- WeThePeople has quit (Quit: Leaving). 20:03:27 -!- WeThePeople has joined. 20:06:40 -!- WeThePeople has quit (Client Quit). 20:07:03 -!- WeThePeople has joined. 20:07:54 -!- WeThePeople has quit (Read error: Connection reset by peer). 20:08:13 -!- WeThePeople has joined. 20:09:08 @@ @@ 20:09:42 @@ @@ (@run text "(karma+ lambdabot)") 20:09:44 (karma+ lambdabot) 20:09:59 @@ @@ (@run text ":(karma+ lambdabot)") 20:10:00 :(karma+ lambdabot) 20:10:37 @@ @@ (@run text $ chr 64 : "(karma+ lambdabot)") 20:10:38 lambdabot's karma raised to 26. 20:14:30 -!- WeThePeople has quit (Quit: Leaving). 20:14:57 -!- WeThePeople has joined. 20:18:25 I see a karmageddon happened here. 20:20:12 'Commercial hacker hunters -- who refer to the team as the Comment group, for the hidden program code they use known as “comments”' 20:22:01 -!- TeruFSX has joined. 20:25:06 -!- WeThePeople has quit (Quit: Leaving). 20:25:56 -!- WeThePeople has joined. 20:34:08 -!- WeThePeople has quit (Quit: Leaving). 20:34:28 -!- zzo38 has joined. 20:34:38 -!- WeThePeople has joined. 20:36:41 -!- Nisstyre-laptop has joined. 20:41:13 -!- Vorpal has joined. 20:45:12 -!- WeThePeople has quit (Changing host). 20:45:12 -!- WeThePeople has joined. 20:49:31 -!- WeThePeople has quit (Quit: Leaving). 20:49:45 -!- WeThePeople has joined. 20:49:46 -!- WeThePeople has quit (Changing host). 20:49:46 -!- WeThePeople has joined. 20:50:28 -!- epicmonkey has quit (Ping timeout: 248 seconds). 21:10:23 -!- AnotherTest has quit (Quit: Leaving.). 21:10:32 -!- asiekierka has quit (Excess Flood). 21:10:38 -!- asiekierka has joined. 21:14:36 -!- Vorpal has quit (Ping timeout: 245 seconds). 21:17:56 -!- Vorpal has joined. 21:24:02 -!- GreyKnight has joined. 21:24:19 'Commercial hacker hunters -- who refer to the team as the Comment group, for the hidden program code they use known as “comments”' 21:24:23 wat 21:24:54 angkor 21:26:15 http://www.businessweek.com/articles/2012-08-02/chinas-comment-group-hacks-europe-and-the-world 21:26:44 -!- asiekierka has quit (Excess Flood). 21:27:45 hack ALL the things 21:28:11 * FreeFull hacks hacks hackahackack 21:28:35 Make illegal! 21:29:46 -- But this is a comment too, in some languages 21:29:53 % As is this 21:29:54 / and this 21:29:57 {- and this -} 21:30:06 // And this 21:30:14 /* And this */ 21:30:16 REM (and this) 21:30:19 The aritcle referred to HTML comments specifically. “The collective’s tactic, hacking computers using hidden HTML code known as comments, earned it another name in private security circles: the Comment Group.” 21:30:23 And even this 21:30:32 Ban everything! 21:30:44 -!- sebbu has quit (Ping timeout: 260 seconds). 21:31:12 -!- asiekierka has joined. 21:31:31 all this technology and we're still using multipage news articles 21:31:37 FreeFull: don't forget Whitespace comments! 21:32:04 GreyKnight: I was thinking brainfuck 21:32:29 What are its comments like? Just non-command characters I suppose 21:33:58 what's the actual exploit here, anyway 21:36:22 injecting JS via an HTML comment form or something? 21:39:45 -!- asiekierka has quit (Excess Flood). 21:39:51 -!- asiekierka_ has joined. 21:54:53 -!- epicmonkey has joined. 22:30:02 -!- sebbu has joined. 22:30:02 -!- sebbu has quit (Changing host). 22:30:02 -!- sebbu has joined. 22:34:35 -!- GreyKnight has quit (Remote host closed the connection). 22:45:24 -!- ineiros_ has quit (Remote host closed the connection). 22:45:32 -!- ineiros has joined. 22:57:41 -!- TeruFSX has quit (Ping timeout: 255 seconds). 22:59:01 Blargh 22:59:25 A group I'm part of in Second Life is running a charity drive, but I don't know how to be certain that the money will in fact reach its destination 23:00:11 hint: the charity drive is actually money laundering 23:00:12 -!- asiekierka_ has quit (Excess Flood). 23:00:14 does givewell have a presence in second life 23:00:18 -!- asiekierka has joined. 23:00:34 Erm, as in, it's supposed to be going towards a specific charity 23:00:40 Not as in its acting as a charity in itself 23:02:18 so donate to that charity directly yourself 23:02:54 It would be much easier for me to donate via SL 23:03:16 So much so that it's pretty much a choice between donating via SL or not donating 23:05:37 oh just do it then, at worst you'll just be contributing a bit to some douchebag's jacuzzi 23:10:08 -!- sebbu2 has joined. 23:10:09 -!- sebbu2 has quit (Changing host). 23:10:09 -!- sebbu2 has joined. 23:12:38 -!- sebbu has quit (Ping timeout: 245 seconds). 23:17:08 ....I donated to the wrong box 23:17:20 The location has a donation box for keeping the place open too 23:21:14 -!- epicmonkey has quit (Ping timeout: 250 seconds). 23:28:54 Sent him a message about it, and also donated some money into the charity box 23:31:58 http://www.fark.com/comments/7509256/Rush-Limbaugh-warns-that-president-is-becoming-Barack-Hussein-Kardashian-This-is-bad-news-for-Bajorans 23:32:09 * Sgeo is only linking for the DS9 reference 23:35:45 -!- Nisstyre-laptop has quit (Quit: Leaving). 23:45:14 have you ever heard of hollands astronomer cornelis de jager and his satire on pseudo-scientific-religions called "radosophie" (engl. bike-o-sophie)? de jager was able to calculate some of natures physical constants combining some measurements of his bike in simple mathematical formulas 23:50:39 to completely understand his approach you need to know holland has more bikes than people living in it 23:51:44 Mm, yes, very interesting. 23:55:24 -!- DHeadshot has quit (Ping timeout: 260 seconds).