Skip to content

Instantly share code, notes, and snippets.

@Kimserey
Kimserey / Counter.fs
Created March 21, 2016 09:53 — forked from Tarmil/Counter.fs
Port of the first example from https://github.com/evancz/elm-architecture-tutorial to WebSharper; lens-based version
namespace Example1
open WebSharper
open WebSharper.UI.Next
open WebSharper.UI.Next.Html
open WebSharper.UI.Next.Client
[<JavaScript>]
module Counter =
@Kimserey
Kimserey / query.txt
Created March 11, 2016 11:45
Sqlite gist
/* events per day */
SELECT
DATE(timestamp / 10000000 - 62135596800, 'unixepoch') AS date,
(CASE
WHEN strftime('%w', DATE(timestamp / 10000000 - 62135596800, 'unixepoch')) == '0' THEN 'Sunday'
WHEN strftime('%w', DATE(timestamp / 10000000 - 62135596800, 'unixepoch')) == '1' THEN 'Monday'
WHEN strftime('%w', DATE(timestamp / 10000000 - 62135596800, 'unixepoch')) == '2' THEN 'Tuesday'
WHEN strftime('%w', DATE(timestamp / 10000000 - 62135596800, 'unixepoch')) == '3' THEN 'Wednesday'
WHEN strftime('%w', DATE(timestamp / 10000000 - 62135596800, 'unixepoch')) == '4' THEN 'Thursday'
WHEN strftime('%w', DATE(timestamp / 10000000 - 62135596800, 'unixepoch')) == '5' THEN 'Friday'
@Kimserey
Kimserey / migration.fs
Last active February 11, 2016 02:34
Migration.fs
#I __SOURCE_DIRECTORY__
#r @"..\packages\SQLite.Net-PCL\lib\portable-win8+net45+wp8+wpa81+MonoAndroid1+MonoTouch1\SQLite.Net.dll"
#r @"..\packages\SQLite.Net-PCL\lib\net40\SQLite.Net.Platform.Generic.dll"
#r @"..\packages\System.Data.SQLite.Core\lib\net46\System.Data.SQLite.dll"
open System
open System.IO
open System.Data.SQLite
open SQLite.Net
@Kimserey
Kimserey / Cropbox.fs
Created January 30, 2016 01:26
Cropbox bindings with WebSharper F#
open WebSharper
open WebSharper.JavaScript
/// Wraps cropbox.js functionalities to be able to be used with WebSharper.
/// cropbox is a plugin to crop avatar.
/// https://github.com/hongkhanh/cropbox/tree/master/javascript
[<JavaScript>]
module Cropbox =
type Identifiers = {
@Kimserey
Kimserey / TagInput.fs
Last active January 30, 2016 01:27
Tag input and type ahead with Bootstrap-taginput and typeahead.js in WebSharper. http://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/ https://twitter.github.io/typeahead.js/
open WebSharper
open WebSharper.JavaScript
open WebSharper.JQuery
open WebSharper.UI.Next
open WebSharper.UI.Next.Html
open WebSharper.UI.Next.Client
[<JavaScript; AutoOpen>]
module JQuery =
@Kimserey
Kimserey / agent.fs
Created December 21, 2015 06:37
Mailbox processor sample
type OperationTest =
| Increment
| Decrement
let agent = MailboxProcessor.Start(fun inbox ->
let rec loop state: Async<unit> = async {
let! msg = inbox.Receive()
match msg with
| Increment -> return! loop (state + 1)
@Kimserey
Kimserey / authentication.fs
Last active December 21, 2015 06:36
Agent for countdown
module private CountdownExpiryAgent =
open Modal
type Operation =
| Reset of remainingSecs: int
| Tick
| RegisterHandler of logout: (unit -> unit)
let agent (rv: Var<int>) courtesy =
MailboxProcessor.Start(fun inbox ->
@Kimserey
Kimserey / Bootstrap.fs
Created December 10, 2015 16:40
Bootstrap modal with WebSharper.UI.Next
open WebSharper
open WebSharper.JavaScript
open WebSharper.JQuery
open WebSharper.UI.Next
open WebSharper.UI.Next.Html
open WebSharper.UI.Next.Client
[<JavaScript>]
module Bootstrap =
@Kimserey
Kimserey / MainActivity.fs
Created November 25, 2015 00:16
WebView for Xamarin Android in F#
namespace App2
open System
open Android.App
open Android.Content
open Android.OS
open Android.Runtime
open Android.Views
open Android.Widget
@Kimserey
Kimserey / Build.cmd
Last active December 19, 2016 20:00
FAKE script to compile WebSharper JS for specific folder. Files are loaded in order based on fsproj. Ex: `Build.cmd instance=test` will compile to JS all the fs files in \config\test\.
@echo off
cls
..\packages\FAKE\tools\FAKE.exe BuildJS.fsx %*