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]

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

Recently, I’ve been listening to a lot of SomaFM internet radio streams while I work as they have a lot of terrific commercial-free programming. One day while being creatively inspired by the Sonic Universe station’s offerings, I had the idea of creating my own music player with support for streaming. Not only would this be a great project for continuing to learn C# and Dotnet Core, but it would also... [Read More]