Skip to content

Instantly share code, notes, and snippets.

@thinkbeforecoding
thinkbeforecoding / csharp.cs
Last active August 29, 2015 13:56 — forked from ToJans/csharp.cs
Here is a cleaner, shorter version.
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
namespace TDDCoverage
{
public class Order
{
@thinkbeforecoding
thinkbeforecoding / csharp.cs
Last active August 29, 2015 13:56 — forked from ToJans/csharp.cs
Other try without query expression. articles is now a map.
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
namespace TDDCoverage
{
public class Order
{
@thinkbeforecoding
thinkbeforecoding / Actors.FSharp
Last active August 29, 2015 13:57
Fun with Akka.net
#r @"C:\Development\GitHub\Pigeon\src\Pigeon\bin\Release\Akka.dll"
#r @"C:\Development\GitHub\Pigeon\src\Pigeon.FSharp\bin\Release\Akka.FSharp.dll"
open Akka.FSharp
open Akka.Actor
type IO<'msg> = | Input
type Cont<'m,'v> =
@thinkbeforecoding
thinkbeforecoding / CodeHash.fs
Last active August 29, 2015 14:02
This creates a hash code of a F# Expr. The hash code changes when the code change
open Microsoft.FSharp.Quotations
open Microsoft.FSharp.Quotations.Patterns
open System.Reflection
let hashList f seed = List.fold (fun h v -> h * 37 + f v) seed
let (<+) x y = x * 37 + y
let (!<) f x y = x <+ f y
let rec hashC funcs =
[<AutoOpen>]
module Async
// Async extension to enable the direct use of Task<T> and Task
// in async {} blocs
open System
open System.Threading.Tasks
type Microsoft.FSharp.Control.Async with
@thinkbeforecoding
thinkbeforecoding / Mindstorm.fsx
Created June 17, 2015 13:17
Mindstorm API in F# with the lego computation expression.
open System
open System.Threading.Tasks
open System.Text
type Opcode =
| UIRead_GetFirmware = 0x810a
| UIWrite_LED = 0x821b
| UIButton_Pressed = 0x8309
| UIDraw_Update = 0x8400
| UIDraw_Clean = 0x8401
@thinkbeforecoding
thinkbeforecoding / gist:5305933
Created April 3, 2013 22:15
F# Statically resolved types
let inline count (counter: ^T) =
let value = (^T: (member Count : int) counter)
value
(**
# Ukulele
_This post is part of the [F# Advent Calendar in English 2015](https://sergeytihon.wordpress.com/2015/10/25/f-advent-calendar-in-english-2015/) project._
_Check out all the other great posts there! And special thanks to Sergey Tihon for organizing this._
Hi something fun and not too technical for end the year !
As everyone knows, the [favorite instrument of Santa Claus is Ukulele](https://www.google.fr/search?q=santa+claus+ukulele&biw=1024&bih=677&tbm=isch&source=lnms&sa=X&ved=0ahUKEwiHw5H8p-HJAhVE0xQKHZTdDuEQ_AUIBigB) !
So let's play some music, and especialy some Ukulele !
function Upgrade-ESProjections {
<#
.SYNOPSIS
Upgrades projections for EventStore v2.
.DESCRIPTION
Start the EventStore v2 on existing data.
Run this Cmdlet with the store http endpoint and user credentials.
Restart the EventStore v2. Projections should be updated.
@thinkbeforecoding
thinkbeforecoding / PureFunc
Created July 27, 2013 22:08
Pure functions for Event Sourcing
Decide:
Command -> State -> Event list
ApplyStateChange:
State -> Event -> State