Skip to content

Instantly share code, notes, and snippets.

View janderit's full-sized avatar
🙃

Philip Jander janderit

🙃
View GitHub Profile
@janderit
janderit / nodecqrs.js
Created July 16, 2012 12:04
Very brief cqrs projection proof of concept in node.js
function UserWasCreated(id, name){
this.Event = arguments.callee.name;
this.UserId=id;
this.Name=name;
}
function UserWasRenamed(id, name){
this.Event = arguments.callee.name;
this.UserId=id;
@janderit
janderit / gist:3237207
Created August 2, 2012 13:43
Reporting/Data/Kontext
public interface IProvideData
{
bool Provides(string key);
string Key { get; }
string Description { get; }
string Target { get; }
DatenTabelle DesignData();
DatenTabelle DemoData();
@janderit
janderit / gist:3283001
Created August 7, 2012 08:09
Dataprovider/code generation
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")
.End()
@janderit
janderit / ZmqPollPool.cs
Created September 10, 2012 15:48
ZeroMQ 3.2 Single threaded container
/// <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;
@janderit
janderit / gist:3691683
Created September 10, 2012 15:49
Example zeromq usage
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;
@janderit
janderit / Concurrency_bug_in_2_0_5.cs
Created September 18, 2012 08:31
Test for (absence of) concurrency bug in fastJson. Fails with 2.0.5
using System;
using System.Diagnostics;
using System.Threading;
using NUnit.Framework;
using fastJSON;
namespace UnitTests
{
[TestFixture]
internal class Concurrency_bug_in_2_0_5
@janderit
janderit / JSON.patch
Created September 18, 2012 08:34
Patch fixing concurrency bug in fastJSON 2.0.5
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]
@janderit
janderit / kata_fluent_dsl_csharp.txt
Created September 20, 2012 09:13
Kata: Fluent DSL Builder Pattern in c#
Kata: Fluent DSL Builder Pattern in c#
Es sollen SQL-artige Connectionstrings
des Musters
SQL:[UserId/Passwort@]{hostname|IP}#dbname
durch eine Fluent Konfigurationssprache erstellt werden.
@janderit
janderit / gist:3961698
Created October 26, 2012 21:33
Closures, commandhandlers und co
class EventStore{
void Save(Guid commandId, Event[] events);
}
class EventPublisher{
void Save(Guid senderSession, Event[] events);
}
@janderit
janderit / gist:4031154
Created November 7, 2012 12:18
Domänendefinition
namespace Target.Sicherheit
{
public enum Entitaeten
{
Benutzersitzung
}
public enum Rechte
{