Instantly share code, notes, and snippets.

View OptionExtension.fs
type OptionDefault<'a> =
| Default of 'a
| Lazy of (unit->'a)
| Expected of reason:string
let (|.) (opt:'a option) (def:OptionDefault<'a>) : 'a =
match opt with
| Some (v) -> v
| None ->
match def with
View F# Game of life
F# Game of life
Philip Jander
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
View DatabaseObserver.cs
public sealed class DatabaseObserver : IDisposable
private readonly string _connectionstring;
private readonly string _sqlcommand;
private readonly Action<Observation> _onChange;
private readonly Action<Exception> _onError;
private readonly Action<string> _onWarning;
private SqlConnection _connection;
private SqlCommand _cmd;
private SqlDependency _dependency;
View nodecqrs.js
function UserWasCreated(id, name){
this.Event =;
function UserWasRenamed(id, name){
this.Event =;
View gist:3237207
public interface IProvideData
bool Provides(string key);
string Key { get; }
string Description { get; }
string Target { get; }
DatenTabelle DesignData();
DatenTabelle DemoData();
View gist:3283001
public static ModulKonfigurator EntlassungsantragReporting(this ModulKonfigurator cfg)
cfg.AttachDataproviderToViewmodel("EntlassungBeantragenViewmodel", "VM:Entlassungsantrag")
.Provide("Antragsdaten", "Antragsdaten zum Entlassungsantrag")
.Datenspalte("Stichtag", "01.01.2000", "Stichtag der Entlassung")
.Datenspalte("Grund", "Ablauf der Förderhöchstdauer", "Grund der Entlassung")
.Datenspalte("Aufnahme", "01.01.2000", "Aufnahmedatum des ersten Kindes")
View ZmqPollPool.cs
/// <summary>
/// Encapsulates a zeroMQ context and a worker thread.
/// Use the ZmqPollPool to server multiple 0mq sockets with single-threaded semantics.
/// Use MarshalAndWait or MarshalAsync to marshal 0mq context access to the working thread.
/// Call Dispose to close all registered sockets and terminate the context and thread.
/// </summary>
public class ZmqPollPool : IDisposable
private TimeSpan _pollTimeout;
View gist:3691683
public sealed class ZmqEventServer
public ZmqEventServer(ZmqPollPool pool, NetworkAddress broadcastAddress, NetworkAddress listenAddress)
if (!listenAddress.IsBindable) throw new ArgumentException("listen address must be bindable (i.e. IP address instead of DNS name)");
ZmqSocket broadcast=null;
var broadcastAddr = broadcastAddress.String;
var listenAddr = listenAddress.String;
View Concurrency_bug_in_2_0_5.cs
using System;
using System.Diagnostics;
using System.Threading;
using NUnit.Framework;
using fastJSON;
namespace UnitTests
internal class Concurrency_bug_in_2_0_5
View JSON.patch
diff --git a/fastJSON/JSON.cs b/fastJSON/JSON.cs
index d2f651e..0915fc1 100644
--- a/fastJSON/JSON.cs
+++ b/fastJSON/JSON.cs
@@ -64,7 +64,17 @@ namespace fastJSON
public sealed class JSON
- public readonly static JSON Instance = new JSON();
+ [ThreadStatic]