Skip to content

Instantly share code, notes, and snippets.

View jnrbsn's full-sized avatar

Jonathan Robson jnrbsn

View GitHub Profile
@jnrbsn
jnrbsn / httpd.php
Created December 19, 2012 03:41
The beginnings of a really simple web server written in PHP.
<?php
error_reporting(-1);
set_time_limit(0);
$host = '0.0.0.0';
$port = 12345;
$max_clients = 10;
// Create the socket.
@jnrbsn
jnrbsn / AtomicParsley.php
Created December 19, 2012 03:27
Wrapper class for AtomicParsley for setting iTunes style meta data on MPEG-4 files via PHP.
<?php
/**
* Wrapper class for AtomicParsley for setting iTunes style meta data on MPEG-4 files.
*
* Dependencies:
* - Bunsen <http://github.com/jnrbsn/bunsen>
* - AtomicParsley <http://atomicparsley.sourceforge.net/>
*/
class AtomicParsley
@jnrbsn
jnrbsn / squarize.php
Created December 19, 2012 03:12
Calculates the "busiest" square area of an image to use for a thumbnail.
<?php
/**
* An example of how to use the `squarize()` function below.
*/
$path_input = 'input.png';
$path_output = 'output.png';
$thumb_w = 100;
$thumb_h = 100;
@jnrbsn
jnrbsn / Jonathan_Robson_Resume.md
Created December 12, 2012 15:10
A Markdown version of my resume.

Jonathan Robson

8918 W 64th Pl, Apt 203 / Merriam, KS 66202
816-200-7301 / jnrbsn@gmail.com

Objective

To obtain a position working with web technologies that leverages my skills,

@jnrbsn
jnrbsn / gist:4268258
Created December 12, 2012 14:40
Loads a JavaScript file asynchronously with a callback, like jQuery's `$.getScript()` except without jQuery.
function j(u, c) {
var h = document.getElementsByTagName('head')[0], s = document.createElement('script');
s.async = true; s.src = u;
s.onload = s.onreadystatechange = function () {
if (!s.readyState || /loaded|complete/.test(s.readyState)) {
s.onload = s.onreadystatechange = null; if (h && s.parentNode) { h.removeChild(s) } s = undefined;
if (c) { c() }
}
};
h.insertBefore(s, h.firstChild);
@jnrbsn
jnrbsn / gist:3966886
Created October 27, 2012 23:43
Read a file line by line in Node.js
var fs = require('fs'),
EventEmitter = require('events').EventEmitter;
var createLineReader = function (filename) {
var stream = fs.createReadStream(filename),
em = new EventEmitter(),
buffer = '';
stream.on('error', function (error) {
throw error;
@jnrbsn
jnrbsn / jquery-mobile-test.html
Created June 6, 2012 18:56
Demonstration of jQuery Mobile issue for Stack Overflow question: http://stackoverflow.com/questions/10920495
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery Mobile Test</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css">
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
@jnrbsn
jnrbsn / httpserver.py
Created April 25, 2012 23:51
Serves up the current directory to localhost via an instant HTTP server.
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
try:
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
if sys.argv[1:]:
-- MySQL procedure for converting all MyISAM tables in a database to InnoDB.
--
-- Example usage:
--
-- $ mysql -N example_database < convert_innodb.sql
--
-- @author Jonathan Robson <jnrbsn@gmail.com>
-- @copyright 2011 Jonathan Robson
-- @license http://gist.github.com/802399 MIT License
-- @link http://gist.github.com/1144336
@jnrbsn
jnrbsn / MIT_License.md
Created January 30, 2011 01:17
The MIT License

THE MIT LICENSE

Copyright © <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