rvnash
AOC 2025 is right around the corner. Last year, my first year, I just started a raw Elixir application and manually created modules for each day’s challenge. This year I’m thinking of starting with the aoc package. Anyone have opinions about what the most helpful framework is for enjoying this year’s challenges?
Trending in Challenges
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
There are three potential reasons for members of this forum to have a look at https://vutuv.de
You are tired or annoyed of LinkedIn.
Yo...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixir-ls
- #ai
- #elixirconf-us
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 7- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
adamu
Here’s a similar thread, which also contains my opinion
lud
The aoc package is opinionated, it creates modules with the parse/2, part_one/1 and part_two/2 functions, and it creates tests if you fancy some TDD. If you do not like that, you can still use it just to fetch the inputs locally.
If you want to do your setup yourself I guess starting with a bash script that generates a module can be enough.
I’d suggest to try aoc right now, see the Are you trying this library before December 1st ? section so you know if it is useful to you before day 1.
This is my bash command to work with my package that I run every morning:
vkryukov
Frankly, with LLMs these days, you don’t necessarily need to rely on external packages for simple things - you can just ask the LLM of your choice to write your own little modules (or even write them yourself!).
My approach: 1) a module to download and cache the input files, called like this:
AOC.input!(1, 2015)(first call downloads, consequtive calls read from the disk), 2) two simple templates calledlib/y2015/day00.exandtest/y2015/day00_test.exs, 3) a mix tasks that would copy this tasks in appropriate places and change 00 to whatever the proper date is. So that I can modify the templates for my liking - they are just elixir files.That’s it. That’s the whole setup.
adamu
Note that AoC recommends that you don’t use LLMs. Here’s mine:
dayN.exsto relevant dateREPLACE_MEwith relevant dateelixir script.exs inputThat’s it. That’s the whole setup.
vkryukov
Of course - I never use LLMs for solving the problems themselves, just to write the automation around fetching the problems etc.
sevenseacat
I have one repo for alllllll of my puzzle solutions that I keep building in every year - GitHub - sevenseacat/advent_of_code: My Elixir solutions to Advent of Code · GitHub (spoilers: includes solutions for 457 stars and counting)
My daily process is pretty simple -
mix day <year> <day>eg.mix day 2025 1to generate a skeleton module/test module for the day’s solution (which will be inlib/y2025/day01.exandtest/y2025/day01_test.exs)lib/y2025/input/day01.txtY2025.Day01.part1()iniexto test out my part 1 solution, etc.al2o3cr
I keep it super-minimal; each day is a subdirectory with
part1.exsandpart2.exsfiles (and inputs) and I run code withelixir part1.exsetcUsually that file defines a module, then has top-level code afterwards that uses the module.
Some of the problems can be solved with literally just a chain of pipes, no module required.