56,966 blogs · [ { "id": "01a087a0-43cf-7293-93fa-0b83c15ca9a6", "title": "Bit Masking Made Easy with .NET Enum Flags", "url": "https://markjames.dev/blog/bit-masking-enum-flags-dotnet", "published_at": "2026-02-17T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c15e981b", "title": "6502 Emulation - The Jump Indirect Bug", "url": "https://markjames.dev/blog/6502-jump-indirect-bug", "published_at": "2026-02-12T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c1d62f1b", "title": "Securing an ASP .NET Core Web API using JWT and Role-based Authorization", "url": "https://markjames.dev/blog/jwt-authorization-asp-net-core", "published_at": "2023-11-25T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c2547cff", "title": "Dynamically Importing Images in Astro Components the Right Way", "url": "https://markjames.dev/blog/dynamically-importing-images-astro", "published_at": "2023-11-01T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c300b7c5", "title": "Setting up Wiki.js with Docker Compose and an Nginx Reverse Proxy on Ubuntu Linux", "url": "https://markjames.dev/blog/setting-up-wikijs-nginx-docker-ubuntu", "published_at": "2023-03-11T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c326542c", "title": "Responsive Pardot Form iFrames using Seamless.js", "url": "https://markjames.dev/blog/embed-pardot-form-responsive", "published_at": "2022-08-02T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c3689866", "title": "Developing a Telegram Bot with C# and the Metropolitan Museum of Art's API", "url": "https://markjames.dev/blog/building-telegram-bot-csharp", "published_at": "2022-07-28T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c406edd6", "title": "Fundamentals of Computing with .NET", "url": "https://markjames.dev/blog/computing-fundamentals-csharp", "published_at": "2021-09-07T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c4644269", "title": "Functional Programming with Python — Building a Simple Slot Machine", "url": "https://markjames.dev/blog/simple-slot-machine-functional-programming-with-python", "published_at": "2021-08-05T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c4dee31c", "title": "Drawing a Racetrack From GPS Coordinates With C#", "url": "https://markjames.dev/blog/drawing-racetrack-from-csv-csharp", "published_at": "2021-02-20T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c5241d48", "title": "iRacing Telemetry With F#", "url": "https://markjames.dev/blog/iracing-telemetry-fsharp", "published_at": "2021-01-23T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c5282763", "title": "Plotting Graphs from CSV Files in F# Using XPlot", "url": "https://markjames.dev/blog/plotting-csv-files-fsharp", "published_at": "2021-01-23T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c605aeec", "title": "Error Handling in F# with Option Types — A Practical Example", "url": "https://markjames.dev/blog/handling-errors-fsharp-with-option-types", "published_at": "2021-01-14T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c6216235", "title": "Writing an iRacing SDK Implementation in F# (Part One)", "url": "https://markjames.dev/blog/writing-an-iracing-sdk-implementation-fsharp", "published_at": "2021-01-08T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c70fb123", "title": "Writing a Linnstrument Companion App with SwiftUI and AudioKit (Part 2)", "url": "https://markjames.dev/blog/writing-a-midi-controller-app-part-two", "published_at": "2020-05-07T00:00:00+00:00" }, { "id": "01a087a0-43cf-7293-93fa-0b83c73c8ba0", "title": "Writing a Linnstrument Companion App with SwiftUI and AudioKit (Part 1)", "url": "https://markjames.dev/blog/writing-a-midi-controller-app-part-one", "published_at": "2020-05-06T00:00:00+00:00" } ] posts Claim your blog
Back to markjames.dev
Blog · corpus.blog/blogs/markjames.dev/posts

markjames.dev

markjames.dev

2026

2023

2022

2021

2020