Skip to content

Instantly share code, notes, and snippets.

View jfryman's full-sized avatar

James Fryman jfryman

View GitHub Profile
# From https://www.debian.org/releases/stable/i386/apbs04.html.en
d-i debian-installer/splash boolean false
d-i debian-installer/locale en_US.UTF-8
d-i debian-installer/language string en
d-i debian-installer/country string US
# B.4.0 Meta
d-i debconf debconf/frontend select Noninteractive
# B.4.1 Localization
$docker rm hubot >/dev/null 2>&1
$docker run \
--net bridge -m 0b --detach=true -e HUBOT_LOG_LEVEL=debug -e ST2_AUTH_USERNAME=chatops_bot -e ST2_AUTH_PASSWORD=XXX -e ST2_ROUTE=hubot-bikeshed -e ST2_API=https://vonnegut.hq.thebikeshed.io:443/api -e ST2_AUTH_URL=https://vonnegut.hq.thebikeshed.io:443/auth -e ST2_WEBUI_URL=https://st2.thebikeshed.io -e NODE_TLS_REJECT_UNAUTHORIZED=0 -e HUBOT_SLACK_TOKEN=xoxb-XXX -e EXPRESS_PORT=8081 -e HUBOT_NAME=hubot -e HUBOT_ADAPTER=slack -e HUBOT_ALIAS=! -p 8081:8080 --restart=always --add-host vonnegut.hq.thebikeshed.io:10.255.12.53 \
--name hubot \
stackstorm/hubot \
;; -*- mode: emacs-lisp -*-
;; This file is loaded by Spacemacs at startup.
;; It must be stored in your home directory.
(defun dotspacemacs/layers ()
"Configuration Layers declaration."
(setq-default
;; List of additional paths where to look for configuration layers.
;; Paths must have a trailing slash (i.e. `~/.mycontribs/')

Force Multiplication

Recently, I have found myself reflecting on the statement "Be a force multiplier". This usually comes to mind when faced with some sort of burn-out: hearing in indirectly from a colleauge or friend, or experiencing it first hand. The intent is good and aligns well with some core tenants of DevOps. Force multiplication fits into the DevOps ethos by encouraging the need to cross-train and collaborate. By working together and sharing knowledge about respective domains (Development or Operations), team members gain empathy for each other. This in turn has a downstream effect of now enabling better collaboration around the repair/growth/operation/expansion of the delivery pipeline.

The only challenge that I have seen over and over again is that by the time that this idea of "force multiplication" is needed in a team, one or more major bottlenecks exist. These bottlenecks are often real and a result of an imbalance of resources. Servers arriving faster than there are resources to rack/sta

#!/usr/bin/env bash
set -e
if [[ -d /opt/boxen/homebrew/opt/pyenv ]]; then
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
fi
@jfryman
jfryman / unify.md
Last active January 20, 2016 22:14

Unifying applications into one system

Let's talk about a real problem that all of us have faced at one point or another: keeping track of a single thread of work across many disparate tools. Regardless of the specific industry a company operates in, as a company grows, back-office applications in support of the business begin to accumulate. Many knowledge based companies have some sort of communication tool, some sort of project tracker, and some support tracker. These are tools that aim at being more effective with daily business process. Conversations suffice until they do not, and tools are implemented as the need arises. Every tool that was added has purpose, solves a critical need, and made you and/or your team more productive.

At some point however, this changes. Discovery starts to become a major issue as usage patterns between different tools leaves solos of data. It becomes hard to correlate the different company pipelines that ultimately drive your business: the pipeline to care and communicate

---
# Cask Search: http://caskroom.io/search
# Apple ID Search: https://github.com/xdissent/puppet-appstore
appstore::store: "us"
appstore::apps:
"iStat Mini":
source: 'istat-mini/id927292435'
Cyberduck:
source: 'cyberduck/id409222199'
event: st2.liveaction__create
data: {"status": "requested", "start_timestamp": "2015-12-15T17:08:40.044862Z", "parameters": {}, "runner_info": {}, "callback": {}, "result": {}, "context": {"action_alias_ref": {"id": "566f59a5c481cf0873c8a01e", "name": "issue_status"}, "user": "stanley", "api_user": "jfryman", "source_channel": "bot-testing"}, "action": "reamaze.get_conversations", "id": "56704918c481cf4a8e3884d7", "notify": {"on-complete": {"routes": ["hubot"]}}}
event: st2.execution__create
data: {"status": "requested", "start_timestamp": "2015-12-15T17:08:40.044862Z", "runner": {"runner_module": "st2actions.runners.pythonrunner", "description": "A runner for launching python actions.", "enabled": true, "runner_parameters": {"env": {"type": "object", "description": "Environment variables which will be available to the script(e.g. key1=val1,key2=val2)"}, "timeout": {"default": 600, "type": "integer", "description": "Action timeout in seconds. Action will get killed if it doesn't finish in timeout seconds."}
@jfryman
jfryman / 01_README.md
Last active October 20, 2015 13:32
Easy OSX Management with Boxen and Homebrew

Boxen as an App Manager

Dowside to boxen is the community of supporters. It's a popular project, but nowhere near as popular as Homebrew (Casks) are. After two years of using only Boxen modules, I gave up. Updates were too slow, lots of overhead to get modules approved, and I still ended up writing a good number of modules myself. Not really a value-add, if I'm just adding an abstraction layer that I still need to manage. Ideally, I'd like to leverage the skills of the larger community and rely on herd-mentality to keep my system updated.

To that end, I wanted a quick and easy way to add/remove applications to my system to be managed without worrying about the future of the computer. Here is what my system looks like:

  • All data stored in GitHub, Dropbox or BTSync. Boxen creates Symlinks from popular folders to ~/ as needed.
  • All apps are installed via Boxen. Very few exceptions. Boxen manages App Store, Homebrew Installs, and Symlinks only.

Flow