Proxying Rainbow Six LAN for WAN with .NET
A technical guide on using .NET to create a proxy for enabling LAN-based Rainbow Six Vegas 2 multiplayer over a WAN/VPN connection.
James Turner (Turnerj) is a programmer and entrepreneur with a passion for technology, building software products and running a development business, backed by years of hands-on experience in web development and startups.
20 articles from this blog
A technical guide on using .NET to create a proxy for enabling LAN-based Rainbow Six Vegas 2 multiplayer over a WAN/VPN connection.
Explains why ref-structs in C# are considered obsolete, focusing on the Obsolete attribute's impact on code coverage and Span usage.
An update on debugging and dependency challenges in C# source generators, with practical solutions and ongoing issues.
A developer uses Win32 APIs to create a custom launcher that fixes windowing and crashing issues when running the classic game Battlefield 1942 on modern Windows.
A creative programming exploration of encoding flag designs into a single 64-bit value using C# enums, bit shifting, and the ImageSharp library.
A developer explores using a single powerful remote server as a centralized desktop for both work and gaming, replacing aging laptop and desktop hardware.
A developer shares practical challenges and solutions encountered while implementing C# source generators, focusing on debugging and dependency issues.
A developer's journey from a hacky PHP prototype to launching a SaaS product that automates analytics and SEO tasks for small businesses.
Explores the concept and implementation of multilayer caching in .NET applications, discussing performance trade-offs and strategies.
Part 3 of a series on the Levenshtein Distance algorithm, focusing on advanced C#-specific performance optimizations for the inner calculation loop.
Explores using SIMD (Single Instruction, Multiple Data) CPU instructions to optimize the Levenshtein Distance string comparison algorithm.
Explains memory and performance optimizations for the Levenshtein Distance algorithm, building on a basic implementation.
Explains the Levenshtein Distance algorithm, a method for calculating the difference between two strings, with examples and complexity analysis.
Explains Microdata, a format for describing web page content for SEO and structured data, comparing it to RDFa and JSON-LD.
A guide for developers on generating product ideas by identifying real-world problems, emphasizing problem-first thinking over solution-first approaches.
A guide to integrating MiniProfiler with MongoDB in .NET using the MongoFramework wrapper library for performance profiling.
Discusses the prevalence of bad design in tech, from confusing code to poor UI, and introduces UX principles like affordance and user-centered design.
A guide to building a polite web crawler that respects robots.txt, manages crawl frequency, and avoids overloading servers, with an example in .NET.
Introducing Hangfire, a .NET library for scheduling and managing background tasks with a dashboard, persistent storage, and distributed support.
A developer's guide to the complexities of handling time zones, daylight saving, and IANA databases in software development.