View fuck_you.php
* fUCK yOU php
* @craig552uk
You echo to the browser, not to std out.
So I hunt for bugs in XHRs or (here or (there about))
View promise_chains.js
// Promises can only resolve (return) a single value
// Sometimes, you want to collect multiple values as you progress through a promise chain
// e.g. Customer, Product, Basket, Payment Details
// I can only think of three options for handling this type of scenario (below)
// NB: Assume that FOO, BAR & BAZ are the result of some complex action (DB query etc.)
// What are the Pro's & Cons?
// Are there others?
View test_errors.js
// Wrong ways to use Errors in Promises
// Passes Error constructor to next step in Promise chain
Promise.resolve('foo').then(val => {
return Error('Bad Thing 1');
}).then(val => {
console.log('LOG 1', val);
# -*- coding: utf-8 -*-
# Author: Craig Russell <>
# Simple exceptions for HTTP Errors
# Example:
# try:
# raise BadRequest()
# > telnet localhost 4000
# Trying
# Connected to localhost.
# Escape character is '^]'.
# hello
# world
# Connection closed by foreign host.
# -*- coding: utf-8 -*-
# A simple memory cache library
# Author: Craig Russell <>
import time
class Cache(object):
View basics_of_unix_philosophy
Basics of the Unix Philosophy
Rule of Modularity: Write simple parts connected by clean interfaces
Rule of Clarity: Clarity is better than cleverness
Rule of Composition: Design programs to be connected with other programs
Rule of Separation: Separate policy from mechanism; separate interfaces from engines
View mit-license.txt
The MIT License (MIT)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions: