Skip to content

Instantly share code, notes, and snippets.

@WhoAteDaCake
WhoAteDaCake / Result.ts
Last active May 22, 2019 15:05
Result type
type Change<V, V2> = (item: V) => V2;
type Empty = null;
const empty: Empty = null;
export class Result<E, V> {
value: V | Empty;
error: E | Empty;
static EMPTY = empty;
@WhoAteDaCake
WhoAteDaCake / flags.txt
Created March 14, 2019 15:23
Opencv 4.1 debugging
-lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_datasets -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_video -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_rgbd -lopencv_viz -lopencv_surface_matching -lopencv_text -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core
@WhoAteDaCake
WhoAteDaCake / ramda-doc-clear.js
Created November 26, 2018 16:44
Removes all non object docs from ramda docs website
Array.from(document.getElementsByClassName('func')).map(elem => {
if (elem.dataset.category !== 'Object') {
elem.parentNode.removeChild(elem)
}
});
@WhoAteDaCake
WhoAteDaCake / mail_client.re
Last active October 13, 2018 09:40
Sending mail using reasonml and ocamlnet
/* Has side-effects */
module Option = Core.Option;
let enable_debug_sf = () => Netsmtp.Debug.enable := true;
type mail_client = {
domain: string,
client: Netsmtp.client,
tls: (module Netsys_crypto_types.TLS_CONFIG),
};
@WhoAteDaCake
WhoAteDaCake / document.md
Created September 26, 2018 09:03
Setting up linux server at home

Setting up linux server at home

Wifi

auto lo
ifacelo inet loopback

auto wlo1
iface wlo1 inet dhcp
wpa-ssid SSID
@WhoAteDaCake
WhoAteDaCake / Rain.re
Created September 25, 2018 17:48
Rain
module Rain = {
/* All measurements are in mm */
module Hourly = {
let light = 2.5;
let moderate = 7.6;
let heavy = 50.0;
let violent = 100.0;
};
module Daily = {
let light = 2.5 *. 24.0;
const removeUnless = (key) => {
Array.from(document.querySelector('.nav-stacked').children).map(item => {
if (item.dataset.category !== key) {
item.parentNode.removeChild(item);
}
})
}
const copyToClipboard = str => {
const el = document.createElement('textarea');
{
"window.zoomLevel": -1,
"workbench.colorTheme": "Monokai",
"editor.formatOnSave": true,
"sublimeTextKeymap.promptV3Features": true,
"editor.multiCursorModifier": "ctrlCmd",
"editor.snippetSuggestions": "top",
"editor.formatOnPaste": false,
"editor.tabSize": 2,
"git.enableSmartCommit": true,
@WhoAteDaCake
WhoAteDaCake / ReasonFormatOnSave.py
Created July 4, 2018 09:04
Sublime reason format on save
# https://stackoverflow.com/questions/42233292/sublimetext-typescript-format-on-save
import sublime
import sublime_plugin
import subprocess
class FormatReasonOnSave(sublime_plugin.EventListener):
def on_pre_save(self, view):
if "Reason" in view.settings().get("syntax"):
subprocess.Popen(['refmt', '--in-place', view.file_name()],
stdout=subprocess.PIPE)
@WhoAteDaCake
WhoAteDaCake / AdvancedState.re
Last active June 9, 2021 22:21
Reasonml snippets
type stateVal = int;
type stateMod = stateVal => stateVal;
type stateModList = ref(list(stateMod));
type stateObj = {
.
getState: unit => stateVal,
addModifier: stateMod => unit,