Skip to content

Instantly share code, notes, and snippets.

@jchysk
jchysk / jpeg to pdf
Created July 24, 2014 00:07
Convert jpegs to PDFs and then resize to ebook size
#!/bin/bash
for f in *.jpeg; do convert ./"$f" ./"${f%.jpeg}.pdf"; done
for f in *.pdf; do gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -sOutputFile="${f%.pdf}.compressed.pdf" "$f"; done
@jchysk
jchysk / cryptography_helpers.py
Created May 10, 2016 05:03
A number of helper functions for common cryptography uses
"""
from helpers import generate_RSA, encrypt_RSA, generate_password, decrypt_RSA, generate_AES, decrypt_AES, pad
priv, pub = generate_RSA()
encrypted = encrypt_RSA(pub, generate_password())
key, iv, encryptor = generate_AES()
aes_encrypted = encryptor.encrypt(pad("this is a very long string " * 25))
decrypt_AES(key, iv, aes_encrypted)
"""
BS = 16
@jchysk
jchysk / RSA key format conversions
Created November 23, 2013 03:35
RSA key format conversions
def pub_to_e_n(key):
"""
Converts a .pub public key to an exponent and n value
:param key: String. Public key
:return: e as Int
:return: n as Long
"""
import base64
import struct
@jchysk
jchysk / Javascript CSS Loader
Created November 23, 2013 03:33
Javascript CSS Loader
/**
* Framework independent function to load CSS
* @param path To the CSS file
* @returns {HTMLElement}
*/
function loadStyleSheet(path) {
var head = document.getElementsByTagName( 'head' )[0], // reference to document.head for appending/ removing link nodes
link = document.createElement( 'link' ); // create the link node
link.setAttribute( 'id', 'cssLKLoad'); // set ID to check if already loaded
link.setAttribute( 'href', path );
@jchysk
jchysk / shuffler.py
Created October 19, 2013 04:19
Simulate the shuffling of cards
SUITS = ["clubs", "diamonds", "hearts", "spades"]
class Card(object):
one_to_fifty_two = None
number = None
suit = None
positions = None
def __init__(self, number, suit, value):
@jchysk
jchysk / pick_winner.py
Created April 7, 2015 19:34
Winner Picker using Blockchain
"""
Pick a random winner
"""
if __name__ == '__main__':
import sys
entries = sys.argv[1]
import requests
# Grab the latest hash
latest_hash = requests.get("https://blockchain.info/q/latesthash")
@jchysk
jchysk / keybase.md
Created February 13, 2015 08:07
Keybase Proof

Keybase proof

I hereby claim:

  • I am jchysk on github.
  • I am jchysk (https://keybase.io/jchysk) on keybase.
  • I have a public key whose fingerprint is 4697 5E88 C723 4E13 57E0 E88D BC7F C851 B93C C464

To claim this, I am signing this object:

@jchysk
jchysk / email_verifier.py
Created February 9, 2015 23:57
Check that domain of email addresses can be resolved
#!/usr/bin/python
"""
Takes a csv of email addresses and gives back a csv of the email addresses that have a resolvable domain.
"""
domains = list()
checked = []
checked_bad = []
import socket
@jchysk
jchysk / fabfile.py
Last active August 29, 2015 14:04
Fabfile that can interact with Dockers from any OS
# Docker controller
# example usage
# fab local_os restart_env
from fabric.api import *
def _vagrant():
env.user = "vagrant"
@jchysk
jchysk / gist:7582c7618f9a35b9b5bd
Created May 27, 2014 03:09
Secretary problem; Daut version towards optimizing average instead
#Daut's edited secretary problem
#function which randomizes a list
def randomize_rankings(sec):
import random
random.shuffle(sec)
return sec
#function which returns a secretary based on Daut's algorithm
def chooseSecretary(sec):