Skip to content

Instantly share code, notes, and snippets.

View assertchris's full-sized avatar

Christopher Pitt assertchris

View GitHub Profile
@assertchris
assertchris / gist:1356601
Created November 10, 2011 23:23
VirtualBox Guest Additions, Ubuntu 11.10
sudo apt-get update
sudo apt-get install build-essential linux-headers-$(uname -r)
sudo apt-get install virtualbox-ose-guest-x11
<?php
$ns = 'http://ns';
function parse($text){
$parser = new DOMDocument('1.0');
$parser->loadXML($text);
return $parser;
}
var ns = 'http://ns';
function parse(text){
var parser = new DOMParser();
return parser.parseFromString(text, 'text/xml');
}
var xml = parse('<!DOCTYPE html><html xmlns:glue="'+ns+'"><body><glue:if>something</glue:if></body></html>');
console.log(xml);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:glue="http://www.chrisp.co.za/2012/glue">
<head>
<title>glue</title>
<meta charset="UTF-8" />
</head>
<body>
<!-- conditionals -->
@assertchris
assertchris / gist:2157648
Created March 22, 2012 10:47
Handy date diff function
function diff($start, $end)
{
$start = new DateTime($start);
$end = new DateTime($end);
$interval = $start->diff($end);
return array(
"years" => $interval->format("%y"),
"months" => $interval->format("%m"),
walk = (parts, value) ->
stack = {}
part = parts.shift()
if parts.length
stack[part] = walk(parts, value)
else
stack[part] = value
return stack
has = (self, key) ->
Object.hasOwnProperty.call(self, key)
each = (object, method, context) ->
for key in object
if method.call(context, object[key], key, object) == false
break
object
create = Object.create or (self) ->
Function::implements = (argv...) ->
for proto in argv
for key, value of proto::
@::[key] = value
@
class Animal
hello: (what) ->
alert(what)
do ->
Function::implements = (argv...) ->
for proto in argv
for key, value of proto::
@::[key] = value
@
has = (key) ->
return Object::hasOwnProperty(key)
@assertchris
assertchris / gist:2577836
Created May 2, 2012 16:09
Highlight lines in Ace (Editor)
###
CoffeeScript
marker = null;
require(["ace/range"], (range) ->
marker = editor.getSession().addMarker(new range.Range(7, 0, 7, 2000), "warning", "line", true);
)
setTimeout(->