Skip to content

Instantly share code, notes, and snippets.

View frou's full-sized avatar

Duncan Holm frou

  • Scotland
  • 16:58 (UTC +01:00)
View GitHub Profile
@frou
frou / toggle_semi.ml
Last active April 29, 2024 11:28 — forked from hcarty/toggle_semi.ml
Put this in ~/.config/utop/init.ml to be able to toggle requiring ;;
#require "lambda-term"
(* REF: https://gist.github.com/hcarty/b2dab5324d0d4344d771 *)
let toggle_implicit_double_semicolon =
let implicit_semis_enabled = ref false in
let parse_fn_stock = UTop.parse_toplevel_phrase.contents in
let parse_fn_dynamic code error_flag =
parse_fn_stock
(if implicit_semis_enabled.contents then code ^ ";;" else code)
error_flag
@frou
frou / DOMStringMap-to-map.cljs
Last active November 29, 2022 14:29 — forked from dwest/DOMStringMap IEncodeClojure
Convert a HTMLElement's dataset property into a ClojureScript map
;; DOMStringMap is the type of `HTMLElement.dataset` and contains the element's `data-*` attributes.
;; Implement the protocol used by the `cljs.core/js->clj` function.
(extend-type js/DOMStringMap
IEncodeClojure
(-js->clj [x {:keys [keywordize-keys]}]
(let [keyfn (if keywordize-keys keyword identity)]
(->> (.entries js/Object x)
(reduce
(fn [m [k v]] (assoc m (keyfn k) v))
import sublime
from Default.exec import ExecCommand
class MyExec(ExecCommand):
# Overrides --------------------------------------------------
def run(self, **kwargs):
@frou
frou / gist:31f6b305f619d3bdb96f84c72150cc06
Created September 22, 2018 18:34
Alpine initscript for yt2pod
#!/sbin/openrc-run
APP_USER="$RC_SVCNAME"
APP_DIR="/home/$APP_USER/app"
BINARY="$APP_DIR/$RC_SVCNAME"
BINARY_ARGS="-syslog -dataclean"
LOG_OUT="$APP_DIR/out.log"
LOG_ERR="$APP_DIR/err.log"

Keybase proof

I hereby claim:

  • I am frou on github.
  • I am frou (https://keybase.io/frou) on keybase.
  • I have a public key ASDMcHYTueBJR7I_O4mFuwwyK7-6nHjBfcEk4U0uqRszVgo

To claim this, I am signing this object:

package main
import (
"fmt"
"net/http"
"syscall"
"github.com/frou/stdext"
)