Skip to content

Instantly share code, notes, and snippets.

View kos59125's full-sized avatar

ABE Kosei kos59125

View GitHub Profile
@kos59125
kos59125 / Program.fs
Created September 14, 2020 10:00
コンピュテーション式でセットアップ
type ServerSettings = {
Host : string
Port : int
}
type ServerSettingsBuilder() =
member _.Yield (_) = None, None
member _.Run((host, port)) = { Host = Option.get host; Port = Option.get port }
[<CustomOperation("host")>]
member _.SetHost ((_:string option, port:int option), host:string) = Some(host), port
[<CustomOperation("port")>]
@kos59125
kos59125 / Program.fs
Created March 3, 2020 03:11
Computation Expression with Dependency Injection
module Program
open Microsoft.Extensions.DependencyInjection
open Microsoft.Extensions.Logging
type ResultBuilder(logger:ILogger<ResultBuilder>) =
member _.Return x = Ok(x)
member _.ReturnFrom (m:Result<_, _>) = m
member _.Bind (m, f) = Result.bind f m
member _.Delay f =
open System.Text
let append : string list -> string =
List.fold (fun (builder:StringBuilder) -> builder.Append) (StringBuilder())
>> fun builder -> builder.ToString()
// aA
append ["a"; "A"] |> printfn "%s"
// aAbB
append ["b"; "B"] |> printfn "%s"
@kos59125
kos59125 / config.yml
Created August 16, 2018 03:21
DB connection using config package
default:
db:
drv: !expr RPostgres::Postgres()
host: localhost
password: password
user: user
dbname: dbname
@kos59125
kos59125 / c.py
Last active February 28, 2018 12:02
emurate c function in R
def c(*args):
l = []
for x in args:
if hasattr(x, '__iter__'):
l.extend(list(x))
else:
l.append(x)
return l
# [0, 1, 2, 3, 4, 9, 14, 15, 16, 17]
@kos59125
kos59125 / logrus_cloudwatchlogs.go
Created August 7, 2016 14:29
github.com/Sirupsen/logrus hook for logging to CloudWatch Logs
package logrus_ext
import (
"encoding/json"
"fmt"
"github.com/Sirupsen/logrus"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
"github.com/oleiade/lane"
suppressPackageStartupMessages({
library(magrittr)
library(stringr)
library(Rook)
library(shadowy)
library(logging)
library(aws.s3)
library(ggplot2)
library(scales)
})
@kos59125
kos59125 / kansuuji.R
Last active January 15, 2020 20:44
漢数字を数値に変換する
kansuuji <- function(x) {
# 漢字から数値へのマッピング
# 万未満の位
map_low <- c(
〇 = 0, 一 = 1, 二 = 2, 三 = 3, 四 = 4,
五 = 5, 六 = 6, 七 = 7, 八 = 8, 九 = 9,
十 = 10, 百 = 100, 千 = 1000
)
# 万以上の位
map_up <- c(
@kos59125
kos59125 / Unmerge.bas
Last active September 4, 2015 09:09
アクティブシートの結合されたセルの結合を解除して,すべてのセルの値を結合元のセルの値で埋めます。
Option Explicit
' アクティブシートの結合されたセルの結合を解除して,すべてのセルの値を結合元のセルの値で埋めます。
Public Sub Unmerge()
Dim OuterCell As Variant
Dim InnerCell As Variant
Dim Value As Variant
Dim MergeArea As Object
Dim Updating As Boolean ' 現在のスクリーン更新状態
@kos59125
kos59125 / poisson.sh
Created August 11, 2015 15:25
Generates a random number on Poisson distribution
#!/bin/bash
LAMBDA=$1
X=0
V=0
while [ `echo "$V <= $LAMBDA" | bc` -eq 1 ]
do
W=`echo "$V - l(1 - $RANDOM / 32768)" | bc -l`
V=$W