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
View element_style_aggregation.js
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
View Function.whenTrue.js
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
View MooToolsEntityEncoding.js
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
View String.whenInDOM.js
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
View code_environment.tex
\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
View draft_watermark.tex
\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
View font_styles.tex
\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
View load_parse_render.js
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
View soup_talker.php
<?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
View Element.optimalWidth.js
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();