Skip to content

Instantly share code, notes, and snippets.

@dbieber
dbieber / adorable.py
Created November 9, 2014 00:20
Uses Firefox with Selenium to take a picture of kittens on Google Images
from selenium import webdriver
driver = webdriver.Firefox()
driver.set_window_size(800, 600)
driver.set_window_position(0, 0)
driver.get("https://images.google.com")
searchbar = driver.find_elements_by_css_selector("#lst-ib")[0]
searchbar.send_keys("cute kittens")
searchbar.submit()
@dbieber
dbieber / zork.py
Created October 26, 2011 18:35
Zork for Tropo
def getInput():
#return raw_input()
return ask("Input", {
"choices":"http://hosting.tropo.com/97257/www/grammar/zork_grammar.grxml",
"timeout":60
}).value
def speak(x):
val = x.replace("<br />", " ").replace("<br>", " ")
#print val
@dbieber
dbieber / Blokus.js
Last active December 12, 2015 01:48
Toggles between Blokus and Life.
// Blokus Life Lessons (http://david-bieber.tumblr.com/post/41975899830/blokus-life-lessons)
$(".blokus").click(function(e) {
$(".blokus").each(function(index, el) {
if (el.innerHTML == "Life") $(el).text("Blokus");
else if (el.innerHTML == "life") $(el).text(" Blokus");
else if (el.innerHTML == "Blokus") $(el).text("Life");
else if (el.innerHTML == " Blokus") $(el).text("life");
});
});
@dbieber
dbieber / gist:6532578
Created September 12, 2013 02:50
Course auto-enrollment by Sammy Jerome and myself
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.set_window_size(1024, 768) # optional
url1 = "https://registrar.princeton.edu/score/"
url2 = "https://puaccess.princeton.edu/psc/hsprod/EMPLOYEE/HRMS/c/SA_LEARNER_SERVICES.SSR_SSENRL_CART.GBL?Page=SSR_SSENRL_CART&Action=A&ACAD_CAREER=UGRD&EMPLID=960579807&ENRL_REQUEST_ID=&INSTITUTION=PRINU&STRM=1142"
driver.get(url1)
@dbieber
dbieber / .bashrc
Last active December 24, 2015 06:09
Use this .bashrc file for an unfamiliar machine.
EDITOR=vim
alias edit=$EDITOR
alias c="clear;pwd;ls"
alias rc=". ~/.bashrc"
alias eb="edit ~/.bashrc"
alias ..="cd .."
alias cd..="cd .."
alias ll="ls -al"
function k() {
@dbieber
dbieber / dag.repo
Last active December 24, 2015 06:19
/etc/yum.repos.d/dag.repo for automatic amazon setup script
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
@dbieber
dbieber / viterbi.py
Last active January 2, 2016 18:39
Creates a markov model and implements viterbi. Given a sequence of local belief states (observations), finds the most likely sequence of states.
def get_probabilities(corpus, alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"):
corpus = ''.join([c for c in corpus if c in alpha])
counts = [corpus.count(c) for c in alpha]
start_probs = np.array(counts, dtype=float) / sum(counts)
trans_counts = [[0.1 + corpus.count("%s%s" % (a,b)) for b in alpha] for a in alpha]
trans_probs = np.array([np.array(x, dtype=float)/sum(x) for x in trans_counts])
return (start_probs, trans_probs)
start_probs, trans_probs = get_probabilities("THISSHOULDBEAHUGESTRINGLIKETHISBUTHUNDREDSOFTIMESBIGGER")
@dbieber
dbieber / dksnake.js
Created January 5, 2017 13:06
Plays Snake game at dskang.com/snake/
// Computer assisted snake!
// Paste this into the JS console at http://dskang.com/snake/ to play and win!
function getX() {
var head = gSnake.getHead();
var x = head.x / 20;
return x;
}
function getY() {
@dbieber
dbieber / spreadsheet.gs
Created October 21, 2018 18:57
The source of SpreadsheetDB used in the "Writing a Mail Merge in Google Apps Script" post on blog.davidbieber.com
function getColumnIndexes(columns) {
// Returns a map from column name to column index.
var container = {};
for (var i = 0; i < columns.length; i++) {
var value = columns[i];
container[value] = i;
}
return container;
}
@dbieber
dbieber / archivePastEvents.gs
Created December 29, 2019 23:44
Code used for archiving past events in the daily activity log spreadsheet.
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Activity Log')
.addItem('Archive Past Events', 'archivePastEvents')
.addToUi();
}
function archivePastEvents() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("Activities");