Archive for the ‘Review’ Category

Host Your Own URL Shortener: 10 PHP Apps Reviewed

June 30th, 2009 38 comments

Shorter URLs

I have been planning to host a personal tinyurl or like URL Shortening service on my website.  I was going to write my own software for this, but thought I’d start by reviewing some existing PHP Apps just in case one already met my needs. I wanted to add a URL shortener to my website for a couple of reasons:

  1. People don’t always trust blind redirect links from tinyurl or  If the links came from my website, people would know the links were somehow related to my site and that I considered them safe.
  2. To shorten links sent over email, but still append a small path to them so people have some idea what they’re clicking on.  For example, assume was a shortened URL that pointed to a Google Map of my house.  I’d like to be able to append /MyHouse to the end of the link (i.e. without that breaking the redirect.  This is not easily possible with most URL shortening services.
  3. To also use the shortener to create custom landing pages for my website.  I’d like to keep my domain name in these landing pages and also be able to customize the name of the short URL.  Hosting the URL shortener on my site enables me to pick any name I’d like for the short link, without worrying whether someone else already reserved it.  These landing pages are handy for adding Google Analytics custom campaign tracking tags so I can tell which sites are linking to my blog posts.
  4. To have the ability to use regular expressions to create dynamic URLs to the destination page would be nice too especially for Amazon affiliate links.  These require you to add an /affiiliateID to the end of the URL.  A regular expression could take the path passed to the short URL and generate the long URL.  For example, I’d like something like this which you get with mod_rewrite:
    Link: /amazon/([^/]+)

The table below lists the URL shorteners I reviewed and compares them to the features I was looking for.

Name Random link Custom link Append URI Regex Has API Redir Type Private Custom title Edit Stand alone
Pretty Link Yes Yes Pass / Prevent Query String Yes 301 / 307 Yes Yes Yes No
YOURLS Yes Yes Prevent No Yes 301 Yes / No No Yes Yes
Link Shortcut Yes Yes Fail No No 301 / 302 Yes Yes Yes No
Simple Link Cloaker No Yes Pass No No 302 Yes No Yes No
GoCodes No Yes Prevent No No 301 Yes No No No
phurl Yes No Fail No Yes 301 No No No Yes
urlShort Yes Yes Prevent No Yes 301 No No No Yes
Shorty Yes Yes Fail No No 302 Yes No Yes Yes
TightURL Yes No Prevent No Yes 301 No No No Yes
Short URL Script Yes No Fail No No 301 Yes No No Yes
Last updated June 30, 2009

The columns indicate the features I was interested in and show if the URL Shortener supported that feature.

  • Random link – Does the software have the ability to generate a random link?  This is useful for automating tasks.  For example, if I wanted to post a short link to each blog post on Twitter, I would want the software to automatically generate a random link name.
  • Custom link – Does the software allow me to choose the name of my link?  Sometimes I do want to specify the name of the short link.
  • Append URI – Does the software allow data to be appended to the end of a short URL? For example, if the short link is and it points to, what happens when I type  Fail means the software could not handle that type of request and did no redirection at all.  Pass means it passes the extra URL data along when doing redirection – something that I did not want to happen.  Prevent means the shortener ignored the extra path and still forwarded to the original URL – which is what I wanted.
  • Regex – Does the software support regular expressions for mapping the path passed to a Short URL to the destination URL?  See #4 above for the reason behind this.  Only Pretty Link comes close to this, enabling the query parameters (stuff after the ? in a link) to be generated based on the URL.
  • Has API – Does the software have an API to support using it inside other software?  For example, if there is a really great plugin sending blog posts to Twitter, is it going to be easy to integrate the URL shortener software with this plugin?
  • Redir Type – What type of redirection does the software generate?  301 redirects are optimized out by search engines – which is what I wanted.  This post on URL Shorteners has a good description of the differences between 301 and 302 redirects. (It is also where I got the idea to make this table.)
  • Private – Does the software require an username/password for adding links?  Some of the software for URL Shortening is meant for public sites like tinyurl and  I’d rather be in control of all the links on my site.
  • Custom title – Does the software allow the user to enter a description of the link?  This can be useful later to determine the difference between two similar links (i.e. and
  • Edit – Can the destination link be changed after the short URL is created?  If the destination site changes, it would be useful to be able to modify the link.
  • Stand alone – Can the software be run on its own, without WordPress?  I’d like my blog to live in /blog on my website.  If the shortener is tied to WordPress then all my short links would need to include /blog in them – making them a little longer than I’d like.

In the end, I decided Pretty Link fit most of my needs.  The developer, Blair Williams, is also very responsive to questions and requests for new features.  I expect Pretty Link will continue to improve.  There were only two things Pretty Link didn’t satisfy; supporting regular expressions and being standalone.  Both of which I worked around with a few mod_rewrite Apache rules and a small modification to the Pretty Link source code.

In addition to the features I was looking for, Pretty Link includes a few extra features:

  • Optionally track the Number of Hits per link
  • Provides a reporting interface where you can see a configurable chart of clicks per day. This report can be filtered by the specific link clicked, date range, and/or unique clicks.
  • Can use the short URLs as Tracking Pixels and track impressions

Do you know of other URL Shorteners that might fit the solutions I need?  Or did I make any mistakes in the comparisons?  Leave me a comment and let me know.

TekSavvy and SpeakOut: My Alternatives to Rogers and Bell

September 9th, 2008 9 comments

I’m always looking for a better deal when it comes to my utility bills.  In Ontario, it seems like there aren’t many choices when it comes to telephone, television, wireless, and internet service.  Either you sign up with Bell or you sign up with Rogers.  At least that’s what their advertising campaigns would like you to think.

There are, however, good alternatives that will save you a few dollars per month.  Here are the companies I’m using instead of the “Big Two”.

Internet Service Provider (ISP)

I’m using an ISP based in Chatham, Ontario called TekSavvy Solutions.  TekSavvy rents DSL lines from Bell to provide internet service to its customers.  I have a Dry Loop DSL line with TekSavvy, which means the phone line coming into my house is only used for DSL service.  There is no phone number associated with the line.

TekSavvy takes care of all the billing.  I only pay a bill to TekSavvy and they pay Bell for the DSL line.  The connection to the internet is completely independent from Bell’s connection.  TechSavvy maintains their own backbone connection via Cogent and Peer1. The total cost for TekSavvy internet is $38/month.

Wireless Cell Phone Service

Just this month I switched my wireless phone service from Fido to SpeakOut.  SpeakOut is a prepaid GSM provider that is offered by 7-Eleven.  I like SpeakOut because there aren’t any hidden daily charges or System Access Fees – just a flat 20¢/minute.  The minutes don’t expire for an entire year – and you don’t lose them as long as you purchase more minutes before they expire.

Virgin Mobile is another good alternative for wireless phone service, but they’re not GSM based – meaning you can’t just switch SIM cards and have your phone work on a network in another country.

Television Service

I’m not a fan of being forced to watch advertisements when I’m paying for a service.  I feel that I shouldn’t be subjected to advertising interruptions if I’m spending money to watch something.  That said, paying for cable television service is a non-starter for me.

I still feel it is important to pay for professional entertainment – the actors/producers/writers/etc deserve to be paid for a job well done – especially if that means they’ll keep producing the shows that I like. So, instead of paying for television service, I choose to pay for my shows À la carte by using services like Apple’s iTunes and Amazon’s Video on Demand.  I feel this is a good alternative because I’m still contributing to the shows I like, but I’m not forced to watch advertisements and all the other junk on cable.

Telephone Service

I always enjoy when the big “land-line” phone companies call me up and try to sell me their phone service.  They usually spend about five minutes rambling on about how good their prices are, without even taking a breath so I can stop them and save their time.  After the five minute spiel they always ask the same question, “May I ask how much you are currently paying for telephone service?”  To which I answer “$15/month, including 500 minutes of long distance, voice mail and call display.”  Which usually gets the response “Uhhhh. Oh. Thanks, have a nice day (click)” from the sales person.  They just can’t compete with Vonage.  I’ve been a very happy Vonage customer since 2002.  I have the occasional dropouts due to my sometimes flaky internet access (I can use my cell phone in those cases), but when my ISP is reliable the service has been exceptional.

Do you have any other alternatives to Rogers and Bell?  Please tell me about them in the comments.

Using Google Reader to stay on top of RSS feeds

August 22nd, 2008 No comments

I just started using Google Reader this month to keep on top of websites that I visit frequently. Google Reader is a RSS feed aggregator – meaning, it keeps track of the latest news from many of the websites I visit in just one location. This is really handy, it means instead of checking lots of websites to see if they have any new articles, I can check Google Reader and it shows the new articles from all the websites that I’m interested in following.

It has a couple of useful features:

  1. Folders – Just like in GMail, you can assign feeds, and individual posts, to multiple folders. These folders help sort and sift through all your feeds. I’m using a folder sorting system originally described by Alan Rimm-Kaufman to help organize things and make sure I see the news I’m most interested in first.
  2. Sharing – At the bottom of each article in Google Reader is a button labeled Share. Pressing this button places the article on a personal RSS feed that can be shared with others. Here are my Google Reader shared items. I’m also subscribed to a few of my friends shared items. It’s interesting to see the things they share. I’ve discovered a few interesting RSS feeds this way.
  3. Discover – Google Reader keeps track of how many people subscribe to a particular news feed. With this data, Google Reader is able to offer recommendations of other feeds that may be of interest to you. The Discover feature uses my list of subscribed feeds to recommend feeds that other people, with my similar feeds, are subscribed to.
  4. Trends – Each time I read an article Google Reader keeps a record of it. Information about the articles I have read is summarized by the Trends feature. This feature allows me to see what percentage of articles I read from a particular feed, how many articles I read per day, how many new articles appear in a feed per day, and how many people are subscribed to a particular feed. This information helps me to prioritize the feeds according to how often new posts come out and how many of those posts I actually read.
  5. Starred Items – Find an article interesting and want to come back to it again? Star it. The Starred items feature works just like GMail. All starred items show up in a folder where you can view them later.

In addition to following news and technology websites, I’ve also been using Google Reader to follow interesting people on YouTube, Facebook, and for reading new articles on Google News.

Using the YouTube API, you can enter a URL that will retrieve an RSS feed of a user’s uploaded videos. You can use this to have Google Reader include YouTube videos as articles. The URL format is:[insert_username_here]/videos.rss

If you’re already subscribed to people on the YouTube site, you can also use Yahoo Pipes to follow all your subscriptions from one feed.

Facebook posts can also be added to Google Reader, as can status updates. Facebook status updates can be added to Google Reader by clicking the See All option for status updates, then subscribing to the Friends’ Status Feeds. Facebook has a help page for more information about getting updates via RSS.

Google News also provides RSS feeds for its content. In addition to the usual topics like Top Stories, Sci/Tech, and World; Google News searches can also be viewed via RSS feeds. I use this for keeping track of any news items related to topics of interest, like my work, or the small community that I live in for example. Try it, search for something in Google news. At the bottom of your search results will be a “Subscribe to a news feed for X in Google Reader” link. Any new news articles that Google finds related to your search will automatically show up in Google Reader.

All in all I’ve been happy with Google Reader. Having all my news in one location saves a bunch of time. And it even displays well on the iPhone.

Do you have a Google Reader shared items feed or, have any interesting news feeds to share? Post a comment below.

Categories: Review Tags: , ,