Skip to content

Instantly share code, notes, and snippets.

View tomnomnom's full-sized avatar
☺️
Taking it easy

Tom Hudson tomnomnom

☺️
Taking it easy
View GitHub Profile
@tomnomnom
tomnomnom / virev.sh
Created September 28, 2011 09:36
bash function to open files modified in a git commit in vim tabs
# Open files modified in a git commit in vim tabs; defaults to HEAD. Pop it in your .bashrc
# Examples:
# virev 49808d5
# virev HEAD~3
function virev {
commit=$1
if [ -z "${commit}" ]; then
commit="HEAD"
fi
rootdir=$(git rev-parse --show-toplevel)
@tomnomnom
tomnomnom / mungeable.php
Created November 12, 2011 03:41
Mungeable PHP objects - playing with PHP 5.4 RC1
<?php
/**
* Playing with some of PHP 5.4 RC1's features
*
* A trait to make an object "mungeable"; i.e. so you can "munge"
* methods (closures/lambdas) and properties into it.
*
* All methods and properties will be public.
*
* This is pure experimentation. Please do not attempt to derive any
@tomnomnom
tomnomnom / vim-in-ambient-exercise.html
Created May 7, 2012 12:06
Vim "in" and "ambient" motions exercise
<!doctype html>
<html lang="en">
<head>
<title>My awesome homepage</title>
<script type="text/javascript">
(function(){
// Press ci" (Change In quotes) with the cursor between
@tomnomnom
tomnomnom / xdebug-trigger.patch
Created May 15, 2012 21:59
XDEBUG_PROFILE trigger from CLI patch
From a7209454d1817f0e79b62d78b370cd8390fb1069 Mon Sep 17 00:00:00 2001
From: Tom Hudson <mail@tomnomnom.com>
Date: Tue, 15 May 2012 22:55:24 +0100
Subject: [PATCH] Enabled use of XDEBUG_PROFILE trigger from CLI via _ENV
globals
---
xdebug.c | 3 +++
1 file changed, 3 insertions(+)
@tomnomnom
tomnomnom / simple-mvc.php
Created June 18, 2012 13:51
Very Simple MVC
<?php
// "M"
function getUsers(){
// Fetch from DB
// ...
return $arrayOfUsers;
}
// "C"
$users = array();
@tomnomnom
tomnomnom / bucket-split.js
Created November 3, 2012 16:04
Splitting test files into roughly similar buckets
// Files vs. tests in file
var files = {
'one.js': 12,
'two.js': 22,
'three.js': 14,
'four.js': 10,
'five.js': 19,
'six.js': 10,
'seven.js': 18,
'eight.js': 10,
@tomnomnom
tomnomnom / trait-deps.php
Created December 30, 2012 14:00
An experiment: using traits for dependency injection
<?php
// An experiment: using traits for dependency injection
// A trait provides a way to inject a Logger and a way to use it
trait aLogger {
protected $logger = null;
public function setLogger(Logger $logger){
$this->logger = $logger;
}
public function log($msg){
@tomnomnom
tomnomnom / cv-server.go
Created January 5, 2013 18:53
POC Go web server for online CV
package main
import (
"net/http"
"html/template"
"runtime"
"os"
"os/signal"
"syscall"
"log"
@tomnomnom
tomnomnom / tweet-fetch.php
Last active December 11, 2015 06:08
A quick and dirty way to get recent tweets
#!/usr/bin/env php
<?php
date_default_timezone_set('GMT');
$params = array(
"screen_name" => "tomnomnom",
"include_rts" => "true"
);
if (!file_exists('last-id')){
touch('last-id');
@tomnomnom
tomnomnom / spec-1.2.7.json
Created February 19, 2013 14:15
Example Etherpad Lite API spec file
{
"version": "1.2.7",
"methods": [
{
"name": "createGroup",
"httpMethod": "POST",
"arguments": [
]
},