Skip to content

Instantly share code, notes, and snippets.

@danmactough
danmactough / bashisms.md
Last active July 31, 2023 18:24
Bash Basics

Manipulating Strings

# safety
set -euo pipefail

# root directory
ROOT_DIR="$(cd $(dirname $0)/.. ; pwd)"

# directory of this script
#!/bin/bash
# Get Homebrew in the new location
git clone git@github.com:Homebrew/homebrew.git ~/Homebrew
# Move all your installed packages to the new location
mv /usr/local/Cellar ~/Homebrew/Cellar
mv /usr/local/Library ~/Homebrew/Library
# Remove "root" directory files left behind
rm -rf /usr/local/.git /usr/local/{.gitignore,.yardopts,CODEOFCONDUCT.md,CONTRIBUTING.md,LICENSE.txt,README.md,SUPPORTERS.md}
@danmactough
danmactough / second-boot.sh
Created July 31, 2015 06:55
Setting up a gpu (nvidia) ec2 instance with ubuntu and electron for headless webgl rendering
#!/bin/bash -xe
# Unload nouveau
sudo rmmod nouveau
# Load nvidia
sudo modprobe nvidia
# Configure X
sudo nvidia-xconfig --use-display-device=None --virtual=1280x1024 --output-xconfig=/etc/X11/xorg.conf --busid=PCI:0:3:0 --enable-all-gpus
@danmactough
danmactough / apple.sh
Last active March 24, 2021 00:22
Apple cli tweaks
# Disable gesture navigation only in Chrome
# http://apple.stackexchange.com/a/80163/53921
defaults write com.google.Chrome.plist AppleEnableSwipeNavigateWithScrolls -bool FALSE
# Make Finder display "hidden" files and folders
# like ~/.ssh
defaults write com.apple.finder AppleShowAllFiles TRUE
# Apache in Mountain Lion
# http://reviews.cnet.com/8301-13727_7-57481978-263/how-to-enable-web-sharing-in-os-x-mountain-lion/
[{"title":"Techmeme","xmlUrl":"http://www.techmeme.com/feed.xml"},{"title":"Sam Ruby","xmlUrl":"http://intertwingly.net/blog/index.atom"},{"title":"Lethal Librarian","xmlUrl":"http://www.lethal-librarian.net/?feed=rss2"},{"title":"inessential.com","xmlUrl":"http://inessential.com/xml/rss.xml"},{"title":"Amyloo","xmlUrl":"http://hosting.opml.org/amyloo/blog/rss.xml"},{"title":"bits & bytes & pixels & sprites","xmlUrl":"http://www.bitsbytespixelssprites.com/blog/feed/"},{"title":"Bad Gods","xmlUrl":"http://badgods.com/rss.xml"},{"title":"Geek's Guide to the Galaxy","xmlUrl":"http://io9.com/podcast.xml"},{"title":"Writing (3)","xmlUrl":"http://www.quicktopic.com/36/H/QaFaSkQcyBG.rss"},{"title":"Ficlets Blog","xmlUrl":"http://ficlets.com/blog/feed"},{"title":"Achewood","xmlUrl":"http://achewood.com/rss.php"},{"title":"Achewood","xmlUrl":"http://www.achewood.com/rss.php"},{"title":"Auralgasms News","xmlUrl":"http://www.auralgasms.com/AuralgasmsNews.xml"},{"title":"100 Word Stories","xmlUrl":"http://100wordstories.
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
"module": "none" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
"allowJs": true /* Allow javascript files to be compiled. */,
"checkJs": true /* Report errors in .js files. */,
"noEmit": true /* Do not emit outputs. */,
"noImplicitAny": false /* Raise error on expressions and declarations with an implied 'any' type. */,
"moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
"skipLibCheck": true /* Skip type checking of declaration files. */,
const fetch = require('node-fetch');
function request (options, cb) {
fetch(options)
.catch(cb)
.then(res => {
return res.body()
.then(body => {
cb(null, res, body);
}, cb);
@danmactough
danmactough / move-music.sh
Last active April 14, 2020 22:16
Move your entire music library from one directory to another
#!/bin/bash
set -euo pipefail
set -x
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
# set OLD_DIRECTORY and NEW_DIRECTORY
# OLD_DIRECTORY=/Users/your_username/Music
# NEW_DIRECTORY=/Volumes/your_external_drive/Music
OLD_DIRECTORY=
@danmactough
danmactough / GIF-Screencast-OSX.md
Created February 2, 2020 16:03 — forked from dergachev/GIF-Screencast-OSX.md
OS X Screencast to animated GIF

OS X Screencast to animated GIF

This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.

Screencapture GIF

Instructions

To capture the video (filesize: 19MB), using the free "QuickTime Player" application:

@danmactough
danmactough / resolve.js
Created April 21, 2015 05:33
In any koa app, find the app root directory from any location.
var path = require('path');
var appRoot = path.resolve(path.dirname(require.resolve('koa')), '..', '..', '..');