c.im is one of the many independent Mastodon servers you can use to participate in the fediverse.
C.IM is a general, mainly English-speaking Mastodon instance.

Server stats:

2.8K
active users

#aoc2023

0 posts0 participants0 posts today

- Yesterday decided that I should probably check out 's regular expression syntax. It does make the input line parsing a lot less verbose, if more cryptic ("and now you have two problems", as the joke goes).
- I really love the fact that OCaml has a toplevel REPL where you can interactively experiment (e.g. figuring out said regexes) like you do in or . To quote the lovely first line from the relevant docs: "An OCaml toplevel is a chat between the user and OCaml".
- Spent almost too much time hacking around; had to make my Saturday trail run a bit shorter than usual. Sunny but windy in the mountain. Current audiobook: "God Emperor of Dune" by Frank Herbert which I last read in high school.
- Attended my bro-in-law's band concert, an open-air show at Simonsvlei. He warned us that it was going to be "a school concert but with adults". That wasn't too inaccurate, but school concerts with adults still have craft beer in plastic cups and cheering and vibe – it was super enjoyable. BiL has become quite the drummer in just 3 years, and their cover of Muse's Resistance was the highlight.
- Today I tackled some of my outstanding puzzles. Had to smile when I saw Day 10, which is a twist on a classic (and favourite) maze-solving puzzle in competitive coding.
- Asked the 14yo to handle the entire for lunch, and he took control and eschewed advice like only a teenager who just finished their first year of high school can do. It turned out delicious.

- Yesterday helped to set up the 12yo's entrepreneurs' day stand. Fudge and a soda fountain always seem to be a hit with the other kids. She turned a nice profit as fundraiser for her class's Netherlands exchange next year.
- Knibbled a bit on Day 7 yesterday, but the work day was a bit full to really spend time on it.
- Today I again chaired the annual Jac van der Merwe competition for the best in an Engineering final-year project at . Absolutely incredible to see the quality and potential of the students' work. Thought of you, @hugovdm.
- Finished Day 7, Part 1 of , and had a look at Part 2 of this one and Part 1 of Day 8. I'll continue doing 1⭐ each day unless Part 2 is a fairly simple extension (like Day 6).
- Tinkered a bit with an interesting full-stack web framework in that @last is putting together as a side project. If I get time I might take a stab at converting my personal page to this. I've been thinking of doing a -based CMS for a while now; this might be a nice foundation.
- Fridays are gourmet burger nights at the Van Rooyen household. Tonight we had thick deli beef patties with lightly toasted buns and a thick homemade Caesar sauce out of Louise Pickford's "Sauces" 😋

- Found my day surprisingly meeting- and deadline-free. Spent a good bit of time clearing the backlog of some non-urgent tasks that were always kicked down the road. Mostly just quiet weeding of long-overdue stuff.
- was a bit simpler; both parts could be solved with some algebra and without heavy computation.
- When learning one initially struggles with the borrow checker. The wrestle can sometimes feel Jacobean but is a fundamental part of writing memory-safe code. The iteration happens on compile, and the compiler can be wonderfully helpful – probably the friendliest one I've met (especially with Clippy!). With your mentor is the type checker, but this is a friendlier game of ping-pong happening right in the editor, and feedback is instant. The OCaml LSP is just excellent, and with some optional type annotations it really becomes your pair programmer. Once you test, everything more often than not just works. When it doesn't, you're looking for logic errors in the code rather than anything related to syntax or type.
- Attended the ribbon-cutting ceremony of a new academic building at Engineering. These events are always good networking. I love catching up with my former colleagues' gossip about academic politics. No soap opera or Netlfix B-drama can compare.
- Productive evening time sorting out necessary things rather than attending to some or other fire. If I have any resolution for the next year, it would be to assert more of this kind of sente over every day.

- Skipped Day 4, Part 2 for now; on to Day 5.
- Brief 7am check-in with the Japanese client.
- One of our larger clients today remarked that they like working with us because we are "80% meticulous and 20% pragmatic". The perfect can be the enemy of the good when it comes to getting a project across the line, but boy – quality is still the bulk of it.
- Blockchain is a dirty word again nowadays, but I had to spend quite some time sorting out transfers of ERC-721/1155 tokens for a Fanfire client today. I really love this tech, especially the magic of authentication rather than brokering my identity through one of the MANGAs.
- Finished Day 5, Part 1 of . Half the effort was parsing the input; made the list folding a cinch. Got Part 2 mostly done, so might wrap it up later. ⭐
- Late afternoon trail run in the beautiful .
- My wife and I kicked back for an episode or so of , Season 2. What an absolutely brilliant series. There are even some small vignettes that I want to tie up with a ribbon and send to people who would appreciate it.

- Finally got round to doing Day 3 before work.
- Starting to actively box in "greedy" commitments that demand attention and time, and disrupt the well-behaved projects. I'm working towards a much less reactive daily workflow. Keep , avoid gote.
- A fun aspect of is the second part of each day's puzzle which you don't get to see until you successfully complete the first part. If you write your code for Part 1 in a modular way that's easy to reuse and refactor, Part 2 is sometimes really easy. Happy that this worked out for me today ⭐⭐
- A year ago I would have been very uncertain about the role of an Industrial Engineer in a technology development firm like Octoco. We've just hired our second one, and my current "golden ratio" is 1 IE per ~20 Software/Electronic engineers – for us, these are the people who engineer our work processes; both internal and external.
- Some admin before bedtime, then finished AoC Day 4, Part 1. Set types in are finicky at first, what with comparator witnesses and all, but really powerful and concise.

- Day 3. Was just able to quickly look at the first puzzle before I had to start prepping for the day. I've pushed the solutions I have so far to github.com/gvrooyen/aoc2023 – any comments or tips are most welcome. I'm a relative newcomer to but is a great way to practise.
- Went to at Simon's Town. Hopefully my oxygen consumption will reduce as we get to dive more; I had to cut my second dive short when my air got low. Wonderful day out with perfect weather.
- As with long-distance trail running, what I like about diving is meeting random other people where the known intersection of interests is at first just a single activity. "Slow sports" like these where an excursion leisurely takes up a large part of the day leads to a wonderful discovery of stories and more shared interests.
- Gradually realising that @cpbotha@emacs.ch has slyly hoodwinked me into being more mindful of how I spend my hours. Committing time to a somewhat public, somewhat permanent record would seem to weigh down this lightness of being.
- Hardly got the chance to dip into the rest of the coding puzzle. Got home mid-afternoon after the dive, ate lunch and took a late-afternoon nap. Gamed a bit with the eldest (work and exams kept us from spending solid blocks of time recently).
- Power off later than expected with the ; rather calling it a night.

GitHubGitHub - gvrooyen/aoc2023: Advent of Code 2023 in OCamlAdvent of Code 2023 in OCaml. Contribute to gvrooyen/aoc2023 development by creating an account on GitHub.

- Very (very) grudgingly got up to be at the youngest's school at 07:30 for a 6h-long car washing fundraiser... which turned out to be more fun than I anticipated. The kids seemed to really enjoy it, and my car hasn't been this clean in years.
- Only got round to doing Day 2 after said car washing marathon. ⭐⭐
- On Thursday I mentioned expectation tests in (c.im/@gvrooyen/111499437538149) which is a really useful way to debug while you're coding your way towards a solution. A beautiful part of the build system is that you can run `dune test` to see whether the output looks sane before you have defined the expected output, and then just do `dune promote` to have it automatically patch your test code with the result. Wicked.
- The eldest has completed his first year of high school. Birthday parties are now evening events, and everything's a bit cooler in a good way.

- Acted on my resolution to cut back on commitments that are no longer fruitful.
- It takes some time to learn how to tame 's `dune` build system, but it's pretty powerful. Today I appreciated `dune build -w` and `dune test -w` to automatically watch for file changes and automatically rebuild or test.
- Workday was mostly admin, correspondence, meetings, and documentation. A low-output day that still hoovers up the hours. None of it was unnecessary or wasteful, just humdrum.
- Got both stars for Day 1 in , but don't plan to do this every day. The puzzles will get progressively harder and more time-consuming, especially for the second star. Still, this is really fun and satisfying! Geekiest way to get into the holiday mood, especially on humdrum days.