Skip to content

Instantly share code, notes, and snippets.

💻
hacking the mainframe

Mark Watson markwatson

💻
hacking the mainframe
View GitHub Profile
@markwatson
markwatson / keybase.md
Created Jan 3, 2018
Keybase verification
View keybase.md

Keybase proof

I hereby claim:

  • I am markwatson on github.
  • I am markwatson (https://keybase.io/markwatson) on keybase.
  • I have a public key ASCuAq64t3gLeQezhPXltcKBo12vkezVThpaCWjAF65M2Ao

To claim this, I am signing this object:

@markwatson
markwatson / toString Generator
Created Feb 9, 2016 — forked from jenslohmann/toString Generator
Java toString() generator for IntelliJ IDEA that generates JSON
View toString Generator
public java.lang.String toString() {
#if ( $members.size() > 0 )
#set ( $i = 0 )
return "{\"_class\":\"$classname\", " +
#foreach( $member in $members )
#set ( $i = $i + 1 )
#if ( $i == $members.size() )
#set ( $postfix = "+" )
#else
#set ( $postfix = "+ "", "" + " )
@markwatson
markwatson / onChange.js
Created Feb 23, 2015
Helper to live check for input box changes in JavaScript.
View onChange.js
$.fn.mwOnChange = function(callback, timeout) {
return $(this).each(function() {
if (timeout === undefined) {
timeout = 500;
}
var eventNames = 'keydown paste input';
var timeoutId = null;
$(this).on(eventNames, function(e) {
var self = this;
@markwatson
markwatson / createEl.js
Created May 29, 2014
Create elements in javascript. Useful to me, not that useful in general.
View createEl.js
var createEl = function(type, props, children) {
var el = document.createElement(type);
if (props) {
for (var key in props) {
if (props.hasOwnProperty(key)) {
if (key == "css") {
if (props[key].length > 0) {
el.style.cssText = props[key].join(';') + ";";
}
} else {
View countCSSRules.js
function countCSSRules() {
var results = '',
log = '';
if (!document.styleSheets) {
return;
}
for (var i = 0; i < document.styleSheets.length; i++) {
countSheet(document.styleSheets[i]);
}
function countSheet(sheet) {
@markwatson
markwatson / csv.py
Last active Aug 29, 2015
Reads CSV files while handling all types of edge cases. (Built as an exercise - probably not useful)
View csv.py
import re
import unittest
class CsvReader(object):
"""
Reads CSV files while handling all types of edge cases.
"""
def __init__(self, lines):
"""
A new CSV reader with the given lines.
@markwatson
markwatson / time_card.py
Created Jul 16, 2013
A simple time tracker script.
View time_card.py
#/usr/bin/env python
"""
time_cards.py
This utility tracks time.
"""
import datetime
import atexit
@markwatson
markwatson / merge_tuples.rb
Created Mar 11, 2013
Merges an array of arrays by adding the elements together.
View merge_tuples.rb
# Takes an array of totals_tuples and combines them into a single tuple.
def self.merge_tuples(tuples)
tuples.inject([]) do |xs, ys|
l = [xs.length, ys.length].max
zs = []
l.times.each do |i|
zs[i] = (xs[i] || 0) + (ys[i] || 0)
end
zs
end
@markwatson
markwatson / pretty_json.py
Last active Dec 12, 2015
A sublime text plugin that pretty formats all the select JSON blobs.
View pretty_json.py
import sublime, sublime_plugin
import json
import re
class PrettyJsonCommand(sublime_plugin.TextCommand):
def run(self, edit):
re_json_p = re.compile(r'^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$')
try:
for region in self.view.sel():
@markwatson
markwatson / stats.py
Created May 3, 2012
Random stats functions
View stats.py
def mean(x): return sum(x) / len(x)
def std_dev(x, mx=None):
if mx is None:
mx = mean(x)
return math.sqrt(sum((i - mx)**2 for i in x)/len(x))
You can’t perform that action at this time.