2022 Recap
- 2022-12-31 -In this post I'd like to look back and talk about a few personal projects I've worked on in 2022.
Blog
This year I wrote 4 new blog posts (including this one).
The post that took the most work is Building a bulletin board using twain and friends, which is a port of an older tutorial about scotty to the twain web package.
This actually took more effort than I expected. Twain and Scotty are a bit different and the concepts do not map very easily from one to the other. I had to spend a bit of time rethinking how to introduce this library in an approachable way. I've also decided to add some additional information about WAI and other topics along the way.
The other important article I worked on was Giml's type inference engine, which was written in 2021, but had a significant edit.
When I first wrote the article there was one step I was uncertain about - generalization. At the time I omitted it and secretly hoped someone will let me know if I missed an important step and tell me why is it important, but that didn't happen unfortunately. However, after thinking about the interaction with other features (such as modules) I came to understand its importance, and edited it into the article.
Streaming
This year I did not get back to working on Giml on stream, or streaming in general. I only streamed once this year when I talked about compilers and Haskell. I'd like to stream more in 2023, and make some more progress on Giml.
Open-source software
Giml
Giml did not see a lot of work other than adding the generalization step to the type inference and some refactoring. I kinda got stuck with doing the not so fun work of rewriting the parser in a more robust way. This drained my motivation. I hope to get across that hurdle and get back to working on Giml because there are many more interesting things to work on!
GlideVM
GlideVM is a stack-based bytecode interpreter that I started while streaming before I started Giml.
This year I spent a bit more time on it, though not on stream. I refactored some stuff and added comparisons and jumps.
The next interesting feature for this project is closures. I hope to spend some time on it in 2023 as well.
sqlite-easy
sqlite-easy is a primitive yet easy to use database library for interacting with SQLite3. I just wrote a blog post introducing it, so read it if youwant to learn more!
This is probably the most noteable personal project I worked on this year.
Book
Thanks to your feedback and contributions, Learn Haskell by building a blog generator have seen additional editing, notes and exercises! Thanks for everyone who contributed!
This year I posted the book on Hacker News and to my surprise it got 230 upvotes, which I believe makes it the second most popular link with 'Haskell' in the title for 2022!
To my even bigger surprise I've even found out that my book is on goodreads!
I'd also like to highlight a review of the book. I'm always happy to hear what people think about my work, and constructive feedback helps me improve and make my work better.
Final thoughts
This is my third time doing a yearly recap type of post. This year been a bit lighter on content than previous years, but I'm still proud of the progress I've made with my personal projects, and I hope at least some of it can be useful for others as well.
Take care and happy new year!