More work.
Tuesday, 25 May 2010
Launching a new website for blogger and chef Georgia Pellegrini tomorrow:
Logo Evolutions
Tuesday, 4 May 2010
Super interesting article on the evolutions of logos over the years.

http://www.boredpanda.com/21-logo-evolutions-pepsi-cola-apple-nike-nokia/
JavaScript function to normalize file paths
Monday, 3 May 2010
Usage: Removing “../”, “//”, “./” when rendering file paths as url paths in a web application.
function normalizePath(url) {
var slashLocation = url.indexOf("/"); // temp variable to store location of slashmark
var previousIndex = 0; // temp variable to store location of previous slashmark
var nextPreviousIndex = 0; // temp variable to store location of next previous slashmark
if (slashLocation > -1) { // check if url has any slashes in it
while (slashLocation < url.length) { // while conditional to iterate from start to finish through all slashes in the url string
if (url.charAt(slashLocation-1)==".") {
if ((url.charAt(slashLocation-2)==".")&&(url.charAt(slashLocation-3)=="~")) { // if two periods before the slash, remove all characters between next previous slash and current slash
var oldLength = url.length;
var offset = 0;
url = url.substr(0,nextPreviousIndex)+"~"+url.substr(slashLocation+1,url.length-slashLocation-1);
offset = oldLength-url.length;
var tempurl = url.substr(0,nextPreviousIndex);
nextPreviousIndex = tempurl.lastIndexOf("~");
previousIndex = slashLocation - offset;
oldLength = null;
tempurl = null;
offset = null;
} else if (url.charAt(slashLocation-2)=="~") { // if only one period before the slash, remove "./"
url = url.substr(0,slashLocation-2)+"~"+url.substr(slashLocation+1,url.length-slashLocation);
var tempurl = url.substr(0,previousIndex);
nextPreviousIndex = tempurl.lastIndexOf("~");
tempurl = null;
previousIndex = slashLocation-2;
} else {
url = url.substr(0,slashLocation) + "~" + url.substr(slashLocation+1,url.length-slashLocation);
nextPreviousIndex = previousIndex;
previousIndex = slashLocation;
}
} else if (url.charAt(slashLocation-1)=="~") { // if have slash mark before the slash, remove one
url = url.substr(0,slashLocation) + url.substr(slashLocation+1,url.length-slashLocation);
var tempurl = url.substr(0,previousIndex);
nextPreviousIndex = tempurl.lastIndexOf("~");
tempurl = null;
previousIndex = slashLocation-1;
} else { // otherwise just replace the slash with a random character, a tilda, to keep iterating through the url in the while loop
url = url.substr(0,slashLocation) + "~" + url.substr(slashLocation+1,url.length-slashLocation);
nextPreviousIndex = previousIndex;
previousIndex = slashLocation;
}
slashLocation = url.indexOf("/"); // this iterates to the next slash in the url string
if (slashLocation == -1) break; // if can't find any more slashes in the url string, then stop iterating
}
}
// clear out temp variables to avoid memory leaks
slashLocation = null;
previousIndex = null;
nextPreviousIndex = null;
return url.replace(/~/g,"/"); // return the url after replacing the inserted tildas with slashes
}
Anyone know of more efficient Javascript methods than using the substr() method to rejoin the string?
It seems one way to go would be to extend the String prototype in JavaScript to incorporate the splice() method used by the Array prototype.
I am not sure this saves much in processing time, since the splice() method in the Array prototype uses the slice() method -- which is nearly identical to the substr() and substring() methods in the String prototype. I can't find any performance benchmarks for these methods across browsers, so maybe I will have to write my own test scripts.
BAUDL – Pro Debate Tournament…
Saturday, 20 Feb 2010
For all you former debaters out there (if you’re my friend and seeing this website, there’s probably a 20% chance you’re a debater…), the Bay Area Urban Debate League is hosting an open competition, “Pro” debate tournament for ex-debaters, current debaters, government officials, lawyers, whoever, in between CEDA and NDT nationals in Berkeley, CA. The tournament is raising money to support BAUDL programs at inner-city schools in the Bay Area. I volunteered my time to develop and design the site for BAUDL.
An update…
Tuesday, 19 Jan 2010
1. Working on a social game site. Think futures markets on speed! Should be ready to release in the coming weeks. I got to use Yahoo BOSS (Build your Own Search Service) API for search – which is way easier to use than Google’s API – and without many of the content-use restrictions.
Check it out at: http://developer.yahoo.com/search/boss/
2. Working on new songs with my friend Jeff. Here’s the only semi-finished one… complete with lasers and vocals (by Jeff!).
What do we call our musical group? No, really… suggest a name – we need one.
3. Starting a new job soon!













Remix of Tiga's "Shoes"
Remix of Daft Punk's "Around The World"
"Final Level" - Original composition