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 / sorted-array-access.php
Last active December 15, 2015 16:49
It seems that when using sort() (i.e. the keys are re-assigned), array access slows down; but with asort() (i.e. the keys are not re-assigned) access speed is not affected.
<?php
const INT_COUNT = 1000000;
// Fill an array with random ints
$ints = [];
for ($i = 0; $i < INT_COUNT; $i++){
$ints[] = rand(0, 255);
}
// Sort the ints
@tomnomnom
tomnomnom / zend_hash_rehash_annotated.c
Created April 2, 2013 16:13
Annotated version of zend_hash_rehash
ZEND_API int zend_hash_rehash(HashTable *ht)
{
Bucket *p;
uint nIndex;
IS_CONSISTENT(ht);
if (UNEXPECTED(ht->nNumOfElements == 0)) {
return SUCCESS;
}
<?php
class SayDate extends DateTime {
public function say(){
$now = new DateTime();
$now->setTime(0, 0, 0);
$interval = (int) $now->diff($this)->format('%r%a');
if ($interval < 0){
return $this->format('Y-m-d');
@tomnomnom
tomnomnom / json-parsing.go
Created October 27, 2013 10:49
Parsing arbitrary JSON with go
package main
import (
"log"
"fmt"
"encoding/json"
)
func main() {
b := []byte(`{"name": "tom", "favNum": 6, "interests": ["knives", "computers"], "usernames": {"github": "TomNomNom", "twitter": "@TomNomNom"}}`)
@tomnomnom
tomnomnom / fttc-check.php
Last active December 30, 2015 19:29
Hacky FTTC Check Script
<?php
// Change me
const ADDRESS_ID = 'Gold|StringOfAlphas|MY|HouseNumber'; // You can find your Address ID using this: https://gist.github.com/TomNomNom/7875919
const TO_EMAIL = 'me@example.com';
const FROM_EMAIL = 'server@example.com';
// Don't change me
const SERVICE_URL = 'http://www.productsandservices.bt.com/consumerProducts/v1/productAvailability.do';
@tomnomnom
tomnomnom / find-bt-address-id.php
Created December 9, 2013 17:03
Hacky script for finding BT Address IDs
<?php
const HOUSE_NUMBER = 2;
const POSTCODE = 'LS1 4AP';
const SERVICE_URL = 'http://www.productsandservices.bt.com/consumerProducts/v1/addressSearch.do';
$query = http_build_query(array(
'postcode' => POSTCODE,
@tomnomnom
tomnomnom / extract.php
Created February 5, 2014 13:35
PHP Extract Function
<?php
function array_extract(array $input, array $keys){
$output = [];
foreach ($keys as $key){
if (!array_key_exists($key, $input)) continue;
$output[$key] = $input[$key];
}
return $output;
}
@tomnomnom
tomnomnom / rsync-link-dest.sh
Last active August 29, 2015 13:56
Rsync with --link-dest wrapper
@tomnomnom
tomnomnom / node-hello.js
Created March 5, 2014 09:06
Node.js Hello World Server
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '0.0.0.0');
console.log('Server running at http://0.0.0.0:1337/');
alert(1);