Chapters:
-
agile architecture
-
transparency humility involvement
-
forceful decisionmaking egen necessären
-
recruitment
-
what is architecture
-
processes
-
role of lead developers
-
principles, practices and guidelines
Chapters:
agile architecture
transparency humility involvement
forceful decisionmaking egen necessären
recruitment
what is architecture
processes
role of lead developers
principles, practices and guidelines
/* | |
Part 1 was solved by first exploring the internals of Santa's ship manually then | |
creating a command file / parsing to collect all items and move to the security | |
checkpoint. Then a random number of items between 3 and 6 are picked up and | |
tried if they are the right combination until we find the right one. Seemed simpler | |
solution which would be quick enough given the relatively few number of items compared to | |
doing a more proper search. It will typically take 5-20 seconds to find the right combination. | |
Part 2 will have to wait until days 16, 18, and 22 are completed, if ever. |
/* | |
Well, well took longer than anticipated due to mixing up index-variables (unsurprisingly). | |
*/ | |
use std::io::{BufReader, BufRead}; | |
use std::fs::File; | |
type Level = Vec<Vec<char>>; |
/* | |
This was swiftly accomplished but part_2 will be quite different... | |
*/ | |
use std::io::{BufReader, BufRead}; | |
use std::fs::File; | |
use std::collections::HashSet; | |
type Habitat = Vec<Vec<char>>; | |
fn main() { |
/* | |
Probably one of the quicker days to solve both parts. Strayed a bit on the network-idle detection | |
but all else was quite straight forward. Solution could be cleaner with respect to the NAT-handling | |
though. | |
*/ | |
use std::io::{BufReader, BufRead}; | |
use std::fs::File; | |
use std::collections::HashMap; |
/* | |
Part 1 was easy enough by simply appplying the different shuffles. | |
However, for part 2 the solution in the function part_2 will probably | |
take a number of years to complete. I was hoping that there would be a | |
loop somewhere so that you could determine the answer based on position | |
in the loop. But there does not seem to be a loop at least not one that | |
is reached in a reasonable time. | |
I need more mathematical puzzle practice, I guess, to handle these kind of | |
questions. I might get back and do a solution based on the function |
/* | |
To run, put the IntCode-program in a file named prog and the spring droid program | |
in a file named droid_prog. | |
It was fairly easy to come up with a spring droid program for part 1 manually: | |
NOT C J | |
NOT A T | |
OR T J | |
AND D J | |
WALK |
/* | |
Brute force solution in Rust. No attempt is made to predict the shape of the | |
tractor beam. Instead the beam is scanned for a sufficient distance (1200 steps). | |
and then the 100x100 box (supposedly Santa's ship) is fitted into the scan at | |
the optimal posistion | |
It take about 30 minutes to run this when compiled in release mode. | |
*/ | |
use std::io::{BufReader, BufRead}; |
/* | |
Kotlin: | |
Messy - the mistake I made was not to go for memoization from the beginning which led to a lot | |
of churn which is obvious from the currrent look of the code. | |
Run like so: | |
val maze = Maze.loadFrom("prod") | |
maze.scan() | |
val preparedSegments = maze.prepareSegments() | |
val nodes = maze.createNodeMesh(preparedSegments) |
/* | |
Day 20 of Adventofcode 2019 in Kotlin | |
Run like this: | |
val maze = Maze.loadFrom("prod") // prod is a file with the puzzle input | |
maze.scan() | |
maze.prepareSegments() | |
maze.createNodeMesh() | |
maze.createPortalConnections() | |
maze.shortestPathLength(maze.findPortal("AA"), maze.findPortal("ZZ")) |