Based on this comment [1], I have started building a unicorn avatar maker. It's still quite ugly, and the results aren't different enough yet, but this is what it looks like so far:
Question list [2] / Joel's profile [3] (removed the images from here to make this thing a little shorter).
Is this just way too stupid, or should I go on? If so, any suggestions? I'm thinking of things like backgrounds etc.
Now prettier and with legs, rainbows, and stuff. Examples:
Æther: Jeff Atwood: Troggy:
But now its on the App Engine for everyone, so go ahead pounding my quota:
http://unicornify.appspot.com/avatar/HASH?s=32
Replace HASH by the md5 hash that gets given to gravatar (or any hexadecimal number, really). Don't just copy & paste the above into your browser. I thought this was clear, but looking at the access logs, it looks like I have to explain it.
The ?s=32
parameter can be omitted. The only legal values are 32 and 128; defaults to 32. Other parameters are ignored.
If you take this greasemonkey script [4] and change the substitution line to
$(this).attr("src", $(this).attr("src").replace(/www\.gravatar\.com/, "unicornify.appspot.com"));
you'll see meta the way it has been looking to me for the past days: Full of unicorns.
If you just want to replace the identicons, i.e. those users that don't have their own gravatar set up, use this instead:
$(this).attr("src", $(this).attr("src").replace(/(www\.gravatar\.com\/avatar\/)([a-z0-9]*)\?s=(\d+)&d=identicon(.*)$/, "$1$2?s=$3&d=http%3A%2F%2Funicornify.appspot.com%2Favatar%2F$2%3fs%3d$3$4"));
Finally, if you just want to see it once, without any greasy monkeys: Paste this
javascript:(function(){$("img").attr("src", function(){return this.src.replace(/www\.gravatar\.com/, "unicornify.appspot.com")})})()
into your location bar.
I will be deploying a new version later today. Some of you have showcased your own unicorn avatar below using a direct link to unicornify.appspot.com/avatar/...
. These images will then show the updated version. If you want to preserve the historical record by keeping the old version, you'll have to host the image somewhere else, or at least change the image URL. The old ones will be available by passing an additional parameter v
with the value 3
, i.e.
http://unicornify.appspot.com/avatar/HASH?s=32&v;=3
No new old-version images will be created, but the previously created ones will still be available for a while.
Since the unicorns have their own website by now, this is probably the last update I'll be posting on this question.
Jeff finally rolled out the Unicorn avatars for us all to enjoy.
Jeff, you must change the default avatars on S[OFU] to unicorns on April 1st.
Ok this was implemented... I'm sooo happy now :D Thanks Jeff!
Unicorns with fricking laser beams attached to their heads!
You need more rainbows and sparkles.
Sweet! My blood-red unicorn is stabbing at the rainbow.
He's hardcore! Well, as hardcore as a unicorn can be.
iloveyouiloveyouiloveyouiloveyou
I want to see mine, so I can start using it right away.
This needs to go live on April, 1st, along with the new pink CSS background colors.
Even better:
You should totally submit this to Gravatar, and see if they will add it as an option!
Mine is a ninja unicorn. Or a ninjacorn. Notice how it's camouflaged!!
Needs more googly eyes.
Yay! My very own unicorn!
I was disappointed earlier to find that the same wasn't done for SO, and this morning I find that you've got one up that does it dynamically!
Now I can see what my SO unicorn would be (since I use different avatars on SO and Meta, of course):
I'd have to say that's even a bit better than my metacorn.
Needs more legs.
EDIT
Behold, legs on my unicorn!
My unicorn appears to have anger issues with rainbows.
There is one missing.
->
Some sites use things like 0.gravatar.com
-- at least the homepage of
www.gravatar.com
[1] itself does. The following change handles that, also ignoring the case:
replace(/\w*\.gravatar\.com/i, 'unicornify.appspot.com'
And now that unicornify.appspot.com [2] is a true web site, maybe add the Greasemonkey thingy there as well? And, here's a bookmarklet:
function loadJQuery(onload){
if(typeof jQuery != 'undefined'){
onload();
}
else{
var h = document.getElementsByTagName('head')[0],
s = document.createElement('script'),
loaded = false;
s.type = 'text/javascript';
s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js';
s.onload = s.onreadystatechange = function(){
if(!loaded
&& (!this.readyState || this.readyState == 'loaded'
|| this.readyState == 'complete')
){
loaded = true;
onload();
}
};
h.appendChild(s);
}
}
loadJQuery(
function(){
$jq = jQuery.noConflict();
$jq('img').attr('src',
function(){
return this.src.replace(/\w*\.gravatar\.com/i, 'unicornify.appspot.com');
}
)
}
)
Hence:
<a href="javascript:(function(){function%20loadJQuery(onload){if(typeof%20jQuery!='undefined'){onload();}else{var%20h=document.getElementsByTagName('head')[0],s=document.createElement('script'),loaded=false;s.type='text/javascript';s.src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js';s.onload=s.onreadystatechange=function(){if(!loaded&&(!this.readyState||this.readyState=='loaded'||this.readyState=='complete')){loaded=true; onload();}};h.appendChild(s);}}loadJQuery(function(){$jq=jQuery.noConflict();$jq('img').attr('src',function(){return%20this.src.replace(/\w*\.gravatar\.com/i,'unicornify.appspot.com');})})})()">Unicornify this page</a>
One could also use tricks like used by The Printliminator [3], to fetch both jQuery and another script (with a dummy URL parameter to enforce fetching the latest version each time) to run the actual jQuery replacements as well. That way, you can change the latter when needed.
(But that Printliminator bookmarklet seems to load jQuery no matter what, which I guess could yield problems when mixing versions? Also, using function()
rather than void(..)
seems easier after all, so forget my earlier comment on that.)
Bug-eyed, the same color as glow in the dark stickers, every bit as shapely as a gummi bear, and seriously hung up on that rainbow.
Just horrible.
Add my vote for the 20100401 application date.
If I had 15 rep I would vote you up.
Stupidly cute, I love them!
Here is a ponycorn:
:D
Mine looks like it has the sad puppy eyes.
I think you could start a new religion with this, at least something like a zodiac style future prediction thing. I think mine says I'm romantic and I will be lucky in finding a new job this year.
Good job.
I think mine is on fire.
Something appears to be wrong with mine.
Aww, mine is far away.
Oh, I'm purple..
Hmm.. Looks a bit stoned/drugged out of eyes.
He liked being purple, but the other unicorns made him feel inadequate.
My life finally has a purpose
Get off my gravatar!!!
My spaced out hippy unicorn:
This is way fun. Unicornatars in Wordpress blog:
http://www.somethingorothersoft.com/2010/02/01/double-dispatch-without-rtti/
You need to add support for 48px for them to work out of the box-ish :))
Favelet / Bookmarklet to quickly view a Unicornified™ Gravatar based on its MD5 hash: (view http://jsbin.com/ohoxi3/2 for draggable link)
javascript:(function(){var%20q=prompt('Gravatar MD5 hash:');if(q){document.location='http://unicornify.appspot.com/avatar/'+q.replace(/%20/g,'').replace(/@/g,'')+'?s=128';}})();
Here’s mine:
Frickin' awesome.
(primary e-mail)
(secondary e-mail)
I could learn to live with it ;-p Fantastic work.
For anyone wanting to swap gravatars; note that the gravatar caching means that changing the image against your gravatar is slow to take effect. Adding a second e-mail address and associating that with a second image is much more effective. Then all you have to do is change you e-mail address (easy) and you have an immediate update. For many e-mail providers (gmail in particular) you can use the + trick to get additional working e-mail addresses - i.e. if your r e-mail address is somebody@gmail.com
, you can use somebody+meta@gmail.com
(for example).
Awesome, mine looks like a nightmarish unicorn from hell :) Now if it only could breath fire...
A Classic... and April is still like 2 months away!
My little pwn3y (er.. unicorn)
Just like Skittles... Touch the rainbow!
Love it, love it, love it! This is pure amazing! Can I showcase these unicorn avatars on cornify.com?
Sparkles and rainbow hugs to you!
Edit: @balpha - these are awesome btw.
One suggestion though... since you've gone to the trouble of adding a mane & legs, maybe give them a tail (same colour as the main, except a bit bigger & getting thicker towards the end)?
Also, because I think it's appropriate, I've added your greasemonkey script snippet to my Cornify button script [1], so now cornifying will unicornify the gravatar for the relevant question/answer too.
Damn it, my rainbow & unicorn hating workplace is blocking unicornify.appspot.com
(a conspiracy to be sure).
Now I'm going to have to painstakingly type in my gravatar md5 hash into my mobile phone so I can see mine.
[1] http://meta.stackoverflow.com/questions/13592/10k-rep-users-should-have-the-cornify-button-back/13625#13625HMS Unicorn landing!
Man, look at the size of that horn.
I love mine! Too bad you can't add it dynamically as a picture
My unicorn is a punk:
I find mine awesome <3
Thanks balpha, you rock!
Wish I'd known earlier. I could have had a WordPress plugin for it out on April 1st.
Plugin will be available soon, I've already got the application in the repository.
Now to patiently wait for caches to clean out so I can be unicornified!
next stackoverflow ad:
Do you have a problem with premature implementation? Wish you could satisfy your users but always release too early? We do to.
Ok, so earlier I was thinking these were screencaps:
From the mygotits full of unicorns: I'm thinking they're character screencaps from 'The Last Unicorn', or something similar. they're not exact; it might be some KMart/WalMart Direct-to-DVD thing. Don't forget that Jeff's child would be of that age.
Looks like I had that wrong.
Interesting, but I won't be keeping mine.
Now I love my unicorn..
But is there away to get a DOUBLE rainbow!!!!
Unicorns need double rainbows!!!!
javascript:$("img").attr("src", function(){return this.src.replace(/www\.gravatar\.com/, "unicornify.appspot.com")})
- Arjan[object Object]
). - balphavoid(..)
for that, but indeed I did not test. Shame on me! ;-) (No need for any credits though!) So, the following would work as well, but I guess you know:javascript:void($("img").attr("src", function(){return this.src.replace(/www\.gravatar\.com/, "unicornify.appspot.com")}))
- Arjanwhats-this
) -magical weaponized from of ponies
- SLaks