This repository contains the problems and my personal solutions to Advent of Code in Jupyter (Python) Notebooks. Similar to that of Alexe Simon, I want to provide boilerplates to attempt AoC as well as record my own progress. See also the Awesome Advent of Code collection of references.
Jupyter Notebooks read much like the high school "lab reports" I was so fond of creating. In particular, besides being a nice blend of text and code, you may open them in a place such as mybinder and get an interactive development environment in any web browser! See a Jupyter tutorial, Advanced Jupyter tutorial and tips and tricks.
Note that mybinder hardly work with GitHub - if you want to commit to Git, you need to save changes from there and upload them manually. I use VS Code and should look into nbdime / jupytext.
Note that I do things like this repository more than I code - professionally I want to be a 'Developer Experience Manager'. My Python solutions (in the branch 'cj') are notoriously naive but a way for me to learn, and I look at the solution megathreads on reddit for inspiration.
We are on again!
This year I am so much more confident than I was in 2020 that I can complete the advent, and the challenge to myself is rather to improve my gut-feeling about programming structure and perhaps share the fun with others through this Notebook collection. Enjoy everyone, see you in cyberspace!
Getting back on polishing on this repository - for now only 2020 problems, adding comments and improving style. Also glancing at similar repositories and track them, but I haven't found enough activity to merit enumerating yet. In the meantime I have been looking into experimenting with pywikibot / Mediawiki API and network graphs - there are various inspiration between the projects, like learning more about Python and things like repo2docker. Much looking forward to December 1st and the opening of this year's problems!
Got going on solving the 2015 problems retroactively
Finished AoC 2020! Now I can get on with the even more fun and playful work, such as:
- Make this repository more presentable and useful as an AoC sandbox
- Study, discuss, refer to all the other great participants' solutions and improve my own accordingly
- Solve the problems from previous years
Add flake8 style checking
Speed up MyBinder launching by pre-building docker images using [.github/workflows/binder.yaml] (could provide a reference on this eventually). It was convenient when fiddling on code from the corporate computer, but otherwise I've become well acquainted with Jupyter in VS Code.
Learnt that Eric Wastl doesn't want the community to redistribute problems or input data - so stopped doing so, will take out what I already put in and aim for a programmatic solution which will only re-display the problems from the original site
Created this repository and started participating in Advent of Code
Contributions are always welcome! I don't have any guidelines, but get in touch and/or send me a pull request and we can look at it.
To the extent possible under law, CJ Sveningsson has waived all copyright and related or neighboring rights to this work.