18 ms·
Advent of Code 2017
- ajmurmann 9y agoWhile I enjoy advent of code I always have been happy to live on the west coast. I wonder how many people on the east coast don't participate because they'd have to stay up til midnight if they want to score.
- amenghra 9y agoIt could be fun if each puzzle were unlocked after 23h (or 25h). I.e. the start time shifts everyday by 1h to make it "fair" no matter what timezone you live in.
- Aneurysm99 9y agoAs a moderator on the subreddit and coworker of Eric Wastl, that'll never happen because we would die. It's set up so that puzzles unlock at a time that Eric is awake and able to respond to any issues that may arise.
- yxhuvud 9y agoYou mean, each entry doesn't get revealed at 6am as it does here in Europe?
- mjaniczek 9y agoI'm so glad I'll be able to participate before work, and not before sleep :)
- technion 9y agoI think there's value in completely ignoring the race. I'm probably going to do this either in a language I'm learning as I go, or in something like Erlang which, whilst great to get correct, will not iterate as fast (for me at least) as the Ruby solution I could quickly and easily write.
- irpapakons 9y agoHow does the scoring work? Is it dependent on speed? Are you penalised for incorrect attempts? What time / timezone are the problems released?
- steveklabnik 9y agoProblems are released midnight EST. First person with a solution globally gets 100 points, second person gets 99, etc. So you have to be one of the first solvers globally to get any points.
- mdwhatcott 9y agoIf you feel the global challenge is out of reach, you can setup a private leaderboard for you and anyone you give the 'join code' to, localizing competition and points to your own circle of "AoC" friends: http://adventofcode.com/2017/leaderboard/private http://adventofcode.com/2017/leaderboard/private
- amenghra 9y agoAoC is lots of fun. There's an active community on http://reddit.com/r/adventofcode http://reddit.com/r/adventofcode where people share tips and help each other out. I highly recommend participating. AoC is designed as a speed coding competition, but if you aren't playing for the speed points, it's a fun way to learn a new programming language.
- Aneurysm99 9y agoIt's really not designed as a speed coding competition; that's just what it became by accident. Eric built the first edition for friends and friends of friends, expecting maybe 70 people to participate. He thought a 100 person leaderboard would be more than enough. The look on his face the next day when he realized what had happened and that his infrastructure wasn't going to hold up was priceless :) That said, it is a fun way to learn a new programming language or to brush up on one you haven't used in a while. Stop by the subreddit and get help if you're having trouble or give some help if you're able!
- nemo1618 9y agoI had lots of fun with AoC in 2015 and 2016. Here are my (Go) solutions: https://github.com/lukechampine/advent https://github.com/lukechampine/advent There is also a subreddit (/r/adventofcode) if you get stuck and/or need inspiration. Some really creative solutions there. Best of luck to everyone this year. See you on the scoreboard! :)
- lobo_tuerto 9y agoThe perfect excuse I was looking for to finally start digging into Elixir. ;)
- synicalx 9y ago> If you're curious about how Advent of Code works, it's running on some custom Perl code. Get out! Here I was thinking I was the only person using Perl in 2017.
- jlgaddis 9y agoShhhh! You'll get lynched talkin' like that around here.
- executesorder66 9y agoI haven't done AoC before. Does anyone know if it's possible to submit 2 solutions? I want to use this to brush up on my Python, and I want to start digging into Rust.
- nouveaux 9y agoAoC is language agnostic. You can find previous years' puzzle and give it a shot. https://adventofcode.com/2017/events https://adventofcode.com/2017/events
- executesorder66 9y agoThanks.
- seanhandley 9y agoYou get a unique input generated per puzzle, and then you submit the output your solution generates.
- Aneurysm99 9y agoLast year I solved most problems the first time through using Perl and then later came back and used it to try to learn Rust. The second time through I started by writing test cases using the known-good answer from the Perl implementation.
- mathw 9y agoAdvent of Code is an amazing achievement. Designing all the puzzles, writing code to generate all those different inputs for everyone, keeping the site going, somehow managing to create this wonderful community of problem solvers... I loved it last year. I've already paid my AoC++ this year. The least I can do for a month and more (because I never do a puzzle a day, and still haven't finished last year's) of fun. This year I need to make sure I do the graph search problems properly, because I've never learned those methods and I really should.
- seanhandley 9y agoLikewise, on the graph search problems and paying the AoC++ contribution early. I don't know how Eric Wastl manages this each year but I've been participating the last two years and it's ridiculously fun!
- narimiran 9y ago> This year I need to make sure I do the graph search problems properly I'm guessing this year it might be some other 'common theme' for the tasks, and we might not see as many graph-problems as in 2016. But learning graph searches cannot hurt you either way :)
- ubertaco 9y agoAre there any good resources you'd recommend on learning how to effectively work with/search graphs?
- emartinelli 9y agoIf you want some Graph Theory challenges to solve there is a track at HackeRank https://www.hackerrank.com/domains/algorithms/graph-theory https://www.hackerrank.com/domains/algorithms/graph-theory
- justinhj 9y agoRobert Sedgewicks Algorithms II on Coursera covers a few graph search techniques
- michaelsbradley 9y agoReasonML this year, or that's the plan. Excited for it!
- aamederen 9y agoAs a first time visitor, I find the design very clear and readable.
- TulliusCicero 9y agoThe about page doesn't say: is there a specific language used for these?
- rkcr 9y agoNope! All of the answers boil down to some simple text input, so you can run whatever code you want locally to get the answer.
- verandaguys_alt 9y agoThere isn't, by design. You write _some_ black-box implementation locally which outputs a textual solution you drop into the browser (at least, this is how it was in 2015 when AoC started). I can't recommend this enough. I had to miss out on last year's challenges, but planning on participating this year; it's a great way to keep your brain nimble if you feel like you're in a rut.
- Aneurysm99 9y agoThe prior events are still available! http://adventofcode.com/2016 http://adventofcode.com/2016 and http://adventofcode.com/2015 http://adventofcode.com/2015
- narimiran 9y ago> is there a specific language used for these? There isn't. Some previous tasks could be solved by pen-and-paper, or by using your browser's search on the input, etc. Also, there were some users who solved each day in a different programming language.
- jordigh 9y agoI'm doing it this year. In D, because I'm stubborn, enjoy the language, and couldn't immediately get to like Rust. Going by hype, I have a feeling learning Rust will some day be as inevitable as interacting with git, but for the moment I'm sticking to D.
- mathw 9y agoThat remains to be seen, but I firmly believe you should do AoC in something you enjoy!
- baldfat 9y agoFirst attempt at doing it in Racket this year. I actually got through a bunch just using R last year.
- dom96 9y agoOut of curiosity, what do you enjoy about D?
- jordigh 9y agoIt's essentially the C++ I always wanted, which is more or less its intent. It's fast. The D code I write routinely matches or outperforms the C++ I also write for comparison. D is a much cleaner language. It has obvious C++ inspirations but has thrown out decades of backwards-compatible cruft. As a result, D has some of C++'s best features, like sophisticated metaprogramming, with much nicer language. In fact, this is the part I like the most: compile-time function evaluation. D allows you to evaluate essentially any function at compile time for which all of its inputs are known at compile time. It almost feels like lisp macros, with the slight downside that they work on unstructured strings instead of (minimally) structured sexps. D is safe. It produces stack traces when I mess up instead of segfaults. It won't let me compile the most obvious errors it can catch at compile time. I'm not even sure yet if it's possible to have UB in D. D is flexible. It doesn't impose an opinion on how I should do things. I can do OOP, functional, or procedural as I please and provides useful tools to do all those. OOP is like the familiar classes you know from C++ and Java with interfaces instead of multiple inheritance. Functional programming utilities are useful without being burdensome. You can totally do a for loop in a pure functional function as long as the overall function has no side effects, which is very practical. D has a bunch of other niceties which you can explore in the D's gems section here: https://tour.dlang.org/tour/en/gems/uniform-function-call-syntax-ufcs https://tour.dlang.org/tour/en/gems/uniform-function-call-sy...
- vadansky 9y agoIs it a death sentence to try and learn Haskell on this challenge? Or should I go with a language I'm more comfortable in?
- TremendousJudge 9y agojust do it, what's the worst that could happen?
- mathw 9y agoNo. What's the worst that happens? You take longer to do the challenges? The leaderboard is irrelevant, as you can only get on it if you're in the right time zone/nocturnal/unemployed and really really fast, so what you then get out of it is a solid set of Haskell problem-solving skills. People learn languages in AoC every year. Do it! Some people do each day in a different language. Maybe don't do that...
- narimiran 9y agoWell, I've used previous challenges to learn/improve my Nim. And I can tell you, after solving whole 2015 challenge - my Nim skills have noticeably improved. Would recommend AoC as a learning tool.
- SatvikBeri 9y agoI found Project Euler really helpful for learning new languages, I imagine AoC is similar.
- suprfnk 9y agoThough I find Project Euler to be pretty heavy on the math problem solving, and not much on the day-to-day programming problem solving.
- throwaway7645 9y agoI agree with you. Not super useful for day to day stuff, but still fun and enlightening.
- staticelf 9y agoSo, what are people gonna work in? Anything interesting? I am myself thinking about doing the challanges in Powershell. Because why not suffer more on this earth.
- Fabled 9y agoI'm thinking on doing them in Rust and Clojure. I've dabbled in Clojure before but nothing serious and I'd like to build up some more familiarity. Rust because it's the first systems programming language that grabbed my attention; plus it's always good to have a varied selection of tools in your proverbial toolbox. I know that I can probably do them in 10 minutes in Python, but that's not going to be as fun or valuable, especially since I'm not going to be able to compete for the leaderboard due to timezone/work.
- staticelf 9y ago> I know that I can probably do them in 10 minutes in Python Then you are in the absolute top tier of the people competing. Either that, or you probably belong in this subreddit https://reddit.com/r/iamverysmart https://reddit.com/r/iamverysmart ;)
- Fabled 9y agoHaha, I meant the actual coding part. I'm sure the problem solving would take me longer, it's just that once I have a solution in mind I can code it in 10 minutes in Python, since I'm very familiar with it and use it almost on a daily basis. Having to think about basic things such as how to instantiate hash maps, what is the syntax for control flow, does this language have this particular functionality. This can take hours spent in reading documentation and debugging. From what I've seen from last year, the problems arent't that hard (they're meant to be solved within a day), so the real time consuming part is the coding.
- staticelf 9y agoI get what you mean, but after the few first days it gets kinda hard imo. It takes like 10 minutes for me to read and maybe grep what the problem is.
- pmulv 9y agoSince Peter Norvig has been topical this week, here are his great instructional ipython notebook solutions to last years AoC challenges[1]. [1] http://nbviewer.jupyter.org/url/norvig.com/ipython/Advent%20of%20Code.ipynb http://nbviewer.jupyter.org/url/norvig.com/ipython/Advent%20...
- kqr 9y agoThis was an incredibly satisfying format for this. Cool!
- twoquestions 9y agoI'll have to come by again tomorrow, but I must say the design of the site is beautiful. The content is immediately clear, and as you look closer it's clear that the author put some very subtle design touches on, but they aren't overwhelming. Well done!
- pharrington 9y agoIndeed, Advent of Code is easily one of the best computer games.
- soccerdave 9y agoHave really enjoyed this the last couple years! Wish that this would open at a more reasonable time for the east coast folks.
- geraldbauer 9y agoFYI: I plan to publish a Ruby Advent Calendar 2017 - 25 Days of Ruby Gems / Libraries, December 1 - December 25 @ https://planetruby.github.io/advent2017 https://planetruby.github.io/advent2017 Sneek preview of day 1 - https://planetruby.github.io/advent2017/01-blockchain-lite https://planetruby.github.io/advent2017/01-blockchain-lite
- estomagordo 9y agoI love AoC! Last year was the first time I got all 50 stars, as I was motivated by a competition held by a Swedish podcast. This year, I'm even hosting a pub meetup about halfway through December, centered around Advent of Code, where a group of us hopefully can help each other out.
- sh4z 9y agoBoth the podcast and pub meetup seems interesting. Do you have some more information?
- hateful 9y agoIt took me a while to figure out this wasn't an article outlining a new way of coding starting in 2017.
- mattpk 9y agoI do codejam every year. Looks fun, will participate. First impressions tell me that runtime complexity won't as strict here however
- donaldihunter 9y agoCurrently working through this and last year in Perl 6. Really good fun.