Building Businesses, Enjoying Life, & Everything In Between.

How to choose the right web host and web hosting package (Part 1): A look at Shared Web Hosting

I have been asked many times what hosting package is the best fit for different types of websites and businesses. This is usually due to the fact that I co-own a Web hosting and Managed virtual private server company. Regardless, I thought I would write an unbiased, four-part blog post that covers choosing the right web hosting plan and company. The series will include the following posts:

Part 1: A look at shared web hosting
Part 2: A look at virtual private hosting
Part 3: A look at dedicated hosting
Part 4: What to look for when choosing a web hosting company and package.

A Look At Shared Web Hosting

Shared web hosting is what most companies offer with their basic web hosting packages, and it is what the majority of websites are hosted on. What it means is that your website will share a server and a hosting environment with potentially many other websites.

The main benefit of shared hosting is its price. It is almost always cheaper than a virtual or dedicated solution. The reason for this is because the cost of the single server can be spread over many paying customers.

There are however several downsides to hosting on a shared environment. Firstly, the inability to tailor and configure it to your own needs can be frustrating. If you run a customized content management system, develop your own web-applications, or require a framework or programs installed that are not already installed on the shared server, chances are you won’t be able to get them – easily at least.

Some smaller shared hosting companies may be willing to tailor and personalize the environment to your needs the best they can (given security restraints of course) but for the most part, the big names will not allow it.

Another major downside of shared hosting is the fact that it is shared. I know our parents always taught us that sharing is good, but when it comes to our websites that is not necessarily the case.

There may be another website hosted on the same server as yours that was built by a 12-year-old wannabe developer who enjoys using many infinite loops in his code. The inefficiencies in their code will affect the performance of your website. Not fair. If the server is placed under a high load due another client – although that client is usually in violation of the terms of service and is removed from the server – there’s no real compensation that is going to happen for you.

The other end of that extreme is if you are hosted on the same server as a very popular website that happens to land on the front page of a popular community-based website such as digg.com. This will send a sudden increase in traffic and will cripple many shared servers. This is often referred to as the Slashdot effect.

Also understand that in most cases, if these things do happen to the server – usually it is not only your website that will be affected, but also your email.

I realize I have painted a pretty ugly picture of shared hosting here. Remember that these are the extremes. Most of the time a shared environment will be able to survive regular day-to-day hosting. However, you do need to keep in mind that it is in fact shared, and there are risks that are associated with that, even at the best of times.

What should you look for in a shared hosting plan?

Each shared hosting plan will include the following:

  • Bandwidth – the amount of transfer that is allowed to and from your website
  • Disk Space – the amount of physical space on the hard drive your website is allowed to use
  • Sub-domains – unlimited sub-domains are typically included in shared hosting packages
  • Multi-Domain Hosting – the ability to host more than one domain with your plan
  • Dedicated IP Address – will you receive your own IP address with the hosting (usually at an extra cost)
  • Operating System – an option of a Linux or Windows-based hosting server

Something to watch out for is the overselling of shared hosting. The offering of unlimited bandwidth and disk space is a very controversial topic amongst hosting companies. Mainly, because it is impossible to follow through on in most cases – and usually it is just covered up in the company’s terms of service stating that they “won’t limit your transfer or space unless you go over X amount.” You don’t want to have your website suspended because it is a high traffic site or because you require a lot of disk space after you’ve already signed up for the account.

So how do you know that shared hosting is the right solution?

If your website and email is not business-critical, you are not paying for traffic through affiliate networks, banners, or pay per click campaigns, and you do not rely on search engine rankings for a major source of your traffic, then shared web hosting would be an ideal fit.

In most cases even if your website and email are business critical, a shared web hosting package will still work for you. However, if you are investing money in driving visitors to your website through SEO initiatives or PPC campaigns, you may want to look into hosting your website on a dedicated or virtual hosting environment.

Check back for the next parts of this series.

How to add a Flickr-based photo gallery to your website: phpFlickr + Lightbox.

Many people struggle with installing and setting up third-party gallery applications and although there are a couple popular image galleries that most web-hosts offer as an easy-to-install application, they can still be frustrating and pose many security issues for the inexperienced.

With the growing popularity of using Flickr to manage photos, more and more people are looking for an easy way to display these photos on their website.

After some playing around, I’ve settled with the phpFlickr and Lightbox combination to nicely display photo galleries on a website. PhpFlickr is a class written by Dan Coulter to act as a wrapper to Flickr’s API, and lightbox is a very simple and elegant way to display photos on a page. This tutorial will teach you how to quickly setup a photo gallery with phpflickr and lightbox on your own website.

So what do you need?

1. A flickr account (a free one with 100mb monthly upload is fine for most). You will also need to know your user ID (usually in the format xxxxxxxx@Nxx)

2. Latest version of phpflickr: can be downloaded here

3. Lightbox 2 java script: downloaded here

4. Obviously, your photos.

What to do:

1. Upload the photos you want to display to your Flickr account. Organize the photos into Sets to best manage the separation of “galleries.” The code below will not work if you have not put your photos into at least one set.

2. Install phpFlickr and Lightbox by easily extracting them to the directory of your choice (ie. /photos/ on your website). Both phpFlickr and Lightbox are ready to go out-of-the-box so you won’t need to play around with them too much if you don’t want to.

3. Include the necessary content in your php file.

For lightbox, the following will go in the header section of your php file:

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript"
          src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>

and

<link rel="stylesheet" href="css/lightbox.css"
     type="text/css" media="screen" />

For phpFlickr, add the following code in the header section of your php file: (it’s possible the folder might be called phpFlickr-1.3 if you are using the latest version.

<?php
 require_once("phpFlickr/phpFlickr.php");
 $f = new phpFlickr("b16911dd0ec59f16ed66e80711edbdaf"); // API
 $user = "xxxxxxxx@Nxx";
 $ph_sets = $f->photosets_getList($user);
?>

Where the user value can be found in your flickr account.

Now we are ready to use phpFlickr to import and Lightbox to display our pictures from our Flickr sets. Here’s a simple bit of code I use that imports and displays the photos:

<div id="gallery">
 <?php foreach ($ph_sets['photoset'] as $ph_set): ?>
  <div class="photosets">
  <p><h2><?php print $ph_set['title']; ?></h2></p>
  <?php $photoset_id = $ph_set['id'];
  $photos = $f->photosets_getPhotos($photoset_id);
  foreach ($photos['photoset']['photo'] as $photo): ?>
  <div class="photos">
   <a rel="lightbox[]"
     href="<?= $f->buildPhotoURL($photo, 'medium') ?>"
     title="<?= $photo['title'] ?>">
   <img src="<?= $f->buildPhotoURL($photo, 'square') ?>"
     alt="<?= $photo['title'] ?>" title="<?= $photo['title'] ?>" />
   </a>
  </div>
  <?php endforeach; ?>
  </div>
 <?php endforeach; ?>
</div>

The CSS I use for this is:

#gallery {
	position: relative;
	float: left;
	width: 600px;
	padding: 0px 15px 10px 15px;
}

.photos {
	position: relative;
	float: left;
	display: block;
	padding-bottom: 10px;
}
.photosets {
	clear: both;
	padding-top: 1px;
}
.photosets h2 {
	color: #000;
}

The full documentation on both lightbox and phpFlickr is available in their downloaded packages. They are both quite powerful. The example given here is just a simple way to grab all the Sets in your Flickr account and display them in a gallery format.

I recently added this to the site designbyroeland.com. You can check out the example of how it will look here. Simple. Elegant.

EDIT:

If you’re looking to only display one set, this can be done with the following:

<?php $photos = $f->photosets_getPhotos('xxxxxxxxxxxxxxxxx'); ?>
<?php foreach ($photos['photoset']['photo'] as $photo): ?>
<div class="photos">
<a rel="lightbox[]" href="<?= $f->
    buildPhotoURL($photo, 'medium') ?>"
    title="<?= $photo['title'] ?>">
<img src="<?= $f->buildPhotoURL($photo, 'square') ?>"
    alt="<?= $photo['title'] ?>" title="<?= $photo['title'] ?>" />
</a>
</div>
<?php endforeach; ?>

Where the xxxx’s are replaced with the set ID that you can find in your flickr URL for that set. Feel free to republish this guide if you wish, but please try to link back if possible. Thanks!

EDIT (DESCRIPTION):

A lot of people have been asking me how to display the description of the Flickr photo instead of using the title within the lightbox display. Here is the change of code you will need in order to do this (very similar to the code in the tutorial, with 2 changes):


<div id="gallery">
 <?php foreach ($ph_sets['photoset'] as $ph_set): ?>
  <div class="photosets">
  <p><h2><?php print $ph_set['title']; ?></h2></p>
  <?php $photoset_id = $ph_set['id'];
  $photos = $f->photosets_getPhotos($photoset_id);
  foreach ($photos['photoset']['photo'] as $photo):
  $d = $f->photos_getInfo($photo['id']); ?>
  <div class="photos">
   <a rel="lightbox[]"
     href="<?= $f->buildPhotoURL($photo, 'medium') ?>"
     title="<?= $d['photo']['description'] ?>">
   <img src="<?= $f->buildPhotoURL($photo, 'square') ?>"
     alt="<?= $photo['title'] ?>" title="<?= $photo['title'] ?>" />
   </a>
  </div>
  <?php endforeach; ?>
  </div>
 <?php endforeach; ?>
</div>

The difference is the addition of the line $d = $f->photos_getInfo($photo['id']); as well as changing $photo['title'] with $d['photo']['description'] inside the ‘a’ lightbox tag. Unfortunately, this method isn’t very efficient as it calls the description inside the loop, which means it has to check the description for each photo. As far as I know there isn’t a more efficient way of grabbing all the descriptions for the photo set yet. I will keep my eyes peeled for it though.

EDIT (available sizes):

I use the size ‘medium’ in the above tutorial quite a bit. There have been a lot of questions about how to change this to its original size or to a larger size. There are a variety of sizes that are supported which include:

‘square’, ‘thumbnail’, ‘small’, ‘medium’, ‘medium_640′, and ‘large’. If you would like to display another size with lightbox, simply change where I have ‘medium’ to the option you’d like.

Did you find this guide useful? Share it with the social media buttons to the left or follow me on twitter and say hi – I’d love to hear from you if you’ve enjoyed this.

Debating on a small business? – don’t turn your passion into work

You hear so many people say it. Take what you’re passionate about and turn it into a business.

Don’t listen to them.

If you’ve already done it, it probably won’t take you long to realize how quickly that passion disappears.

I’m not saying don’t be passionate about your work, or don’t start up a job around something you’re good at and enjoy doing. There are great benefits to loving your work, especially if it involves a 40 hour per week commitment.

What I am saying is that if you decide to start a small business to supplement your income, don’t turn your passion into that business.

For example:

You love kayaking, and are good at it. You do it almost year round to relax and escape. It’s something you can count on being there to make you feel good and relieve any stress you may have. Naturally, when you’re debating on what type of small business to start, the first thing that pops into your head is something involving kayaking. Not only that, but when you ask the local small business center, they even recommend it as a good idea.

Avoid this temptation. There are a couple reasons I say this. Firstly, you are narrow minded when it comes to running your passion-business. It doesn’t matter what the market research shows, or what people tell you; because it’s your passion, you will always think there’s a need for the product or service you’re offering, even when it might not be worth your time. If there’s only enough customer base to break even, or worse lose some money – back the hell up. Remember that the goal of this small business was to supplement your income, not to show people that you’re a good kayaker. Lets be honest, they don’t care.

Secondly, – and I think more importantly – you’ll lose your passion. You’ve now associated the one thing that gives you total relaxation and allows you to escape all your stress, with work. Oops, that sucks. I guarantee you it won’t take long before you become unmotivated with the business, and even start to become frustrated with kayaking in general. Even if you do manage to continue to enjoy kayaking, every time you hit the sea in your kayak, you’ll be thinking about all the things that “need” to be done. It will no longer be an escape. Now you’re stuck without a passion – that is, something you love doing outside of work.

It’s important not to lose focus on the reason you are starting the small business – to supplement (and perhaps replace?) your income. Do something that makes money. Don’t destroy your passion.

More to come on how to pick a good small business idea in a future post.

The TLD debate: .com vs .ca

EDIT: I have since wrote a much more in depth post about choosing a domain name that talks about everything you will need to know, such as exact match domains, branding strategy, and the infamous TLD debate. Check it out here.

Since I’ve started taking an interest and consulting in the internet marketing and search engine optimization industry a common question I’m asked is whether to purchase a .ca or a .com domain name for a business.

No doubt that the choice you make with your domain name is important for marketing your business online. When it comes to choosing a TLD (Top Level Domain: .ca, .com, etc.) many people run into the issue of availability: mycompany.com is taken, should I register the .ca, or find another .com? What effects does this have in my search engine results?

As you may have noticed when you visit google.com it usually forwards you to google.ca. So you must know who your market is. Are you offering a product or service only to Canada? Only to the US? What if you want to market your product and service to both Canada and the US?

From my experience I’ve noticed three things that determine whether or not you are displayed in the country-specific google pages and how google weighs your site for each page.

Firstly, your TLD. Naturally, a .ca domain will appear in the google.ca search results, while a .co.uk will appear in the google.co.uk, and a .com/.net will appear in the google.com results.

Next, where your website is hosted plays a part as well. If your domain is hosted on a Canadian IP address, it will appear in the Canadian results, same goes for American hosted sites showing in google.com.

Finally, your company address listed on your website. If you have your company address listed on a contact page on your website this seems to play a part in where it gets displayed.

So, taking my site – www.websavers.ca – as an example. We can look at the keyword “shoutcast hosting” for 3 google search pages.

1. Canada Search Results:

The Canadian (google.ca) page displays our result as #2 – given more weight because of its .ca and less competition for keyword in the google.ca search results. (Note #1 is a .com but lists a Canadian address in their contact info)

2. America Search Results:

The American (google.com) page displays our result as #21 – given weight due to the fact that the site is hosted in the US, but with more keyword competition.

3. UK Search Results:

The UK (google.co.uk) page displays our result as #97 – weighted very low due to tld, no UK address and not being hosted in the UK.

As always, these are just my conclusions from experience, and an examples. Google is a mysterious being and you can’t guarantee much when it comes to search marketing.