Links Archive

Subscribe to the RSS Feed for my Portfolio

Kitsune Noir’s Desktop Wallpaper Project

Posted on 12 July 2009 Comments

If you’re anything like me then you can never have too many wallpapers. Thankfully, Bobby Solomon, the author of Kitsune Noir, has been running the Desktop Wallpaper Project for about 6 months now. Every week Bobby posts a new wallpaper from a different artist with a short blurb describing the inspiration for or the creation of the wallpaper.

I strongly suggest giving these wallpapers (along with Mr. Solomon’s great blog) a look as there are some hidden gems in there.


My List of Essential Firefox Extensions

Posted on 13 April 2009 Comments

So this topic of Firefox Extensions is discussed quite often on blogs and sites like digg and reddit. Generally there are Top 10, 20, etc. lists of what the best firefox extensions are. One that was published recently is Lifehacker’s Top 10 Must-Have Firefox Extensions, 2009 Edition. While I can’t say that I agree or disagree with what they’ve chosen (because I honestly haven’t used many of them), I feel as though I can still be somewhat contributive to this blossoming area of discussion and add what firefox extensions I use on a daily basis. So without further delay, here are my (in no particular order) top 5 firefox extensions.

  1. AutoCopy – This extension gives mIRC copy and paste functionality to your Firefox. This means that you no longer have to select text and then press Ctrl+C. Just select the text you want and it is in your clipboard. To paste the text somewheere else, just hit the middle mouse button. This is an extremely useful tool for bloggers who do a lot of copying and pasting. It also has come in handy for me as a quick way to copy code snippets from Pastie, etc. Another sort of bonus feature of autocopy is the fact that it fixes wrap-broken URLs that are sent in e-mails. Just select the whole url from the e-mail or IM or document and then paste it into the address bar and it works again.
  2. Delicious Bookmarks – This firefox extension allows youto access and create Delicious bookmarks from within firefox. For those of you not familiar with Delicious, it is a social bookmarking website that allows you to organize and access your bookmarks from any computer online. With the delicious bookmarks extension, you no longer have to worry about keeping your bookmarks synced or organized, and tagging a website is a simple two click process.
  3. ScribeFire – ScribeFire describes itself as “an extension for the Mozilla Firefox Web Browser that integrates with your browser to let you easily post to your blog: you can drag and drop formatted text from pages you are browsing, take notes, and post to your blog.” And that is exactly what it does. ScribeFire is an extremely easy and productive way to store information you want to blog about while browsing the web, whether it be pictures, text, videos, or anything. Save notes and then gain instant access to them when you are ready to write a new blog entry. Then preview and publish it straight from ScribeFire. The only thing I wish it had was notes and draft syncing so I could switch from desktop to laptop more easily.
  4. Ubiquity – From Mozilla Labs, comes Ubiquity: the do-it-all easy to access web interface that allows everyone to do common Web tasks more quickly and easily. If you are familiar with the Quicksilver App, you will feel right at home with Ubiquity. I would go on about it, but just check out the video below for more info.
  5. Firebug – Without a doubt, this is one of the most useful developer tools available for Firefox. It allows you to analyze and optimize websites with an easy to learn and understand interface. As decribed on their homepage, “Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.”

29 Links and Resouces for learning Sinatra

Posted on 03 February 2009 Comments

Sinatra is considered a Ruby micro framework and is used for developing web applications on the fly! You can use it to develop small to medium applications or use it along with rails to create powerful web apps.

Sinatra has a great homepage with plenty of examples on how to get started. To install, you can grab the sinatra gem or clone the git repository.

While the examples on the Sinatra site are great for building your first simple application, Ruby Inside has put together a great list of links and resources for people interested in Sinatra.

Check it out over at Ruby Inside

Should I Use Tables For Layout? (.com)

Posted on 02 January 2009 Comments

shouldiusetablesforlayout.com. No.

Thanks Dean J. Robinson

20 Excellent AJAX Effects You Should Know

Posted on 10 October 2008 Comments

NETTUTS just published a list of 20 extremely useful Ajax effects that they say are “the top 20 Ajax effects that every web developer should know.”

Here’s the quick summary they provide:

There are a few special techniques or effects that can spice up just about any web page. These are the top 20 Ajax effects that every web developer should know. They’re essential parts of any web developer’s toolbox. If you haven’t seen them yet, you no doubt will in your future web development endeavors.

I would strongly suggest taking a look at the list in full, but I have pulled out a few of my favorites.

Inline Editing
This small aesthetic feature is something that really adds to the user experience. It’s a subtle move, but allows for easy editing of information. It has been used on sites like Flickr and Last.fm brilliantly and is something quick and easy to implement.


View a demo

Download the source

Live Validation
Allowing users to view live feedback while filling in a form will prevent users from having to resubmit forms due to providing incorrect information. It can also allow users to see availability of usernames and show whether or not their e-mail address is valid.

View a demo
Download the source

Ajax IM
Ajax IM has developed into an amazing instant messenger client that is extremely easy to implement into your site over the last few years. Extremely customizable, this could help increase interaction on a social networking site with ease.

View a demo
Download the source

PHVsPjxsaT48c3Ryb25nPndvb18xY29sX2hlaWdodDwvc3Ryb25nPiAtIDIwMDwvbGk+PGxpPjxzdHJvbmc+d29vXzJjb2xfaGVpZ2h0PC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fM2NvbF9oZWlnaHQ8L3N0cm9uZz4gLSAxNTA8L2xpPjxsaT48c3Ryb25nPndvb180Y29sX2hlaWdodDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0PC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfYnV0dG9uPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfZW5hYmxlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hYm91dF9oZWFkZXI8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hYm91dF9waG90bzwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0X3RleHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZHNfaW5uZXJfY29udGVudDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3A8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzU8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbGxfY2F0ZWdvcnlfdGl0bGU8L3N0cm9uZz4gLSBDYXRlZ29yaWVzPC9saT48bGk+PHN0cm9uZz53b29fYWx0X3N0eWxlc2hlZXQ8L3N0cm9uZz4gLSB3aGl0ZS1ibHVlLmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2FyY2hpdmVfbGF5b3V0PC9zdHJvbmc+IC0gM19jb2x1bW5zLnBocDwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dG9faW1nPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ibG9nX2NhdGVnb3J5PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48bGk+PHN0cm9uZz53b29fYnV0dG9uX2xpbms8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWVudTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2hvbWU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2RlbGljaW91czwvc3Ryb25nPiAtIGxvdWRib3k8L2xpPjxsaT48c3Ryb25nPndvb19kaWdnPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZW5hYmxlX2FsbF9jYXRlZ29yeTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fZW5hYmxlX2Jsb2dfY2F0ZWdvcnk8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ZhY2Vib29rPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3I8L3N0cm9uZz4gLSBsYnJhcGlkPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2dyYXZhdGFyPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9sYXlvdXQ8L3N0cm9uZz4gLSAzX2NvbHVtbnMucGhwPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9wb3N0czwvc3Ryb25nPiAtIDY8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3RpdGxlPC9zdHJvbmc+IC0gbW92aW5nIGZvcndhcmQgd2l0aCB0aGUgd2ViIGFuZCB0ZWNobm9sb2d5PC9saT48bGk+PHN0cm9uZz53b29fbGFzdGZtPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fbGF5b3V0PC9zdHJvbmc+IC0gMmNvbC5waHA8L2xpPjxsaT48c3Ryb25nPndvb19saW5rZWRpbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL2dlb21ldHJpYy88L2xpPjxsaT48c3Ryb25nPndvb19uYXZfZXhjbHVkZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX25hdl9mb290ZXI8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fcG9ydGZvbGlvX2NhdGVnb3J5PC9zdHJvbmc+IC0gRmVhdHVyZWQ8L2xpPjxsaT48c3Ryb25nPndvb19wb3J0Zm9saW9fcG9zdHM8L3N0cm9uZz4gLSAyPC9saT48bGk+PHN0cm9uZz53b29fcG9ydGZvbGlvX3Jlc2l6ZXI8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fcG9ydF9pbWFnZXM8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19yaWdodF9zaWRlYmFyPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zaG9ydG5hbWU8L3N0cm9uZz4gLSB3b288L2xpPjxsaT48c3Ryb25nPndvb19zdHVtYmxlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fdGhlbWVuYW1lPC9zdHJvbmc+IC0gR2VvbWV0cmljPC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcl9lbmFibGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcl91c2VyPC9zdHJvbmc+IC0gbGJyYXBpZDwvbGk+PGxpPjxzdHJvbmc+d29vX3R3aXR0ZXJfdXNlcm5hbWU8L3N0cm9uZz4gLSBsYnJhcGlkPC9saT48bGk+PHN0cm9uZz53b29feW91dHViZTwvc3Ryb25nPiAtIDwvbGk+PC91bD4=