Projects
The entirety of my portfolio can be found on GitHub.
NotifyPropertyChanged.Verifier - test INotifyPropertyChanged
Introducing NotifyPropertyChanged.Verifier, a fluent extension of xUnit for testing implementations of INotifyPropertyChanged in ViewModels. It's a .Net Standard 2.0 library and can be used both in .Net Core and the full .NET Framework.
Xnapshot - automated iOS screenshots
Xnapshot enables you to use C#, together with Xamarin.UITest, to automatically take app screenshots for you. Just derive from the abstract Screenshots class, implement one simple method per screenshot and use your time productively while your computer takes the screenshots.
Jekyll YAML front matter validator
Jekyll YAML front matter validator is a dotnet script that validates Jekyll YAML front matter according to specific rules verifying that a Jekyll blog will build correctly. It checks for issues involving categories, layout, title, description, date, image, and tags.
Open a folder in Visual Studio Code
With this macOS service, you can quickly open any given folder as a project in Visual Studio Code from the Finders context menu.
dotnet-script Docker Image →
dotnet-script is the best way to run scripts written in C#. This Docker image makes running the scripts easier than ever, you just need Docker and can run your scripts with nothing but Docker installed on your machine!
Xamarin Forms birthday workshop
This project is a workshop where the participants will create an iOS and Android birthday reminder app using C# and Xamarin Forms. No prior knowledge of mobile development is necessary to complete the workshop. The project contains detailed step-by-step instructions and a slide deck used to illustrate some finer points.
Python script for creating transparent PNGs
With my transparent PNG script, written in Python, you can easily create a transparent PNG of any size using the Terminal. Don't have Python? No worries, use the Docker image instead.
Cloudflare Cache Purger
This dotnet-script purges relevant pages from the cache on Cloudflare when adding a new post to a Jekyll repository.
Comics Downloader
Comics Downloader is a dotnet script that will download comics from comics.io. It will start with a specified strip and continue until all strips are downloaded for the given comic. It can also optionally combine them into a .cbz-file, a comic archive.
ASP.NET Core workshop →
This project is a workshop where the participants will create an ASP.NET core web-app, API, and finally orchestrate the entire solution using Docker and Docker Compose. Branches for each step of the workshop is provided, making sure no student is left behind.
FermiContainer - an IoC container for the rest of us
FermiContainer supports the registration of interfaces and implementing classes. Through constructor injection, the dependencies known to the container are automatically resolved. No attributes or XML configuration are needed. This is simplicity at its best, and FermiContainer is truly a C# IoC container for the rest of us.
Async Method Caller - Easy async Without await
AsyncMethodCaller is used to call methods asynchronously and continue with other methods after execution completes if you cannot use async and await. It makes asynchronous calls easy to understand and test. Very useful in ViewModels.
Workday Countdown - a Status Board panel
Workday Countdown is a countdown panel for Panic's Status Board 2 application for iOS. Different from the stock Countdown panel, Workday Countdown filters out weekends and public holidays. This provides a more realistic countdown in a work setting where people are not expected to come in on weekends.
Command line Tic Tac Toe →
One of my first games written in C++ and the first with AI is this command line implementation of good old Tic Tac Toe. The AI is garage level, but it should defeat or draw any player when playing first.