Skip to content

Instantly share code, notes, and snippets.

@bytespider
bytespider / auth.js
Last active December 24, 2015 09:39
Authenticating Geddy.js with Passport HTTP Bearer
var passport = require('passport');
var BearerStrategy = require('passport-http-bearer').Strategy;
var Posts = function () {
var strategy = new BearerStrategy({ session: false }, function ( token, done ) {
if (token == '1234567890') {
return done(null, {username: "someuser"});
}
return done(null);
@bytespider
bytespider / pre-commit.sh
Created June 10, 2013 13:31
Useful git hooks
# stash unstaged changes so they are not included in the tests
git stash -q --keep-index
npm test
RESULT=$?
# put the unstaged changes back
git stash pop -q
[ $RESULT -ne 0 ] && exit 1
<?php
function createMVCRoute($defaults)
{
$application = \Slim\Slim::getInstance();
return function () use ($application, $defaults)
{
$controllerClass = $defaults['controller'];
$defaultAction = isset($defaults['action']) ? $defaults['action'] : 'index';
$args = func_get_args();
@bytespider
bytespider / Open in SimpleHTTPServer.applescript
Last active December 16, 2015 18:58
Serve a folder with Python SimpleHTTPServer
on run
tell application "Finder"
if selection is {} then
set finderSelection to quoted form of POSIX path of (folder of the front window as string)
else
set sel to (first item of (selection as list))
if class of sel is folder then
set finderSelection to quoted form of POSIX path of (sel as string)
else
set finderSelection to quoted form of POSIX path of ((container of sel) as string)
<?php
function is_serialized($input)
{
return is_string($value) && preg_match("/^(O|R|N|a|s|i|b|d):\d+/", $value);
}
@bytespider
bytespider / app.js
Last active December 13, 2015 21:38
Simple HTTP server using the unstable cluster module in Node.js. Using named functions reduces the amount of memory held.
var http = require('http');
var server = http.createServer(serverRequestEvent);
server.listen(8080, serverListeningEvent);
function serverRequestEvent(request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('Hello World');
response.end();
@bytespider
bytespider / promised-server.js
Created February 6, 2013 09:10
Using promises in a node js server
var path = Url.parse(request.url).path;
router.route(path)
.then(dispatchRoute)
.then(handleResponse)
.fail(handleError) // handle application errors
.fail(handleServerError); // catch all others
@bytespider
bytespider / actual-promise.js
Last active December 12, 2015 03:38
I would expect the exception to bubble up to `promise`'s error handler, or am I wrong?
var Q = require('q');
var step1 = Q.promise(function (resolve, reject) { reject('an error on 1'); }); // <-- reject here
var step2 = Q.promise(function (resolve, reject) { resolve(2); });
var step3 = Q.promise(function (resolve, reject) { resolve(3); });
var step4 = Q.promise(function (resolve, reject) { resolve(4); });
step1.then(function (value) {
console.log(value);
return step2;
@bytespider
bytespider / gist:4701250
Last active December 12, 2015 02:48
convert file.gif -coalesce -layers OptimizeFrame newfile.gif
<?php
$file_src = 'file.gif';
$im = new Imagick($file_src);
$format = $im->getImageFormat();
if ($format != 'GIF') {
// reject
}