Skip to content

Instantly share code, notes, and snippets.

import Database.HDBC
import Database.HDBC.ODBC
data Person = Person
{ id :: Int
, name :: [Char] }
deriving Show
convRow :: [SqlValue] -> Person
convRow [sqlId, sqlDesc] =
open Renci.SshNet
open System.IO
open System.Configuration
open System
let config = ConfigurationManager.AppSettings
let timestamp = "sftp_log_" + DateTime.UtcNow.Date.ToString("yyyy_MM_dd") + ".txt"
let logPath = Path.Combine(config.["SharedFolder"],timestamp)
let sw = new StreamWriter(logPath,true)
//usage:
//TimeIt(() => Extract(sql_trades, "03_Trade_Valid_" + timestamp + ".csv"), "Trade Extract");
static bool Retry(int count, Action action, Action<int> startCallback, Func<Exception, int, bool> exceptionCallback)
{
if (count <= 0) { return false; } else
{
try
{
startCallback(count);
action();
@giuliohome
giuliohome / app_offline.htm
Created May 14, 2019 02:10 — forked from robert-claypool/app_offline.htm
A simple "app offline" template for ASP.NET
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Offline</title>
</head>
<body style="margin:3em;font-family:sans-serif">
<h2>Offline</h2>
<p>This site is offline for maintenance.</p>
<!--
@giuliohome
giuliohome / OpenDetails.fs
Last active July 30, 2019 09:50
Create a form to post a request with parameter for a new detail tab and render it into html, all typesafe, from f# to javascript
let (|==>) (param_name, param_id) (safe_url:EndPoint) =
let router = Router.Infer()
let url = router.Link(safe_url)
form [attr.target "_blank"; attr.action url; attr.id ("form" + param_id); attr.method "POST" ] [
a [ on.click (fun el ev ->
let frm = JS.Document.GetElementById ("form" + param_id) |> As<HTMLFormElement>
frm.Submit()
) ] [text param_id]
input [attr.``type`` "hidden"; attr.name param_name; attr.value param_id] []
]
// from IE datepicker to F#: you tried Globalization, ParseExact, etc... without luck
// and this does the trick ;-)
let filterDate (str:string) : string =
new string (str.ToCharArray()
|> Array.filter(fun c -> int c < 128))
// used for example in
let dateFrom = DateTime.Parse(filterDate dateFromStr)
@giuliohome
giuliohome / WebSharperLens2DB.fs
Created August 27, 2019 11:53
V for Lens with Async DB retrieval
// online snippet: https://try.websharper.com/snippet/user3383/0000Oy
// gitter ref: https://gitter.im/intellifactory/websharper?at=5d650521f2821072aa20f412
// intellifactory blog: https://www.intellifactory.com/blog/5508/clear-and-simple-reactive-code-with-websharper-ui-s-v
namespace Samples
open WebSharper
open WebSharper.JavaScript
open WebSharper.UI
open WebSharper.UI.Html
open WebSharper.UI.Client
@giuliohome
giuliohome / PostSlack_BackGround.java
Created September 29, 2019 16:31
My Open Twitter Search integrated also with Slack channel, posting as bot
package org.new_year2018;
import android.os.AsyncTask;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
open System
open System.IO
let readInts (path:string) =
[|
use sw = new StreamReader (path)
while (not sw.EndOfStream) do
yield sw.ReadLine() |> Int32.Parse
|]
open System
open System.IO
let readInts (path:string) : int [] =
use sw = new StreamReader (path)
sw.ReadToEnd().Split(",")
|> Array.map Int32.Parse
type Status = {memory:int[]; position: int; finished: bool;}
type Cmd = {opcode: int; op1:int ; op2: int; dest:int}