From 4bf167df5d0abee939bf3ebfa925c4fe22cd0502 Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Tue, 16 Feb 2021 22:28:18 -0500 Subject: Move git links in blog --- src/blog/advent-of-code-2020.html | 91 --------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 src/blog/advent-of-code-2020.html (limited to 'src/blog/advent-of-code-2020.html') diff --git a/src/blog/advent-of-code-2020.html b/src/blog/advent-of-code-2020.html deleted file mode 100644 index 3b78433..0000000 --- a/src/blog/advent-of-code-2020.html +++ /dev/null @@ -1,91 +0,0 @@ -title: Advent of Code 2020 -date: December 25, 2020 17:35 ---- -

Merry Christmas to all!

- -

-Advent of Code 2020 has come to an -end. At the time of this writing, around seven thousand people finished the -whole thing, out of the 150000 that had submitted a solution to the first day's -problem. And I'm one of them! -

- -

-You can see my solutions here. -I started out with C, moved on to Ruby, and near the end switched to Lua. I'm -going to need some Lua knowledge for the Redis section of the databases class -I'm taking right now, so AoC was a good time to get familiar with the language. -

- -

Thoughts on AoC 2020

- -

-I found most of the problems fairly simple, but it was fun to go through them -all anyways. -

- -

Most Tedious Award goes to...

- -

-Day 20 Part 2. My solution ended up being a good 340 lines of Lua split -between two scripts. This is the last problem I solved because I knew it would -require a lot of work to get working, so I procrastinated on it until the end. -

- -

-In the end, the process of solving this was actually kind of fun, and getting -the final solution satisfying. I think it might have something to do with the -geometric/visual nature of the problem. There's just something nice about -rotating and flipping ASCII squares with code, and seeing them all line up -correctly in the end. -

- -

Most Cheesed Award goes to...

-

-Day 19 Part 2. Rather than implementing a parser generator that could -handle this grammar by hand, I bodged together a - - Bison (aka Yacc) solution -. It's not very pretty, especially the Bash script that just calls the -parser with each input word separately and counts how many times it didn't exit -with a syntax error. But it works! And I finally learned something about -Bison/Yacc and Flex/Lex, which I've had indirect exposure to before, but never -actually used. -

- -

-I was quite pleased with my Part 1 solution though, where I implemented a simple -recursive parser generator. -

- -
Runner-up in the Most Cheesed category
-

-Day 13 Part 2. I'll admit it, I just copied a Chinese Remainder Theorem -implementation from Rosetta Code. I'm sure the Python guys just used -numpy's CRT, so treating it as a library function doesn't seem too -cheaty for me. -

- -

Most Fun Award goes to...

-

-Probably a tie between the already mentioned Day 20 Part 2 and Day 19 -Part 1. Day 20 had that cool geometric component and satisfaction of -putting a puzzle together, but I'm a sucker for recursive parsers implemented -with higher order functions. -

- -

Thoughts on Lua

-

-Learning Lua was probably the most useful outcome of this year's AoC for me. I -feel pretty comfortable with the basic constructs of the language, and even -played around a bit with metatable-driven OOP. I don't know how closely I stuck -to general conventions, and didn't interact with any external libraries, but can -definitely read and write the language comfortably now. -

- -

-My one sentence summary of feelings towards Lua is that Go is to Java what Lua -is to Python/Ruby/JavaScript. Its very small vocabulary means you learn the -language quickly and don't need to think much while writing it, but your -programs can end up more verbose than the equivalent Ruby/Python. -

-- cgit v1.2.3