I hereby claim:
- I am mholt on github.
- I am mholt (https://keybase.io/mholt) on keybase.
- I have a public key whose fingerprint is 7C5D 8989 09D4 E407 20B8 1FF3 1DAA D2EB EC55 EA33
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
package main | |
import ( | |
"log" | |
"os" | |
"strings" | |
gq "github.com/PuerkitoBio/goquery" | |
) |
package interfaces | |
import ( | |
"bufio" | |
"crypto/elliptic" | |
"crypto/tls" | |
"database/sql/driver" | |
"debug/dwarf" | |
"encoding/xml" | |
"fmt" |
// Functions from Go's strings package usable as template actions | |
// with text/template. | |
// | |
// This approach assumes you have some context type as a receiver, | |
// but if you just need the functions check out the FuncMap variant | |
// below. | |
// | |
// Commented functions are not deemed useful in template actions. | |
// Haven't actually used this, but this is one possible way of doing it. | |
// Another option is to fill a FuncMap with most of the strings package. |
// Comcast Cable Communications, LLC Proprietary. Copyright 2014. | |
// Intended use is to display browser notifications for critical and time sensitive events. | |
var _ComcastAlert = (function(){ | |
return { | |
SYS_URL: '/e8f6b078-0f35-11de-85c5-efc5ef23aa1f/aupm/notify.do' | |
, dragObj: {zIndex: 999999} | |
, browser: null | |
, comcastCheck: 1 | |
, comcastTimer: null | |
, xmlhttp: null |
A supervisor's main task, is to start a specified process (in a specified environment), watch it running, and do something when it ends - usually based on the exit code.
From my experience, the environment setup can be a complex task (consult some config management for the required ports, actualize the config file from the central config management...), and this is where the most featureful supervisor (systemd, AFAIK) falls short:
Developer Certificate of Origin | |
Version 1.1 | |
Copyright (C) 2004, 2006 The Linux Foundation and its contributors. | |
660 York Street, Suite 102, | |
San Francisco, CA 94110 USA | |
Everyone is permitted to copy and distribute verbatim copies of this | |
license document, but changing it is not allowed. |
config_server "https://etcd.local:2379" | |
service users { | |
endpoint: "/users", | |
proxy: "{{services.users.ip}}:{{services.users.port}}" | |
} | |
# In this example 'services.users' would be a directory with a json key for every user service container / application. | |
# Using this we could template the proxy and any other information in the services block, and it would just work with caddy. |
mholt [9:10 AM] | |
When using http.Get(), is it really necessary to read the full response body just to close it later? | |
[9:10] | |
The docs keep saying `Caller should close resp.Body when done reading from it.` and I keep seeing code like this: | |
``` | |
io.Copy(ioutil.Discard, resp.Body) | |
resp.Body.Close() | |
``` |
fff.red { | |
header / { | |
Strict-Transport-Security "max-age=31536000; includeSubDomains" | |
Content-Security-Policy "default-src https:*" | |
Public-Key-Pins "pin-sha256=\"ckOIjdimiwD3mfMmkmCh7uiJCBtXvoqoBoKKB1K5UIM=\"; pin-sha256=\"QiTyymM4e635OgWkx9d7nq5xvEuqmgV7HiDjIIGyymo=\"; max-age=2592000" | |
X-Frame-Options SAMEORIGIN | |
X-XSS-Protection "1; mode=block" | |
X-Content-Type-Options nosniff | |
} | |
} |