# Wrapping xattr as a racket module

I recently came across a question: how do you read extended file attributes in Racket. Not being actually that familiar with extended file attributes, I searched online. Nothing seems to currently exist (other than in the FUSE module, but that’s specific to FUSE), but there is a system level exectuable that one could wrap to do this. I haven’t done much1 with Racket’s system or system* function before, so let’s give it a whirl.

# AoC 2018 Day 14: Functionally Circular Elfs

### Source: Chocolate Charts

Part 1: Create an infinite stream of numbers, by starting with [3, 7] with two pointers: 0 and 1. To add values to the list:

• Add the current values of the two pointers
• If the value is less than ten, add that value to the end of the list
• If the value is greater or equal to ten, add 1 and then the ones digits to the end of the list
• Update each pointer by adding the value it is pointing at to its current index plus one

With that algorithm, find the ten digits after a given index.

# AoC 2018 Day 13: Mine Cart Madness

Part 1: Load a minecart track that looks like this:

/->-\
| | /—-
| /-+–+-\ | | | | | v | -+-/ -+–/ -—–/

# AoC 2018 Day 12: Fat Cellular Automaton

### Source: Subterranean Sustainability

Part 1: Create an infinite 2D cellular automaton with transition rules based on two points to each side, starting with initial state at index 0 to the right.

After 20 generations, what is the sum of indexes of points turned on?

# AoC 2018 Day 11: Gridlocked Fuel

### Source: Chronal Charge

Part 1: Define a grid as follows (x,y coordinates + a constant C):

• r(x) = x + 10
• G(x, y) = hundreds(r(x) * (r(x) * y + C)) - 5

Find the 3x3 area in a 300x300 grid with the highest total G(x, y) .

# AoC 2018 Day 10: It's Full of Stars!

### Source: The Stars Align

Part 1: Given a system of moving particles (with position and velocity) find the point where the particles spell a message. What is that message?

# AoC 2018 Day 9: Marble Madness

### Source: Marble Mania

Part 1: Place marbles in a circle such that each marble is placed by skipping one place except for marbles divisible by 23. For those, don’t place them, skip back 7 places, and remove that marble as well. Add these two marbles to your current score.

Given a specific player count and last marble, what’s the highest score?

# AoC 2018 Day 8: Checksum Treeification

### Source: The Sum of Its Parts

Part 1: A custom tree data structure is defined as:

• child count
• child count additional subtrees (recursive)
• metadata count metadata nodes

Calculate the sum of all metadata nodes.