Skip to content

Instantly share code, notes, and snippets.

@pixyj
pixyj / iptables_firewall_rules
Created November 14, 2013 01:41
Sample iptables firewall settings from http://feross.org/how-to-setup-your-linode/
*filter
# Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow all outbound traffic - you can modify this to only allow certain traffic
@pixyj
pixyj / psycopg2_install_dependencies.sh
Last active December 28, 2015 08:09
Install these psycopg2 dependencies on Ubuntu before pip install psycopg2 to fix below error: In file included from psycopg/psycopgmodule.c:27:0: ./psycopg/psycopg.h:30:20: fatal error: Python.h: No such file or directory compilation terminated. error: command 'gcc' failed with exit status 1
sudo apt-get install libpq-dev
#I'm running postgresql-9.1. Match the version to that of your server.
sudo apt-get install postgresql-server-dev-9.1
sudo apt-get install python-dev
#Now workon your virtualenv and pip install psycopg2
@pixyj
pixyj / hero.js
Created November 28, 2013 06:48
Why you shouldn't miss new when invoking a constructor function in javascript
//taken from Object Oriented Javascript by Stoyan Stefanov
var Hero() {
this.occupation = "Ninja!"
this.say = function() {
return "I'm a " + this.occupation;
}
}
/* correct invocation of constructor function
@pixyj
pixyj / data.txt
Created November 30, 2013 18:38
Solution to inversion count in an array. HackerRank problem: http://www.hackerrank.com/challenges/insertion-sort $ python inv_count.py < data.txt
10
20
3 15 12 10 2 13 14 5 6 9 17 18 16 8 0 11 1 19 4 7
20
16 0 1 15 8 10 18 17 11 13 5 6 19 4 14 12 3 9 2 7
20
0 19 11 13 15 18 5 2 9 4 12 10 7 14 17 8 3 16 6 1
20
2 14 7 4 1 17 6 16 18 9 12 13 5 3 10 11 19 0 8 15
20
@pixyj
pixyj / max_weight_independent_set
Last active December 30, 2015 05:39
Max weight independent set of a path graph
def max_weights(a):
weights = [0] * (len(a) + 2)
for i, v in enumerate(a):
j = i + 2
with_v = weights[j-2] + v
without_v = weights[j-1]
weights[j] = max(with_v, without_v)
@pixyj
pixyj / knapsack.py
Created December 4, 2013 16:22
Dynamic programming solution to knapsack problem in python.
#For simulations
import random
class Item(object):
def __init__(self, value=0, weight=0):
self.value = value
self.weight = weight
def __repr__(self):
return "({value}, {weight})".format(**self.__dict__)
@pixyj
pixyj / watchdog_starter
Created February 6, 2014 09:22
Seed file for listening to filesystem changes using python watchdog
import os
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class VHandler(FileSystemEventHandler):
def __init__(self):
FileSystemEventHandler.__init__(self)
@pixyj
pixyj / flip_predictor.py
Created February 16, 2014 06:26
Flip Predictor. Drill to learn Bayes Rule in Udacity's Intro to Stats class
#FlipPredictor
#A coin is drawn at random from a bag of coins of varying probabilities
#Each coin has the same chance of being drawn
#Your class FlipPredictor will be initialized with a list of the probability of
#heads for each coin. This list of probabilities can be accessed as self.coins
#in the functions you must write. The function update will be called after every
#flip to enable you to update your estimate of the probability of each coin being
#the selected coin. The function pheads may be called and any time and will
#return your best estimate of the next flip landing on heads.
@pixyj
pixyj / mle.csv
Created February 16, 2014 09:10
Maximum Likelihood estimator for k heads in n trials. https://www.udacity.com/course/viewer#!/c-st101/l-48727700/e-48726376/m-48724282
0 0
0.01 0.000297
0.02 0.001176
0.03 0.002619
0.04 0.004608
0.05 0.007125
0.06 0.010152
0.07 0.013671
0.08 0.017664
0.09 0.022113
@pixyj
pixyj / play_publish.go
Last active August 29, 2015 13:57
Simple Go program to check if your app is published yet on the Play Store
package main
import (
"fmt"
"net/http"
"time"
"os/exec"
)
func IsAppPublished(url string) bool {