Skip to content

Instantly share code, notes, and snippets.

@benfulton
benfulton / newick_stretch.py
Created Feb 4, 2020
Extend the leaf branch lengths of a Newick tree so all the paths are the same length
View newick_stretch.py
from Bio import Phylo
from io import StringIO
import sys
treedata = sys.argv[1]
handle = StringIO(treedata)
tree = Phylo.read(handle, "newick")
out = StringIO()
@benfulton
benfulton / msp.py
Last active Aug 29, 2015
Screen scraper to summarize grades for MyStudentsProgress
View msp.py
import requests
from lxml import html
courseids=[62454,62508,62446,62557,62448,62513,62549,62511,62451,62558,62477]
# music 62531,
def grade(r):
try:
return float(r[2][0])/float(r[2][1])
except ValueError:
@benfulton
benfulton / slim-init.py
Created Jul 7, 2014
Launch the WaferSlim SLIM server from a source directory
View slim-init.py
import sys
sys.path.append("/path/to/GIT/waferslim/src")
import waferslim.server
import logging
#sys.argv = ['programname', '-iq', '-q', directory]
def start_server():
View directory_treemap.py
# This script reads a GIT directory and prints out the contents
# appropriately to be incorporated into a Google Visualization Treemap
# https://code.google.com/apis/ajax/playground/?type=visualization#tree_map
import os
rootdir = "E:\\Git"
result = {}
for path, dirs, files in os.walk(rootdir):
key = os.path.basename(path)
@benfulton
benfulton / host_updater.py
Created Jan 16, 2014
Copy registered machines from a LinkSys router to a hosts file, by scraping a router web page
View host_updater.py
import urllib2
import base64
import re
request = urllib2.Request("http://192.168.1.1/DHCPTable.asp")
base64string = base64.encodestring('%s:%s' % (USER, PASSWORD)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
lines = (re.findall(r"'(.*?)'", x, re.DOTALL) for x in urllib2.urlopen(request) if 'new AAA' in x)
q = dict((vv[0], vv[1]) for vv in lines if vv)
@benfulton
benfulton / WMPSongs.rb
Created Jul 17, 2012
Reading Windows Media Player songs in Ruby
View WMPSongs.rb
require 'win32ole'
class MediaPlayer
def initialize
@player = WIN32OLE.new('WMPlayer.OCX')
end
def songs
s = @player.mediacollection.getByAttribute("MediaType","Audio")
@benfulton
benfulton / RavenHQ.rb
Created Jun 7, 2012
Connecting to RavenHQ in Ruby
View RavenHQ.rb
require 'httparty'
response = HTTParty.get('https://1.ravenhq.com/docs')
response = HTTParty.get(response.headers['oauth-source'], :headers => { "Api-Key" => ApiKey })
auth = "Bearer " + response.body
response = HTTParty.get('https://1.ravenhq.com/databases/benfulton-SourcedTriples/docs/?start=0&pageSize=10', :headers => { "Authorization" => auth })
puts response.body, response.code, response.message, response.headers.inspect
@benfulton
benfulton / Book2Calendar.rb
Created Mar 7, 2012
Create an iCal file for your books checked out of Monroe County Public Library
View Book2Calendar.rb
require "icalendar"
require "Mechanize"
include Icalendar
class Libry
def initialize
@agent = Mechanize.new
end
You can’t perform that action at this time.