Chat:World/2021-07-10
SubwayMan: Can we get an option to turn off the tips dialog in the IDE? it often covers the screen and can be very annoying
nuggetbucket54: facts bro
SubwayMan: ;-;
jacek: happy Caturday
MSmits: morning
Marchete: :smiley_cat:
Thyl: Caturday POWER ! :D
Calamiti: yo how do i proceed to the next step in coders strike back?
jacek: hm?
Calamiti: like i am at the boost how can i unlock more of the commands?
jacek: you need to advance to next league
jacek: submit your bot and he must be above boss in the leaderboard
Calamiti: Ohhh ok got it thanks
Calamiti: so i must beat the boss?
jacek: yes
DaNinja: ez
jacek: well, be 1st in leaderboard. sometimes you can be better than boss, but worse than other players
Calamiti: wait do i have to beat all other players toooo?
DaNinja: aim to beat the boss
sashaGrey: hi
BIPIN_THE_KING: hello
BIPIN_THE_KING: I am from India
BIPIN_THE_KING: where are you from
BIPIN_THE_KING: ohhk
jacek: ohai
BIPIN_THE_KING: never spoke with anyone from china
BIPIN_THE_KING: before
BIPIN_THE_KING: first time
BIPIN_THE_KING: my pleasure too
Jameswow: How is your code level
BIPIN_THE_KING: like medium i guess
BIPIN_THE_KING: which language do you code
BIPIN_THE_KING: ohh me too
BIPIN_THE_KING: u code c++
BIPIN_THE_KING: i just started javascript
BIPIN_THE_KING: what is your age
Jameswow: One of the best programming languages
BIPIN_THE_KING: 16 and a half
BIPIN_THE_KING: why crazy bro
Jameswow: its a young age for me
BIPIN_THE_KING: In china where do you live
Jameswow: I don’t think you know what I said
BIPIN_THE_KING: what did you say
BIPIN_THE_KING: where are you right now
Jameswow: If I tell you, you won't know
BIPIN_THE_KING: ok
BIPIN_THE_KING: where are you right now
BIPIN_THE_KING: in ur profile it shows ur account is from USA so
BIPIN_THE_KING: no bro james
BIPIN_THE_KING: ??
BIPIN_THE_KING: okkkkkkkkk
BIPIN_THE_KING: ok
jacek: !
Astrobytes: ?
BlaiseEbuth: ;
Astrobytes: chat reading like a perl script
Marchete: <>==>
jacek: (_Y_)
TobiasA: :nerd:
fireballishere: hey
jacek: thats what she said
Astrobytes: was just waiting for that
jacek: :upside_down:
BIPIN_THE_KING: hello
BIPIN_THE_KING: anyone there
BlaiseEbuth: No.
BIPIN_THE_KING: where are you from bro
BIPIN_THE_KING: anyone there
BIPIN_THE_KING: anyonethere
CodeDecodeDev: Hello
Xzoky174: hi
punter147: hello, this is a question to the experts: how do you manage your entire source code of various puzzles and contests at codingame? there must be many common bits and pieces right? do you house all this in a big project like structure with subdirectories for the specific contest/puzzle?
punter147: for example, for many puzzles on pathfinding, do you guys have a framework like code written already for one of the puzzles and just code up the specific changes(lets call it implementing the XNode (insert puzzle name in X))?
KiwiTae: punter147 do you boo ~
KiwiTae: personally i got few templates i reuse
KiwiTae: and ready to go classes
punter147: KiwiTae i did not understand the first line? oh i see, coz i was just refactoring my codebase to neatly arrange the code in proper levels so i can reuse it next time very easily...
KiwiTae: it saves time yesgood good
Counterbalance: I have 1 project and git repo per multi / optim / codegolf / puzzle, and a 'shared lib' with reusable include files / snippets, but I usually write the algorithms from scratch so as to be optimized. I did have generic GA but it got pretty large with all the #ifdefs to suit the different multis :)
Poostang: someone give me job I will iterate through various data structures and write algorithms for USD 50k per year, thanks
darkhorse64: :laughing:
MSmits: I think this is jordan schlansky
MSmits: conan ended so he is looking for a job
darkhorse64: asking here to get paid for writing code when we do it for leisure :rofl:
MSmits: yep
jacek: Oo
Astrobytes: OldJohn: Touché. Did you book me in Oware?
jacek: why would someone want to book you
Astrobytes: Some of us fight battles in the peasant positions.
jacek: sorry didnt notice. i needed to scroll down much
MSmits: :fire:
Astrobytes: :rolling_eyes:
MSmits: it's doubtful though Astrobytes
MSmits: oware is very hard to book effectively
Astrobytes: It was very, very specific.
MSmits: check your games, see if you're playing deterministically or doing different starts
Astrobytes: I've had to increase randomness to be able to beat him at all since his submit today.
Astrobytes: When I tweaked mine the other day, it just happened to demolish him every time. Smells like vengeance :D
MSmits: hmm could be
MSmits: he did it in othello
Astrobytes: I remember. I always enjoy jostling for placements, even if I'm not top 10
MSmits: make sure you set your random seed based on time, not some fixed seed
MSmits: on D&B I was able to get a much higher WR if i wanted, against crazy remi
MSmits: just by trying different random seeds and keeping the one with the highest WR
MSmits: because his random seed was fixed
jacek: thats weird for a guy that invented monte carlo tree search
MSmits: yeah
Astrobytes: lol right
darkhorse64: yesterday, struct posted a snippet that made me realize that I was doing something wrong (= inefficient) in nearly all my mcts
jacek: hmm https://twitter.com/Remi_Coulom/status/1370475619998392328
jacek: calculating log(parents) everytime?
darkhorse64: doing ctz on masks followed by 1 <<
MSmits: why is that wrong?
struct: is not needed
darkhorse64: because pdep gives you the mask
struct: did it improve performance?
MSmits: but you dont always use pdep do you?
struct: on rollout I do
MSmits: do you mean this darkhorse64
MSmits: int safeCount = __builtin_popcountl(safeBoard); int rnd = FastRand(safeCount); uint64_t selectedBit = _pdep_u64(1ULL << rnd, safeBoard); int bit = __builtin_ctzl(selectedBit);
darkhorse64: yes, slighly. On rollout, for selecting moves, you can also loop on bits with pdep(1, bits). Yes, MSmits
MSmits: i dont know what i can leave out though
MSmits: I also need the bit index for lookups
MSmits: so i will need ctzl
struct: bit index for lookup?
darkhorse64: True, it depends on the multi, on C4 or bt I have no lookups
MSmits: yes, to change various yavalath maps
MSmits: to update them
MSmits: they all have different masks depending on which hex you played
MSmits: (for which you need the bit index)
struct: Well now i shared most of my tricks
MSmits: let me check if i do something weird in c4 then
struct: it can be used in more games
darkhorse64: anyway on C4, the vast majority of time is spent on getting winning moves
darkhorse64: *my time*
MSmits: int moveCount = __builtin_popcountl(allowed); int rnd = FastRand(moveCount); uint64_t selectedBit = _pdep_u64(1ULL << rnd, allowed); boards[player] |= selectedBit;
MSmits: i am not doing ctzl here
MSmits: so applying the 1 bit mask straight to the board
darkhorse64: This is what I do now. The drawback of reusing too blindly
MSmits: ahh ok
MSmits: yeah it happens
struct: do you also update the move mask like I said darkhorse?
MSmits: trying to fix a TT + ab negamax currently. it's tough
MSmits: the TT stuff i mean
jacek: youre using negamax? oO
MSmits: yeah for D&B
jacek: what century is it
darkhorse64: No, I found that computing it was faster than updating it. I agree it's a bit weird
struct: so you calculate it everytime you make a move?
darkhorse64: yes
struct: wasnt faster for me
struct: ah maybe it is similar
struct: I get around same rollouts so maybe my way is not faster
darkhorse64: Just looking at ops count, your code seems faster.
MSmits: jacek as you said, D&B is all or nothing, so you need a full solve. Don't know what else to use :)
MSmits: could do mcts with solver, but TT's are extra strong in this game
MSmits: so negamax has the advantage
Rddevelop: does anyone know about the "polindrome substrings perfect word" clash of code game and if so can you share the best solution?
BlaiseEbuth: Indeed! Just the time to remind me the good one between the 1200+ clashs, that I've of course perfectly memorized. And I give you the answer... :smirk:
jdsigg: Blaise you have seen duplicate clashes before?
BlaiseEbuth: A lot. Since the guidelines don't forbid them.
BlaiseEbuth: And just like that, without the statement, I doubt that anybody can just throw up the solution...
BlaiseEbuth: If he even wanted to...
BugKiller_328: how are you!
BugKiller_328: I learned FlatMC. what I have to learn for the next step between these 2. MCTS VS MiniMax. Any suggestion ?
byteful: put ur favorite programming language below
struct: minimax might be easier to learn
BugKiller_328: learn minimax first and then goto MCTS ?
struct: yeah
BugKiller_328: Thanks for your suggestion @struct.
after that 2, what I need to learn ?
BugKiller_328: now I'm trying to make plan for about 40 days.
struct: depends on what you want to do
BugKiller_328: so wanted to know the thing I need to learn (4 ~ 5 algorithm in order easy to hard)
jacek: there is so much to minimax (and alphabeta) and mcts that it will suffice for a while
jacek: so many modifications and enhancements to them
BugKiller_328: learned FlatMC and understood about it and had fun. so want to learn more and more.
BugKiller_328: @jacek: so minimax, mcts is enough for a while ?
BugKiller_328: what is alphabeta though ?
BugKiller_328: sorry for dummy question ;)
jacek: enhancement to minimax. learn minimax first, then alpha-beta. it prunes a lot moves so you can search much deeper
BugKiller_328: I got it. I'll ask again after learning that things.
Counterbalance: You could also take a quick peek at SA and GA; they are just modifications of 'FlatMC'
BugKiller_328: Thanks a lot for your suggestion.
BugKiller_328: SA and GA ? Can you write the full text instead of abbreviation for me ?
jacek: simulated annealing and genetic algorithm
Counterbalance: simulated annealing and genetic algor..
Counterbalance: dang :)
jacek: slowpoke
Counterbalance: It's the weekend :)
BugKiller_328: ah.. sorry :D
BugKiller_328: weekend is just good for me for the self development. but sorry to ask much :)
jacek: its alright :+1:
Counterbalance: Asking is good
Counterbalance: btw, smits mentioned 'TT' before - what's that?
Astrobytes: BugKiller_328: Counterbalance was just responding to jacek with the 'weekend' thing, don't worry :)
Astrobytes: Transposition tables Counterbalance
Counterbalance: ah thanks astro
Counterbalance: TMA - too many acronyms :)
Astrobytes: right :D
jacek: eeyup
BugKiller_328: You all who's on top in ranking here are just AI engineers ?
jacek: for ai stuff im just hobbyist. at work i make apps for android, not much ai there
Counterbalance: Nah just doing it for fun - job is not as interesting as AI
Astrobytes: Not too many AI/ML only people, you have inoryy (anyone seen him recently btw?), I think Wontonimo and a few others
eulerscheZahl: I just stack different layers of incompetence and ignorance on top of each other
Astrobytes: :D
jacek: i wish i had job in bioengineer department, for a thing
Astrobytes: :smirk:
Astrobytes: :smiley_cat: :girl:
jacek: :thinking:
BugKiller_328: :smiley:
BugKiller_328: I've tried few bot programming and just wondered how this makes visualization of battle for so many bot programming problems..
BugKiller_328: (how this website makes visualization..)
Astrobytes: There is an SDK, it's in Java and utilises JS
eulerscheZahl: in the end it's pixi.js
BugKiller_328: so, if someone makes a problem, he needs to make the visualization with sdk ?
eulerscheZahl: https://www.codingame.com/playgrounds/25775/codingame-sdk-documentation/introduction
Astrobytes: https://www.codingame.com/playgrounds/25775/codingame-sdk-documentation/introduction
darkhorse64: Yes
eulerscheZahl: haha astlock
eulerscheZahl: Astrobytes
Astrobytes: hehehe
Astrobytes: Literally a photo finish there :D
jacek: haha Automaton2000
Automaton2000: yeah, and i think this is a good one i think
jacek: AutomatonNN ?
jacek: :(
Astrobytes: 1 down, 1 to go
eulerscheZahl: 2000 with die with the CG chat
Astrobytes: Most probably.
jacek: die as in dice?
Astrobytes: Die as in "will die"
jacek: die bart, die
Astrobytes: why you little... <strangles jacek>
eulerscheZahl: https://www.youtube.com/watch?v=JXFGy10b7Js
Astrobytes: heh heh perfect, was just gonna say I missed your Simpsons clips
eulerscheZahl: i'm easy to predict
eulerscheZahl: simpsons or xkcd
jacek: there is xkcd for everything, so is simpsons
Astrobytes: True.
Astrobytes: Sometimes Futurama gets a look-in too though.
eulerscheZahl: https://xkcd.com/1959/
Astrobytes: What can I say :D
jacek: royale pushes me further :heart:
jacek: so close
jacek: for some of you: scroll up in leaderboard
Astrobytes: I think that was me, my first game was against you
jacek: and this abomination :rage: https://www.codingame.com/replay/569544571
Astrobytes: I care not
Rddevelop: BlaiseEbuth dude, just say no or do not answer, why waste your energy like that just in the hope that someone finds you funny enough to fill up your "in need of attention" bar
emh: hmm.. would be fun to work for Google Deepmind. anyone here work for them? I wonder if my CodinGame ranking would be sufficient to get hired haha
MSmits: just show them your special csb version
Astrobytes: inoryy does emh but I haven't seen him around recently
Astrobytes: MSmits :rofl:
emh: lol
Astrobytes: Job guaranteed
BugKiller_328: I'm working as full-stack web dev but I want to be good enough in algorithm.. :thinking:
BugKiller_328: spending time by solving something here will make me archive my goal/hope ?
Astrobytes: BugKiller_328: I don't even work in a dev-related field so all you have to is keep building your knowledge and I'm sure you'll get there in the end
Astrobytes: *have to do
jacek: to be frank i havent done any heavy algorithm related stuff at work
MSmits: BugKiller_328 nowhere better to be
BugKiller_328: :yum:
BugKiller_328: happy to hear..
BugKiller_328: can anyone list here most practical algorithms used a lot, (or good to know ..)
MSmits: sure
MSmits: genetic algorithm, various sorts of neural networks
MSmits: minimax/negamax
Rddevelop: in work you dont need to be good at algorithm
jacek: BFS, DFS, minimax, mcts, GA/SA, NN
MSmits: monte carlo treesearch
jacek: jacekmax :v
Rddevelop: i work for a company that is involved in the photovoltaic sector, we have to develop calculations for solar profitability and best inverters calculation and even there you dont need to be an expert in algorithims
MSmits: oh cool, I teach a class on solar
BugKiller_328: :disappointed_relieved:
MSmits: about 8 weeks
MSmits: pretty basic stuff though
BugKiller_328: then algorithm is just hobby thing for even developer ?
MSmits: not all developers, just most of them
jacek: MSmits you teach them photosyntesis?
Rddevelop: thats cool smits
MSmits: no i teach them about solar cells
KiwiTae: algorithm design is most of my job lol
MSmits: they do some experiments and we look at factors that maximize the power output
MSmits: such as angle and resistance
BugKiller_328: of course, I've worked so many years for webdev, and I didn't feel that I need to learn for algorithms in depth. but I feel more happy when I work something which needs a thought alot. than just web-dev. lol.
MSmits: Rddevelop you will probably understand this:
MSmits: https://imgur.com/a/XnTwAO5
MSmits: same solar panel with a lamp at various distance
MSmits: to find the optimum resistance
MSmits: which moves with a smaller or greater light intensity
MSmits: the less light, the higher the optimum resistance
MSmits: students make these graphs in class
Astrobytes: ah the good old days of classroom physics experiments. Not half as fun as chemistry tho' :P
MSmits: well i dont blow anything up
MSmits: (on purpose)
Astrobytes: hehehe
BugKiller_328: why chat history is not persist here ? even for 1:1 chat.
MSmits: there's a log for world chat somewhere
Astrobytes: https://cg.spdns.eu/wiki/Special:PrefixIndex?prefix=World&namespace=3000
Astrobytes: ^ chat log
BugKiller_328: Cool, thanks.
Rddevelop: MSmits very cool. we take into consideration things like tilt_gain, shadow losses module degradation, slowly making it more complex without risking the user usability regarding speed
MSmits: good stuff
MSmits: I guess this and an astrophyics course are the last 2 remains of my physics activities after the summer
MSmits: other than that it's all computer science now
Astrobytes: astrophysics more fun imo
MSmits: yeah it sure is
MSmits: we work on supermassive black holes
Astrobytes: Man I wish we were doing that in highschool :)
MSmits: me too, we didnt have anything like that either
SubwayMan: does anyone know how to remove the tips/suggestions dialogs when code editing? they often cover my code so I can't see what I'm looking at
jacek: i dont see any tips dialogs o.O
Astrobytes: We did some basic black hole stuff but with what's now known... sheesh, woulda been amazing
MSmits: SubwayMan if it keeps annoying you, you can always use a local editor and just copy paste for testing and there's also some send ing tool i think
SubwayMan: yeah - usually it's just a hindrance but it can be really frustrating in activities like clash
jacek: you get that in clash? i thought it was only onboarding or csb
RoboStac: I think he means the code suggestion things rather than the tip dialogs
SubwayMan: yeah I'm talking about the suggestions/information dialog that can pop up
jacek: from the IDE? oh
RoboStac: as far as I know the only setting you can change for that is whether enter chooses the selection or not
Astrobytes: Yep.
SubwayMan: yeah I changed that
Westicles: I have a new criteria for ranking which languages are best
Astrobytes: shortest syntax and easy exec?
jacek: :flag_pl:?
Westicles: Those that understand /*/*/b*/r*y and those that don't
jacek: /b/, that brings some memories
Westicles: The way to call ruby these days
Astrobytes: insanity
jacek: or php
jacek: :F
1zanie: hello world
Rddevelop: php is cool, it has improved a lot
MSmits: yay improvement
MSmits: https://www.codingame.com/replay/569569616
MSmits: check solved scores from frame 45
MSmits: I lose but because my old bot doesnt solve as well, it makes mistakes
MSmits: and then I win
MSmits: it's not enough to beat nr 1, but i'll take it
jacek: oh my
struct: does it win vs your current bot everytime?
MSmits: not sure yet, but it can be improved a lot still
MSmits: I am ignoring two important strategies and the search method nr 1 is using (still have to code that)
struct: what is nr1 using?
MSmits: chain counting
MSmits: cheap way to know who has control over the endgame
MSmits: as opposed to my calculating the exact optimum score
MSmits: he considers a game where he ends up in control as a win, but there are exceptions. in those cases his "win" message is sometimes incorrect
MSmits: so what i need to do is to take his method for earlier game and switch to my score-solving later on
MSmits: should give me a small edge... but lots of coding left to do
Marchete: why did you retake D&B? It's just 1 place
MSmits: because I like it, mostly and because I know what to do to be nr 1. If I was all about the cp I would do something else of course
Marchete: then better do it now
MSmits: how so
Marchete: I prefer to be alone when I retake it :D
MSmits: ohh ok
Marchete: it seemed I did a lot of noise on Oware
Marchete: and now it's changing each half day
MSmits: sure, well, i'll be going on vacation at some point, so expect to take 2-3 weeks
Marchete: don't worry
Marchete: I'll retake it someday
MSmits: whats changing ?
Marchete: leaderboard
MSmits: oh
MSmits: doesnt have to be noise
MSmits: rock paper scissors is pretty extreme with these nns
MSmits: so whoever is submitting is doing this
Marchete: pretty extreme indeed
MSmits: btw, if you're interested, you can see how mikkla wins here:
MSmits: https://www.codingame.com/replay/569573791
MSmits: my solver says i win, but then mikkla does a sacrifice move and the score turns upside down
MSmits: almost noone knows how to do proper sacrifice moves
MSmits: it's just the top 4
Marchete: he is very verbose
Marchete: no one knows?
MSmits: most of it is meaningless. All thats useful from his text is his "win" message
Marchete: that's pretty common on papers
MSmits: yes, I mean the players on the leaderboard dont know
MSmits: they just fill up the board, giving away no boxes
MSmits: until the endgame
MSmits: also, even if you know it can be good, you need to figure out how to make your bot do it correctly. It's pretty messy
Marchete: but then if we two read the papers
Marchete: and apply all logic behind
Marchete: it will be similar to mikla
Marchete: I guess
MSmits: we can do better I'm sure
Marchete: I see it as as graph problem
Marchete: with counting
MSmits: I do too
MSmits: well almost
Marchete: early game it's "hard" to do something good
MSmits: the endgame for me is a graph, the time before that is a bitboard
Marchete: I thought about going to some kind of patterns
Marchete: that I know they can be better for your player id
MSmits: I think you can reliably gain control after frame 30 or so
MSmits: miklla does it at 38 roughly
Marchete: I see the Win msg
MSmits: yes
MSmits: thats it
Marchete: Win uppercase
MSmits: what you do is, you write a function for a chain counter given an endgame
MSmits: and then a negamax or mcts solver that searches till endgame
MSmits: with TT and such
MSmits: so thats about frame 55 when endgame starts
MSmits: so he goes 17 deep, which seems really hard, but TT is strong here since you share the same board
Marchete: with graphs many moves are pruned
Marchete: you end with a couple of moves per graph
MSmits: thats in the endgame, I am ignoring that completely
MSmits: it's 1 function to calculate control
MSmits: no search required
MSmits: only if you want to know the exact score
MSmits: your graph thingy is really useful to calculate the exact score.
MSmits: but mikla doesnt even do that
MSmits: doesnt matter if you win 29-20 or 36-13
MSmits: (but there are rare cases)
Marchete: I can cut 3 way graphs efficiently
Marchete: that's not endgame
MSmits: to me it is
Marchete: ahh then yes
MSmits: my solver starts working when there are no safe moves left and all moves give away boxes
Marchete: ok
MSmits: so that can include 4-ways and 3-ways
MSmits: on average it can solve 1000 such boards per 100 ms
MSmits: but they vary wildly in required calc time
MSmits: but my point was, the entire board can be handled with a single function if you just want to know who ends up being in control and grabbing most of the boxes
MSmits: so instead of 1000 such boards, you can solve 100x as many
MSmits: you still need to know how to actually play out the end game efficiently, so your graph thingy is still useful
Marchete: I guess
Marchete: it's also good for hashing
Marchete: less similar boards
MSmits: ohh, i have been wanting to know how to hash a graph
MSmits: it seems complicated
MSmits: btw my graph nodes are the 3-way and 4-way splits with links between them that just have a size. I dont keep the separate boxes
MSmits: i guess it might be harder to hash a graph if the links also have a size
Marchete: length, type etc
Marchete: at some point it's an approximation
Marchete: but I think it worked nicely
MSmits: hmm
MSmits: dont you have a way to check if the graph is equal>
MSmits: to find the right graph in your bucket, as it were..
Marchete: doing it by hand
MSmits: but whats the approximation then?
MSmits: do you just mean you get some hash conflicts?
Marchete: initial boards
Marchete: with tons of strings
MSmits: well I always get hash conflicts, thats fine
MSmits: that happens with bitboards even
MSmits: hash collisions was the word i was looking for
Marchete: I think not
Marchete: I mean I can't hash very well the boards with too many degrees
MSmits: sure, that makes sense
Marchete: but I do care about if an edge is on edge or not
Marchete: it's important
MSmits: I cant solve very well in that case
Marchete: "ground" are important
MSmits: yeah
MSmits: http://chat.codingame.com/pastebin/c5100ba3-bfc0-4f42-940a-2b70e05c7461
MSmits: function name :)
Marchete: lol german like
MSmits: well it's all English
MSmits: sort of..
MSmits: getting some sleep, gn!
Marchete: gn
rahulgo8u: which language is the best to use in clash of code?
aaaaaaaaaaaaaaaaaaaab: Javascript, there is no easier language than javascript
aaaaaaaaaaaaaaaaaaaab: just so intuitive
Alfredb: Python is best for speed, Perl is best for shortest
KamadoTanjiro: hi
MACKEYTH: A lot of ppl like RUst
mathiasx: Perhaps I've missed something -- I'm trying to do one of the first "medium" puzzles, and it mentions being able to use STDERR. I'm not seeing stdout or stderr print anywhere, and each example just fails without output. How can I tell what's going on?
juice0: to the right of console output is a drop down menu, make sure it's all checked
mathiasx: It is, hasn't shown anything yet
mathiasx: I've tried really basic stuff like just stderr logging at the beginning some text
juice0: iirc even if i'm timing out or not reading all the input correctly, i can still see stderr and stdout
juice0: unless it's not compiling
mathiasx: Yeah, I now have it passing and there's no output
mathiasx: I hate to say it, since it sounds like someone who doesn't know better, but I think this is broken.
mathiasx: (The first example can be hardcoded, so it passes. No output shown.)
juice0: it wouldn't be the first time
mathiasx: I think that's where I'll have to call it a night; there's no way to make any progress in this without being able to debug the data at each step
juice0: if it happens again later, say something in chat then. there's usually someone around who knows more than me
mathiasx: Thanks!