Skip to content

Instantly share code, notes, and snippets.

@jdegoes
jdegoes / die-flags-die.md
Created October 8, 2014 17:20
Death to Boolean Flags

Refactoring Booleans to Functions

Boolean parameters are a plague, responsible for non-composable, monolithic functions that never quite do enough, and countless programming bugs:

  • "Oops, meant to pass that as the 2nd boolean flag, not the 1st!"
  • "Oops, accidentally inverted the meaning of that boolean in the implementation!"
  • "Oops, the function isn't flexible enough for my use case, let's add a 6th boolean flag!"
  • "Oops, got the meaning of that boolean flag wrong, time to dig into the source code!"

All boolean parameters should be refactored into functions that effect the change otherwise encoded in the parameter.

(* Script to record and tag spotify tracks, by Lloyd Moore *)
(* Modified by Tiffany G. Wilson to resolve audio splitting issues, automate starting/stopping, and add recording customization *)
(* Snippets for controlling Spotify are from Johnny B on tumblr (http://johnnyb.tumblr.com/post/25716608379/spotify-offline-playlist) *)
(* The idea of using delayed tagging/filename updating is from a guest user on pastebin (http://pastebin.com/rHqY0qg9) *)
(* The only thing to change in the script is the output format; you must change the file extension and the recording format to match *)
(* Run this script once a song you want to record is queued (stopped at beginning) or playing *)
(* Running the script will initiate hijacking, recording and audio playback *)
(* To stop script, pause Spotify or wait for album/playlist to end*)
(* To set id3 tags, use application Kid3 (http://sourceforge.net/projects/kid3/) and copy '%{artist} - %{album} - %{track} - %{title}' from file name to Tag 2 *)
@kevin-smets
kevin-smets / iterm2-solarized.md
Last active April 20, 2026 12:02
iTerm2 + Oh My Zsh + Solarized color scheme + Source Code Pro Powerline + Font Awesome + [Powerlevel10k] - (macOS)

Default

Default

Powerlevel10k

Powerlevel10k

@andreiashu
andreiashu / Vagrantfile
Last active December 26, 2015 08:29
Centos 6.4 and Docker as a Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
BOX_NAME = ENV['BOX_NAME'] || "Centos6.4"
BOX_URI = ENV['BOX_URI'] || "http://shonky.info/centos64.box"
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
@puredanger
puredanger / gist:6250711
Created August 16, 2013 15:05
bash replacement for rm to prevent shooting yourself in the face.
function rm () {
local path
for path in "$@"; do
# ignore any arguments
if [[ "$path" = -* ]]; then :
else
local dst=${path##*/}
# append the time if necessary
while [ -e ~/.Trash/"$dst" ]; do
dst="$dst "$(date +%H-%M-%S)
@ragingwind
ragingwind / Backend Architectures Keywords and References.md
Last active February 24, 2026 02:06
Backend Architectures Keywords and References
@nzakas
nzakas / gist:5511916
Created May 3, 2013 17:47
Using GitHub inside a company

I'm doing some research on how companies use GitHub Enterprise (or public GitHub) internally. If you can help out by answering a few questions, I'd greatly appreciate it.

  1. What is the primary setup? Is there an organization and each official repo is owned by that organization?
  2. Does every engineer have a fork of each repo they're working on?
  3. Are engineers allowed to push directly to the official repo? Or must all commits go through a pull request?
  4. Do engineers work on feature branches on the main repo or on their own forks?
  5. Do you require engineers to squash commits and rebase before merging?
  6. Overall, what is the workflow for getting a new commit into the main repository?
  7. What sort of hooks do you make use of?
  8. Are there any ops issues you encountered? (Scaling, unforeseen downtime, etc.)
@ymasory
ymasory / MyAppConfig.scala
Last active December 14, 2015 01:58
Fail fast with Typesafe Config
import com.typesafe.config.{ Config, ConfigFactory, ConfigException }
import scala.util.control.Exception._
/* At the beginning of app execution load essential configurations and assign
* them to vals. */
object MyAppConfig {
private[this] val conf: Config = trapConfig {
ConfigFactory.load() getConfig "myapp"
@atl
atl / README.md
Last active February 15, 2019 16:57
enable ssh-agent transparently and pervasively in Mac OS X Lion/Mountain Lion

This is a quick configuration upgrade that allows you to continue using ssh as you have, but with the added benefit of ssh-agent forwarding when logged into remote hosts, meaning no more keys on intermediate servers and the like.

Requirements

This snippet assumes that you've been using ssh, ssh keys, and authorized_keys on remote hosts.

  • .ssh/id_dsa and/or .ssh/id_rsa already exist
  • keys are authorized on the remote servers you have been using
  • you have at least a minimal working .ssh/config file
@moklett
moklett / openconnect.md
Created July 24, 2012 15:21
OpenConnect VPN on Mac OS X

Unfortunately, the Cisco AnyConnect client for Mac conflicts with Pow. And by "conflicts", I mean it causes a grey-screen-of-death kernel panic anytime you connect to the VPN and Pow is installed.

As an alternative, there is OpenConnect, a command-line client for Cisco's AnyConnect SSL VPN.

Here's how to get it set up on Mac OS X:

  1. OpenConnect can be installed via homebrew:

     brew update
    

brew install openconnect