Skip to content

Instantly share code, notes, and snippets.

View amirkdv's full-sized avatar

Amir Kadivar amirkdv

View GitHub Profile
@amirkdv
amirkdv / csv_rw.php
Last active August 29, 2015 13:57
simple CSV r/w utility
<?php
// First pass at a small CSV r/w utility. Before hacking at this, consider https://packagist.org/search/?q=csv
/**
* extracts the list of fields of a given associative array,
* @param array[][] $data
* @return array[]
* @throws Exception
* if provided associative array is inconsistent
*/
@amirkdv
amirkdv / toHtml.php
Created April 24, 2014 21:55
Convert arbitrary data objects to HTML tables
<?php
/**
* Render arbitrary nested PHP variables into readable HTML. toHtmlTable()
* accepts an arbitrary variable of any of the following forms:
* - objects are first cast to associative arrays and then rendered as such.
* - arrays are rendered as a table with two columns: keys and values.
* - primitive data types are cast to strings
*
* Example usage:
@amirkdv
amirkdv / mechanic.rb
Last active August 29, 2015 14:02
Login, click through, and get the data you need from an HTTPS site
#!/usr/bin/env ruby
# Use Mechanize to automatically login, click through, and fetch the data you
# need from an HTTPS site. The following works for the McGill admission portal.
# ruby mechanic.rb
# # Ready for Review
# # Ready for Review
require 'rubygems'
require 'mechanize'
@amirkdv
amirkdv / mysqldo.sh
Last active August 29, 2015 14:03
Cleanly run commands that require mysql running
#!/bin/bash
# Executes the provided arguments as a shell command with a twist: if mysql is
# not already running: starts mysql, runs the commands, and stops mysql.
# Example usage:
# - mysqldo mysql -u root -p # will open an interactive shell and will stop mysql
# # when you leave the shell
# - mysqldo 'echo "show databases;" | mysql -u root -p"my_password"'
# # note that if your commands involve pipes or anything that the shell
# # interpretter would not pass to mysqldo as arguments, you should wrap the
# # entire command in quotes.

In a fresh checkout:

cat provision
# #!/bin/bash
#
# echo step 1 >> /report.log
# echo step 2 >> /report.log

docker build -t entrypoint-exp01 .
# ...
@amirkdv
amirkdv / Allocate ports.md
Last active August 29, 2015 14:08
Generate deterministic *nix ports for services

Example usage:

$ python gimme_port.py
usage: gimme_port.py [-r|--resolve] NAME

$ python gimme_port.py muhc.ca.http
29595

$ python gimme_port.py staging.muhc.ca.http
port 31079 is in use by 'nc' (pid: 28569), use --resolve
@amirkdv
amirkdv / Monitor.md
Last active November 20, 2015 19:33
Simple HTTP monitor

POC simple HTTP monitoring script. First build the docker images:

git clone [this-gist] monitor
cd monitor
docker build -t amirkdv/monitor .

Now start the container, and all sites under sites.yaml will be pinged one after another:

docker run -i -t amirkdv/monitor
@amirkdv
amirkdv / interaction_topology_evolution.py
Last active June 8, 2018 05:26
An Evolutionary Model for the Emergence of Scale-Free Biological Networks
#!/usr/env/bin python3
# USAGE: LIB=work_space python3 interaction_topology_evolution.py
import random
import sys
import itertools
import math
import networkx as nx
import numpy as np
import os
from ctypes import cdll
@amirkdv
amirkdv / simulations.py
Last active June 8, 2018 05:26
Statistical Analysis of Coherence in LFP recordings
#!/usr/bin/env python
import sys
import numpy as np
from numpy.fft import rfft, rfftfreq, irfft
from matplotlib import pyplot as plt
from scipy.signal import csd, welch
# install via `pip install git+https://github.com/aaren/wavelets`
from wavelets import WaveletAnalysis
@amirkdv
amirkdv / web-ui-testing.md
Last active July 11, 2019 17:50
Web UI Testing Survey