jacek: servers revived?
jrke: nope servers not revived yet
jrke: the website slow at the moment
Audatic: achievements still don't work :(
filou62: hello I do Puzzle of the week but I don't get achievement. :(
darkhorse64: CG site is having issues at the moment. Achievements will get unlocked once they fix it
ElSam: good morning
Rukunus: las putas
Passifi: in this case that would be very rude
Rukunus: sorry it's a friend
Passifi: putas is a curse word afaik
geriatric1927: Is the speed back to normal again?
geriatric1927: Oh, it is
geriatric1927: I join them quickly than yesterday
muraterogl: It is even faster than before
Radu_Sav: so when are achievements working again? getting addicted to these silly gamification thingeys is the only reason I am here :)))
Audatic: works for me
Radu_Sav: I tried resubmitting, nothing. still doesnt trigger achievements
Radu_Sav: 100% score = 0 achievements :-(
Astrobytes: there's a backlog, it'll happen at some point today
Radu_Sav: I want my gamification badges :D
jacek: gamification is surprisingly strong
jacek: it made clash haters go to clash
darkhorse64: I hate clash even more because I did not get the achievement
Astrobytes: I refuse to chase that particular achievement
darkhorse64: I mean being top 2% in the clash
darkhorse64: the 500 coc would fry my neuron
Astrobytes: Sounds like way too much painful effort.
Radu_Sav: I loathed clash and even more so code golf. I did well enough to finish all my badges comfortably for clash
Radu_Sav: I think I am in the 2% at clash. But, I did game a bit the gamification :D
Astrobytes: You're much more determined than I am that's for sure :)
Radu_Sav: the worse was the last one, 3 wins in a row. I could have completed it many times before, if I had known it would pop up later :D
darkhorse64: I'd rather write two multis to get the missing 700XP
Wontonimo: yeah, I'll admit the gamification has been a fierce driver for me
Radu_Sav: gamification or not, if this website had existed when I was a young dork, my coding would now be much, much, much better. it really motivates you to learn the basics of another programming language
Wontonimo: been chasing xp, cp, and the quest all at the same time. It's really nice having 3 metrics, as sometimes I get demotivated about one, but there is something shiny about another. YEah, I'll echo that about youth
Wontonimo: would have loved this site earlier
Radu_Sav: code golf was the most surprising. most programmers don't even know that's a thing
Uljahn: codegolf is just the opposite of what most programmers do
Radu_Sav: well yeah, I mean the only real use most programmers would have would be to completely obfuscate their code, so that no one could read it. not even themselves
djmil: Hey dudes, i have a question.. say, i've solved some training task in C++, and it so happened that my friend did same task in Java. Is there a way for us to check each our solution?
darkhorse64: No, unless you talk to each other
geriatric1927: Ok never mind, it's slow again
djmil: Well, we do, but sharing code fore each solved task by hands sucks..
jacek: use ctrl+c and ctrl+v [solved]
geriatric1927: Ok it's even slower than before
Astrobytes: Have patience
Astrobytes: It takes time to clear the backlog
djmil: > use ctrl+c and ctrl+v
LOL. I know hot to share code. I want to use GC interface for this. And not to buzz my friend to copy-pest solution he did, day, month ago.
Astrobytes: djmil: You have to solve it in the appropriate language first to view solutions in that langauge
Astrobytes: It's unfortunate but it is how it is.
djmil: Do you know why is it so?
Astrobytes: It's just how they made it. Other than that, no.
djmil: I see, thnx
SPDene: the whole site has been weird/broken for the past day or so
SPDene: no, it's not you
Astrobytes: They've fixed the issue, but it will take time to clear through the backlog. Should be better later on today.
Stilgart: same here, all is slow/somewhat broken
Stilgart: no that high in this channel, though
Wontonimo: not bad for just joined
Stilgart: you might see several people in the top10 here
Wontonimo: you can get into nearly everything here using python
Wontonimo: Heck, I got to silver in uttt using python without bitboards.
Wontonimo: Ultimate TicTacToe
Wontonimo: i don't know what that is. Don't discount python, you'll be able to do well in Clash of Code and most all of the practice can be solved with it.
Wontonimo: give the practice some love. Some of them are really fun. Try https://www.codingame.com/multiplayer/optimization/mars-lander
Radu_Sav: The Mars Lander cave episode was strange though. I think the physics were slightly different because my lander was able to take off orbit much more easily
Wontonimo: sorry, actually if you are just starting out, do this one first https://www.codingame.com/training/easy/mars-lander-episode-1
Wontonimo: I didn't test the physics, but using the same physics simulator as the other mars challenges worked for me
darkhorse64: The physics are the same
Radu_Sav: It just felt a bit more powerful, the cave one. but in the end I used the same engine, more or less
Radu_Sav: I didnt go back to check
Radu_Sav: anyway, very interesting, PID controllers, it is the only time I actually used it in programming
Strobofeuercyberreich: are tests broken for other folks? they all just timeout
JLukeSkywalker: whats the easiest multi to reach legend in for the quest?
MadKnight: csb for sure
JLukeSkywalker: yeah, got to silver. currently have pid and steering down, just doesnt account for collisions
JLukeSkywalker: after the first lap it goes through perfectly if it was alone
MadKnight: JLukeSkywalker u just need to subtract your velocity vector from nextcp coord
JLukeSkywalker: oh, i do have the first lap down too
JLukeSkywalker: just not perfect bc you only know the next point
BilalTanerr: why site is soo lagging again
JLukeSkywalker: huh, looks like that information is given after you hit gold
JLukeSkywalker: just need to somehow break out of silver
MadKnight: i just told u how
MadKnight: subtract velocity
JLukeSkywalker: already done
JLukeSkywalker: it solves the course perfectly if there are no enemies colliding
MadKnight: it should be able to break out of silver on its own
MadKnight: show me your code
JLukeSkywalker: how do you paste code nicely?
MadKnight: if it's more than 4 lines it'll pastebin
MasterCoderxD: what r validators?
Uljahn: hidden testcases
MasterCoderxD: can somebody tell me the issue in this if there's any https://www.codingame.com/contribute/view/6283ac0f4df51b057805f42f1ef053864865
MasterCoderxD: P.S- I know it's a simple challenge
Uljahn: there is math.gcd in python, so you just import it
Radu_Sav: python is the best :D
Strobofeuercyberreich: very much so
jrke: don;t worry it will be fixed soon
AndreMarasca: Lagging tooooo much
Uljahn: the problem is known, no need to spam
Wontonimo: good time to work on simulation code offline
MadKnight: he's just being sad
MasterCoderxD: what about lcm Uljahn?
Uljahn: MasterCoderxD: added in python 3.9, but we are on 3.7 here yet
MasterCoderxD: that was just a trial program bro
darkhorse64: Astrobytes: I don't understand the issue. Are the graphics right and the inputs wrong ?
Astrobytes: darkhorse64: https://www.codingame.com/replay/528787771
darkhorse64: share it
Astrobytes: aw no you can't do it from contribs right
darkhorse64: Wow ! And it's random, I guess
Astrobytes: hm actually, it only happens when I play against myself it seems (arena or IDE version)
Astrobytes: Unless anyone else can reproduce
Astrobytes: Back in 45 m or so, afk
codybumba: is CoC pretty slow?
codybumba: Page does not load or running test cases takes forever with network error.
RockNTroll: yes there is a monster who is eating all the servers
RockNTroll: They are trying to catch him but every piece he eats makes him smarter and faster
Raph_Hax0r: Everything is very slow to load :(
RockNTroll: yes we can all defeat the monster together if we plant self-destruct code in the hardware he's about to attack
codybumba: I loose my rank because of this :(
Nikeleos: Self-destruct, Predator-Swarzy laugth...
RockNTroll: We need to rethink the batman find the bomb problem
Wontonimo: what's got you thinking of the batman problem? What change are you proposing?
RockNTroll: We need to defeat the server monster
RockNTroll: oh nvm looks like it's working again
Audatic: yeah this is just stupid...
RockNTroll: next site wide event is the coding game monster
RockNTroll: and if people don't participate, the site grows very slow
RockNTroll: but if people do well, the site gets very fast
Audatic: @Maexel where is the winamax challenge?
Audatic: oh it's actual golf not shortest code
MadKnight: oh wait did they add a new menu thingy?
MadKnight: oh it's just sponsored puzzles
RockNTroll: ugh it's slow again :(
jacek: AutomatonNN why are you slow
AutomatonNN: wood 1 https://www.codingame.com/replay/383502797
jacek: oh my
BilalTanerr: moderators need to resolve lag issue as soon as possible
RockNTroll: There is a monster eating up the server resources
BilalTanerr: It is not a good event for the reputation of the site, it needs to be resolved as soon as possible, 2 days ago a moderator said that the problems will be fixed tomorrow
reCurse: You know moderators only moderate, right?
reCurse: The site admins are looking into the issues as we speak.
nitekat: so slow in clash, luckily the game I played was in shortest mode
BilalTanerr: I mentioned that only one moderator said it would be better 2 days ago
reCurse: It was the week-end, staff was off duty.
reCurse: ecks dee
geriatric1927: It has been like 1 minute since the timer went 0 and the clash should've launched
jacek: time dilation
RockNTroll: the monster is eating the clash timers
nitekat: you are moving at the speed of light
AntiSquid: jeff step down, keep up, jonzel :~)
AntiSquid: stepped *
BilalTanerr: https://prnt.sc/zmnecz lol :joy:
jacek: oh noes, platform for free has some hiccups
AntiSquid: looks like a dressing locker to me
reCurse: Always clashers huh.
jacek: do you like bitstreams
geriatric1927: Movie makes do
geriatric1927: In sci-fi hacking crap
jacek: reading on rebless profile
Nexus1337: I am stuck in lobby anyone else too
Astrobytes: Nope. I'm stuck in the bathroom. Send halp!
Nexus1337: step bro, im stuck, can you help me?
geriatric1927: I think it's a site problem
Astrobytes: Yes, site issue. Staff are working on it.
[.]: clash of code bugged
Astrobytes: Yes, site issue. Staff are working on it. No current ETA.
derjack: is it me or clashes stopped working?
Astrobytes: shut it pony boy :P
nipun18058: for me clashes stopped many times and glitched too many times lol
Astrobytes: Yes, site issue. Staff are working on it.
BlaiseEbuth: Oh ? They finally gonna remove clashes ?
JLukeSkywalker: is there a max pod velocity in csb?
struct: no JLukeSkywalker
JLukeSkywalker: if you reach lightspeed, does it count as hitting all the targets at once?
jacek: warp 10 eh
struct: does lightspeed travel in circles?
Astrobytes: It becomes c-SB
jacek: lets ask physicists
jacek: MSmits, where are you
BlaiseEbuth: "where" is relative...
Uljahn: when are you?
Uljahn: Heisenberg Uncertainty Principle applied to MSmits :smiley:
Astrobytes: You can't measure MSmits location until you see him.
BlaiseEbuth: Is not it the inverse ? If we measure his position he gonna appear somewhere ?
Astrobytes: He only appears where you measure him to be at that time, there's no guarantee that he's still there after you've observed him
jacek: Heisenberg gets pulled over for speeding. Policeman: "Do you know how fast you were going?". Heisenberg: "No, but we know exactly where we are!"
jacek: Policeman: "you were going 108 miles per hour!". Heisenberg angrily "Great! Now I'm lost!"
Astrobytes: You were late with that
Astrobytes: oh, trictrac joined Clobber
jacek: shall i join too
Astrobytes: Have you NN'd it yet?
jacek: i wait for opening books
trictrac: hello Astrobytes & jacek, referee of clobber works fine, cool
Astrobytes: Yes, it seems to be working just fine. The only question is the traditional 10x10 or whether we keep 8x8
trictrac: for me 8x8 is enough
trictrac: cool for bitboard
trictrac: only 2 uint64
Astrobytes: Yes. I guess 10x10 is more interesting outside of CG constraints.
darkhorse64: There seems to be a constant at CG: someone writes a board game and trictrac goes first
Astrobytes: It's the Law of Boardgamedynamics
trictrac: only the first day, after some offline trainer comes
darkhorse64: I have done a bit of homework on this game and there are many approaches to it: MM, MCTS, heuristics combined with table bases and D&B solver style (I mean you have to count precisely for winning)
darkhorse64: Sorry no opening books but ML may work too
Astrobytes: Any particularly dominant approach or do results vary? Also a lot of papers use the 10x10 version.
darkhorse64: with 5 sec per move or more. This is why I am keen on using 8x8
Astrobytes: Yeah, as I said just a few minutes ago I think 10x10 is better suited outside of CG constraints.
Astrobytes: Not sure there's much left to do with the game, unless you plan any more graphical 'polishing'?
jacek: polishing eh
Astrobytes: darkhorse64: you were so right about that
jacek: about what :F
Astrobytes: Never mind :P
darkhorse64: The game needs a real boss not an alibi one. Otherwise, you will get 30 while(true) print("random") bots in the league
Wontonimo: I really like Clobber, coding the simulator seems deceptively simple ... such that it will come down to crazy optimization for the top! A pure game in that way
Astrobytes: Yeah ofc, but the game itself I think is done.
Astrobytes: ^ for darkhorse64
JLukeSkywalker: lol, i made my csb bot wait till the second lap to boost, and it went from S 24k to S1k
Wontonimo: what would a "good" wood league bot be? Something like a 1 ply MM based on optimizing the ratio of yourmoves/theirmoves ?
Astrobytes: Didn't MK give you the secret earlier?
JLukeSkywalker: using his secret makes it worse
JLukeSkywalker: maybe my way of calculating velocity is just bad
Astrobytes: the trick definitely works, that much I do know.
Astrobytes: There's more fun in not using it (imo), but given that you don't get full input until gold, I don't blame anyone for using it
Astrobytes: Wontonimo: depends on the strength of competition in the league (and the boss strength)
Wontonimo: i was asking specifically about clobber and @darkhorse64 's ambitions
Astrobytes: I know :)
Astrobytes: The boss would definitely have to be stronger than a 1 ply mm
Wontonimo: but, yeah, on that note, is there any general community guideline there?
Astrobytes: Well, it shouldn't be unbeatable!
darkhorse64: The idea is not to prevent people to climb the league but to require some effort from them and maybe convince people that it's worth keeping on working on it
Astrobytes: Generally for a community multi the bosses will be tested by the players, so if it is too difficult or not difficult it can be adjusted to be fair
Wontonimo: i've gotten the feeling from some competitions that getting out of wood is often achievable without writing a simulator. It's like "hey, thanks for coming out and writing some if/then/else". Well, maybe that's wood 1, when there are multiple woods.
Astrobytes: You want it to beat single depth random and output last/first move if the movelist is supplied in the inputs
Astrobytes: (the boss that is)
Astrobytes: Most community games only have 1 or 2 wood leagues (there can be up to 5) but the official games may have quite a few and a sim + search is definitely not required for most of those.
darkhorse64: I did not supply the moves because on first turn there are 112 of them which is quite big. Maybe just the number of legal actions is useless
Astrobytes: (community games can't have bronze, silver, gold, legend unless there are many, many users)
darkhorse64: and i should remove this input
Astrobytes: No darkhorse64, it's useful to verify your sim
Wontonimo: i didn't know that community games can't have multiple levels without #s
Astrobytes: we get multiple wood leagues which functions similarly
darkhorse64: Yeah, this is much complained about but we have yet to see a community multi reach 500 members (except those which were contests)
Astrobytes: They do tend to be a little harder to start than some of the official ones.
darkhorse64: Vindinium is the biggest I think followed by D&B
Astrobytes: And the competition is somewhat fierce.
Astrobytes: Oh D&B got that many? Nice.
darkhorse64: fierce is a weak word
Astrobytes: Yes, that's better :)
Wontonimo: (off topic) is the trueskill(like) calculation on CG out of 50?
struct: potw is a "big" boost
darkhorse64: True and I think weekly or weekend contests on user contributions would help even more
darkhorse64: Sorry, Wontonimo, but I don't understand your question. 50 whant ?
Wontonimo: from https://en.wikipedia.org/wiki/TrueSkill : "The system can be used with arbitrary scales, but Microsoft uses a scale from 0 to 50 for Xbox Live"
darkhorse64: OK. Sometimes score goes beyond 50, CSB #1 for instance
Wontonimo: oh ...
jacek: or checkers :unamused:
Wontonimo: hmm ... so, what the heck is the bounds of CG trueskill calc. Looks like 0-100
Astrobytes: There *might* be something in the forum about that, but don't hold me to that
Wontonimo: nah, just idle curiosity. I mean, it would be nice to know how it translates into % win.
reCurse: No bounds
Wontonimo: but i'm happy with "<" = "<"
JLukeSkywalker: is the trueskill calc actually working right now?
reCurse: Define working
JLukeSkywalker: csb leaderboard
reCurse: Precise what you mean by working
JLukeSkywalker: submitted, got 80% winrate in history, ranked 24k
JLukeSkywalker: 8 score
JLukeSkywalker: in silver
Wontonimo: ah, winrate doesn't necessarily translate to high ranking
Wontonimo: because it may just be testing you around where it thinks you are
Wontonimo: look at your win/loss against those higher than you and lower than you
reCurse: You do not have 80% winrate
JLukeSkywalker: it was the last time i looked, its done a bunch of games since then
reCurse: Wontonimo: Roughly 4 points for 76% winrate IIRC. But since the ranking and matchmaking on CG is broken, the delta is very unreliable.
Wontonimo: !! THANKS !!
Wontonimo: that's exactly the kind of metric i was wondering about
reCurse: For instance it shows I have 0.5pt over rank 2 at CSB even though I have 75-80% winrate against
jacek: hmm 200 elo is 75% hm?
reCurse: IIRC yes
Papaver: Anyone else experiencing problems with Clashes atm?
Papaver: Or do I have too many blockers :P
reCurse: Seems like there are site-wide issues at the moment, they're being looked into, no ETA.
Papaver: Ok ,thanks!
Papaver: Then it's bed time here. :)
Papaver: Good night!
reCurse: Good night
muchClue: reloading the page after the clash started works for me
Papaver: I was scared to 'leave the clash', but I could use the 'sharing'link :)
Wontonimo: finally inspected my uttt code with a profiler (long story) and discovered in making a random move that 5/8ths of the time is spent picking a random bit, 3/8ths is everything else.... looks like random bit selection needs some work lol. Anyone got any suggestions for fast random bit selection 0b011010001 <- pick one at random
Wontonimo: c++ btw
JohnathanBarbee: Clash has been down for while. They are working on it
mikolate: neither for me
mikolate: where do they communicate that?
mikolate: to see when it will be fixed
JohnathanBarbee: No idea. Saw people have the same problem in this chat earlier
Astrobytes: __builtin_popcountl shouldn't be __builtin_popcountll?
darkhorse64: __builtin_popcount is the 32 bit version from memory
Wontonimo: @darkhorse64 Thanks! I'll try it
reCurse: Umm beware of rand()
reCurse: It's either giving an abysmal-quality of random, or an abysmal-speed of random.
reCurse: Something in the xor family would be good
Astrobytes: I'm assuming it must be a custom rand
darkhorse64: if it contains a %, it's rubbish.
reCurse: The modulo is something else, but yeah it can give a slight perf boost
darkhorse64: Yes, it's a custom one
reCurse: I'm not sure if the bias ever caused any harm
Astrobytes: yeah look into the xorshift ones
darkhorse64: modulo is awfully slow
reCurse: Oh right the rand argument should give away it's custom, eh. But still, if you google rand...
Wontonimo: thanks everyone! lots of ideas there for me
darkhorse64: Just to make things clear, rand(a) returns a integer random number between 0 and a-1. A naive (and slow) implementation is rand() % a
Wontonimo: i've googled and googled but can't figure out this error message : error: always_inline function '_pdep_u64' requires target feature 'bmi2', but would be inlined into function 'randomBit' , if only I had more than 30 hours of recent C++ experience
Wontonimo: anyone know this may be fixed?
reCurse: You need to enable the instruction set
reCurse: #pragma GCC target "avx2,bmi2,popcnt"
reCurse: Not sure if the popcnt is necessary but w/e
Automaton2000: to make the code for the next hour on https://twitch.tv/thibpat
reCurse: I see Magus started monetizing
Wontonimo: Thanks @reCurse , unfortunately I'm too noob to c++ to get that to work. I've pasted it at the top of the code but alas, problem still happens. I'll keep that snippet and keep googling.
reCurse: Surely the error must be different?
darkhorse64: #pragma GCC optimize("O3,inline,omit-frame-pointer,unroll-loops","unsafe-math-optimizations","no-trapping-math")
- pragma GCC option("arch=native","tune=native","no-zero-upper") //Enable AVX
- pragma GCC target("avx,popcnt,bmi2") //Enable AVX
reCurse: I never needed the option line
darkhorse64: and get Legend
Astrobytes: can't some of the options be detrimental to performance?
MadKnight: u just made me look up a word
MadKnight: i could guess it from the context but i had to look it up
Astrobytes: We're pretty much guaranteed haswells on here right?
MadKnight: u did it again
reCurse: Shouldn't have to care about cpu architecture as long as you specify the instruction sets
MadKnight: yea gcc is pretty good at optimizing asm stuff
Astrobytes: Hm, true.
MadKnight: it usually resolves all of your wrongs
MadKnight: i even stopped specifying inline
MadKnight: it just makes everything into inline by default
reCurse: Inline is completely ignored except for repeated implementations in header files
MadKnight: yea that's the only case when i use inline
reCurse: And it doesn't make everything into inline by default, you need to specify the inline compiler flag.
MadKnight: just to make it work from .h
MadKnight: i meant it makes everything into inline when i do the flag
C_breeze: anyone else having trouble with clashofcode?
MadKnight: with this level of optimization, the only thing inline does is it removes the function from the binary
reCurse: Not necessarily
MadKnight: while it's not even used at all since the optimizer just makes it inline by default
MadKnight: with -O3 or stuff
reCurse: It still has the ability to make it into a function if it sees fit
MadKnight: C_breeze oh i thought they fixed that
Astrobytes: "fix in progress" - no current ETA
MadKnight: yea it has but if the function is pretty small it turns it into inline in like 100% cases
C_breeze: having trouble with it refreshing after a start or submit
reCurse: I've seen enough weirdness to care about the edge cases :p
MadKnight: actually big functions could stay as normal functions
Astrobytes: Can only suggest trying again tomorrow at some point C_breeze
MadKnight: the only weirdness i've seen was when my arr[s1][s]2
C_breeze: thanks - shall stic to bot progs
MadKnight: int arr[s1][s2]; didn't work because i did arr[s1*s+s2]
MadKnight: when i was just trying to fill it with 0's
reCurse: Indices are reversed
MadKnight: i can't find where i was wrong
MadKnight: [s1][s2] works like s1index*s1size + s2index
reCurse: Nevermind I mixed up with something else
MadKnight: okay np
MSmits: yay I can get into the IDE again
MadKnight: what game are u working on ?
MadKnight: did u get a new great idea for this game ?
MadKnight: oh cool
MadKnight: soon MSmits #1 uttr or fix it
MSmits: nah, still have a list of things to test
MadKnight: don't worry about that i know it takes time
MadKnight: i also had a whole list of things to test when i was gold in uTTT
reCurse: Gotta move with plan B then
MSmits: you mean backporting your uttt?
MadKnight: Automaton2000 explain plan B i have no idea what it means
Automaton2000: MadKnight we need to do the whole thing
MSmits: sure you can do that, but wait till I beat you first :)
MadKnight: Automaton2000 exactly
Automaton2000: you mean system calls etc?
MadKnight: MSmits yea probably, i just have a weird impl of MCTS
MadKnight: Automaton2000 i'm gonna rework it soon
Automaton2000: ok thank you for that
MSmits: my plan is to get this uttt bot to maximum effectiveness and submit it without a book. Then later generate a *general* non-targeted book. I won't do the cheesy
MadKnight: Automaton2000 i'm gonna get at least the same result as now but with a very flexible version of MCTS
Automaton2000: do you think this will help me to solve this problem
MadKnight: MSmits i had the same goal
MadKnight: wait what book?
MSmits: i mean just opening moves generated automatically with meta mcts
MSmits: not targeting specific players
Astrobytes: "*general* non-targeted book" - you may as well do some ML :D
MadKnight: oh feels like what i did
MSmits: that's true Astrobytes, it is on my list... some day
MadKnight: okay let's see what MSmits does
MadKnight: i think i'll look at my bot tomorrow to try to improve it
MSmits: sounds good MadKnight
Astrobytes: btw MSmits Clobber works perfectly, just needs a boss now
MadKnight: wait what is actually a book guys? MSmits Astrobytes u gotta explain it to me
MSmits: that's cool, it's quite an interesting game. What struck me that it's another nim game in a way. I wonder how close successful bots will be to their D&B counterparts
MSmits: it's different in that you dont use the same pieces so...
Astrobytes: Yes there are similarities MSmits, it should be interesting
reCurse: Seems a lot more interesting than uttt doesn't it
MSmits: novel, mostly
MSmits: they're both interesting to me :)
Astrobytes: MadKnight: Harcoded responses to particular moves - whether opening, mid, or end-game
Astrobytes: *moves or lines of play
reCurse: aka pulling an OldJohn
Astrobytes: He's oldskool though, I like that
reCurse: Innoble: Yes
MSmits: sorry that was my alt
MSmits: did warn ya
Astrobytes: no shit :D
Astrobytes: epicgames: staff are working on it - might be better at some point tomorrow
MSmits: you know if you want, say if you're feeling sufficiently spiteful. I can put my book back on, you generate a new version, and i keep it updated to beat oldjohn
MSmits: but not you
reCurse: No I'm not stooping to that
MSmits: allright, just saying
reCurse: I still call out utter bullshit when I see it
Astrobytes: On that most excellent note, I bid you all goodnight :D
MSmits: gn Astrobytes
reCurse: I like how python optimization can be mostly summed up by "how can I abuse numpy as profoundly as possible to avoid using the language"
reCurse: And by like I mean I'd rather play uttt
JLukeSkywalker: do you get anything for solving puzzle of the week, or is it just like solving the puzzle normally on your own time?
reCurse: Wasn't there an XP bonus or something... I forgot
struct: There is an achievement, not sure if its repeatable
MSmits: is numpy faster because of precompiled stuff reCurse?
MSmits: never got into numpy myself
MSmits: that makes sense in light of you "avoid the language" comment
MSmits: if you're basically avoiding the interpreter
reCurse: It's faster because it's basically a DSL implemented in C/++ exposed to python
Alshock: DSL=? sry for noobish question
reCurse: domain-specific language
MSmits: hmm ok
Alshock: oh kay thanks
MSmits: but dont you use it as a library?
MSmits: i mean, that's not really the same as avoiding python. You're just more conscious of the fact that pythons interpreter slows stuff down a lot and you're being more specific about what you want
MSmits: but I guess your point is that in that case you should have been using C++ in the first place
reCurse: My point is that rather than doing simple stuff in a loop where the runtime would have been acceptable in C++
reCurse: You have to start contorting your thinking process on how to wrap what you want to do in high level operands
reCurse: Because doing a single loop in python is enough to kill all pretense of performance
MSmits: ahh ok, but I guess it depends on what portion of the project you're running is actually about the stuff with numpy
MSmits: if it's a small part of the code that's very important, you might not want to convert it all to a language like c++ even if its really important (a bottleneck)
Alshock: well, iirc the problem is not what part is numpy, the problem is that nothhing in the bottleneck can get out of numpy
reCurse: I don't know, if the solution to performance is to avoid using the language, says a lot
Alshock: well, that's python's default from the start, at least it's honest about it
MSmits: well it might save a lot of time doing the project in python. Dev time
reCurse: I thought so too
reCurse: Big mistake
reCurse: At least I can reason that since it's work stuff it needs to be pickupable by someone down the line
reCurse: So better do in python
reCurse: But F me this is dumb
MSmits: but aren't you really good and knowledgeable with c++
MSmits: and less so with python?
reCurse: Dumb code tends to be fast in c++
reCurse: Dumb code tends to be impractical in python
MSmits: by dumb code you mean simple code
reCurse: Code that doesn't require a lot of knowledge of the language internals
MSmits: ah ok
MSmits: personally I find python to be great for short scripts and don't use it for much else
MSmits: if a program in python gets too big, it seems hard to not make mistakes with typing and such
MSmits: and i dislike how it works with scope
reCurse: That's another dimension of issues
MSmits: you create a variable outside a loop. Try to modify it inside a loop, but you accidentally misnamed it inside the loop. Python just assumes you wanted a new variable and thinks it's fine
MSmits: and you can even access this variable outside the loop
reCurse: Yeah that's annoying
MSmits: but then again c++ allows a lot of stuff that doesn't make sense either without giving errors. I know you can prevent a lot of that stuff with a better configured IDE, but just the same I prefer C# for this
reCurse: Sure but I'm not talking about that
reCurse: I'm talking about what would amount to a 6 lines loop in C++ that I would write without second thought
reCurse: Results in an hour or two of digging numpy APIs to combine some weird calls together so it doesn't choke on big data
MSmits: and this would be hard in python?
MSmits: ohh big data
MSmits: well not all loops require a huge amount of data ofc
reCurse: Ironically became the de facto language to handle big data
MSmits: because of numpy i suppose
MSmits: I guess this is what happens when people get too comfortable with a language
MSmits: especially when they are not coders as a first profession. They're just glad they know 1 language well :)
reCurse: Yeah yeah I know the song
reCurse: Just ranting
MSmits: hehe that's fine
struct: JLukeSkywalker I tried the puzzle and got the normal 50xp
reCurse: Isn't your problem solved now?
MSmits: I often solve around ply 31-33 in uttt now and I think that when I loss, I don't play optimally
MSmits: yeah i just have it on because i was still running a cg bench on the alt
MSmits: i wont start it up tomorrow
reCurse: Are you... using that browser plugin to do bench
MSmits: nah, i just paste my cg bench replays into the firefox browser thats logged in to my other account
reCurse: Oh ok, gotcha
struct: does that plugin still work?
reCurse: Not sure, could be
MSmits: I wonder if I should stop playing most visited move with the solved losses and instead play most valued move
reCurse: You should definitely stop playing and do clobber instead
MSmits: lol, probably right
struct: MSmits you need to learn NN before next winter
reCurse: Wait I thought chat was off in CG replays
MSmits: because of heating?
Valdez001: Hello guy
MSmits: it's off reCurse, stop trying to make sense of my stupidity, i just changed tab to my IDE in firefox that is also on my other account
MSmits: instead of changing browser
MSmits: this account is on chrome
reCurse: I have trouble killing background threads
MSmits: ye so do I
MSmits: hey, just one more uttt question. When you were testing your NN, did you notice most of your versions losing to karliso?
MSmits: because all my versions are much much weaker against karliso than your nn
MSmits: and i tried a lot of different ones
MSmits: it's usually between 40-55% vs your bot and then between 15-35% vs karliso
reCurse: What did I do to deserve this
reCurse: Oh wait, nevermind
reCurse: There's a lot to answer for
MSmits: i wont submit a bot that beats you by 55% and then loses to tomatoes 40% and karliso 20%
MSmits: that would just leave me in the same spot and pull you down
MSmits: I think it might be RPS again
MSmits: never knew uttt had so much of that
MSmits: but my new bot is very deterministic and so are your NN, so i guess it's that
MSmits: anyway sorry, this is has just been weirding me out. I thought uttt was mostly randomish and a bot that's better, is generally better than everyone that's worse... but apparently not
reCurse: But you knew the answer all along
reCurse: It's just a variant of counterbooking
MSmits: well isn't your NN then as well?
MSmits: if you try different versions?
MSmits: and you keep the one that is properly RPS-ed
reCurse: Deterministic bots in fixed starts exhibit RPS to some extent
MSmits: that is what i meant
MSmits: my current bot has just 2 parameters really
MSmits: it's not like i fitted them to find a counter to you
reCurse: So not much difference except if you shake things up you still have a working bot
reCurse: If you shake things up your counterbook is garbage
reCurse: Like I mentioned the other day, the irony is the only way to fix this is have a generic book
reCurse: And it's stupidity I'd rather not get into
MSmits: generic isnt'much work aside from turning on the machine. But i guess your machine is doing other stuff
MSmits: it's the counterbooking that's a lot of work
reCurse: I completely disagree
MSmits: why do you think a generic book is much work?
reCurse: Why do you think counterbooking needs work?
MSmits: no, I guess if you download replays automatically and process them it's not much more work than a generic book,, but it's still more work
MSmits: generic doesnt require the extra work of gathering information from opponents and processing them
struct: Even less work if you automate it
reCurse: You literally only need to find the series of hardcoded moves that wins
reCurse: That's a no brainer
MSmits: so it's less time calculating for the machine
MSmits: it's not less time coding
reCurse: Generic opening needs you to actually find them and evaluate them correclty
MSmits: mmh countering specific players also still needs some guidance, the same kind of guidance that it requires to do general openings
MSmits: you need to know what good moves are in both cases
MSmits: you just reduce the tree complexity when you counter specific players
MSmits: basically halving the depth
reCurse: You don't need good moves
reCurse: You only need to find what the opponent doesn't respond well too
reCurse: You can even get started by having the bot play against itself
MSmits: that might work in the short term
reCurse: There's nothing long term about counterbooking
MSmits: if you want to win a book war, you want the counters to be as perfect as possible
struct: also cant one move win vs a player but lose vs another?
struct: Or you will just try other move?
reCurse: If you want to win a book war, you need to come up with a generic opening book and vary it enough that hardcoding becomes way too difficult
reCurse: It's pretty obvious comparing the amount of work
MSmits: when karliso still had a book, at some point i solved his play from ply 25 and on and he kept deepening his book, but i already countered it all, because it was solved in my meta mcts
MSmits: it was already playing perfectly
reCurse: I don't know how you can argue that finding moves the opponent doesn't play well against is more work than finding moves working well in all situations
MSmits: more coding work
MSmits: not more time
MSmits: it can be done really quickly
MSmits: i did it to you in a day, by hand
MSmits: but to code a system to do it automatically, using replays, is time consuming
MSmits: it would be difficult for me
struct: Is it more time consuming on the long term?
MSmits: if you have a system, you can reuse it
MSmits: for other games
MSmits: but i had a generic opening book generator before i could add manual guidance and such
reCurse: I have done both, meta mcts was more work
MSmits: ah but there's the difference, the same mcts i use for generic moves simply has a button for guided search for countering players
MSmits: its the same program
reCurse: You don't need meta mcts to counter
reCurse: Talk about overkill
MSmits: you do if you want your book to do both
reCurse: I never talked about doing both
reCurse: I compare the work to counterbook vs. the work to have a generic book
MSmits: ohh ok. I would never think of doign a book jjust to counter players. I like creating generic books. The counter thing came later, when i figured out that I could do that
reCurse: Literally all you need to do is to record the different moves your bot plays when you give it 10x more thinking time
reCurse: It's braindead
MSmits: just counterbooking seems a timewaster, as you say people will just get a different version
MSmits: my "counterbooks" are basiclaly just 100-200 moves put on top of a 2000 move generic book that's in a bot that has room for 100k moves
reCurse: Well some people enjoy wasting their time
reCurse: If you automate it well enough it's technically unbeatable
MSmits: ah ok yeah. My main point was that such an automated system would seem hard to interface with my meta mcts program
reCurse: But you don't need meta that's what I'm saying
MSmits: yeah, i got that
MSmits: I just would dislike your way of counterbooking. My way of counterbooking would just merge with the rest of the generic book and the moves would be generally good and be reusable vs other players. the parts of the tree explored would be persistent
reCurse: There's no difference though
reCurse: It's just going much deeper in fewer lines
MSmits: yeah, but it's building on the generic book that maybe goes to ply 10-20 depending on the game
struct: But you have a counterbook on top of it right?
reCurse: With enough opponents you wouldn't tell the difference
MSmits: I guess so, but for some games, like Othello, countering one player also counters others
reCurse: You just thought I had a huge opening book back then
MSmits: there are too few "best" lines of play
MSmits: in uttt yes, i did
MSmits: in uttt, there are many viable lines of play as opposed to Othello
reCurse: I am thoroughly unconvinced
MSmits: well, to counter your nn i needed to add maybe 1 or 2 moves per line of play on top of the moves i already had vs jacek, oldjohn etc. you had several lines of play, maybe 15 or so unique ones, so i added 30 moves or so
MSmits: most of the time my book was already 25-30 deep vs you
MSmits: i just extended it to 40 or so when necessary
MSmits: or 35
MSmits: so my point is, your bot was not that different from say dbdr or others
MSmits: played most of the same openingd
reCurse: Aren't most bots sort of playing the same in utt
MSmits: no, for p1 the teccles is pretty standard, but till ply 20 player 2 has to make about 10 decisions, those are completely different for everyone
karliso: "solved his play from ply 25 and on and he kept deepening his book" - I did that only to make a point.
MSmits: i know karliso
karliso: Also, I will submit a bot that does 1st 2 moves as black as random.
MSmits: i was making the point that counteribooking with mcts is more effective
karliso: You will be able to test that.
MSmits: karliso that's a great idea, but i wont be trying to counterbook anymore. So dont do that on my account
MSmits: just do what makes your bot good
karliso: No, I do it to test my bot.. just like you do.
MSmits: ohh ok
MSmits: good then
MSmits: reCurse i should add, even though players play the early game very differently, the best players do play it deterministically differently with only few variations.
MSmits: so their game is deterministic but different from others
MSmits: feature of the pruning that happens in the bot I guess
MSmits: karliso's current bot has a only few variations and I don't even have to try to know yours probably always does the same
MSmits: which is why i think it's cool to randomize the opening a bit more karliso
reCurse: Hmm ok I changed my mind
MSmits: oh hey, did i mention my new bot has no random
MSmits: (no random rollout_
MSmits: it's eval
MSmits: like your NN, except i has 2 eval parameters instead of 20k or whatever
reCurse: Will it be enough to get ahead of the rest?
reCurse: I'd be impressed
MSmits: it's hard to say currently, i still have many untried ideas. But I have versions that are about 55% against everyone but tomatoes and karliso
MSmits: that includes your NN
MSmits: it would rank the same as my current bot i think
MSmits: but as i said i wont submit, it would just pull you down
reCurse: Well you'll submit at some point
MSmits: yeah but i want it to be more gneeric
MSmits: the determinism leads to weird situations
MSmits: sometimes 70% vs yurko, 30% Mealc
MSmits: stuff like that
MSmits: with the random rollout that never happened
MSmits: for some reason it always does well vs you though, even with different parameters, usually 40-55%
MSmits: which i think is great vs such a good opponent
MSmits: I think your bot has maybe some problems with the endgame, like it did in othello
reCurse: I added a solver and it did worse, go figure
MSmits: my bot solves 20-15 plies before the end, sometimes it says i lose vs you, until 5 plies before the end and then your bot ruins it
MSmits: and i draw
reCurse: I literally can't solve that far ahead so
reCurse: Of course it's bound to be weaker in the endgame
MSmits: no i know, its the number iterations
reCurse: The point is to not get in a weak endgame
MSmits: that makes it a rather interesting matchup
MSmits: between NN and non-NN
MSmits: both having advantages
reCurse: Well there goes my good mood, guess I'll start backporting
MSmits: karliso and I are both working on it now
MSmits: we will stop eventually
MSmits: maybe that's a better time to do it
reCurse: You're assuming I won't stop before you do
MSmits: i am sayin that if you get it done and i keep working and do something, you'll be annoyed about it again and maybe want to do more
MSmits: then you'll have uttt 2 times in your future
MSmits: instead of 1
MSmits: just trying to minimize your uttt-time
reCurse: You're assuming that time somehow gets more efficient if I wait
reCurse: That's only true if someone leaks valuable info
MSmits: I will leak probably
MSmits: not sure if it's valuable
MSmits: most of what i found these last few weeks are pruning opportunities and eval
MSmits: migth not be useful for a nn
MSmits: there's a crazy amount of domain knowledge in my bot now. I really want to write it up sometime and share
MSmits: it might actually be read, because uttt is quite popular
MSmits: maybe when i am done with this iteration
karliso: So you say tomatoes sometimes does better than reCurse? For all my versions reCurse is strongest opponent and tomatoes are among "rest".
karliso: Tomatoes goes all in with white.
karliso: tomatoes GW=62,90% [ W=61,29% L=35,48% D=3,23% ] 
MSmits: that makes sense
MSmits: your bot is definitely stronger than tomatoes
MSmits: this version has a bug, but it shows my point:
MSmits: do you see how tomatoes is stronger and you are even stronger than that
MSmits: bit low on games, but all my tests are like this
MSmits: same result, usualyl a bit better for me (50% overall)
MSmits: but this version has a bug i am trying to track eown
MSmits: I think it's like recurse said and the difference might be the solving power my current bot has
MSmits: that somehow helps me more vs recurse
MSmits: since the other bots all solve better in the endgame
karliso: Yes, reCurse's bott seems strong early/mid game.
karliso: But I probably solve better than you.
MSmits: my current bot probably solves better than yours, but it solves as a loss :Pp
MSmits: my new bot solves at ply 29-34 often 20 before the end
MSmits: I doubt your bot does that, but it does not need to, to win
karliso: I don't "solve" actually... I just assume that if it is 80% it has found WIN.
MSmits: ahh ok
MSmits: when i say solve, I mena a proven win/loss/draw based on perfect play of both sides
reCurse: The only way to solve my endgame (pun intended) is to know when a game is solvable, but unlike othello that seems next to impossible to predict in uttt
MSmits: it depends on how many moves are played in a finished miniboard
MSmits: also games are easily solvable when one side has 2 in a row and a good position in the 3rd board, then it becomes a matter of avoiding being forced to send the opponent there
MSmits: that reduces branching a lot
reCurse: That's an awful lot of domain knowledge I'd rather avoid
MSmits: yeah as i said, i've been coding this sort of thing in my bot for the last week or so
MSmits: lots of domain knowledge
MSmits: if you dislike the game I can see why that would not be fun to do
reCurse: uttt is the last game I get into I don't like playing
struct: just wait until I port hex version of uttt
MSmits: I think it's a bit sad you dont like some (or most?) of the boardgames you're writign NN's for reCurse
MSmits: it would be more fun if you did
MSmits: and more interesting
struct: He enjoyed checkers right?
MSmits: ah yeah
MSmits: except for the draws
reCurse: That's because I like the ML part
reCurse: And yeah checkers is good
reCurse: Draw is often because you suck at endgame, there's ways to deal with that
MSmits: yes, i know thats what you like about it. But how much more fun would it be if you were into a boardgame, knew what good moves are and have enough domain knowledge to appeciate how well your bot is playing
MSmits: thats what i enjoy about watching your NN's, yours, robo's jacek etc.
MSmits: i get to know these games and then see your bots' do great at them
reCurse: That's probably why the day I start chess is the day I never get out
MSmits: ah right, because thats a game you do like
reCurse: It has its drawbacks