Review Of 2021

01 Jan 2022 - Alexander McRae

“too many interests, too many exciting opportunities for learning, research, and thought. What a marvelous predicament! Not only is the end not in sight, the pace is not slackening. We have many future joys.”

This blog post is a reminder to myself of the things I have acomplished in 2021. The purpose is to be able to look at it one day as my history and remind myself of the things I have done, felt, and seen.

Career

Projects

NimbleFlight

NimbleFlight is a flight controller based on the stm32f3 discovery board. This project includes both the software and hardware to run the flight controller. It is currently a work in progress but this year I was able to make a lot of headway on the software side of things. 2022 will hopefully get me to a point I can work on the hardware and polish the software. I am currently working on a rewrite of the software to incorperate a RTOS with memory protection and better debuggability than what I currently wrote.

Compiler (CSC 435)

As part of my course work for UVic’s CSC 435 course with Jason Dorless we were tasked with writing a compiler with Antlr. The project was extremely fun and informative. I ended the course with a great grade and working compiler for the unamed language. Further I was able to extend my learning outside of the classroom, I spent some time learning Racket and the #lang features provided. From there I extended my programming language journey to Rust where I wrote a DSL (proc-macro) to generate a Lexer and am currently working to extend the DSL to a parser.

AlpineToast

This is a tiny js library I wrote to create toasts, those pop ups you see on websites when take a action which may not have a visual effect but want comfirmation. The library was fun to write and interesting to make work across multiple frameworks. Sadly the library turned into a scope creep disaster as I kept thinking of different ways others may want to use it and adding random features. Overall it was a great learning experience (yes even the scope creep).

RustySnake

This year due to the pandemic I decieded not to participate in BattleSnake. Some people use the project as a template however so I figured I would spend the effort to update the dependencies and modify it for the latest version of the game.

Village

It seems like every year I rewrite my private social media application (me and my close friends) and this year was no exception. With the growing popularity of Phoenix Liveview I decieded to make use of its features. In all honesty I was a little disapointed in composability of LiveView Components but there is no doubt it is productive. Elixir and Phoenix are something I would definitely use again when the usecase comes up. Overall this project is just to scratch my own itch for writing web apps and trying the new and cool latest tech.

Hobbies

Books Read