Why Multi-site?

LocomotiveCMS has one killer feature for me which makes it beat out RefineryCMS in my books. That feature is the ability to do multi-site. I host websites for many people and have felt the pain of configuring sites by hand for each one of them, plus the extra sever load of running a separate process / instance for each website.

A good multi-site CMS will take care of that pain pretty handily – it means that I can run one instance of the CMS with mulitiple processes. So, my server costs go down and I can ensure that all the sites respond quickly – I don’t have to worry about their instances spinning down and having to spin up again if they are not visited regularly.

Setting it up

LocomotiveCMS doesn’t have great documentation, but their code seems to be really solid. It required me to do a bit of reading between the lines to sort it out. Actually, it was more reading the lines of code but that’s a separate point.

Step 1 – config/initializers

Once you have locomotive running locally (see the installation guide) then you need to modify the initializer to tell it to operate in multi-site mode. The comments will tell you what to do, but this is what I did.

  config.multi_sites do |multi_sites|
    multi_sites.domain = 'local.i'
    multi_sites.reserved_subdomains = %w(www email blog webmail mail support help site sites)
  end

This is for a local environment. The reason that I used local.i was because I want to be able to test this on my development machine. I also removed admin from the list of reserved subdomains.

Step 2 – set up your /etc/hosts (Mac)

Now that the initializer is set, you need to configure your hosts file so that you can access your local server via subdomains using the built-in webserver (e.g. WEBrick)

This is what I added to my hosts file.

 127.0.0.1 local.i
 127.0.0.1 admin.local.i
 127.0.0.1 sub1.local.i

Step 3 – fire up the server and configure

This next step took me a bit to sort out because I had already set up my locomotive config weeks ago. I was trying to switch things into multi-site mode but it wasn’t working. The easiest way for me to do it was to wipe out the db that I had created and visit the site again. If there is no db, it will prompt you to set up a new one from scratch. So, if you already have a locomotive db and you don’t care about the contents, wipe it out and start fresh. if you do care about the contents: back it up, rename it, whatever. I’m not responsible for you wiping out your valued data

Here are the two steps it takes you through:
  1. create an admin user
  2. set up a default site

For the default site, I used name = Awesome Hosting and subdomain = admin. The subdomain needs to match what you put into your /etc/hosts file. Make sure you upload the default template

Step 4 – enjoy!

Now if you visit admin.local.i:3000 you will see your admin site. To administer it, go to admin.local.i:3000/admin and login with your credentials. From there you can visit settings -> my account and add new sites with the little (+ new site) button.

Remarks..

There are some oddities here that I’m not 100% comfortable with.

  1. Why can’t I create the default site with no subdomain? e.g. just local.i for the admin site rather than admin.local.i ?
  2. Why is adding sites under the obscure location of settings -> my account? It should be somewhere like settings -> sites

One thing I just noticed as I finish this write-up is that you can click on the little link it the top menu switch to another site and you can switch between sites and add new sites from there. That’s cool.

Help me out here. I just published the site for my brother-in-law. I want to prove to him that it’s going to work for him. So if you have a minute, drop him a line, welcome him to the community that is the internet and let him know what you think of the site!

What’s at stake?

More than my pride that’s at stake here. Yes, we all know that when working with family it tends to be a bit more challenging to get them to take you as a business professional. They are family after all, why should they? Really, we all need a place where we can go and people just shake their heads at us and think we’re full of it. It’s great for keeping real. What’s really at stake here is that I want him to see the results and believe in the power of his website.

I always try to convince my clients to start taking some time to do regular blogging and to get involved with Twitter and Facebook. In this case, I really believe in what Blair is trying to do and want to get him going at it.

If you checked out this posting – take one more second..

Please just take a second to visit Blair’s shiny new website, Curious Minds – supports for autism and drop him a line. I’d just love to see his inbox filled up with messages saying – “hey, this internet stuff does work.” Of course it doesn’t hurt to say “your website is totally awesome – who built it for you?”. (wink, wink)

Now we just need to get him blogging. That brain of his is stuffed full of great info..

PS: I told him I would tell people about his site and he said in a rather pessimistic way “Yeah, we’ll see how many clients I get out of it.” Yeah Blair we’ll see!

PPS: I had to hold off telling people about this for a couple days while. Well, now I can tweet and facebook it to my heart’s content!

I watched the Oscars last night. I normally don’t and normally really don’t care about them, but somehow ended up watching them and was really surprised by the whole affair. It didn’t seem like a whole lot of glitz with no substance this time. It actually seemed like real people getting honored for real achievement.

I really am wondering how this came about. Who is the mastermind behind turning the Oscars into an event that is somewhat worth caring about? Who was smart enough to turn it into a bit of an intimate affair about real people? Where did all the ridiculous dresses with plunging necklines and rising hemlines go? Did someone send out a memo to everyone and tell them to come looking like real people to this event?

Here are some brief points:

  • Steve and Alec were awesome and so funny in such a simple, understated way.
  • The show took the time at each step to answer the question “why should I care?”
    • why should I care about the award for short films? – answered!
    • why should I care about the award for sound engineering? – answered!
    • why should I care which star wins an award? – answered!
  • Sandra Bullock was so gracious! Actually, I used to be really “meh” about her, but since “The Blind Side” and associated behind the scenes stuff on that movie, I see that she’s a real person with real gratitude. It seems so rare and so marvelous in Hollywood.

What can you learn from this?

You need to answer the question – “why should I care” for the people around you. Then you will be interesting. You will be able to lead. You will be able to close deals. You will be able to make new contacts.

Now for business people, go look at your website and marketing materials. How well have you answered the question “why should I care?” Make sure it’s a human answer because people really only truly care for and about people in the end.

Switching Back to Adium

February 12th, 2010

For some reason I stopped using Adium months ago and have just been using iChat for chatting. Perhaps it was because I was doing a lot of video conferencing and didn’t like having to disable my AIM account to be able to do that with iChat.

Anyway, I’ve decided to go back to Adium because I chat is constantly logging me out and I have to keep manually re-connecting. I’m expecting Adium to do a better job at keeping me online when I’m at my computer and logging me back in when I come back after being away for a while.

There Are No Emergencies

February 8th, 2010

For some reason I started thinking this morning about something I learned years ago when I was 19. Basically that even in the emergency room of a hospital, there are no emergencies.

I was on a three week wilderness hiking trip with Outward Bound. Our leader was a medical doctor and accomplished mountaineer. In the evenings we would gather and he’d talk with us and share wisdom about being in the outdoors and life in general. It may have been having to do with dealing with an injury that he mentioned this.

He told us that even in the emergency room there are no true emergencies. I can’t remember the specifics, but took away from it that there are no occasions in life where freaking out is an option. Someone may come into an emergency room with a split open gut or severed back or whatever, but there is always time to assess it and determine rationally how to deal with it.

So next time you are tempted to freak out about something and start acting without thinking in order to deal with some perceived emergency, stop for a second, remember that it probably isn’t truly an emergency, and proceed with a level head. Chances are that if you do proceed without clarity, you will regret it later.

The iPad

January 29th, 2010

So, there it is. The iPad.

It’s not everything I had hoped it would be. I can see why Apple wouldn’t allow it to become an input device for a Mac as I imagined. Primarily because it needs to be clearly “it’s own person” as it were. It also needs to clearly be part of it’s own ecosystem. It’s an ecosystem that involves lots of buying stuff, like music, books and movies and apps…

Cha-ching!

I have to say that while I was watching the keynote, all the possibilities for the device swirled around in my head and I literally thought to myself “this changes everything.” It does. Some people don’t see it yet, but it totally does.

The Apple Tablet

November 20th, 2009

Along with every other Apple / Mac fan and many tech enthusiasts, I have been eagerly awaiting the announcement of the new Apple Tablet computer. Here’s my thought on the matter and what I would consider awesomeness from the tablet.

Input Device

There’s probably only one really killer thing that my thoughts focus on when it comes to the tablet. It’s the idea of making it an input device as well as a computer.

I would be chomping at the bit to go out and get this tablet if it worked like this:

  • You set it down on your desk, in front of your shiny iMac.
  • You hook up the mini display port from your Mac to Tablet (or maybe not – knowing Apple..)
  • It connects automatically via bluetooth (wi-fi?)
  • You now have a giant touch and pen based input device for your Mac
  • While you’re working with it, it’s syncing your data to the device
  • When it’s time to go, you grab the tablet, head out and can carry on working remotely
  • All your files go with you via the cloud (mobile me)

There is so much talk these days about revolutionizing the way you interface with your computer, I’d be surprised (and sad) if it didn’t play out this way, at least eventually.

More after the jump.

Read the rest of this entry

Thank you Barcamp Vancouver!! I’m reeling from Barcamp Vancouver yesterday and my puny little mind is trying to absorb all of the inspiration, experiences and information it was plunged into.

For those looking for the notes from my session, they’ll be coming soon. Meanwhile the following is a direct result of my experience at Barcamp yesterday.

I’m Grappling with the Idea of “The Real World”

One of the biggest things that I was reflecting on yesterday as part of Barcamp is the concept of “The Real World”. I grappled with it all day yesterday and held a session trying to gather some more insight from the brilliant minds there.

What do I mean by “The Real World”? The concept basically encompasses real people, real bodies, real consequences as opposed to digital people (personas), digital consequences and the whole world of imagination. Why do I care about this? I lived much of my life where my imagination was more real to me than the real world, and there was a lot of pain and misery associated with that for me.

Inspiration Cometh on the Strings of U2

Well today is family day for me and I was going about my business, playing with my kids, making brunch and all that great family stuff when I noticed that my life had a soundtrack. Sweet! It was U2s’ “Beautiful Day”. I started singing along with it, then I started reflecting on the meaning of the song…

You’re in the mud
In the maze of her imagination

A meaning for the lyrics came upon me like a slow motion locomotive. I won’t say the meaning, but in my mind I was seeing it laden with profound meaning. The meaning was all about what I was grappling with yesterday!! It’s about the real world and the world of imagination!

The Meaning of the Lyrics (as I saw it)

(after the jump) You can read my take on the lyrics. I could go on and on, but I’ve tried to keep it brief and to the point. Please check it out and add your comments, I really want to hear them.

Read the rest of this entry

Time to stop being a 'bad blogger'

September 21st, 2009

Are you a blogger? Or do you fall into the category that many bloggers would put themselves into? I call this being a ‘bad bloggizen’. Here’s how it goes: You set up a blog and you post some articles. Then you get to thinking that no one is listening and no one really cares what you think, and this is really a whole lot of work anyway. You blog languishes and before you know it your latest article is from months ago, or worse, years ago!

I’ve been thinking about this and it’s appropriate that I should start blogging again with a few thoughts on the matter and one key tip for turning it all around. Try it for yourself and see if it works!

Read the rest of this entry

MacUpdate Bundle

June 9th, 2009

One of the best things about using a Mac is the quality of applications that are being written for it by the development community. Nowhere is it more apparent than with the iPhone, with over 50,000 applications that have been written in the last year.

Mac Software Bundles

Over the last year, I’ve taken advantage of several bundle sales for Mac software. With these bundles, you can buy a whole bunch of applications for one low price, which is typically the price you would pay for one of these apps, and usually much less than the price of some of the apps that are included.

The Benefits

After taking advantage of three bundle sales over the last year, I now own dozens of handy applications for my Mac. The reality of the situation is that I only use a few of them, but the ones that I do use, I find indispensable. Some of them I use occasionally, but it is so great to know that if there is anything I need to do on my Mac, I can do it. Here’s some of the kinds of apps I’ve received as part of bundles:

  • Sound editing (Amadeus Pro)
  • Photo editing (Pixelmator, Graphic Converter, Acorn)
  • CSS Editing (CSSEdit, Esspresso)
  • FTP (Fetch)
  • Repair and diagnosis utilities
  • Handy tools
  • ... and much more

The Current MacUpdate Bundle

I’m about to purchase this one because it’s undeniably valuable. Parallels Desktop alone is worth $80. I have version 3 and use it all the time. The whole suite of tools for saving DVD movies to your Mac is another big win.

I also signed up as a promoter of the bundle so I can get some benefit from telling all my friends and family to buy it! Click the image below to check out the bundle and purchase it!

There’s only 3 days left in the huge MU Bundle, so grab it before June 12th!

Time Lapse Painting

December 14th, 2008

My daughters, who are five years and three years old, did some finger painting today. I used my little Canon SD1000 on time lapse mode to film them painting. Unfortunately I didn’t have my large camera card on hand so the video stopped before the painting was finished.

I find it amazing what my digital camera was able to do. It’s also a fantastic way to capture this moment! I could have taken a picture of the final painting, but now I have so much more captured. You can see the creative process and that’s so awesome!

Here it is, enjoy. I hope it inspires you to capture some moments like this with your kids.

New Disabled Driving Website

November 22nd, 2008

I have just helped a client put the finishing touches on his new website. It’s exciting because there doesn’t really appear to be anything like it out there, and the topic is so important. Larry is a driver rehab therapist and has been doing that here in British Columbia for over 20 years.

When I talked to Larry about his website and what he wanted to do with it, it became clear instantly that this man really knows what he’s talking about. He’s also passionate about what he does, it just flows out of him as part of who he is. Basically what he does is he works with disabled people to assess their ability to drive, teach them to drive if possible and to use special modifications to their vehicle to help them drive.

I helped Larry with the concept for his website, encouraging him to put his valuable expertise onto the internet to help people as much as possible rather than just a basic business website that lists his services. We built the site on Radiant CMS so Larry can update it regularly.

I added the following plugins to the Radiant install:
  • mailer
    • I modified this slightly with a table tag so that the layout would go into a table automatically and I would have to do way less typing
  • paperclipped
    • this is a great image extension, it can be slightly confusing for end users though
  • reorder
  • settings
    • I’m so glad I found this..
  • textile_editor

I have to say that the state of the nation for RadiantCMS is looking pretty darned good. There is a lot of activity and great new extensions arriving all the time.

If you know someone who has become disabled recently and wants to know about getting back behind the wheel, let them know about Larry Bowen’s website. It has some useful information in there now, and Larry will be adding to it. The goal is to make it the best resource for disabled driving!!

If you have suggestions on what kind of things Larry can add to his site to make it more relevant and useful, please feel free to mention the ideas in the comments.

The bad user experience that turned a curious click turns into a maniacal rant…

I just have to post something about this insanely stupid campaign created by Futureshop and Intel. I help lots of people decide on computer purchases because I am the neighborhood ‘computer guy’. I think I have an idea what people want to know and what just confuses them. This so-called ‘computer buying guide’ on the Futureshop website is useless, confusing and, worst of all, is just a thinly veiled Intel advertisement. If I wasn’t an Apple user, I’d be inclined to swear off Intel just because of the smarminess and stupidity of this ad. Unfortunately, Apple is married to Intel now I can only complain about the spouse’s annoying behaviour.

It all begins with an innocent click…

I’m not a tech-fearing computer purchaser who needs help deciding on what to buy. If I were, I can see how it would be appealing to click here. Instead I’m just curious about what results they’ll give. Here’s my thought process:

  • This seems a great idea. I wonder what kind of results it will give me. Will is suggest specific products like Apple or HP?
  • If they do this right, it would a handy little tool.

Now let’s walk through the process and see what the results are…

Read the rest of this entry

The Easy Way

I previously posted my script for transferring from SQLite3 to MySQL here with involved step by step instructions. I’m going to mention it again with ultra simplified instructions to make it easier to digest and to save time for people who know what they are doing.

Here they are:

  1. Set up a development DB using SQLite3 (presumably you already have one from working locally)
  2. Set up a production DB using MySQL
  3. (optionally) Make sure they work
  4. Install the plugin in the vendor/plugins folder
  5. Run the script with rake db:backup:to_db TARGET_DB=production

Tip If you don’t have a development DB and set up your local install as production, just change your database.yml file to say that production is development…

Tip I typically bootstrap my production DB before I migrate over. It works and all the bootstrap data gets wiped.

Tip Use this carefully and please back up your original DB before you transfer over. If you get the syntax backwards you will wipe your data.

Tip Both databases have to be the same structure before doing the transfer. So you have to migrate your extensions and make sure your source DB is using the same version of Radiant as the destination DB.

Link to Script…

How to Transfer from SQLite to MySQL

I noticed something while working on a couple Radiant sites. I found that when I was building them locally, I prefer to work with SQLite3 databases. Then when I deploy them they use MySQL. Since so much of the configuration and site template lives in the database, I wanted an easy way to go from SQLite to MySQL. In the end I built it!

Wouldn’t it be Nice… to Backup from MySQL to SQLite? And vice-versa?

At the same time, I always thought it would be nice to be able to create a backup of the live database in SQLite. That way, if a client ever wanted their site ‘packaged up and portable’ as it were, it would be easy, just dump the production DB into a SQLite development DB, zip up the radiant folder and you have the whole site ready to run.

My ‘Plugin’ – Installation

I created this as a plugin for Radiant. Just download the package (at the end of this entry), uncompress into your plugins folder and you’re ready to go.

How to Use it

It’s fairly simple. Make sure you have SQLite and MySQL set up and running. Then configure your installation to use a SQLite DB for development and a MySQL DB for production.


development:
  adapter: sqlite3
  database: db/development.sqlite3
production:
  adapter: mysql
  database: myradiant_production
  username: radixhound
  password: paSSwerd
  host: localhost

Then make sure your target DB is pre-created. So if you don’t have a production DB up to this point, you can do this.


rake db:migrate
rake db:migrate:extensions

Then when you want to transfer from development to production, you can do this…


rake db:backup:to_db TARGET_DB=production

To do the reverse, you will do this…


rake production db:backup:to_db

Or Backup to another SQLite DB altogether…

You can also configure a third, fourth or fifth DB in your database.yml file and use that to back-up to, in case you don’t want to wipe out your development DB. Just add something like this to your database.yml file…


backup:
  adapter: sqlite3
  database: db/development.sqlite3

Then you can do this..


rake production db:backup:to_db TARGET_DB=backup

Download the Goods

radiant_db_backup.zip
radiant_db_backup.tar.gz

PS: I also have a version that works for Mephisto sites. you only get it in zip format ‘cause I have somewhere to be right now.

PPS: I figured this out from someone else’s script that did something similar-ish but not quite this. I don’t remember who or what though, sorry.