Hi! My name is Grzegorz.
I am a designer, web developer, online marketer and usability expert based in San Francisco, CA. I also DJ, produce music and shoot photos on the side.

Another revision to the MyLikes homepage

Tuesday, 24 Aug 2010

Work work work.

Saturday, 5 Jun 2010

A long overdue portfolio website for my friend Jeremy Harris.

jeremy's website

New MyLikes.com homepage

Wednesday, 2 Jun 2010

new my likes homepage

More work.

Tuesday, 25 May 2010

Launching a new website for blogger and chef Georgia Pellegrini tomorrow:

Georgia Pellegrini's new website

Be Kind!

Friday, 21 May 2010

Launched a new homepage I designed for KindCoins today.

And it’s official: I started a new job at MyLikes

Polish Film Posters

Thursday, 6 May 2010

Some of my favorite Polish film posters…

Logo Evolutions

Tuesday, 4 May 2010

Super interesting article on the evolutions of logos over the years.

brands

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.

Download .js file

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!

Next Page »