But hey I didn't have the time to do it. Kids...
Yep, dont have the kids. And no plan to.
My kids have been the absolute best source of grey hairs in my life.
Once I miss my first day, playing catch up is an effort in vain, as the puzzles start taking 4+ hours to solve each, solving multiple in one day is a full-time commitment.
Most advents of code I've fallen off sharply after day 7-10, if not sooner, and I'm pretty sure I'm not alone in this. I think this is a welcome change.
I would normally tap out around the same place on the first dynamic programming puzzle which just takes me so long to wrap my head around each time (tips anyone? :)).
I welcome these new changes, and what ever the format are very greatful for all his hard work!
They're not as magical as they seem, you just need some practice. Read over the dynamic programming section in https://cses.fi/book/index.php (pdf link near the top is the free English version), then do a few on https://cses.fi/problemset/ . You'll be able to handle the AoC dynamic programming ones with _no_ problem at all.
I would have liked if a puzzle was released every 2 days though so it still spanned the whole month. Would be more aligned with the advent calendar concept. In fact in previous years the puzzles have always had two parts so if that format is still being retained there will still effectively be 24 puzzles.
I completed AoC on time every day once and let's just say it wasn't a very pleasant experience. Very similar to sticking to a too ambitious, too rigid gym schedule. Still time well spent, but it sucks out all the joy.
Then there was another AoC … and no, I didn’t solve all the problems, not even close. In most years I got 24 to 36 stars, 2018 and 2020 I did not participate.
Last year I was in a good place, wanted to practice a new programming language (Crystal). And I was determined to get every puzzle solved in 24 hours. And I did it, but for two or three puzzles it was oh so frustrating. With angry screams, searching help in the IRC, for two puzzles even not understanding for many hours how it works. And then at 1:52 AM (puzzles start at 6AM for me) I found the solution. It was liberating and gratifying, but at the same time so tiring and frustrating. The only reason I went along with was the overall goal, getting a permanent record of having solved every puzzle on the first day. And I am happy about it (in hindsight, it was the last opportunity for doing so with 25*2 puzzles), and now I never need or want to do it again.
Or do I? Only 12 days of trying to get solutions are much more possible.
I had thought last year that they could peak the difficulty around the middle of the month and bring it down a bit leading up to the 25th. But just finishing it earlier is probably better IMO.
If you want that, try AoC 2019. Day 2, day 5, and then every odd day till the end: day 7, 9, 11, ... 23.
After thinking, "maybe puzzles could be designed by a group instead of an individual and they could share the work," I then thought, "and couldn't an LLM help?"
And with that, I had to remind myself: Advent of Code isn't about there being 25 puzzles, and so maintaining volume at all costs has nothing to do with it.
And aren't we so lucky that it isn't! Aren't we lucky to have had the prior 500+ challenges given as gifts over the years! Aren't we lucky to have a great demonstration of humility and care! Aren't we lucky to have 12 new gifts to look forward to this year!
Thank you!
> Given that part 2 is often a very simple modification of part 1, this could lead to many of the days being total letdowns. I can enjoy a simple puzzle, but I'd be a bit disappointed if one day is a single line change to the previous day.
I'd also add that not having to be worried everyday about something makes a lot of sense. He can have fewer days "on call" in December with.
[1]https://www.reddit.com/r/adventofcode/comments/1ocwh04/chang...
I remember there being multiple accounts trying to one-shot AoC and all ended on day 10 or so.
They have hundreds of challenges that humans can solve in under a minute which LLMs can not. Seems the general trend is figuring out the rules or patterns of the challenge when there are few examples and no instructions.
> Advent of Code isn't about there being 25 puzzles, and so maintaining volume at all costs has nothing to do with it.
It's the Advent of Code. Not "Random late year event with no religious / commercial tradition connotations whatsoever" of Code. The 25 is there in the name. It's the whole point :).
The 50th star is awarded for having the other 49 stars and then basically clicking OK I think. If you've been diligently solving them in order, it means you effectively get two stars for your final 49th puzzle of the year on Christmas Day, which makes sense because then the puzzles are very hard and a "normal" puzzle wouldn't leave much time for other Christmas Day activities. But if you're the sort of person who often gives up on a day and never comes back you may never have seen this because you never got to 49 stars.
You're not quite right that the Christmas Day puzzle is trivial - it's the first half of a maybe week 1 type difficulty puzzle, but there just isn't a second half:
Here's the puzzle text for last year's Xmas Day (if you are logged in you can play, but even without it will explain the puzzle it just won't give you an input to test your solution):
You're overly attached to the meaning of Advent, but you aren't even aware of the meaning. It doesn't mean exactly 25. This year Advent Sunday is November 30th.
And the creator of Advent of Code can do whatever they want with it, despite the name. They've put an immense amount of effort into this for so long - if that had been me, I would have been incredibly disheartened to see people saying "the whole point is just 25".
24 doors on the Lego calendars too
This largely depends on who you're asking? I don't know anyone who wouldn't consider 24 the course correct number of Advent, simply because that's the common number here (we celebrate Christmas on the 24th). So 12 makes perfectly sense, just do every second day.
There are also many groups who don't start on the 1st of December, but on the first Sunday of Advent. And probably many others.
the word you're looking for is pedant
In the spirit of pedantry, I added even more minor detail!
Advent is not the time from December 1st until Christmas, it starts on whatever days the fourth Sunday before Christmas happens to fall on that year. This way, there are exactly four Sundays in advent.
If Christmas itself should fall on a Sunday one year, it doubles as the fourth Sunday of Advent, i.e., then the first of Advent will be only three weeks earlier.
In Eastern Christianity, the Nativity Fast starts on a fixed day: November 15.
There is no time for actual advent or winter calmness in general.
We can only hope. The Christmas song containment fields are weakening as we speak.
(I never could wrap my head around all this. I had enough problems with Easter events, where the math makes a detour through a Lunar calendar.)
EDIT: And my memory of the Tradition is wrong too, it's supposed to be 24 - as confirmed by https://news.ycombinator.com/item?id=45710618, and corroborated the two "Paw Patrol" themed Advent Calendars I just found still stashed in my home office.
j/k ;-)
> (first day of spring)
It's actually the March equinox. "Spring" is true only in the northern hemisphere. What's more it's the ecclesiastical equinox, not the astronomical equinox, whose date actually varies depending on the year.
Never mind that all this is descriptive of dating in countries that grew up with Western Christianity. Countries where Eastern traditions dominate often date it differently.
All good will to you both = )
It’s safe to say this ship has sailed.
You don’t seem to hate it that much?
Really? The name of the event is "Advent of Code". Having 25 puzzles is easily its most strongly-determined aspect.
You could argue for 23-29 puzzles, or perhaps for 5, but at 12 what's the name supposed to refer to?
That would be 24.
https://www.hallmark.com/house-and-home/figurines/precious-m...
Advent calendars in their earliest forms were invented approx. 80 years ago.
The four week advent period goes back to the 7th century and was introduced by pope Gregory I..
> Advent calendars in their earliest forms were invented approx. 80 years ago.
Well, Wikipedia starts its "History" section in 1945, which is 80 years ago. But what it says about advent calendars in 1945 is that they were lower-quality reprints of earlier designs. This strongly implies that they weren't a new concept in 1945.
The German wikipedia is more interested in the concept and cites the word Adventskalenders to the novel Buddenbrooks, which features one set in the year 1869 but was published in 1901. Either way, the calendars were clearly an established cultural phenomenon well before 1945.
Looking at the talk page (for the English article), it seems that the history section was provided by a "translation group" from their translation of a matching section of the German article. It's not clear why they began with the post-war period; the German page goes back much further than that, which was also true at the time they provided their translation. But this does explain why the English "history" section begins by referring to prior context that doesn't exist in the English article.
Minimum one, sometimes two.
(Also, Advent doesn't mean four weeks. Christmas might fall on a Monday.)
Although I don't think anyone really knows what the 12 days of Christmas are anymore.
Shakespeare is still being read, I think.
There's also nothing preventing you from doing more of them, or finishing in January... in fact, I know some people that space them out over the entire year, only doing a handful each time when they have lots of spare time.
Why did the number of days per event change? It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change. The puzzles still start on December 1st so that the day numbers make sense (Day 1 = Dec 1), and puzzles come out every day (ending mid-December).
Honestly, I prefer this. I've never had time to finish AoC because as we get later into December, I'm crunched with wrapping up work things so that I can do more family things and prep for the holidays. I look forward to this every year, and every year, I can see that I stop around day 11 +/- 1 day (except for 2021 when I somehow got to day 17). Why did the number of days per event change? It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change. The puzzles still start on December 1st so that the day numbers make sense (Day 1 = Dec 1), and puzzles come out every day (ending mid-December).I once tried participating, but gave up halfway through because one puzzle per day was just too much time. If it was one puzzle every two days it would be more manageable.
If the were released every other day, people who wanted to do them for 12 straight days could not.
If they instead waited 12 days, they could start with the 6 puzzles already released, and then have enough puzzles to solve once a day for the next 12 days.
for each row in input.txt, identify all the rows where: 1. the columns either all increase or decrease 2. the increase/decrease is >1 and <4. count total # of rows that match this. write a python script
It solved it very quickly. However...It's solution code included this comment:
Check if a report is safe based on two criteria: │
│ 1. All levels must be either all increasing or all decreasing │
│ 2. Adjacent differences must be between 1 and 3 (inclusive)
This is odd because I never mentioned reports or levels... However the challenge does: The unusual data (your puzzle input) consists of many reports, one report per line. Each report is a list of numbers called levels that are separated by spaces. For example: > how did you know to call them reports and levels?
Good catch! I noticed that terminology in the input file structure. When I read input.txt, I saw the data format - each row
contained multiple space-separated numbers.
I actually made an assumption based on common Advent of Code patterns (this looks like a typical AoC problem structure). The terms
"reports" and "levels" aren't explicitly stated in your requirements - you just said "rows" and "columns".
I should have used more generic terms like:
- "row" instead of "report"
- "values" or "numbers" instead of "levels"
Would you like me to update the script to use more neutral terminology that matches your original description?And he's made it clear from that start that he never intended the global leaderboard to be the point, plus AI the last few years messes it all up. All good things come to an end, and I gotta appreciate the good run that we had, and the voluntary work of one person that gifted it to us.
While I've usually been able to do the first half of the month's puzzles in the day before breakfast, over lunch and in the evening, the increasing difficulty does mean that later puzzles can really eat into a day, particularly if you happen to go down a bad path for your solution.
That being said, I was worried he'd cancel the entire thing, so this is still good news!
- The puzzles get published in the middle of the night for most of Europe, can't we have a better system like scoring on <arbitrary other metric the poster likes better>.
- It's weird that many of the pages say "just have fun, it's not a race" and then also there's a prominent leaderboard page to show who's currently ahead in the race.
- There's been people taking the whole thing way too seriously from basically year 1, trying to load their puzzle input as fast as possible by polling every 10 ms and putting too much load on the servers.
- Whether AI is allowed is always a super toxic discussion with no real outcome because you can't enforce it.
But I also understand the decision. Fun while it lasted, but I'll find other ways to have fun with AoC this year!
It’s like excitedly arriving to a potluck with your beef bourguignon, only to find twenty michelin-starred chefs competing against each other.
Not exactly my idea of “fun” :) to me AoC was much more of a neighborhood party than an olympic event.
As for when it's been solved a thousand times: 2022 I did part1 and part2 and was finished after 4m36seconds, and that gave me rank 1070. So don't underestimate how many who did this competitively, heh.
QRD? Was it AI?
IMO the levels it got to was wildly out of proportion, even if these people were cheating (say what you will about AI, but if the rules say not to use it and you do: you're a cheater) but maybe I would have felt differently if the timezones meant I could take part, rather than waking up to drama.
I never followed this challenge aside from doing a few 10 years ago in college.
If speed to problem completion matters though, then question release time will be brutal for some.
But yes, you would have people openly share repositories for automatically ingesting the puzzle text, solving the puzzles, and submitting the results the moment the puzzles opened, leading to inhuman solution times. So, despite the rules stating that you can't do that, the result is that whenever the puzzles were easy enough for an LLM to solve them with high probability – and most of them are – the leaderboards would be overrun with such solutions.
In 2023, the LLMs would still struggle enough that the overall leaderboard (taking all 25 ⋅ 2 puzzles into account) would still be dominated by ordinary people (many of them recording their solutions), in 2024 that was no longer the case. Personally I would go from being able to top 100 regularly, to almost never being able to. I'm going to miss the thrill, and think it's a bit saddening that we can't have nice things, but also ultimately think that getting rid of it is the best option.
These look like positive changes, a 2x longer event isn't 2x more fun or 2x more satisfying to participate in.
After skipping the past couple of years, I feel like I'm more likely to give it a go again this year.
Yy usual 5-to-7-day output scramble will now look vastly more competent, ah, well, complete. Not actually be smarter, mind you, but radiate the comforting glow of effort by someone who has their temporal ducks in a suspiciously photogenic row.
Improvement? No. But the illusion of improvement? Practically Nobel-worthy. I'm already enjoying this change.
It is bleeding into other aspects, but it's my pleasure to help with your Sunday morning imagery!
I personally also didn't like when part II of a question felt like a completely new question, instead of a neat extension of the previous one.
I am very happy that this is something that's available to do, for free though. I see advent of code as a good excuse to dabble with a new language, usually with a few people from work.
Another option would be to add some breaks, maybe a day off every 2 or 3 days.
This year I'm going to combine it also with mine noaidecember challenge to get a little more dopamine from problem solving.
I am truly thankful for all of Eric Wastls work on Advent of Code, no matter how much time he can invest and how much puzzles we get. I already look forward to the challenge at the start of autumn and consider what programming language I will choose (this year it’ll be Uiua :)). I am very slow at these puzzles, so I mostly quit at around puzzle 12 anyway, but I learn so much from them and they are a lot of fun.
And removing the global leaderboard is good, rather than trying to police how people solve the puzzles just let people have fun on their own boards with people they know.
Make a fun little christmas calendar to bring joy to the people, get turned into a gamified warzone where people use AI and bots to try to get onto the global leaderboards - possibly because getting on them might net you a job at FAANG
This also ties into the comments that AoC has become moot or was "ruined by LLMs". If you enjoy solving the problems, nothing should have changed for you. What's the difference if a given problem was already solved by an LLM, or a group of IQ 200 superhumans from MIT for that matter?
As time marches on, there will eventually be absolutely nothing left where an unaugmented human outperforms a machine. That doesn't mean you have to stop enjoying things. In a few years at most, all programming will be purely recreational.
That's a bold prediction given how much LLMs suck at programming today (and haven't really improved, either). I'm willing to believe that we will someday invent an AI that can program better than humans. I don't believe it'll be within a few years, because the current architecture shows no signs that it'll ever be able to get the job done.
I will search for a pure C private group to join that only allows a small library for things like reading the input as an array of strings.
Next week, I will be 64, and I am no longer searching for a full time job. In the past decade I only worked for 24 or 30 hours per week. I am financial independent and plan to only work freelance if there is some opportunity. Currently, I am not actively searching for a job.
The basic rule is: you are only allowed to use code you wrote yourself. That does include code you wrote before the start of the contest, for example, standard functions you wrote for earlier AoC editions.
Having said that, having done a few years now I think the following things end up feeling consistent across years:
The first 10-ish (give or take) days were always simple enough that experienced programmers can likely spit them out during their daily standup. This isn't bad, as I think they're great for newer programmers to get a bit of algorithmic and data structure thinking practice, but they can definitely feel a bit same-y once you've done a few years. This isn't a critique of how AoC was structured, just an observation of how it can feel after you've seen a few years. Having said this, I'm sure I'll miss the gentle warm-up this year.
I wonder what this means for the difficulty curve i.e. the almost-inevitable path-finding question will appear on Day 5 and not Day 15?
I'm sure Eric has thought this through but I wonder if an every-other-day approach (perhaps with a 'softer' puzzle for Christmas day itself) would be popular, as I imagine people balancing a job and/or family while wanting to do this might appreciate having two days for the more challenging later puzzles.
On the other hand, free time for this generally does get more tight as you get closer to the end of the month and the puzzles get more challenging, so this approach does just make a chunk of space for people later in the month, and individuals can choose to keep up with the puzzles on release day if they can or just not worry about it and let things roll over.
Unfortunately, I guess I'll have to actually go and see my family this Christmas instead of ignoring the mandatory visits, which seemed like a fair sacrifice to keep up with calendar ;)
> It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change.
Completely fair. As Eric says in some of his presentations on this it takes him about three or four months of his spare time, so this is more than understandable. Props to him for keeping this up consistently with his day job for the last ten years.
> The global leaderboard was one of the largest sources of stress for me, for the infrastructure, and for many users.
I don't mind this so much personally (outside of a morbid curiosity in the really fast participants) although I know people that were really invested in it, but there were some genuine points of contention for people that were interested in the leaderboard:
- The global puzzle unlock time, while explained by Eric himself in his presentations, does make being on the leaderboard impractical for people outside of time zones where the actual release time is friendly for that. For me it's 5am, and the only time I ever came even close (while also being nowhere near...) was when I happened to be up at that time due to insomnia (not caused by AoC).
- It sounded like an infrastructural point of pain as the single global release time coupled with submissions-by-country-size and how keen some of the puzzle solvers are makes for a great initial traffic burst with a long tail (also mentioned on the behind-the-scenes videos).
- It naturally favoured people with an interest in these kinds of puzzles, so the selection bias in the leaderboard is inherently skewed towards a) the subset of people that are choosing to do this out of genuine personal interest and then b) the subset of those that are likely to also be interested in competitive programming-type challenges. This is natural, but I think it does make the leaderboard less relevant for the majority of participants.
- The inevitable contention of the use of 'AI' just to be on the leaderboard
Anyway, I'll just end this with a thank-you to Eric himself for designing and running this consistently for the last ten years as it's something I've come to really enjoy, the community is very lucky to have this, and I hope these changes make it possible for him to continue doing this with lower physical costs to him personally and perhaps lower stress for the participants that just enjoy the puzzles for learning and the rare opportunity to write simple programs to solve problems.
For interested watchers:
- 'Eric Wastl – Advent of Code: Behind the Scenes' - https://www.youtube.com/watch?v=_oNOTknRTSU
- 'Keynote: Advent of Code, Behind the Scenes - Eric Wastl' - https://www.youtube.com/watch?v=uZ8DcbhojOw
Edit: Typos
I don't have time to do regular codeforces/atcoder/leetcode rounds (and the rampant AI cheating is pretty demotivating). So the big annual rituals for me to keep my "competitive programmer" label were: fb hacker cup, google code jam, topcoder TCO, and advent of code. Now besides hacker cup, the rest are dead.
Sad. :(
Also after day three I fell hopelessly behind. 12 might be fine.
Not sure why this is OK but prompt engineering isn't? If someone wants to test that skillset, let them be instead of asking 'please don't'. Especially given the competitive nature is now optional.
In practice, nothing prevents you from using AI to solve the problems anyway.
And the old About noted what you just said about there being nothing preventing someone from using AI:
> If you want to use AI to help you solve puzzles, I can't really stop you, but I feel like it's harder to get better at programming if you ask an AI to do the programming for you.
But since this is the first time I’ve been to the site, I’ve never seen it before. Oh my God it’s completely unreadable.
Seems only FF supports alternate stylesheets, so that’s not a useful solution for me.
Shame. I’m not going to fight that hard to read a website. I’m really sorry, readability is just table stakes.
Oh well.
Most browsers have a “reader mode” which might help you.
“Use reader mode”. It’s clearly a problem. There is an entry in the FAQ about it. The solution just isn’t useful to 98% of browser users.
If the author is willing make alternate color schemes with acceptable contrast users should be able to use them without switching browsers.