#kothorg

[12:24:55]digital.wilderness : <@UBPRDB1U6> I've copied you in on an email where Paul has given permission to publish Her Majesty :slightly_smiling_face:
[12:34:09]slack1 :
[12:48:35]digital.wilderness : Thanks Tuc. I've sent it to Paul and one of us will post it to r.g.c with a short write-up.
[12:59:12]roy.van.rijn : I always find it odd if a warrior starts with doing an ADD… take care of that yourself before starting the warrior and start with a SEQ!
[13:15:22]roy.van.rijn : Also sad, John and myself contribute to 14/20th of the hill…. luckily almostly entirely the bottom half, so the change of pushing someone else off are slim
[13:17:33]digital.wilderness : I'm hoping someone will push some of mine off. I wouldn't have submitted the last one as I already have too many on the hill, but I had an idea I couldn't resist trying.
[13:17:54]roy.van.rijn : Hrm, I swapped 20/21…
[13:18:06]digital.wilderness : Most of mine are published, which should make it easier for anyone attempting to enter the hill :slightly_smiling_face:
[13:19:08]roy.van.rijn : Here is Flashlight (without a qscan/boot): ``` bGap equ 439 bStep equ 7441 bOff equ 1154 bBomb spl #bGap , #bGap + 1 sub #bStep , sPtr sPtr mov mBomb , *bOff mov bBomb , @-1 djn.f -3 , {6847 mov cBomb , >(bBomb-3) djn.f -1 , >(bBomb-3) cBomb dat <2667 , #16 bPtr dat 0 , 0 mBomb mov.i -bGap , >-bGap ``` Nothing special… just Torch/Damage Inc with some tweaks and new constants
[13:20:12]roy.van.rijn : I wrote a big problem to search for the best constants, ones that use the skipping of certain locations just like Torch t18 did (which is cool)
[13:22:01]roy.van.rijn : The trick is: When you have spl/sub/mov/mov/jmp -3, there are certain times a bomb *isnt* placed because of the SPL being called, adding a new instruction, calling a SUB-instruction a second time before placing a bomb there. For example in Torch this happens after 840 bombings, there is a *self*-bomb that is being skipped
[13:22:44]roy.van.rijn : This allows for weird bombing patterns that continue way longer that they should
[13:24:15]digital.wilderness : My two unpublished warriors Resin and Kosmos both use a component similar to Gymnosperm Trickery. Resin pairs it with an imp. Kosmos has it with a satellite launching paper which alternates between two different satellites.
[13:25:56]digital.wilderness : I did the maths for skipped locations in a self-splitting bomber which drops one bomb per loop. Never attempted it for a bomber which drops two bombs per loop.
[13:28:50]roy.van.rijn : I did it the dumb way, first I looked at the skipped self-bombs, which are: 12, 24, 40, 60, 84, 112, 144, 180, 220, 264, 312, 364, 420, 480, 544, 612, 684, 760, 840, 924, 1012 First I take a starting position. Then I just calculate forwards for both bomb-locations, allowing self-bombs in the cycles mentioned above. And finally I check if I end up with the self-bomb we want (on the djn making it a dclear). This can be done pretty fast for all starting locations for each step.
[13:55:26]roy.van.rijn : <@UBRM64Z7G> That is a weird little warrior… and it looks hard to re-use in an effective way (although I see the potential for adding it to a satellite paper or adding imps)
[20:06:12]dougajmcdonald : <@UBZCDSVKN> & <@UBRM64Z7G> - The settings for are as follows:
[20:06:34]dougajmcdonald :
[20:06:59]dougajmcdonald : We intend to allow the options to be entirely user defined but it was simpler to have some presets to begin with
[20:09:14]dougajmcdonald : WRT <@UBRM64Z7G>’s question regarding variables such MAXCYCLES etc, we do plan to support these eventually but they are a bit trickier to parse
[20:09:41]dougajmcdonald : as in, you have to parse the redcode complete with the simulator options in order to produce a realtime "compiled" output
[20:10:17]john.kipling.lewis : Can you add a display for cycle counts?
[20:10:39]john.kipling.lewis : Perhaps overlayed on the progress bar?
[20:10:49]dougajmcdonald : as in, where it currently is?
[20:10:52]dougajmcdonald : gotcha
[20:11:11]dougajmcdonald : that'd be feasible in principal we'd just need to have a look at the perf impact at high speeds
[20:11:32]john.kipling.lewis : Yeah, it would help. Also, the winner display slides in and out really fast, sometimes I get up and miss it. Can it stay on screen until you click somewhere else?
[20:11:39]dougajmcdonald : we normally implement pubsub between the core & ui, so I can get some extra messages published if it helps
[20:12:01]dougajmcdonald : yeah the winner reporting is crap tbh, I'll hold my hands up on that one!
[20:12:18]dougajmcdonald : it seemed like a good idea at the time!
[20:12:32]john.kipling.lewis : I've literally resorted to memorizing the icons so I can watch them flash by. :wink:
[20:12:32]dougajmcdonald : we are revisiting that as we add in multiround and hill functionality
[20:12:46]dougajmcdonald : lmao, that is dedicated!
[20:12:59]john.kipling.lewis : I love Corewars.
[20:13:26]dougajmcdonald : I think the warrior specific icons are my favourite bit! so I'm glad they have a practical use too! :stuck_out_tongue:
[20:13:48]dougajmcdonald : We're very much in the "what feedback can we get from people as to make it more useful" stage
[20:14:04]john.kipling.lewis : Yeah, are they always the same based on some hash?
[20:14:05]dougajmcdonald : so feel free to ping me messages on here, or via the feedback form on the site, or via github
[20:14:08]dougajmcdonald : yes
[20:14:13]john.kipling.lewis : Very cool.
[20:14:29]dougajmcdonald : thx :blush:
[20:15:21]dougajmcdonald : WRT to quality of life improvements we're deciding at the moment whether to hit some of the larger features such as user profiles / warrior persistence
[20:15:24]dougajmcdonald : and hills
[20:15:32]dougajmcdonald : or keep on quality of life stuff
[20:16:17]dougajmcdonald : originally we managed to delay the original release by some time due to fixating over small details, so I had to be firm with my colleague to ensure it saw the light of day in any form!
[20:18:22]john.kipling.lewis : I'm very pleased with what you've created. I've wanted this for so long because I'm on a mac and I hated having to compile PMARS over and over when I upgraded.
[20:18:42]john.kipling.lewis : Now I just have to be sure my work doesn't notice the site and block it :wink:
[20:18:48]dougajmcdonald : lol :slightly_smiling_face:
[20:19:33]dougajmcdonald : I'm glad you find it useful, we felt the same way, that a lot of the tools could do with a decent multiplatform solution
[20:20:06]dougajmcdonald : very much a work in progress and the last month has been a write off with me getting married and on honeymoon (sorry!)
[20:20:17]dougajmcdonald : I logged your cycle count idea -
[20:24:59]dougajmcdonald : If you have node / npm on your work pc, you're welcome to grab and run the src if they block the site! :stuck_out_tongue:
[20:25:02]john.kipling.lewis : You rock, enjoy your honeymoon!
[20:25:54]john.kipling.lewis : And that's funny. My word won't block it, I was just joking around. (If they did block, they would certainly block ALL of .io)
[20:27:29]dougajmcdonald : That'd hurt!
[20:27:53]john.kipling.lewis : Yes.
[20:28:01]john.kipling.lewis : I get to work from home.
[20:28:20]john.kipling.lewis : So I'd be self blocking if I lost control and couldn't keep from tweaking.
[20:30:29]dougajmcdonald : heh, gotcha
[20:40:30]dougajmcdonald : <@UBRM64Z7G> are you still seeing the "Not Found" error?
[20:40:50]dougajmcdonald : because I'm seeing it sporadically and can't quite figure it out!
[20:40:57]digital.wilderness : <@UBX2E0GR4> no, haven't seen that for a while.
[20:41:06]dougajmcdonald : That's good to know!¬
[20:41:07]dougajmcdonald : ta
[20:50:26]vowkalg : hey Doug. I like what you've built.
[20:51:13]dougajmcdonald : Thanks <@UBVDRK5HQ> appreciated, although Gareth has to take most of the credit, I just put the UI on and shouted at him to actually release it! :stuck_out_tongue:
[20:51:17]vowkalg : I've got a whole set of protobuf services for my evolving (because g00gle), your API looks pretty sane :slightly_smiling_face:
[20:51:32]dougajmcdonald : nice
[20:51:52]dougajmcdonald : yeah the aspiration was to allow other tools to use the core library API
[20:52:09]dougajmcdonald : if you have an idea and want any pointers on usage etc, give me a shout
[20:53:29]dougajmcdonald : In case you missed the fbook/twitter post - Gareth migrated the API docs to here:
[20:54:17]dougajmcdonald : We will aim to flesh out the interface definitions for the params so it's a bit clearer, in the mean time, give me a shout or have a dig about in the src
[20:55:02]vowkalg : I'm going to put a hack into my evolver ui to let me click things and watch them run against my benchmark on your service.
[20:55:08]vowkalg : (ish)
[20:56:04]dougajmcdonald : sounds great, at the moment the 'backend' if you want to call it that only runs in the client on the website
[20:56:27]dougajmcdonald : so if you want to use the core library, you'll need to grab it from npm, or from src on github
[20:56:46]dougajmcdonald : we will migrate to a server when we do persistance, which hopefully will be soon
[20:57:12]dougajmcdonald : we will 100% have an instance to run hills etc, but I'd not thought of exposing another instance to offer the core API as a service
[20:57:53]dougajmcdonald : I'll have a chat with G about that, as it would be neat to provide a hosted corewar service as well as the library which people can build into their own apps
[20:59:48]dougajmcdonald : did that make any kind of sense?
[21:07:46]vowkalg : Yup.
[21:08:07]vowkalg : I pulled the code from github a while back for this, when I get a moment :slightly_smiling_face:
[21:08:33]vowkalg : my current workflow of dumping the proto to a text file and running pmars isn't nice :slightly_smiling_face:
[21:08:33]vowkalg : my current workflow of dumping the proto to a text file and running pmars isn't nice :slightly_smiling_face:
[21:12:30]dougajmcdonald : no, that does sounds pretty horrid!
[21:12:53]dougajmcdonald : I've not really seen / understood much about the evolver scene beyond the basic concept
[21:13:03]dougajmcdonald : would be very interested to see what you end up with
[21:13:37]vowkalg : ugly, usually partially broken redcode :slightly_smiling_face:
[21:15:22]dougajmcdonald : lol :slightly_smiling_face:
[21:15:33]dougajmcdonald : I mean more as in the process and what your goals are
[21:16:16]dougajmcdonald : I can kinda understand genetic algo's and basic adversarial neural nets
[21:16:29]dougajmcdonald : but I'm not sure I kinda get it in a corewar context
[21:16:33]dougajmcdonald : I'm probably missing something!
[21:23:11]vowkalg : There's not that much to get.
[21:23:45]vowkalg : It's a genetic algorithm, with a neural network to suggest mutations that make sense based on the surrounding code.
[21:24:28]vowkalg : and a battle running service along side to distribute the running parts onto a lot of cores.
[21:31:25]john.kipling.lewis : WAaaaay back in the day I created an evolver. I even used a "four seasons" analogy to edit them. Spring was population, Summer was testing (in PMars), Fall was pruning for winners, evaluation, and winter was deleting failures.
[21:31:31]john.kipling.lewis : In PERL.
[21:32:05]john.kipling.lewis : It and I had to throttle it because it was on a multi-user server and on the first run it went crazy and overloaded the cpu.
[21:32:09]john.kipling.lewis : ahhahaha.
[21:32:12]john.kipling.lewis : sigh.
[21:50:00]vowkalg : Here's one of the first evolvers I wrote in perl.
[21:50:01]vowkalg :
[21:50:09]vowkalg : Makes me cringe a bit now :slightly_smiling_face:
[21:51:22]john.kipling.lewis : oh dear... I'm scare now that I should show you mine.
[21:51:31]john.kipling.lewis : I'll have to ssh into a very old unix box.
[21:51:36]john.kipling.lewis : hold on.
[22:51:50]john.kipling.lewis : Okay, I deleted it in a fit of shame.
[22:51:57]john.kipling.lewis : I might have backup somewhere.