Skip to content

Instantly share code, notes, and snippets.

@mavnn
mavnn / supervisor.fsx
Last active September 1, 2016 13:13
Hopac supervisor using proc
#!/usr/bin/env fsharpi --exec
#I "packages/Hopac/lib/net45"
#r "Hopac.Core.dll"
#r "Hopac.dll"
#r "Hopac.Platform.dll"
open System
open Hopac
open Hopac.Infixes
type Policy =
@mavnn
mavnn / Program.fs
Last active March 22, 2016 16:28
Logary.Obnoxious
module Logary.Obnoxious
open Logary
open Logary.Configuration
open Logary.Targets
open Hopac
open Hopac.Infixes
open Hopac.Job.Global
open Hopac.Extensions.Async
open Hopac.Extensions.Async.Global
@mavnn
mavnn / Part1.fs
Last active December 30, 2015 08:39
TypeProvider blog post
module Mavnn.Blog.TypeProvider
open ProviderImplementation.ProvidedTypes
open Microsoft.FSharp.Core.CompilerServices
[<TypeProvider>]
type MavnnProvider (config : TypeProviderConfig) as this =
inherit TypeProviderForNamespaces ()
[<assembly:TypeProviderAssembly>]
@mavnn
mavnn / build.fsx
Created November 24, 2013 20:34
Sample build.fsx for a vim project - compile, and if it compiles then run the exe and capture the output back into vim.
open System.Diagnostics
let code =
[
"src/Board.fs"
"src/WordSearch.fs"
]
let refs = []
@mavnn
mavnn / riemannlogs.fs
Created November 7, 2013 11:28
Pipe logs to Riemann
module RiemannStore =
open System
open System.Configuration
open Riemann
let client = new Client(riemannServer, riemannPort)
let state entry =
match entry.Level with
let ones =
seq {
while true do
yield 1
}
// seq [1; 1; 1; 1; ...]
@mavnn
mavnn / Test.fs
Created August 8, 2013 13:20
Add a dll directory from which to DllImport native code.
open System
open System.Runtime.InteropServices
open System.ComponentModel
[<DllImport("kernel32")>]
extern int AddDllDirectory(string NewDirectory)
[<EntryPoint>]
let main argv =
let result = AddDllDirectory("c:\\")
module DevEd.FsCheck
open System.Xml
open System.Xml.Linq
let AddEnhancement (xDoc : XDocument) (input : string) =
xDoc.Root.Add(XElement(XName.Get "Enhancement", input))
xDoc
#r "System.Xml.Linq"
#r "tools\FAKE\FakeLib.dll"
open System.IO
open System.Xml
open System.Xml.Linq
open System.Xml.XPath
open Fake
// You'll want to replace these values...
let nugetId = "my.package.id"
@mavnn
mavnn / Did work.fs
Last active December 19, 2015 08:29
Fantomas test cases - notice brackets around the tuple deconstruction. The error only seems to occur once the tuple splits between two lines.
let (assemblyReferencesToDelete, frameworkReferencesToDelete, contentFilesToDelete, buildFilesToDelete) =
let assemblyReferencesToDelete, frameworkReferencesToDelete, contentFilesToDelete, buildFilesToDelete =
1, 2, 3, 4
1, 2, 3, 4