Writing an iRacing SDK Implementation in F# (Part One)

In my previous post, I discussed how I’ve decided to learn F# in 2021 for a number of reasons. Around the same time, I also happened to setup my Sim Racing rig so that I could continue to play iRacing with my VR headset (HTC Vive). Its been several years since I’ve last played, but with COVID-related curfews being implemented here in Montreal tomorrow, I’ve been increasingly taking up home-based... [Read More]

Why I'm Learning F# in 2021

For the past while, I’ve had the goal of learning a functional programming language in the back of my mind but never acted on it for various reasons. However, during a recent weekend afternoon of winter COVID-lockdown web browsing, I stumbled across the terrific F# for fun and profit which piqued my interest and convinced me to take the plunge and learn FP in 2021. I believe that learning different... [Read More]

Developing a Lightweight TUI Music Player in C# using Terminal.Gui (Part Four)

In Part Three of this guide, we implemented Dependency Injection (DI) through the use of constructor injection and expanded our player interface by adding volume controls. With all these features in place, the final part of this guide will add some more key features including loading playlist. At the end of this tutorial, our player should look something like this: [Read More]

Developing a Lightweight TUI Music Player in C# using Terminal.Gui (Part Three)

In part two of this guide, we refined our audio player and added some play, pause, and stop buttons. In Part Three, we’re going to go a step further and implement volume controls. However, before we do that, we’re going to refactor our program to make use of Dependency Injection (DI) in order to pave the way for cross-platform support. [Read More]

Developing a Lightweight TUI Music Player in C# using Terminal.Gui (Part Two)

Since the last part of this guide, I’ve been working quite a bit on refining the program structure before going forward. I ended up finding some sample code from NAudio’s author which documented how to manage Naudio’s lifecycle in a GUI application (close enough! :-P) and based my model on that going forward. In addition, you can find the other parts of the guides here: [Read More]