Changing to Host Monster

In a few days I will be changing my domain over to Host Monster hosting. While I haven’t been displeased with my experience at bluehost, I will be able to have unlimited domains on host monster. Host Monster offers everything that Bluehost does and gives additional space and bandwidth on top of that.

Host Monster costs half as much as Bluehost. I used to pay around $90/year for hosting through bluehost, and I now pay around $90/2years of hosting. [Note: prices have since changed, but are still low ($5.95/mo)]. You can’t beat that deal anywhere. The only thing that I’m facing now is switching costs. It will take some time to move everything over to the new hosting, but it will be worth it in the long run as I will be able to host more domains on that site.

I hadn’t yet switched my bluehost account over to a php5 server, because the account was originally purchased on my father’s credit card, as we were sharing the account (the last four digits were required to verify the account in order to change it). So now I’ll have php5 with ssh access! I will be able to launch some side-project sites that I hadn’t purchased hosting for, but had owned the domain.

My experience so far with Host Monster has been very positive. I have contacted customer support via phone and live chat to request some changes for the account before I make the migration, and they have been very helpful. Response time has been very fast with very little waiting on hold.

Like Bluehost, HostMonster has an anti-pornography policy, which is a protection to all of the other clients that are using the hosting service. Hosting services that serve pornography are often targets of hackers.

Please excuse my site if it experiences any downtime during the switch. Also, check out Host Monster if you want to save a bunch of money.

Please note: HostMonster and Bluehost are indeed the same company.

Why I use CakePHP over Ruby on Rails

[Update for all visitors: I've written a new post name Why I Prefer Ruby on Rails over CakePHP. Please visit that for a more up to date opinion.]

In response to Blake’s question on my last post “Why I Like CakePHP”, the main reason is that I still use CakePHP over Ruby on Rails is availability of php programmers. It’s a lot easier to find someone who does php than it is to find someone who does Ruby.

Also, if we are building projects that will eventually be deployed on a client’s server, the client will eventually need to maintain it. It is easier for them to support a php solution over a Ruby on Rails solution because because they will find more people familiar with php than ruby.

For a comparison of language popularity, although I realize this doesn’t say it all, here is a Google Trends chart comparing php with ruby.

PHP, Ruby comparison

PHP is in blue, and Ruby is in red.

Now I admit that Ruby on Rails is a superior product over CakePHP. Rails was built for a language like Ruby, not for php. However, php does a good enough job with handling the Rails-like MVC framework. All that said, I wish Ruby was more popular because it would be fun to jump into.

It seems that a lot of the php community, including myself, have become very framework-centric. I think this stems from frustrating hours/days/weeks of digging through spaghetti code, trying to debug php applications.

Because of the immense popularity of php, I think one of the php MVC frameworks will catch fire and surpass Rails in popularity.

Why I like CakePHP

A couple of months ago I began investigating php frameworks to see if I could improve my efficiency in developing rich web sites. I had tinkered with Ruby on Rails, but I didn’t have the time to learn a new framework and a new language at the same time. I realized that if I was going to make a good use of my time, I needed to begin using a framework in a language that I already knew.

I began looking at the different php frameworks and found this post on h3rald.com comparing Rails inspired frameworks. His article also points framework-seekers towards some other good frameworks such as Symfony, PHP on Trax, Code Igniter, Biscuit, and Live Pipe. I was most interested in CakePHP and Code Igniter, although PHP on Trax also caught my attention.

I decided to go with Cake, because it uses the MIT lisence and appeared to have the largest userbase. Cake’s Google Groups discussions appeared to be pretty active so I knew I could get support if I needed it. I had also read some other posts by web-guru Jonathan Snook and his experience with CakePHP. The only complaint that I saw from reading his blog was the lack of great documentation, otherwise he seemed pleased with the framework. So I decided to jump in.

My experience with CakePHP hasn’t been all roses. I’ve had my frustrations, mostly with lack of parameter details in the API documentation. However, the frustrations are far outweighed with all of the “Holy Cow!”s and “I can’t believe Cake already does that for me!”s. So, here are some of the reasons for Why I like CakePHP.

#1 – Cake’s Model does all of your CRUD for you

In past web projects, I had developed my own MVC web applications in which I would program by hand Data Access Objects. These objects would perform all of my Create Read Update and Delete operations, or CRUD operations. I always thought to myself that there had to be a better way. This always took forever to do, but it usually paid off in the end as it kept my database fairly decoupled from the rest of my applications.

Cake’s Model handles all CRUD operations automagically, and it does it well. All you have to do is define relationships between your models (or database tables). Although it might take a little while to understand the differences between belongsTo, hasOne, hasMany, and hasAndBelongsToMany relationships, there is a huge return on investment.

Some argue that the naming conventions are too restrictive, but I see it differently. I think it provides good structure for defining a schema as you work in a team. I have found the naming convention and relationship definitions to be a great asset. Reading the relationships between the tables provides good documentation on how your database schema is set up. You don’t have to spend lots of time trying to decipher someone else’s crazy SQL queries to figure out what’s going on.

#2 – Cake’s Scaffolding helps in prototyping

The faster you can get a client a prototype, the better off your project will be. CakePHP’s scaffolding provides just that. It allows you to set up your database model, define the relationships, and then automatically have screens listing records, providing create and edit forms, and record deletion capabilities. It even dynamically responds to changes made to the database. This has allowed us to check something off with a client, get quick change requests made, and then begin solidifying the project.

#3 – Cake makes building AJAX applications easy

CakePHP integrates very well with Prototype.js and Scriptaculous to help in creating rich internet applications very quickly. If you’ve never used Prototype.js, or Scriptaculous libraries, you are in for a treat. Prototype actually makes JavaScript programming fun. It abstracts browser-specific junk away from your code, so that you can get to the important code quickly. Scriptaculous integrates with Prototype to do awesome html animation effects. CakePHP provides ajax and javascript helper classes to help write the javascript code for you.

Helpful links to get you started: Prototype documentation, more Prototype documentation, Scriptaculous documentation, CakePHP AJAX Tutorial

#4 – Cake gives you pretty URLS

The CakePHP framework gives you a pretty url structure. Now you don’t have to waste time routing your mod-rewrites to your php scripts. Cake has a default url structure of {controller_name}/{action}/[{param1},{param2},etc.] . So, for example you might have a url of http://example.com/users/edit/1 which would bring you to your edit page for your user with id of 1. If you don’t like the structure, then you can use the routes config file to create custom routing.

#5 – Cake writes code for you with the bake script

Setting up your models, views, and controllers couldn’t be any easier. Cake provides a bake script that you run from the shell which builds your php files for you. It will even write the code that produces your scaffolds views, creates, and edits. This provides you with a starting ground from which to edit and customize from the scaffold. This saves you a ton of time, as you don’t have to start from scratch.

There are even more reasons for why I like CakePHP, but I’ll have to save those for another day.

New Blogger Beta Offers Tagging

Blogger has released a new beta for their blogging platform! One of the cool things about it is that the New Blogger Beta Offers Tagging! There are a bunch of other new features that are pretty cool with this new Blogger platform. The guys at Google have been working hard.
New Features:

  • Tagging, or “labels” as they call it
  • Blog comment feeds (per site or per post)
  • A new template editor, lets you drag-n-drop elements on the page, add lots of new sidebar elements to your blog, and choose font styles without knowing any css.

The new platform looks almost idential to the old Blogger platform, so Bloggers won’t be confused when they use the new Beta. However, there isn’t yet any support for publishing your blog to your own domain via ftp.

Will this influence me to switch back to Blogger? No, but I might try it out for a while if I decide to create a new blog.

Hosting Blogger On Your Own Domain

 

Note: This post now also pertains to the new Blogger Beta. It is now safe to change over to the new version of Blogger. FTP functionality is now supported, although you won’t enjoy all of the new features of Blogger.

Update: I have now posted some video tutorials on how to set up WordPress on your own domain. If you are willing to take a look at WordPress as an alternative to Blogger, check them out, otherwise these instructions should get you all set up.

This is for my friends in my BYU Internet Marketing class where everyone will be setting up a blog and blogging for class credit. In class, someone asked if it was possible to put your blogger account on your on domain. So, here’s my post on Hosting Blogger On Your Own Domain.

Step 1 – Buy your domain name
The first thing to do is to buy your domain name. I suggest using a registrar that is separate from your hosting account. Personally, I use Godaddy.

The reason I suggest keeping the name registrar and hosting separate is so that you can switch to a new host easily if a company comes out with a killer hosting package.

Step 2 – Get a hosting account
Next, you need to get a hosting account. I own a Host Monster
account, which allows me to put unlimited domain names on my one account. They also offer a ton of storage and bandwidth, and have great customer support.

If you bought your domain separately from your hosting account, you need to set up your DNS. Otherwise, move on to Step 3. Also, if when purchasing your domain, you were asked to specify your primary domain, and set that up during the sign-up proces, move to Step 3.

The following instructions apply to HostMonster or Bluehost and Godaddy accounts. The principles are the same for other hosting, but details may vary. Consult the support for your registrar and hosting account if you need help for your specific needs.

Godaddy (or whatever registrar you used) needs to know where the files are that make up your actual website. To point Godaddy to your hosting account, sign in to your account at Godaddy, click on ‘My Account’, and then click ‘Manage Domains’. You should now see all of your domain names listed. Click on your domain name. On the right you should see a section that says “Nameservers Summary”, in that section click on the “Click here to see details or to modify” link.

Once you are at the Set Name Server screen, select ‘Single Domain’ and the ‘Custom Name Servers’ radio buttons. In the Name server 1 and 2 fields you need to enter the name server information from your hosting account. Most likely you received this in an email when you signed up for your hosting account. Host Monster’s
name servers are NS1.HOSTMONSTER.COM and NS2.HOSTMONSTER.COM.

You almost have your domain and hosting account set up, and that is most of the hard stuff. The last step is to set up your addon domain on your hosting account. Log into your cpanel (usually http://yourdomainname.com/cpanel) and from there, click on the “Addon Domains” link. Follow the directions, and you should have your domain name pointing to your hosting account in no time.

Step 3 – Set up an FTP account
Set up your FTP account. FTP stands for File Transfer Protocol which is the way Blogger publishes your blog to your hosted account.

From your cPanel (http://yourdomainname.com/cpanel), click on ‘FTP Manager’. On the next screen, click “FTP Accounts.” You can now create a new account which will be used by blogger to publish your blog by clicking “Add FTP Account.”

Make sure you specify the correct directory that you want your blog to be published to. For example, if you want your blog to be located at http://youraccount.com/blog/, then the path would most likely be /home/acc_name/public_html/blog/, unless you are using an addon domain, in which case it would be located at /home/acc_name/public_html/addon-domain-name/blog/.

Step 4 – Get a Blogger Account
Now, you’ll need a Blogger account. This is a pretty easy and painless step. Just follow their directions.
Step 5 – Connect Blogger to your FTP Account
The last thing you’ll need to do is connect Blogger to your ftp account. Once you are signed into your Blogger account, go into your blog’s admin panel, click on the ‘Settings’ tab, and then on the ‘Publishing’ sub-tab. From there, click on the “Switch to FTP” link.

From here, just fill in the information according to how you set it up in the hosting cPanel. Note: the FTP Server will be ftp.yourdomain.com. Your FTP path should be left blank if you set up the ftp account correctly. The username should be in username@domain.com format.

Hope this helps. With all that said, I use WordPress now for my blogging, which if you bought a hosting account through Host Monster
is really easy to set up. Just go to the “Fantastico” link and create a new WordPress install.