Skip to content

Instantly share code, notes, and snippets.

@jido
jido / gist:1129540
Created August 6, 2011 17:24
Javascript clone
// Does not exactly perform a clone, but all fields are same as original var
function clone(x) {
function Build() {};
Build.prototype = x;
return new Build;
}
@jido
jido / dodo.js.test.html
Created August 25, 2011 09:47
The dodo object model: a Javascript adaptation
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<title>Test JS</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
<link rel="stylesheet" type="text/css" href=".css"/>
<script>
"use strict";
Configuration options
---
.
.
.
__reader__ : _function(string, function(string), function(Error))_
A function that reads a template and passes it to the first callback
when it is ready. The second callback can be used in case of error.
@jido
jido / gist:1aa424dceb434da4e38973d0a2b7482c
Created April 23, 2016 16:07
The function that uses the callback
var handleAllIncludes = function handleAllIncludes(includes, config, rendered, size, finish) {
if (includes.work.length === 0)
{
if (finish !== undefined) finish(rendered);
return;
}
if (finish === undefined)
{
console.warn("Mistigri needs a callback - ignoring all includes");
return;
@jido
jido / gist:c22947e171c7e76314d865686583c5a5
Created April 26, 2016 00:15
var Promise messes up the test
var mistigri = (function(){
/*
if (Promise === undefined)
{
console.log("Making a fake Promise");
var Promise = function Promise(execute) {
this.then = execute; // Mistigri always returns, even if it ran into problems
this.catch = function(onrej) {
return this;
> console.log(Promise.toString())
function Promise() { [native code] }
undefined
> function Promise(execute) {
... this.then = execute;
... this.catch = function catch(handler) {
..... return this;
..... };
... }
... ;
@jido
jido / ObjectCopy.js
Last active May 7, 2016 08:18
Why does this give a TypeError: cannot convert undefined or null to object?
"use strict";
function copy(proto, changes) {
if (changes === undefined) return Object.create(proto);
var props = Object.keys(changes).map(function(attr) {
var single = {};
single[attr] = {value: changes[attr], writable: false, enumerable: true};
return single;
});
return Object.create(proto, Object.assign.apply(props));
@jido
jido / mafia2.mt
Last active June 19, 2016 19:52
Hung program
# An implementation of the Mafia party game state machine.
import "lib/enum" =~ [=> makeEnum]
exports (makeMafia, DAY, NIGHT)
def [MafiaState :DeepFrozen,
DAY :DeepFrozen,
NIGHT :DeepFrozen] := makeEnum(["day", "night"])
@jido
jido / Mistigri.java
Last active June 29, 2016 23:10
Why is my Matcher not working?
private static final Pattern parser = Pattern.compile("/(\\S+)/");
private String parseAction(String tag) {
Matcher them = parser.matcher(tag);
if (!them.find()) return "YOLO";
return them.group(1);
}
Result:
$ git push
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
git push origin HEAD:<name-of-remote-branch>