Skip to content

Instantly share code, notes, and snippets.

View davidmason's full-sized avatar

David Mason davidmason

View GitHub Profile
@davidmason
davidmason / install-watchman.bash
Created September 13, 2017 03:45
To install watchman on Fedora 26, these are all the hoops I had to jump through.
# The following packages are needed during `make`
# - openssl-devel so you don't get:
# ContentHash.cpp:13:10: fatal error: openssl/sha.h: No such file or directory
# - redhat-rpm-config so you don't get:
# gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
# - python-devel so you don't get:
# pywatchman/bser.c:31:10: fatal error: Python.h: No such file or directory
sudo dnf install openssl-devel redhat-rpm-config python-devel
# The rest is just instructions from
@davidmason
davidmason / pirates.elm
Last active April 16, 2020 04:04
Just playing around... or perhaps a comprehension challenge. Can you figure out what this code does? Try it in http://elm-lang.org/try
import Html exposing (text)
main = drink rum ye scurvies |> yarrrrrr
drink up me hearties =
case hearties of
[] -> me
capn :: lads -> drink up me lads |> up capn
yarrrrrr = text << String.fromInt
@davidmason
davidmason / reviewable-diff-plusminus.css
Created September 14, 2017 01:24
Some styles to add + and - next to diff lines in reviewable
.diff.line.replace:before {
content: "+";
margin-left: 14px;
}
.diff.line.edit:before {
content: "-";
margin-left: 14px;
}
@davidmason
davidmason / MyComponent-broken.js
Created June 14, 2017 05:17
Debounce fails if you use it inside your callback. Here is how to fix it.
/*
* This is roughly the code I found. A callback is passed in props,
* and the author attempts to make a debounced version of the callback
* so that it will only trigger at most once every 200ms.
*
* Debounce is used when we are getting lots of events and want to
* avoid a costly operation (e.g. network request) on every one. It
* wraps a callback and returns a debounced callback that will only
* trigger the callback on the newest call when there is a break in
* activity. A common use-case is to request a search as a user types,
@davidmason
davidmason / graphics-play.elm
Created December 1, 2015 09:09
playing around with Elm graphics to see what sort of things I can do
import Color exposing (..)
import Graphics.Collage exposing (..)
import Graphics.Element exposing (..)
import Time exposing (fps)
import Transform2D exposing (scaleX)
framerate = 100.0
cow = image 24 28 "http://i.neoseeker.com/cm/42/badges/BCow2.png"
chicken = image 40 40 "http://fogu.com/hm/snes/img/chicken.gif"
@davidmason
davidmason / monitor-sizes.html
Created September 27, 2016 00:53
Visualize a few different screen sizes, to help me decide on a laptop display size.
<!DOCTYPE html>
<html>
<head>
<!-- Useful screen size calculators: http://www.silisoftware.com/tools/screen.php -->
<style type="text/css">
body {
@davidmason
davidmason / simple-html5-template.html
Created August 1, 2016 00:44
Simple HTML5 template.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Commonly used HTML things</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
@davidmason
davidmason / gist:6927041
Created October 10, 2013 23:08
Simple BASH script that prints a definition of OOP.
wget http://en.wikipedia.org/wiki/Caml ; wget http://en.wikipedia.org/wiki/OCaml ; diff Caml OCaml
@davidmason
davidmason / _.md
Created September 12, 2013 01:48
Higher-order fun
@davidmason
davidmason / sync.sh
Last active December 21, 2015 02:59 — forked from franklinjavier/sync.sh
#!/bin/sh
#
# Set-up Sublime settings + packages sync over Dropbox
#
# Will sync settings + Installed plug-ins
#
# Tested on OSX - should support Linux too as long as
# you set-up correct SOURCE folder
#
# Copyright 2012 Mikko Ohtamaa http://opensourcehacker.com