Digests » 131


Cross-platform, Actionable, Graphical Git Dashboard

Straightforward, graphic GUI for your Git projects. Free Cross Platform App that works with Mac, Windows and Linux.


Breaking .NET’s Random class

Se­cu­rity is hard. In a cur­rent pro­ject I saw some code that cre­ated some ac­cess to­kens based on a ran­dom num­ber gen­er­a­tor – .NET’s Random class. The code used an in­stance of Random stored in static field and I got cu­ri­ous:

.NET Standard – What It is And How It Applies to .NET Core

Over on the Coding Blocks Slack group, Luke Warren had suggested that I write a post about the .NET Standard. Luckily for him, I’d already been planning on writing one. The original release would have been towards the middle of December 2016, but I decided to bring it forward a few weeks. So without further ado…

15 Years of Concurrency

In a Tale of Three Safeties, we discussed three kinds of safety: type, memory, and concurrency. In this follow-on article, we will dive deeper into the last, and perhaps the most novel yet difficult, one. Concurrency-safety led me to the Midori project in the first place, having spent years on .NET and C++ concurrency models leading up to joining. We built some great things that I’m very proud of during this time. Perhaps more broadly interesting, however, are the reflections on this experience after a few years away from the project.

Introduction to Asynchronous Programming in C# (Part 2)

Hi everyone, Jeremy Kruer here. Today I am going to take a little break from the F# programming and talk about asynchronous programming in C#. A while back I created a video about Asynchronous Programming in C# and I promised that I would show an example of how to convert a synchronous Web API into an asynchronous Web API. A viewer posted a comment asking for me to create part 2, so today I am going to create part 2 of that video.


Discriminated unions, pattern matching and partial applications for C#

Succinc<T> provides a set of union types (Union<T1, T2>, Union<T1, T2, T3> and Union<T1, T2, T3, T4>) where an instance will hold exactly one value of one of the specified types. In addition, it provides the likes of Option<T> and Maybe<T> that can have the value Some<T> or None.