Skip to content

Instantly share code, notes, and snippets.

Ibrahim Muhammad whistler

Block or report user

Report or block whistler

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
whistler /
Created Mar 16, 2015
Copy files to another repository while saving git history
# copied from
git clone <git repository A url> # clone source repository
cd <git repository A directory>
git remote rm origin # to make sure it doesn't affect the original repository
git filter-branch --subdirectory-filter <directory 1> -- --all # remove all files other than the ones needed
mkdir <directory 1> # move them into another directory where they will be stored in the destination repository (if needed)
mv * <directory 1>
git add .
git commit
whistler /
Created Apr 19, 2015
Convert QFX/OFX to CSV
from csv import DictWriter
from glob import glob
from ofxparse import OfxParser
DATE_FORMAT = "%m/%d/%Y"
def write_csv(statement, out_file):
print "Writing: " + out_file
fields = ['date', 'payee', 'debit', 'credit', 'balance']
with open(out_file, 'w') as f:
whistler /
Created Jul 26, 2012
Set up Jenkins and Rails on Ubuntu server
sudo aptitude install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev
sudo apt-get install libxslt-dev libxml2-dev
sudo apt-get install libmysqlclient-dev ruby-dev
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install imagemagick libmagickcore-dev libmagickwand-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install libreadline-dev
### Install Java ###
sudo apt-get install openjdk-6-jre-headless
whistler /
Last active Jul 25, 2018
Conda environment for deep learning, image processing, data science
# To install the most recent version go to
conda install -y -c conda-forge jupyterlab
conda install -y scikit-learn
conda install -y pytorch torchvision cuda91 -c pytorch
conda install -y opencv matplotlib scikit-image
conda install -y affine #rasterio
pip install rasterio==1.0.1 # conda does not have v1 of rasterio yet
whistler /
Created Apr 6, 2018
Merge two GeoJSON AOIs into one
from functools import reduce
import shapely.geometry
import geojson
def merge_aois(aois):
shapes = (shapely.geometry.asShape(aoi) for aoi in aois)
union = reduce(lambda a, b: a.union(b), shapes)
merged_aoi = geojson.Feature(geometry=union, properties={})
return merged_aoi
whistler /
Created Nov 2, 2017
Add more swap space on Ubuntu 17
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile
whistler /
Created Feb 21, 2017
Benchmark loops vs list comprehension
N = 10000000
def loops():
nums = []
for num in range(N):
#print nums
def list_comprehensions():
whistler / async_await.js
Created Feb 21, 2017
Javascript Async Await
View async_await.js
function fetch(url, callback) {
console.log('Getting ' + url);
var delay = (Math.round(Math.random() * 1E4) % 4000) + 1000
var response = 'Content for ' + url;
setTimeout(function() {
}, delay);
function promiseFetch(url) {
whistler /
Created Aug 16, 2016
Fetch Page View Data from Google Analytics
import os
import json
import httplib2
import flask
from oauth2client import client
from apiclient.discovery import build
http_auth = None
view_id = '00000000' # Add view id here
whistler /
Last active Dec 20, 2015
How to use to keep retrying for server or connect to a different server
client = require ''
socket = null
host = "http://localhost:12345"
connect_client = () ->
socket = client.connect(host, {'force new connection': true})
socket.on('connect', ()->
You can’t perform that action at this time.