Skip to content

Instantly share code, notes, and snippets.

set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# ~/.tmux.conf
#
# See the following files:
#
# /opt/local/share/doc/tmux/t-williams.conf
# /opt/local/share/doc/tmux/screen-keys.conf
# /opt/local/share/doc/tmux/vim-keys.conf
#
@f0ster
f0ster / slack_history.py
Last active November 8, 2019 01:25
slack history downloader (pub and priv) with rate limit retry :)
#https://gist.github.com/Chandler/fb7a070f52883849de35 SEE HERE
# MIT License
# Copyright (c) 2016 Chandler Abraham
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
@f0ster
f0ster / serverless.invoke.test.js
Created August 9, 2017 00:24
Wrapper to call serverless invokes with mock data, with execution wrapped with promises and tested with mocha
// wire up exec for serverless invokes with mock test data event inputs
require('dotenv').load();
const exec = require('child_process').exec
, assert = require('assert')
const stream = require('stream');
const expect = require('chai').expect;
@f0ster
f0ster / docker_WSL_volume_hack.sh
Created August 17, 2017 23:19
Using docker volumes in windows linux subsystem
# Docker for Windows/Docker Machine is mounting C:\Users\ of your Windows to //c on the Docker host.
sudo touch /usr/local/bin/docker
sudo chmod +x /usr/local/bin/docker
cat EOF > /usr/local/bin/docker
#!/bin/bash
ARGS=`echo -n "$@" | sed -E 's/\/mnt\/([a-z])\//\/\/\1\//g'`
eval /usr/bin/docker $ARGS
EOF
## great success
{
"env":
{
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"rules":
{
"linebreak-style": ["error", "unix"],
module MethodLogger
def self.included(base)
methods = base.instance_methods(false) + base.private_instance_methods(false)
base.class_eval do
methods.each do |method_name|
original_method = instance_method(method_name)
Rails.logger.info "creating override method for #{method_name} #{base}"
define_method(method_name) do |*args, &block|
Rails.logger.info "-> #{base}##{method_name}(#{args.inspect})"
Rails.logger.info "-- #{block}"
@f0ster
f0ster / Guardfile.rb
Last active July 2, 2018 18:39
guard
# A sample Guardfile
# More info at https://github.com/guard/guard#readme
## Uncomment and set this to only include directories you want to watch
# directories %w(app lib config test spec features) \
# .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
## Note: if you are using the `directories` clause above and you are not
## watching the project directory ('.'), then you will want to move
## the Guardfile to a watched dir and symlink it back, e.g.
@f0ster
f0ster / balance.scala
Last active July 24, 2018 20:37
verifying balanced parens with recursion
def balance(chars: List[Char]): Boolean = {
def balanced(chars: List[Char], currently_open_parens: Int): Boolean = {
if (chars.isEmpty) currently_open_parens == 0
else {
if(chars.head == '(') balanced(chars.tail, currently_open_parens+1)
else {
if(chars.head == ')' ) {
currently_open_parens > 0 && balanced(chars.tail, currently_open_parens-1)
} else balanced(chars.tail, currently_open_parens)
}
@f0ster
f0ster / make_change.scala
Created July 24, 2018 20:39
more scala recursive fun
/**
* Exercise 3
*/
def countChange(money: Int, coins: List[Int]): Int = {
def count(m: Int, sortedCoins: List[Int]) : Int = {
if (sortedCoins.isEmpty) 0
else if (m - sortedCoins.head == 0) 1
else if (m - sortedCoins.head < 0) 0
else countChange(m - sortedCoins.head, sortedCoins) + countChange(m, sortedCoins.tail)
}
@f0ster
f0ster / x.java
Created February 13, 2019 14:44
get android ad id
AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
AdvertisingIdClient.Info idInfo = null;
try {
idInfo = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext());
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();