... loading ...
2010
04.17

Since I decided to take the plunge and get a dedicated server for my hosting company, I’ve been working on ways to focus on and improve my offerings as a full-service small business host.

Of course, I’m a one-person company right now – the main reason design clients and others host with me is that they want personal service. My goal now is to make the hosting decision as easy as possible for them by offering both hosting and other services as a one-stop shop.

In the past few weeks, I’ve implemented a number of changes at NOCO (not including buying the dedi):

  • set up an affiliate program for hosting clients in WHMCS. If a new referral comes through a NOCO text or image link on an existing client’s site, the current client gets a credit on their account.
  • replaced my static FAQ page with a new dynamic one using the phpMyFAQ system. Now clients or potential clients can post a question if they don’t find the answers they need, and I can add new items to the FAQ more easily.
  • added two SSL certificates with free installation. I’m thinking about adding more – my domain provider Enom offers quite a few but when I tried to set one up in WHMCS I had some issues.
  • added free trial accounts – a prospective client can check out NOCO for seven days. I’m using a module from WHMCS Gold to manage free trials. They’re automagically removed from the server at the end of the trial if the prospect decides not to sign up.
  • added daily offsite backups through bqbackup, to supplement the onsite ones. Just for my peace of mind.
  • added Plesk Sitebuilder for those new hosting clients looking for a simple templated site.

That last item required some serious consideration – was I possibly cutting myself out of work by offering a Sitebuilder system? But I don’ t think so. The hosting clients that come to NOCO on their own – through searches or ads – may be looking for a quick fix, the kind they can get with site-building tools at the big box hosts. But if they’re looking for a local hosting company with those kinds of tools, then NOCO can meet that need.

When I started NOCO Hosting I only made mention of Red Kite once – on the About Us page. But I’ve rethought that; I’m now advertising the availability of professional custom web design and development services on NOCO’s site.

I think I’m on the right track with my goal of repositioning NOCO as a boutique hosting resource for small businesses, primarily local ones, but I do have a number of clients in other states now. I plan to continue adding new services and goodies for clients as appropriate.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr
2010
03.28

Finally fixed it!

I found this referenced on this WordPress codex page:

$custom_field_keys = get_post_custom_keys();
foreach ( $custom_field_keys as $key => $value ) {
$valuet = trim($value);
if ( '_' == $valuet{0} )
continue;
echo $key . " => " . $value . "
";
}

This will display a list of all the keys in custom fields on the current post. Then once you know the key name you need, you can retrieve and publish it – this is one way to handle that:

$myCFValue = get_post_meta($post->ID, 'myKey');
if (isset($mCFValue[0])) {
echo "My Custom Field Value: ".$myCFValue[0];
}

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr
2010
03.28

I’m working with TDO Mini Forms in WordPress and having problems getting one particular custom field to display in my template. Haven’t figured it out yet, but I did find a useful tool to display all the custom fields for any particular post.

Add this to the template, within the loop:

$cf_values = the_meta();
if ($cf_values){
echo 'Custom field values are: ' .$cf_values;
}

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr
2010
03.20

About three weeks ago, I decided I’d had enough with all the recent troubles on my reseller hosting account. The shared server I’d been on for about 3 years had become slow and crowded; lots of crashes, IP blacklistings and email bottlenecks, and way too much time spent answering to upset clients about the latest problem.

One of the long-time dedi owners at my host posted ‘The 6 Stages of  Dedi Ownership’ a while back.

  1. Apprehension
  2. Anticipation
  3. Confusion
  4. Bargaining
  5. Bewilderment
  6. Acceptance

Right now I’d say I’m somewhere between 5 and 6.

While I’m no stranger to WHM, the huge array of extra things to do and look at was a shock the first day. It was like being thrown from 1st grade to freshman year in college with nothing in between. I’m a web designer, not an IT person, and though I’d call myself pretty much an expert with PC’s, this was a whole other ballgame.

Getting some initial help

I spent a well-worth-it $125 to have ConfigServer install their cPanel service, including a better mail program (Mailscanner) that includes antivirus. The long explanatory email they sent me, plus their forums, have been very helpful for a dedi noob.

I also was lucky to run across the book Web Host Manager Administration Guide from Packt Publishing. I read this from cover to cover, taking notes about specific things I needed to do with my WHM setup.

All those email alerts were rather frightening at first, but I’m getting used to them and have enough understanding now to be able to pick out the truly important ones. I had some DNS issues too but the tech support guys at my host have been quite helpful.

Making my own best management practices

I started a document I’m calling Hosting Notes a few weeks ago; it contains common procedures that I’m learning – like how to copy a site from one cPanel server to another; how to decrease propagation time when moving a site; how to edit php.ini.

I’m also (with the help of the WHM Admin Guide) putting together a checklist of things that need to be checked frequently. These two documents together will be the basis of competent server management on my part (thank God it’s a managed server – I would have gone nuts with an unmanaged one by now).

How’s it going so far?

I’ve convinced about 95% of my shared server clients to move to the new server (at a small fee increase per year, since the box costs me 4 times what my shared server did each month). That’s pretty good. The few clients that don’t want to pay the fee are going to find a new host next month when I close down the old reseller account, and that’s fine.

The new server is SO much faster, just like I thought it would be. And no issues whatsoever with email slowdowns. Now I need to think about redoing SEO on my hosting site to start bringing in more clients – up to a point. And when I get there, I supposed I’ll be buying my second dedi…

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr
2010
02.16

After my beloved Franklin Covey PlanPlus software put its foot down and declared that it would not play nicely with Windows 7, I was really at a loss. I’d been using it for years and didn’t realize how dependent I was on it…

I spent some time looking around at task management tools and even tried a few, including Remember the Milk, Todoist, and taskTome.

TaskTome is the one I’ve been using for the past two weeks, and it’s not at all bad, but it just wasn’t, well, right. Yesterday I opened it and saw all those tasks listed, and I was like, ‘what in the world am I supposed to do today?’ I couldn’t answer that immediately. So in desperation, I went Googling again.

Last night I found HiTask. So very happy!

HiTask is an online tool that quickly caught my attention because of one main thing – I can look at it and tell immediately what I need to do today vs. tomorrow vs. later this week (HiTask is shown at lower right, TaskTome at upper left).

HiTask has a clean, bright interface and it has a calendar right on the same page with your task list. Tasks can be grouped by Date, Color (priority for me), MyView (which is whatever you want it to be) and Project. My favorite is Date because of my aforementioned need to see exactly what needs to be done and not have to think about it too much.

A very neat feature is the ability to create Projects and then drag tasks into them, so you can see all the things that need to be done for that particular project or client.

HiTask also has a tagging feature so you can search by tag at any time, plus it has time tracking and reporting tools.

I’m using the free version and I’m very happy with it, but there is a business version available that will let you share HiTask among team members. The business account is $29.00 per month and includes 5 user accounts.

More Resources

Here are a few of the useful articles I used in my own research – maybe one of them will lead you to your own little Holy Grail:

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr
2010
02.13

Issues with slow or nearly nonexistent email services for my hosting clients during a RAID rebuild earlier this week scared me – enough to start investigating some new ways of managing and growing NOCO Hosting. This was only the second time in almost 3 1/4 years that I’ve had a problem that couldn’t be fixed very quickly, and it was a really frustrating few days (both for me and my clients).

A few changes I’ve already implemented:

  • Compiling an offsite contact list that I can use to reach clients in the event of an emergency. I already had this in place, but many clients had never responded to my requests for an offsite email address – they’re still using ‘me@mydomain.com’ for their account ‘www.mydomain.com.’
  • Creating a new Gmail address for NOCO, primarily for sending out notifications.
  • Compiling a list of SMS/text message contacts for clients who prefer to receive their notifications that way.

And some other things upcoming:

  • I’ll be adding some dialogue and changes to the hosting registration form that require an offsite email address as the primary contact address for any account.
  • I’ll be splitting client accounts between several servers to reduce by 50% the chance that any one client will b affected by a server issue.
  • I’m investigating DNS failover services now, and will be putting together a pricing package to offer to all my clients. I want to see who might be interested in such a service before I formally get it, but I think it might be a good additional offering for NOCO even if no one wants it now.
  • I’ll definitely be implementing one of the DNS failover services for my own business sites; I’ll probably try ZoneEdit because they offer their services for free for the first 5 domains

I’m also connecting with other hosting resellers and hosting providers in the Meetup group I co-founded, Fort Collins Internet Pros. Brainstorming with those guys might lead me to some other ideas I haven’t even considered yet.

Frustrations like the one this week make me take a step back and consider whether it’s really worth it to even offer hosting. But I think that it’s a value-added proposition for my clients (one-stop shopping, so to speak), and it’s nicely profitable. Until that changes, I just need to continue what I’m doing – communicating early and often with clients when the extremely rare server issue does come up, and doing what I can to lessen the impact.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr
2010
02.07

Very happy to report that the new site for Loveland Habitat for Humanity launched this week. A pro bono project, I’ve been working closely with Habitat and Rob Advertising to ensure that the final result is easy to use (both for visitors and the Habitat staff that will be managing and editing the site), attractive, and focused on delivering the organization’s message with clarity.

I chose WordPress as the development platform because of its flexibility and low learning curve for the admin users. The new site integrates a custom theme, blog, Google events calendar, donation forms and Success Stories slideshow. WordPress will enable the Habitat staff to grow the website as needed in the future, and add new functionality without much fuss.

I’m also adding another custom WordPress site to the portfolio today, Front Range Factoring. FRF stretched my WordPress capabilities; the project’s intent at the beginning was adjusting a purchased theme for a live site, but in the interest of time and efficiency the client and I decided to create a new custom theme that would be easier for him to manage after relaunch.

Using the WP Framework  I worked with FRF to come up with a fresh design for his existing site. I incorporated a tabset plugin and column plugin for some of the internal pages, and learned how to add widgets wherever one might be needed in the page.

Finally, Kontour is the third new project going into the portfolio today. Kontour’s owner is a graphic designer and typographer, and she approached Red Kite to create a clean, well-commented XHTML/CSS template set that she could apply to the rest of her site redesign. I created a slideshow for the home page and a gallery template as well.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr
2010
01.24

This is a followup to my previous post on adding scripts only to the WordPress pages that need them. Please read that first, or this might not make much sense…

To cleanup the dynamically generated head section even more, you can disable the styles associated with scripts that aren’t loaded on every page.

The easy way to do this is very similar to what I talked about last time – add this code to your functions.php file (or custom-functions.php if your theme supports it):

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles() {
if ( !is_page('about-us') ) {
wp_deregister_style( 'thickbox' );
wp_deregister_style( 'style' );
}
}

The plugin I’m working on is WPNG Calendar, which displays a stream of events from Google Calendar. I want to show it, in this case, only on the site’s About Us page. I’ve already deregistered the scripts associated with WPNG Calendar on most pages, so now I want to hide the styles on the same pages (why load them if you don’t need them?).

So now you’ll do the same thing as in the previous post with a twist:

  1. View the source for a page on your site and find the CSS stylesheet links associated with the plugin that you’ve already deregistered on most pages;
  2. Open up the file that calls that stylesheet – in my case I’m looking at wpng-calendar.php.
  3. Search for wp_enqueue_style within the PHP file and find the handle for the stylesheet you want to deregister. The handle is the first element in parentheses after the wp_enqueue_style element – in the snippet above they are thickbox and style.

A Problem That You Can Fix Yourself!

What happens if you can’t find a ‘wp_enqueue_style’ in your PHP file? This is unfortunate; it means that the plugin creator isn’t making easy for you. Using wp_enqueue_script and wp_enqueue_style makes it simple to work with the tools WordPress has built-in, but there’s a way around this.

Look for a link that calls a stylesheet – something like this:

echo ‘<link type=”text/css” rel=”stylesheet” href=”‘ . get_bloginfo(‘wpurl’) . ‘/wp-content/plugins/wpng-calendar/css/style.css” />’;

Comment that line out and add your own wp_enqueue_style line, replacing the handle with the stylesheet name and editing the source link as needed (refer to this reference for parameters, I didn’t include what I wasn’t sure about):

wp_enqueue_style(‘style’, get_bloginfo(‘wpurl’) . ‘/wp-content/plugins/wpng-calendar/css/style.css’, false, ”, ‘screen’);

Now you have a stylesheet being loaded in the way WP intended it to happen and you have a handle (‘style’) that you can plug into the deregister function.

Do the same thing for any other stylesheets being called, add those handles to the function and you should be good to go. This is the final version of my function:

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles() {
if ( !is_page(array(2,'events','about-us')) ) {
wp_deregister_style( 'thickbox' );
wp_deregister_style( 'style' );
}
}

You can see that I’m hiding the styles from the head section on all but three pages:

if ( !is_page(array(2,'events','about-us')) ) {

I hope this is helpful – please let me know if you find these two posts on restricting plugin loading useful and understandable.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon
  • email
  • PDF
  • Print
  • Twitter
  • MySpace
  • Technorati
  • RSS
  • Tumblr