Contest site:
https://icfpcontest2019.github.io/
Final submitted zip:
https://drive.google.com/open?id=16kXv_0fX0neuEEIfbicqH2mSe-35x22f
uguu.org probably placed somewhere in the middle, which fulfilled my annual goal.
This year was not one of the best years, the dates were off and the hours were inconvenient. The task kept changing and the need to do extra software+network setup in the middle of the contest was exceedingly annoying. This was not a year spending more hours to grind the solutions felt rewarding, compared to 2018 and 2016. But on the plus side, this year we were able to get feedback within minutes that our submission was good, unlike the years where that feedback only came through a leaderboard after significant delays. So some aspect of the contest improved, just not the delivery of the task itself.
Still, there were some practical lessons learned this year and I don't regret taking the time to participate.
High scores: don't throw away old solvers. Instead, create a new solver by forking the previous one run all solvers together, keeping the best solution in a high score archive and select the best solution to submit. In previous years, I would have made one solver that is configurable, especially since I was usually short on computation time to be able to run multiple generations of solvers. This year I just kept forking and updated the solutions accordingly, which addresses the "one size does not fit all" problem that I never knew I had.
Undo history: making it possible to checkpoint and rollback the world state was extremely useful, although it requires designing with this feature in mind from the start. This year I implemented the undo feature because I thought I had time to solve the problems manually and interactively (until it ballooned to 300 problems), and turns out the feature greatly simplifies certain exploratory strategies.
Memory limits: always run with bounded memory limits. I feel like I had to learn this lesson once every year when some infinite recursion ate all the memory can cause the machine to freeze. This year's solution involved doing various forms of breadth-first search over and over, and the memory problem hit me early. I should just copy the same script from previous years.
Every year, I always wondered if this year will be my last year participating in ICFP. There was a moment on the second day when I just felt really tired and thought I am finally too old for this, but somehow I survived. I hope next year would be a motivating year.
Previous (2019-06-02): "Imouto sae Ireba Ii" volume 12 by Hirasaka Yomi
Next (2019-06-28): "Seishun Butayarou wa Petit Devil Kouhai no Yume wo Minai" by Kamoshida Hajime