Skip to content

Instantly share code, notes, and snippets.

View khrome's full-sized avatar

Abbey Hawk Sparrow khrome

View GitHub Profile
@khrome
khrome / element_style_aggregation.js
Created December 13, 2011 07:17
Grouping and aggregating elements in MooTools
if(!Element.siblingsBefore){
Element.implement({
siblingsBefore : function(){
var results = [];
var found = false;
this.getParent().getChildren().each(function(child){
if(this == child) found = true;
if(!found) results.push(child);
});
return new Elements(results);
@khrome
khrome / Function.whenTrue.js
Created December 19, 2011 07:21
Function.whenTrue polling a boolean function with geometric falloff
if(!Function.actionTimeout) Function.actionTimeout = 16384;
if(!Function.whenTrue){
Function.implement({
whenTrue : function(actionFunction, args, delayFunction, timeoutFunction, timeout, counter){
if(!timeout) timeout = Function.actionTimeout;
if(!counter) counter = 0;
if(!timeoutFunction) timeoutFunction = function(event){
throw('Condition not met after '+event.time+'ms');
};
var result = this();
@khrome
khrome / MooToolsEntityEncoding.js
Created December 19, 2011 07:38
MooTools Entity Encoding
if(!String.regexEncode){
String.regexChars = ['\\', '&','^', '$', '*', '+', '?', '.', '(', ')', '|', '{', '}', '[', ']'];
String.regexEncodeRegexObject = new RegExp('([\\'+String.regexChars.join('|\\')+'])', 'g');
String.implement({
regexEncode : function(){
return this.replace(String.regexEncodeRegexObject, '\\$1');
}
});
}
@khrome
khrome / String.whenInDOM.js
Created December 19, 2011 07:44
String.whenInDOM : call a function on a DOM element from the future
if(!String.whenInDOM){
if(!String.defaultReplacementTimeout)
String.defaultReplacementTimeout = 16384;
String.implement({
whenInDOM : function(
callback,
delayCallback,
timeoutCallback,
timeout,
counter
@khrome
khrome / code_environment.tex
Created December 19, 2011 18:22
Code environment for XeLaTeX
\definecolor{altlinecolor} {rgb}{0.7,0.7,0.7}
\renewcommand{\FancyVerbFormatLine}[1]{%
\ifodd\value{FancyVerbLine}%
\colorbox{altlinecolor}{
\hspace{-0.04in}\makebox[\textwidth - 16pt][l]{#1}
}\else#1\fi}
\DefineVerbatimEnvironment{CleanCode}{Verbatim}
{
@khrome
khrome / draft_watermark.tex
Created December 19, 2011 18:29
XeLaTeX watermarking environment macro
\usepackage{everypage}
\newenvironment{water}{\AddEverypageHook{\waterb}}{
\AddThispageHook{\waterb}\AddEverypageHook{\watere}
}
\makeatletter
\newcommand{\waterb}{
\AddToShipoutPicture*{%
\setlength{\@tempdimb}{.5\paperwidth}%
@khrome
khrome / font_styles.tex
Created December 19, 2011 18:35
XeLaTeX section additions
\setsansfont[Mapping=tex-text,Scale=1.1]{Scrawler}
\setmainfont[Mapping=tex-text,Scale=1.0]{Lucida Grande}
\setmonofont{Courier}
@khrome
khrome / load_parse_render.js
Created December 19, 2011 18:51
Loading an SVG in JS and using raphael to render it, just for fun
var parser = new SVGParser();
var svgRequest = new Request({
url: 'awesome.svg',
onSuccess: function(responseText, responseXML) {
//once we recieve the SVG, we parse it
parser.parse(responseText);
}
}).send();
@khrome
khrome / soup_talker.php
Created December 19, 2011 19:25
The Soup Talker
<?php
$soups = array("Avgolemono ", "Borscht ", "Caldo verde ", "Fasolada ",
"Goulash soup", "Islensk Kjotsupa ", "Kimchi jjigae ", "Lentil soup",
"Menudo", "Mulligan Stew", "Philadelphia Pepper Pot ", "Pho",
"Sundubu jjigae ", "Snert ", "Solyanka ", "Tomato soup", "Cold borscht",
"Dashi soup ", "Okroshka", "Sour cherry soup", "Vichyssois", "Ginataan",
"Naengmyeon ", "Fruktsuppe", "Cioppino ", "Fanesca ", "Lan Sikik ",
"Sliced fish soup", "Ukha or Lohikeitto", "Bird's nest soup", "Fuhn",
"Mian", "Ramen", "Saimin", "French onion soup", "Tinola", "Crab bisque",
"Chestnut bisque", "Cream of Crab Soup", "Clam chowder", "Chupe",
@khrome
khrome / Element.optimalWidth.js
Created September 6, 2012 22:08
Element.optimalWidth
Element.implement({
// if called with callback, the element is set to the optimalWidth and called back when ready
// else the optimalWidth is calculated and returned
optimalWidth : function(callback){
var increment = 10;
var fuse = 10; //how many unchanged iterations before we're done?
var originalSize = this.getSize();
var lastForwardChange;
for(var lcv=0; lcv < fuse; lcv++){
var currentSize = this.getSize();