Skip to content

Instantly share code, notes, and snippets.

let parse (buffer : byte []) =
try
JsonSerializer.DeserializeAsync<'T>(IO.MemoryStream(buffer))
|> Async.AwaitTask
|> Some
with _ -> None
module Socket
open Microsoft.AspNetCore.SignalR
open Microsoft.AspNetCore.SignalR.Client
open Microsoft.AspNetCore.Sockets
let x = HubConnectionBuilder()
.WithUrl("http://socket-stage.bittrex.com/signalr")
@wklm
wklm / WebSocketHelpers.fs
Created November 27, 2017 21:57 — forked from TheAngryByrd/WebSocketHelpers.fs
FSharpWebSocketHelpers
module WebsocketHelpers =
open System
open System.Net.WebSockets
open System.Threading
open Hopac
let readMessage messageType (stream : #IO.Stream) (socket : WebSocket) = job {
let buffer = new ArraySegment<Byte>( Array.create (1500) Byte.MinValue)
let rec readTillEnd' () = job {
let! (result : WebSocketReceiveResult) = socket.ReceiveAsync(buffer,CancellationToken.None)
@wklm
wklm / p.fs
Created November 20, 2017 22:36
module Bittrex
open Asset
open Bittrex.Net
open Deedle
let internal rest = new BittrexClient()
let internal webSockets = new BittrexSocketClient()
let marketHistory (pair : AssetPair) =
@wklm
wklm / checked.fs
Last active November 5, 2017 17:50
F# Checked arithmetic operator overloading example
open System
let (+) x y = Checked.(+) x y
let number = Random().Next()
let rec guess (lower, upper) =
let x = (lower + upper) / 2
if number > x then
guess (x, upper)
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc project test-ci-openshift-no-fim
Now using project "test-ci-openshift-no-fim" on server "https://openshift-dev.cern.ch:443".
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc create sa other-admin
serviceaccount "other-admin" created
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc policy add-role-to-user admin system:serviceaccounts:test-devforumci-preview:other-admin
role "admin" added: "system:serviceaccounts:test-devforumci-preview:other-admin"
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc new-app --token=$(oc sa get-token other-admin) registry.access.redhat.com/dotnet/dotnet-20-rhel7~https://gitlab.cern.ch/wkulma/devforum
--> Found Docker image 9c4630d (2 weeks old) from registry.access.redhat.com for "registry.access.redhat.com/dotnet/dotnet-20-rhel7"
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc project test-devforumci-preview
Now using project "test-devforumci-preview" on server "https://openshift-dev.cern.ch:443".
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc create sa other-admin
serviceaccount "other-admin" created
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc policy add-role-to-user admin system:serviceaccounts:test-devforumci:other-admin
role "admin" added: "system:serviceaccounts:test-devforumci:other-admin"
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc new-app --token=$(oc sa get-token other-admin) registry.access.redhat.com/dotnet/dotnet-20-rhel7~https://gitlab.cern.ch/wkulma/devforum
--> Found Docker image 9c4630d (2 weeks old) from registry.access.redhat.com for "registry.access.redhat.com/dotnet/dotnet-20-rhel7"
.NET Core 2.0
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc status
In project test-devforumci on server https://openshift-dev.cern.ch:443
You have no services, deployment configs, or build configs.
Run 'oc new-app' to create an application.
wojtek@pcuds54:~/Desktop/smieci/fsharp/fsharponacci$ oc get sa
NAME SECRETS AGE
builder 2 2d
default 2 2d
deployer 2 2d
@wklm
wklm / fib.fs
Last active September 24, 2017 16:05
fibonacci async
let rec fib = function
| 0L | 1L as n -> n
| n -> (fib (n - 1L) + fib (n - 2L))
let memoize f =
let memo = ref Map.empty
fun arg ->
if Map.containsKey arg !memo then Map.find arg !memo
else
let result = f arg
@wklm
wklm / silicon-valley.fs
Last active September 14, 2017 10:34
Suave + Chrion nested jsons simple example
module Program
open Chiron
open Suave
open Suave.Filters
open Suave.Json
open Suave.Operators
open Suave.Successful