Skip to content

Instantly share code, notes, and snippets.

View davidmason's full-sized avatar

David Mason davidmason

View GitHub Profile
@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 / 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 / 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 / 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 / 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 / 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 / function-basics.rb
Last active August 29, 2015 14:18
Learning some basics of Ruby functions. Try it in http://repl.it/languages/Ruby
# This evening I got Ally (https://github.com/AllyG) to
# show me some basics for methods/functions in Ruby.
# I still have some major gaps in my mental model of all
# this, but I feel like I know a lot more than I did this
# morning.
def haldo name
puts "Haldo " + name
end
@davidmason
davidmason / node-on-rhel6.md
Last active August 29, 2015 14:01
Simple node setup on RHEL6

node setup on RHEL6

These are the steps I used today to get node installed and working on my Red Hat Enterprise Linux 6 machine. Note that the first step can cause potential issues, so you should understand and weigh those up. You can skip the first step, it just means you will have to run global module installs (npm install -g ...) with elevated permissions (sudo/su).

  1. change owner of /usr/local so that npm install -g will Just Work. I think this has to go before installing node so that everything works properly.
sudo chown -R $USER /usr/local
@davidmason
davidmason / prep.md
Last active August 29, 2015 14:01
Preparation for campjs talk "Packaging CommonJS for the browser: Webpack and Browserify"

If you just want to watch the talk, you don't need anything. If you want to follow along or play around with webpack and/or browserify at the camp, I recommend preinstalling the following before setting out.

Preinstallation

Just in case the npm mirror is not available at the camp, you can preinstall the following if you want to play around with browserify and webpack:

install nodejs

nodejs is the runtime on which webpack and browserify run (just in case youmanaged not to hear about it somehow)