Developers Out Of Reach

Last week my Brother asked me if he could use my credit card to buy a new phone online since his no longer worked.  I don’t like using my credit card anywhere but on my computer so he came over so we could do it on my computer.  We started the process of taking advantage of a web only offer for the new phone he wanted.  We got to the checkout and were surprised to find a strange repeating screen about being a foreign customer (we were not).  So we tried a few browsers and both my ISP’s and same thing happened.  Eventually though in Internet Explorer we received a javascript error then checking back in Firefox it was now just a javascript error as well.  He called and they had no idea what we were talking about he was sent to various departments.  Eventually he ended up in sales who could not offer the web only offer but wanted 3 times as much for the same phone.  Told them no the issue is the order form is broken and then sent back around to technical support.  They basically said we cannot help you we have no way of contacting the web development guys to confirm there is an issue or even fix the issue.  So basically my brother was out of luck because of the fact no one at this company we could speak to could talk to anyone in charge of their actual web site.  This was a big time company and it’s pretty bad their order forms were broken and the fact no one was aware on the phones or could even contact someone was pretty bad.

That story made me think of my blog post today about the developers seemingly always being out of reach of the people who need them the most.  In this case it was the employees of this company having no way to even contact the people in charge of the systems.  It also happens to us when we’re dealing with products we run on our servers or just on our own systems.  It’s pretty frustrating situation to deal with when you report bugs to the support team.

We’ve had long outstanding bugs with several pieces of software we run both of which causing us headaches every once in a while.  In every case we’ve dealt strictly with support people who tell us it’s not yet fixed.  When you hear this for a year it starts to get to a point where you just want to say let me talk to them.  It makes me wonder if the support person is explaining the issue or even reporting it to developers at all.  In every case these vendors have no bug reporting systems at all or shut them down in favor of none.  So it’s make a ticket to support and hope they file a proper bug report.

I did a time as a co-op where I did software development so I can understand the problem of developers talking to users all the time.  There are times though when you need to talk to the end user to figure out how to replicate a bug.  I know some developers would never do that but rather would sit in their little coding cave and never interact with the end users at all to implement fixes that matter or add even very simple features.  Along with that developers getting involved in aspects so they know the product better also goes a long way.  Rather than just developing the product go out there and try to perform the task the end users are doing.  So if it’s in house application go and watch them on their computer or work with them to try to accomplish their tasks for a few hours or a day or whatever.  If it’s an end user piece of software try to create a better test environment or get more active feedback rather than just saying no bugs it works.  When you intend to use a piece of software for what it’s meant for you tend to find a lot of things you wouldn’t if you’re going off a check box system of what needs done.  So for example you have a screen and it works so you’re happy as a developer but as the end user the way it was designed is adding extra work load and one tiny change to the screen say some sort of auto complete instantly increases productivity by 10 fold.

That’s my rant for today just if you’re developing software make so users if necessary can talk to developers to get bugs squashed.  If you’re a developer don’t instantly dismiss end users as being idiots as they may be onto something and maybe it’s worth listening and trying to implement those changes.  The changes may seem small to you but they may be huge for the end users.

Posted in General, Programming | Leave a comment

Suspension Pages – The Unforeseen Bane Of Web Hosting

A few months ago we created a custom suspension page for shared accounts that are suspended. Now normally this is pretty straightforward task and you wouldn’t put much thought into it – we didn’t either. So we went ahead and setup a sub-domain, modified our layout accordingly setup cPanel. That’s it!

Well they say hindsight is 20/20 and we would tend to agree. Suddenly we got a huge surge of traffic from suspended accounts which was to be expected but due to a single oversight we had to skurry before the server decided to go kaput: PHP! We use PHP (Zend Framework, etc) for our website and portal so naturally we carried over some code from our website to our suspension page without thinking about the amount of traffic that would be hitting it. The result was a large amount of PHP processes bogging down the CPU causing our suspension page to almost become suspended itself. Obviously to fix it we simply put up a static page and called it a day.

Oops!

Moral of the story: Even the most trivial of things can cause issues to a server; this is even more true when you’re running robust scripts such as WordPress in a shared environment. Think about caching and scaling in general – not only will you learn you’ll prevent silly mistakes. One common issue we see constantly in our environment is people setup their 404′s to a non-static / heavily dynamic page and as a result if they get any sort of flux of traffic / spiders to the 404 pages their MySQL and CPU usage goes insane.

Posted in General, PHP, Programming, Random, Tips | Tagged , , , , , | Leave a comment

Moderation Is Key

I always believe in moderation when it comes to anything never do anything excessively.  In this case I’m talking about working which is why over the past few weeks I’ve made a point to reduce my hours to more reasonable levels and just be less of a control freak.  If you make tickets you may have noticed that I haven’t been responding to the tickets as much as I typically do and others have been picking up the slack.  It’s not all that I haven’t been doing though as I usually do.

Along with not responding to as many tickets and letting everyone else pick up the slack of my insanity.  I have also not been reading every ticket I can get my hands on and being a more trusting individual.  I realize if we’re going to continue to grow I can’t be hovering over everything like a Hawk.  It just makes so if I got hit by a car tomorrow or something where I was gone for an extended period of time everything would continue to function as normal.  A lot of web hosting companies rely on one person to do nearly everything and that’s something I’ve been trying to do less of.  If I’m not here then there is someone else there to handle a problem or post a maintenance notice or whatever.

So what have I been doing with my free time?  Well doing things I just sort of stopped doing over the past 8 months as I really got into the whole running Hawk Host thing.  I started playing Battle Field Bad Company 2 which by the way is awesome.  I’ve put in the time and I’ve unlocked pretty much everything now at this point except some aspects of the engineer which I think is the hardest class to do it.  I just don’t have the patience to be repairing things or being a real non factor as far as kills are concerned.  So I’ll be doing that for a bit then decide I want to be at the top of the scoreboard and switch to Assault, Medic or Recon whichever makes the most sense.  I’m playing the game on PC and I really would have it no other way console FPS games are just not for me I’m to set in my ways of FPS games are PC only and xbox or whatever is just a dumbed down version.  I suppose when you’ve played all the Quake games, counter strike and various other ones that were PC first it’s just tough to accept auto aim or just less run and gun style of play.

I haven’t just spent all my free time playing video games though that be pretty bad.  I’ve taken the time out to get a new car which unfortunately I will not have until late May early June as they just didn’t have the one I wanted in all of Canada.  My 2004 Infiniti G35 coupe has done me well the past 3 years I’ve had it.  It was the first car I ever owned myself but it was used and came from someone else’s 2 year lease.  It’s been showing it’s age as far as goodies and with it’s warranty finally running out (it had an extended warranty via Infiniti) I decided it was time for a new car.  So I decided trade in made sense went to my Local Infiniti dealer and decided on a Red 2010 G37 Sport coupe with Hi-tech package of course.  I’m sure some would say why not a BMW or Mercedes or whatever but I’m a little out of range of any decent dealerships and I rather not have a 2 hour drive anytime I have to go to the dealership for servicing on my car.  The fun is not over with my current car just yet I still have the winter tires on it since the dealership won’t give me anything for the Volk rims my Michelin Pilot Sport PS2′s.  So I’ll end up having to sell them on ebay or something like that.  It was fun having those expensive Rims but it also had hassles as far as not being officially supported by my car or even the Michelin accepting the fact they originally sold me a bad tire.  I actually spent money on 5 tires after one exploded just 50 km’s after I had it for no reason.  They ended up just giving me a tiny discount on a new one since they said it was probably bad but since it was not the normal size for my car (18′s vs 19′s of my volks) they would probably not give me a new one under their warranty policy.  So anyways very exciting to finally get a new car.

I’ve also handled a bunch of miscellaneous things like personal taxes and just general not being working as much as usual.  So basically what I’m saying is everyone needs to work less and have a bit of balance in their life.

Posted in Random | 2 Comments

February Is Over

I cannot believe it but the short month known as February is already over and we’re onto March already.  February was a very exciting month for us with lots going on so I’ll just go through it all really quickly in this blog post.

Continue reading

Posted in General | 1 Comment

Multivariate Testing – A Real Life Example

About a year ago I posted a little tutorial / guide on how to get a simple A/B or Multivariate test running using Google Website Optimizer. Unfortunately I never made a follow-up post, though we still use this internally to help improve our conversions. I figure shedding some insight on why this is useful and how we utilize this internally may be of interest to some people, so here it is.

Now if you’re not familiar with Google Website Optimizer or A/B / Multivariate testing I would highly recommend stopping here and taking a quick moment to get the jist of what they are. In simplistic terms you have several changes on your website with defined goals (here a sale, or conversion). You send traffic to these changes and after awhile you will gain enough statistics to determine if a particular change helps you or not (or in some cases does exactly the same).

So now that you have an idea of what the point of the testing is let’s take a peak at a current Hawk Host one that’s not quite conclusive yet.

The Variates

In this particular test we decided to go with one of the more prominent sections on our website: the portion above the folder and in the center (mostly). The reasoning behind this was it’s one of the first things people see and in theory would be the first thing that could potentially be improved to get people to order. Here is the “block” that we’ll be playing with:

In particular these are the elements we’ll be changing and testing inside of the above section:

Now in this particular test we decided to go with some generic changes – as you can see there are two elements in particular we’re focusing on. The main heading and subheading (we decided to lump these together as they can compliment each other – with variate testing you learn to appreciate that the smallest change can result in experiments that run months longer) and the image.

The headings / subheadings we are testing are the following:

  • World Class Hosting / Safe, Secure and Reliable Hosting
  • Lightning Fast Hosting / You won’t find faster servers
  • Hosting You Can Trust / Safe, Secure and Reliable Hosting
  • Hosting You Can Trust / Safe, Secure and Reliable Hosting (Colored “You” and “Trust”)

And the images we are trying:




Now one thing you must realize with variate testing is what you think will do well (or not do well) isn’t always what the results show. Luckily for us that smiley face was weeded out within the first few days due to its lack of performance (and utter creepiness).

The Results (thus far):

Now you need to wait for the results – this can take awhile depending on the amount of impressions / conversions / combinations you’re running. In this particular test we started out with 16 combinations (4*4) 1 of which was the original website. We’ve whittled it down to 8 combinations after a few weeks of letting it run and seeing which combinations are consistently doing poorly (you need to gather ample data to make this decision, patience is your friend).

So what can these small changes do for your business’ bottom line?

As you can see numerous combinations are out performing our original – some to a very large degree! I’ll let you interpret these results but at a glance you can see that several of these changes are converting significantly better. We’ll let this run until we gain enough data to be 100% sure that a particular change will yield better results but it’s looking promising.

In case you’re curious here is the original vs. the winning variate (at this time):

Original

Winning variate

That’s right, in this instance the combination with only the image different is converting well 2x-3x better than the original. Always keep testing – small changes can make large splashes.

-Cody

Posted in General | Tagged , , , | 2 Comments

cPanel 11.25 – We’re stable baby

In case you missed our recent announcement in the forums we’re now upgrading all of our cPanel versions to 11.25 as it’s recently been moved out of testing phase into stable. This is highly anticipated release as it adds a few features, and more importantly fixes a lot of poorly implemented features. Here’s a quick laundry list of what’s changed in cPanel 11.25:

  • CSRF Protection – Security tokens! This protects you from those nasty CSRF attacks. They also are checking for blank referrals (not the best method, but added onto tokens and you’re golden)
  • Optimized Mail – Mail servers (Dovecot / Exim) have had their configurations tweaked for a lower memory footprint as well as quicker processing. One of the things changed is now a single Exim process can listen on several ports at once.
  • Faster Webmail – The popular Roundcube e-mail system can now use a SQLite database which is umpteen times faster than the current system (mailbox files)
  • Queueing System – They’ve finally added a queuing system for things that require a webserver reboot. One of the common problems is when people mass add or remove domains it causes a short period where the webserver is constantly restarting causing slightly higher loads and longer response times.
  • Faster Transfers – Apparently you can now have transfers ignore the homedir directory and allows you to manually move it via Rsync or another method allowing for more flexibility.
  • And more..
  • Needless to say the update has been long needed – expect to see it on all of our systems shortly!

Posted in General | Tagged , , , | 1 Comment

Rebootless kernel updates ahoy! Initial thoughts on Uptrack (Ksplice)

In case you missed it we recently have added Uptrack to all of our machines to take advantage of being able to update the kernels on our machines without having to reboot. This has several implications, though the primary one being security. A large amount of hacks take place on a day-to-day basis and a large portion of them are due to out-of-date software. When there is a security issue in a web application the repercussions are plenty, though when there is a security issue in the kernel the repercussions are simply scary.

Needless to say Uptrack allows us to keep our kernels patched with the newest kernel patches to maintain a solid, stable and secure environment.

So how does it work? Well in laymans terms when new patches come out they automagically make it into a “rebootless update” and then apply it (according to them a large majority of the updates can be created without any programmer intervention). This allows you to apply updates on-the-fly without the need of rebooting. There is of course a more technical explanation, but I’ll stick with automagically for now.

One of the cooler features of Uptrack is it allows you to auto-update your kernels – this essentially leaves any need for human intervention. Now we’re not too keen on that since having our machines become self-aware is scary (arghh) so we opt for another cool feature. They offer a little web application that’s very simple yet effective. It simply lists all of the machines with Uptrack installed and their current kernel version. It let’s you know if any kernels our out of date or if any had issues installing. You can even view the update history of a machine to see which patch has been applied and what it fixed.

One of the things that we were concerned about was what if we ever decide to move away from using Uptrack? Does Uptrack gracefully “detach” from the machine with any issues? The answer is simple yes. When you remove Uptrack it reverts back to the original kernel when installed (yes, this means you would need to upgrade to a new kernel per usual). Cool beans.

We’ll post any updates regarding our experience with Uptrack here, though I doubt there will be many. We’re happy knowing there will be less maintenance windows needed and we can rest assured our kernels are up-to-date.

Cheers!

Posted in General, Random | Tagged , , , | 1 Comment

Power of Unlimited

A lot of web hosts and people in general underestimated the power of unlimited hosting to users.  Since we launched Frog Host on the weekend we’ve lost several customers some of which put right in their comment that someone recommended they switch to Frog Host instead.  I am pretty sure a lot of them are not even aware Frog Host is ran by the same company which is all that surprising.  The reason being we’ve seen an increase in affiliate users with Hawk Host and those same people are also promoting Frog Host on their websites and to their friends.  So these users have chosen to pay Frog Host $80/yr rather than Hawk Host $40/yr when their space usage suggests they’d be fine with just 3GB of space.

I have no doubt the affiliate system has a part to play in this with the Frog Host plans being higher and it’s commission percentage being higher it’s smarter to push it to make money.  Now wait a second Frog Host has higher numbers?  Well this is because offering 50% on a $80 plan is less of a hit than doing say 50% on a $40 plan.  We can afford to pay out more with Frog Host since the plans are much more expensive and with the power of unlimited a lot of users cost a heck of a lot less than $80/yr.

That’s about all I have to talk about I just thought it was interesting looking at some recent Hawk Host cancellations and seeing reasons pointing to Frog Host with various explanations given.  It just shows you the power of unlimited heck even if you own multiple unlimited brands I’ve heard of a lot of them losing a customer with one brand and gaining them back on another.  So they’re no further ahead and still using the same company in the end.

Posted in General, Random | 3 Comments

Softaculous Doing Great

We added Softaculous recently as we were becoming more frustrated by the lack of updates to Fantastico.  To go along with Fantastico’s lack of scripts it was months behind in some cases on versions of scripts which is unacceptable when dealing with exploits.  It appears the only thing Fantastico really has going for it these days is it’s name as we still have customers using it over Softaculous even though Fantastico might even be installing an older version of a script.  So it’s definitely not something we’re removing as a feature as it stands on it’s brand and if we did remove it we’d be losing customers.  So just how great has Softaculous been over the first week of us using it?  Well here’s a summary of all the script updates we’ve seen:

Continue reading

Posted in General | 1 Comment

Injury Bug

The web hosting season is a long a hard one in fact the season really does not end we’re here 365 days a year.  So there are bound to be some injuries some of which could put staff out 6-8 weeks others are just nagging injuries that can last weeks or months.  We’ve been relatively healthy this year with nothing to take out anyone for any long amount of time.  Recently we have been hit by the injury bug in the form of nagging injuries that we just play through.

I currently have a sort wrist from all the programming and working mega hours I’ve been doing lately.  Sitting there programming and next thing I know I haven’t got up in 4+ hours. That’s recipe for a sort wrist or even a sore elbow or shoulder depending on the day.  I lead by example though and I cannot opt for time off or rest I’m the leader of the team.  I’m like Kobe I’m not opting for rest or surgery when I can continue to play through the pain.

Cody in an attempt to fix his posture opted for a new way of sitting but it has resulted in a sore back.  In the long term this change will help him but for the short term it has created a nagging injury.  Following my lead he is playing through the pain realizing the team needs him for our playoff push (Frog Host).  He continues to receive treatment in order to play through this and we command him on his dedication to the team.

Brian has the most serious injury right now on staff.  He opted to grow a beard to improve his game but it has come at a cost.  His beard is now becoming problematic with that extra facial hair.  He has developed a problem of food in the beard which if left untreated could develop into something that could affect him long term.  He’s not going to give up his beard without a fight though and has opted for the time consuming work of cleaning it every day.  He’s inspiring everyone else the most with his resilience to play through such an injury.  Next time you run into him on chat or in a support ticket make sure to tell him you’re supporting the team.

We realize we’re a playoff team and this regular hosting season is just a tuneup for the serious stuff.  You need to still play though which means while grueling and sometimes painful we’re there every day putting the work to make Hawk Host a success.

So if you have not realized yet just a joke post : -) My wrist is a little sore from aggravating an existing injury from playing sports by working to much lately.  Cody really does have a sore back because he wants to improve his posture. Brian does indeed have a beard and look like a caveman although he doesn’t have problems with getting food in it.  I just thought it be fun to post about something totally random and with no helpful information.  I hope you enjoyed reading it : -)

Posted in General, Random | 2 Comments