2021 So Far
Tags: personal, web, elixir, liveview
Published: 2023-01-04 03:24:02

---
title: 2021 So Far
published: true
date: 2021-11-14 21:36:39 UTC
tags: personal,web,Elixir,Liveview
canonical_url: https://braytonium.com/2021/11/14/2021-so-far/
---

Originally, I wrote up a post trying to give a 2020 - 2021 overview that got hosed with a local git repo of this blog. I'm using the moment to remind myself that backups are important. It's also important to complete ideas for posts or journals quickly, even if something doesn't feel complete. Letting those linger for days without a git commit that hit the server is a genuine problem and I need to at the very least create and push to a new branch often.

One change that happened at the end of 2020, I started the [journal](https://braytonium.com/journal/) section to try to capture bite-sized rough ideas. I had started a journal at work with notes in files like `Phoenix Developer Diary.txt` and I looked for a solution to merge my different diaries. The excellent Claire Codes has an extremely consistent diary at [clairecodes](https://www.clairecodes.com/dev-diary/) and served as my main source of inspiration.

I've gone all-in learning Elixir by participating in my first [Advent of Code](https://github.com/w0rd-driven/advent-of-code-elixir) in 2020. I tapered off pretty quickly as I had serious problems working through loops and control flow. Seeing other examples on Elixir Forum helped immensely as I had slowly gotten better at reading the code. Later on in the year, I decided to take a TodoMVC sample through to a [LiveView version](https://github.com/w0rd-driven/live_view_todo_mvc/blob/main/docs/index.md) with a little help from other resources on the internet. I had also started [a diary](https://github.com/w0rd-driven/live_view_todo_mvc/blob/main/docs/diary/day01.md) where I wanted to capture the approaches I took each day I worked on the example. I have a plan to try to tackle my version from scratch but I'm also looking at other application ideas.

While the Advent of Code and TodoMVC was good to get my feet wet, I learned far more by pushing through [Exercism exercises](https://github.com/w0rd-driven/exercism-elixir). If you're on Exercism and curious, my solutions can be found [here](https://exercism.org/profiles/w0rd-driven/solutions). I highly recommend using Exercism to learn any language it covers as the recently released version 3 makes for a great experience. Exercises feel a bit more "real world" and less like brain teasers that happen to use programming concepts. Even if I happened to look at the `HINTS.md` file, it never felt like cheating as it would only guide us toward a solution, not implement it.

After attending the excellent ElixirConf 2021 virtually, I've started working with Livebook in a [few examples](https://github.com/w0rd-driven/livebook_notebooks). I wanted to highlight the 3 notebooks that use the excellent `spider_man` package to crawl 3 websites: Elixir Jobs, Elixir Radar Jobs, and Elixir Companies. Parsing the DOM of each required slowly stretching far outside my comfort zone. It's also worth mentioning that in the `Elixir Jobs` example, I left a problem I found under the `Sorting the Results` section. Due to the zero-width space, the section throws the message `** (SyntaxError) nofile:5:1: unexpected token: "​" (column 1, code point U+200B)`.

Coming to the end of 2021, I'm looking forward to immersing myself deeper in the Elixir ecosystem. Livebook is also a great way to get your feet wet with Elixir concepts, like a powerful language scratchpad. There have been other life changes since January 2020 but those deserve separate posts when I can get to them. Fortunately, the pandemic hasn't been harsh on my family or extended family at all, which I consider an extreme blessing. I can't say we weren't impacted by the last 2 years but things could've been much worse.