Happy New Year


Happy New Year! 🎊

The spring semester is almost here, and I am trying to capitalize on my remaining Winter Break by reading some books and wrapping up some side projects.

In my last post, I mentioned that I had started The Mythical Man-Month. A few weeks ago I finished it, and here are some of the key takeaways I gleaned from it:

After finishing that book, I decided to brush up on my functional programming skills by reading Learn You a Haskell for Great Good!.

Haskell logo

I programmed in Haskell while taking a programming languages course at UCF taught by Dr. Gary Leavens, and I really enjoyed it. Since then I’ve wanted to learn more about Haskell and functional programming, and now that I’ve finished reading this book I feel like I have a decent grasp on the language. Of all the functional programming concepts, I think the idea of folds interest me the most. Something about the thought of specifying the manner in which operations are performed on a dataset so that the operations can be abstracted away and created ad-hoc via anonymous functions piques my interest 🤓. I’m not sure if I’ll be building any projects in Haskell any time soon, but at least I can finally say that I know what a monad is 😃 (spoiler: a value with context)

Runelock screenshot

Oh, and last Friday night I finished a new game, Runelock! I started this one all the way back in summer, made zero progress on it during the fall semester, and finally finished it a few days ago. Besides being busy with class, work, and applying to grad school, I neglected to finish the project because the last thing I had left to do was create the menus and add the music and sound effects. This was my first project in Godot, and I was worried that it would be difficult to do this; luckily putting these finishing touches on the game proved to be rather easy. I may go back and add more sound effects and the option to toggle the music and SFX audio separately in the future. Anyway, you can check it out here! (Also I’ve been alerted that the game doesn’t work if one tries to play it in the Itch.io desktop app. If you face this issue, try playing it in your browser instead).

Dragon Book, 2nd Edition

Finally, this week I began reading Compilers: Principles, Techniques, and Tools (commonly known as “The Dragon Book”, due to the dragon on the cover [which is purple in the 2nd edition of the book and reminds me of Figment, haha]). I am reading this book because next semester I am planning to contribute to a project that one of my prior professors, Dr. Paul Gazzillo, helped create called SuperC. SuperC is a parser which can parse both C and its preprocessor (which is notoriously difficult to parse). A more detailed explanation of SuperC can be found here. I am hoping to contribute to SuperC by fixing some of the bugs that have lingered since its initial release in 2012, and I think reading the Dragon Book (particularly the chapters on lexing and parsing) will help me better understand SuperC and thus be able to debug it more effectively. Truthfully I am a little nervous, but I am very grateful that I have been given the opportunity to contribute to a project like this 🙂