I hereby claim:
- I am dougalcampbell on github.
- I am dougalcampbell (https://keybase.io/dougalcampbell) on keybase.
- I have a public key whose fingerprint is 9692 F34E 074B 52B9 919F 9180 A9A9 336D F0C4 0C65
To claim this, I am signing this object:
| # The key bit is the 'bind' statement in the frontend | |
| frontend https-in | |
| # match the filename here to your $HAPCERTFILE | |
| bind 10.0.0.1:443 ssl crt /etc/haproxy/certs/combined.pem | |
| reqadd X-Forwarded-Proto:\ https | |
| # acl, use_backend, and other statements... | |
| acl srv_host_1 hdr(host) -i mydomain.com |
| #!/usr/bin/perl -w | |
| # | |
| # wxrsplit - Split a WordPress WXR file into multiple output files, each | |
| # with a maximum filesize. | |
| # | |
| # NOTE: Because this tool attempts to keep items intact within each output | |
| # file, it is possible to exceed the specified max filesize. Comments are | |
| # contained within a post item, so a post with many comments could | |
| # conceivably generate a very large item size. There probably is not a | |
| # practical way around this. |
| # set title of current terminal | |
| function _set_term_title() { | |
| echo -ne "\033]0;${1}\007" | |
| } | |
| alias trmtitle=_set_term_title |
| /** | |
| * See: https://github.com/isaacs/node-tap/blob/master/bin/tap.js#L65 | |
| */ | |
| console.log({/* | |
| This is a multiline string. | |
| That is, a single string, spread out over many lines, | |
| without the need to escape quotes or end-of-line | |
| characters. |
I hereby claim:
To claim this, I am signing this object:
| function toType(obj) { | |
| var systype = ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1]; | |
| if (systype === "Object") { | |
| /** | |
| * See if this is a custom user type, a la: | |
| * function Foo() {} | |
| * foo = new Foo(); | |
| * toType(foo); // returns "Foo" | |
| * toType(Foo); // returns "Function" | |
| */ |
| javascript:$(document).delegate('textarea', 'keydown', function(e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); var start = $(this).get(0).selectionStart; var end = $(this).get(0).selectionEnd; $(this).val($(this).val().substring(0, start) + "\t" + $(this).val().substring(end)); $(this).get(0).selectionStart = $(this).get(0).selectionEnd = start + 1; }});void(0); |
| #include <Adafruit_NeoPixel.h> | |
| #define PIN 1 | |
| #define STRIPSIZE 16 | |
| // Parameter 1 = number of pixels in strip | |
| // Parameter 2 = pin number (most are valid) | |
| // Parameter 3 = pixel type flags, add together as needed: | |
| // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) | |
| // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) |
| /* | |
| * Accept control commands via USB. | |
| * | |
| * Commands start with '!' and end with '.' | |
| * Commands have three parts: action, pin, value: !AAPPVV. | |
| * | |
| * E.g. '!01p101.' is DigitalWrite, Pin1, value = 1 | |
| * | |
| * Note: This is currently *very* crude. Much improvement could be made. | |
| * I think the use of strncpy is eating a lot of memory. Refactor? |
| HOW TO RETURN hsl.to.rgb(h, s, l): | |
| SELECT: | |
| l<=0.5: PUT l*(s+1) IN m2 | |
| ELSE: PUT l+s-l*s IN m2 | |
| PUT l*2-m2 IN m1 | |
| PUT hue.to.rgb(m1, m2, h+1/3) IN r | |
| PUT hue.to.rgb(m1, m2, h ) IN g | |
| PUT hue.to.rgb(m1, m2, h-1/3) IN b | |
| RETURN (r, g, b) |