Skip to content

Instantly share code, notes, and snippets.


Ibrahim Muhammad whistler

View GitHub Profile
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 / this.js
Last active Aug 29, 2015
this in if
View this.js
var AnimalView = Backbone.View.extend({
save: function() {
var that = this;
if(!this.isSaved) {
} else {
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:
import sys
import time
for i in range(10):
print '\r', # print is Ok, and comma is needed.
print i,
sys.stdout.flush() # flush is needed.
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