Skip to content

Instantly share code, notes, and snippets.

@wteuber
wteuber / sticky_notifications.md
Created Dec 11, 2019
Make notifications sticky in Mac OS
View sticky_notifications.md

defaults write com.apple.notificationcenterui bannerTime 99999

Log out / Log in

test

gem install terminal-notifier terminal-notifier -message "This is a test"

@wteuber
wteuber / git_branch_gone_prune_delete.sh
Last active Oct 29, 2019
git: prune and delete gone local branches
View git_branch_gone_prune_delete.sh
#!/usr/bin/env bash
git remote prune origin && git branch -vv | grep 'origin/.*: gone]' | awk '{print $1}' | xargs git branch -d
@wteuber
wteuber / mysql-install.sh
Created May 28, 2019 — forked from cemeng/mysql-install.sh
Codeship Install MySQL 5.6
View mysql-install.sh
#!/bin/bash
# Install a custom MySQL 5.7 version - https://www.mysql.com
#
# To run this script on Codeship, add the following
# command to your project's setup commands:
# \curl -sSL https://raw.githubusercontent.com/codeship/scripts/master/packages/mysql-5.7.sh | bash -s
#
# Add the following environment variables to your project configuration
# (otherwise the defaults below will be used).
# * MYSQL_VERSION
View colored_git_diff_html.sh
# Mac OS X:
script -q colored_word_diff.txt git diff --word-diff
cat colored_word_diff.txt|ansi2html > colored_word_diff.html
@wteuber
wteuber / redirection.txt
Created Aug 17, 2018
All about redirection of terminal/file output.
View redirection.txt
|| visible in terminal || visible in file || existing
Syntax || StdOut | StdErr || StdOut | StdErr || file
==========++==========+==========++==========+==========++===========
> || no | yes || yes | no || overwrite
>> || no | yes || yes | no || append
|| | || | ||
2> || yes | no || no | yes || overwrite
2>> || yes | no || no | yes || append
|| | || | ||
&> || no | no || yes | yes || overwrite
View benford_generator.rb
r = rand
(1..9).map{|n|Math.log10(1+1.0/n)}.inject([]){|ar,el|ar+[(ar.last||0)+el]}.each_with_index.map{|p,i|[i+1,p]}.find{|n,p|r<p}
@wteuber
wteuber / trace.rb
Created Aug 17, 2017
set_trace_func
View trace.rb
set_trace_func -> (event, file, line, id, binding, classname) do
if event == 'call' && meth = binding.eval('__method__')
params = binding.method(meth).parameters.select{|e| e[0] != :block}
values = params.map{|_, var| [var, binding.local_variable_get(var)]}
printf "%8s %s:%-2d %15s %8s %s\n", event, file, line, id, classname, values.inspect
else
printf "%8s %s:%-2d %15s %8s\n", event, file, line, id, classname
end
end
@wteuber
wteuber / rubocop_stable_auto_correct.rb
Created Jun 2, 2017
Script to check & commit all stable auto-corrections of Rubocop
View rubocop_stable_auto_correct.rb
require 'fileutils'
# TODO get list of Cops that support auto-correct
# for each cop, run the following
# only commit if change was stable
# (each run takes ~2 minutes)
prefix = ARGV[0]
files = Dir["#{prefix}/**/*.rb"].sort
orig = Hash[files.map do |file|
FileUtils.cp(file, "#{file}.orig")
[file, %x(ruby --dump insns #{file}).gsub(/\s+\(\s*\d+\)$/, '')]
@wteuber
wteuber / mov2gif.sh
Last active Jan 27, 2017
Convert mov to gif (made for QuickTime Player screen recordings)
View mov2gif.sh
#! /usr/bin/env bash
if [ -f "$1" ]; then
echo "ffmpeg -i $1 -vcodec copy -acodec copy $1.mp4 ..."
ffmpeg -i $1 -vcodec copy -acodec copy $1.mp4
else
echo "ERROR: Could not find $1"
fi
if [ \( $? -eq 0 \) -a \( -f $1.mp4 \) ]; then
@wteuber
wteuber / memo.rb
Created Jan 11, 2017 — forked from LeFnord/memo.rb
ruby memoization benchmarks
View memo.rb
require "benchmark"
class A
def name
@name ||= begin
rand
end
end
end