McGriddle

McGriddleIf I only had 6 months left to live, I’d be eating a McGriddle every morning until I kicked the bucket. The draw back, of course, would be that I’d have to get up before 11 a.m. (why doesn’t McDonald’s have all-day breakfast?), but I’m learning that it’s a lot easier to get up before noon if you go to bed before 2 a.m. The wife doesn’t let me stay up late anymore. 🙁 Anyway, the point I’m trying to make is that the McGriddle breakfast sandwich from McDonald’s is amazing, and the reason I don’t eat one everyday is because I’d like to live past the age of 30.

For some of you folks who haven’t tried the wonderful yet potentially deadly McGriddle because either you don’t get up that early or you don’t want to die that early, a McGriddle consists of the following:

  • standard McDonald’s slab of scrambled eggs
  • bacon or sausage
  • cheese
  • 2 maple syrup flavoured hotcake-like things

The Bacon & Egg McGriddle contains 560 calories, 32 g fat, 1290 mg sodium and 16 g sugar. It constitutes approximately half of one’s daily fat and sodium intake and almost 90% of their daily cholesterol. Interesting.

The damage to your body aside, I think there’s an important question we should be asking… why don’t they offer a McGriddle with bacon and sausage?

The McGriddle is a remarkable product of McDonald’s heart attack engineering. I love having all of my favourite breakfast foods wrapped up in a single package. It’s a beautiful thing.

I never used to be a fan of McDonald’s breakfast, but I’ve come to appreciate the extra artificial flavour McDonald’s premade frozen ingredients give to the already unhealthy foods.

The McGriddle will never replace my Hungry Man breakfast at Madelyn’s Diner in Stratford, Ontario (2 eggs, farmer’s sausage, fried potatoes, 2 pancakes with toast and coffee for around $9). But it sure gives me an incentive to go out shopping with my wife on Saturday mornings.

Don’t get me wrong, I love the McGriddle. I also realize how horrible it is for you. Should I never eat one then? No. I just won’t have one everyday.

Share

voicenetwork.ca logo
Main Page

Main Web Site

I recently blogged about my VOIP experiences with Acanac in “Why I cancelled my Acanac VOIP account.” I mentioned that I am now using a new VOIP provider that doesn’t have the same limitations that Acanac had. I felt that since I like my new primary VOIP provider Voice Network so much, I should write a review about my experiences and why I am very happy with them. I should point out that Voice Network is kind of a wholesale VOIP provider, but you can definitely use it for your home phone, providing you don’t require a pretty interface and can handle scary words like DID and DTMF.

Website and sign up

If Voice Network’s website design was any indication of their quality of service, they wouldn’t still be in business. Their website looks really dated, but fortunately you don’t ever have to look at it again once you’ve created an account. Their site contains basic information: practically no marketing material or fancy images–just the facts.

Account creation is relatively simple and free. It appears to have changed since I originally created my account back in June of 2008. When you sign up now, their system will automatically call you to verify your identity. They did not have this system in place when I first created my account. They verified my identity by making me contact them after I had deposited money in my account.

The Portal

Portal Navigation Menu

Portal Navigation Menu

Once your account has been created, you have access to the Voice Network portal. http://portal.voicenetwork.ca . The portal looks similar to the main website, but they add to the archaic look and feel by implementing frames. To be fair, the portal does work very well. It’s fully functional, except for a link to a “Virtual Office” feature that’s been “coming soon” since I signed up. The Portal’s navigation is logically done, using a collapsible tree menu in the left hand frame.

Add money to your account

The first thing you’ll want to do after creating an account is add money. Voice Network offers the following payment methods:

  1. PayPal
  2. Visa/MasterCard
  3. Interac E-Mail Transfer

PayPal is the easiest method of payment by far. Just make sure you have a verified account or they’ll make you wait a few days for the money to supposedly clear. I imagine they’ve had problems with people abusing the system.

To use your credit card, you have to email or fax them a form with valid photo ID and a photo of your credit card. Certainly not the most ideal system. Also they charge a fee of approximately 5.5% for PayPal payment and 3% + $0.25 for credit cards. I’ve never done an Interac Email Transfer so I can’t comment on it. I’m glad the rates are so cheap, otherwise I’d not be happy paying all these extra fees. I wonder if I can just write them a cheque?

Create a Peer Device

Peers List

List of Peer Devices

As soon as you have money in your account, you can proceed to create a Peer Device. This might be quite complicated for novice users, but this is actually one of my favourite Voice Network features.
Peers refer to the VOIP device that you use to connect to Voice Network. A Peer has a username and password that allows your VOIP device to log on to the Voice Network servers. Generally speaking, most VOIP providers only give you one peer account and usually use your username as the phone number they assign you. With Voice Network, you don’t even have to have a phone number (or DID), you can just create a Peer and use it to make outgoing calls if you like.

The other great thing about Voice Network is that you can create unlimited Peers. I have a Peer for my fax machine, my laptop, my regular home phones, my iPhone and my sister’s phones at her house. That way I can easily deposit money in my account to provide phone service to multiple VOIP devices under one VOIP service.

Peer Info

Peer Device Settings

The nice people at Voice Network have tried to make it simple to configure your VOIP device. They added a link beside each of your Peers that will show you exactly what values to fill for your VOIP device. You can also point one or more DID’s to your peer devices, which I will discuss in the DID section.

Voice Network also allows you to set up multiple different peer types. You can specify dynamic or static IP addresses, create SIP or IAX devices, and even select which codecs you want to use. You can also create a Peer that acts as a forwarding device to a regular PSTN number.

My favourite peer setting is Caller ID. They let you set your own caller ID to anything you want. I left Acanac because they refused to change my caller ID. Apparently Voice Network has no problem with people changing their caller ID. I love these guys! At right, see screen shots of the peer device settings.

[ad name=”Google Adsense 468×60″]

Pricing

From what I’ve seen, Voice Network’s pricing is pretty competitive when compared to similar pay-as-you-go type services. It’s, of course, dirt cheap when compared to an old-fashioned Bell line.

Voice Network’s pricing is as follows:

Outgoing
US Termination $0.015 cents per minute for calls to the USA (30 second minimum / 6 second increment)
Canadian Termination $0.01 cents per minutes to Canada except the NWT/Yukon and Independent Telecom Companies( 30 second minimum / 6 second increment)
Incoming
Incoming DID $0.011 cents per minute (30 second minimum / 6 second increment)
Toll Free Number $0.04 per minute (30 second minimum / 6 second increment)
DID Pay As You Go Unlimited
US $0.99 $3.95
Toronto & Montreal $2.50 $5.95
Ontario $3.50 $7.95
Canadian $4.50 $8.95
Toll Free $1.95 N/A

DID (Incoming Numbers)

DID List

List of DID

Now that we know how much a DID will cost, let’s talk about how to set one up. To purchase a DID from Voice Network, you must traverse through a few selection boxes to narrow down your DID choices by location. After selecting your area code/city, you are presented with a list of available numbers. They usually have a nice selection of numbers for a lot of different cities. As I mentioned in my Acanac blog, these guys have plenty of Kitchener/Waterloo and Hamilton numbers. They also usually have numbers in sequence so you can get similar numbers if you want.

Once you have selected a number, you proceed to the DID purchase page where you decide on the type of billing for your DID. Your options are unlimited or pay-as-you-go. This only applies to incoming calls, of course, and not outgoing, which is always $0.01 to Canada and $0.015 to the US. It’s also worth noting that you get four concurrent calls with a pay-as-you-go account, whereas with the unlimited account you only get two concurrent calls.

DID Information

DID Information

Once your DID is setup (which is done instantly), you need to configure your DID to point to a Peer. I visit the DID settings screen frequently because I like to forward my calls to my cell phone sometimes. You can also choose a voice mailbox for your DID here as well. You must first set up your voice mailbox on the voice mailbox setup page. Voice mail is pretty much what you’d expect. You can configure your password, have your message emailed to you, etc. They also have a neat feature that lets you assign your own voice mail pickup number. Usually the VOIP provider assigns you *98 or something like that to check your voice mail, but Voice Network lets you choose your own code. Talk about options…

[ad name=”Google Adsense 468×60″]

Support

How to videos

Videos

Voice Network has pretty good support. They actually have a number of videos that walk you through setting up Peers, configuring popular PBX systems and some VOIP end-point devices. They also provide phone and email support. I’ve used the email support a few times for billing issues and they are very prompt in their responses. I’ll also add that unlike the big companies, Voice Network gets my problems solved on my first request.

Reliability and uptime

I signed up with Voice Network almost 2 years ago, and within the first week of signing up, they went down and I was without any phone service for a few hours. I was not happy; I was scared that this might be a sign of the quality of service I should expect from them in the future.

It wasn’t. Since then, they’ve been down a few times but only for a very short duration–so short I haven’t really even noticed. The nice thing is that they are very honest and upfront about the downtime. They always explain the situation on the news page of their portal, which is the first page you see when you log in. They keep old news posts in the portal so you can see how often they go down for yourself (maybe three times in the last year for less than an hour). Acanac went down on much more of a regular basis for me.

Voice Network rocks

Ok, so they won’t win any beauty contests or user friendliness awards, but if you like playing with settings and you like reliable service then you’ll love Voice Network. Keep up the good work guys!

Share

Shhhhhh! We raised our prices but we hope you don't notice.PowWeb is a shared web hosting service that attempts to set itself apart from other hosts by its proprietary “load-balanced hosting”–marketing buzz words as far as I’m concerned, but then, in the shared hosting world, everything is a marketing buzz word. Anyway, back in 2007, I needed a hosting account, and since I had heard good things about PowWeb, I signed up. They had some buy-1-year-get-6-months-free promotion at the time. By averaging out the monthly price of $7.77 (paid annually, of course) over 18 months instead of a year, this reduced the monthly price to $5.18 per month. Not bad.

During my time using PowWeb, I’ve found their support and service to be excellent for a shared host. Page load times are horrible (my Rackspace Cloud Server has spoiled me), but it’s a shared host so I won’t complain. The service is very reliable with practically no downtime. I’ve been a happy customer these past few years–that is, until I got my latest bill.

 

[ad name=”Google Adsense 468×60″]
I’m pretty good at remembering numbers, at least rough numbers, and I knew my hosting was usually about $95 per year, so I was surprised to discover that my latest invoice totalled $111.24:

Dear John,

We hope you’re enjoying online success and are pleased
with the service you’ve received from PowWeb.

A payment for your “[removed]” account is due on 3/21/2010.

On this date, your credit card will automatically be billed for
the amount specified below. To avoid billing difficulties and
service interruptions, please take this opportunity to log in
and review the credit card information currently on file at:
http://www.powweb.com/secureControl/EditCCInfo.bml

Please refer to the invoice below for payment information.
If you have any questions, please call us at 866-476-9932 or
submit a new request by logging into your Support Console:
http://www.powweb.com/member/sconsole/index.bml

Best wishes,
The PowWeb Team

****************************************************************
PowWeb Invoice
PowWeb, 70 Blanchard Road, Burlington, MA 01803
****************************************************************

User’s name: John Clark
Billing name: John T Clark
[removed]
[removed]

DATE: 2/28/2010
****************************************************************
PAYMENT NO.: [removed]
ITEM: PowWeb OnePlan
AMOUNT DUE: $111.24
DATE DUE: 3/21/2010

****************************************************************
Note: This invoice constitutes a payment notice for the
product/service mentioned above only.
Other payments or services
are invoiced separately. Information on all products and
services for your account, as well as payment receipt
information, is also available at:
http://www.powweb.com/controlpanel/BillingCentral/billingSnapshot.bml
****************************************************************

If you need additional information or would like to change your
billing method, please please call us at 866-476-9932 or
submit a new request by logging into your Support Console:
http://www.powweb.com/member/sconsole/index.bml
****************************************************************

What?! First I got out my calculator and then I got mad. For some unknown reason, without warning or notice, I am being billed an extra $1.50 per month. I immediately contacted support. I usually get a reply back with a few hours max, but this reply took more than a day.

The reply was as follows:

Hello,

Thank you for contacting Support.

We apologize for any inconvenience this may have caused you. We regularly receive feedbacks from our Marketing team and Finance team about the existing trends in the Internet world and depending upon those suggestions we alter the pricing for the customer accounts. Unfortunately, we had to increase the price for your hosting package due to the following reasons:
1. Rising cost of technology and support resources.
2. To control inflation.

Since the changes were affected to the entire customer base in different way having separate pricing criteria, we had to send individual messages to the customers. We felt sending an invoice 21 days prior to the billing date would be the best method. Therefore, you had received the invoice on February 28, 2010 which did include all the information about the price change. [The so-called notice was an email that said how much I was to pay, not that there was a price increase. It’s included above.]

However, you are one of our valuable customers. Hence, we will offer you actual price $93.24 per year. If you wish to change your Hosting plan to actual price and then get back to us with confirmation so that we can change your plan to actual price in your account ‘[removed]’.[I think that means they’ll reduce my bill to $7.77 per month but this paragraph barely makes any sense.]

Thank you!

Sincerely,

[removed]
Customer Support

Several things about this reply confuse me. First of all, why do they keep calling $93.24 ($7.77 per month) the “actual price” when it’s not the actual price anymore because they are increasing their price?

They are apparently going to charge me the $93.24 for this year (they haven’t yet), but that’s not good enough. They’ll probably just charge me even more next year. I can understand raising prices, but this is a very deceptive method. They could at least have some fine print at the bottom of the email saying, “Oh, and we have increased your monthly hosting package to x.” Don’t try to hide the fact by giving the customer a total that they won’t recognize has been increased. Oh, and if the price increases, increase it for everyone. Don’t keep the old regular price on the front page of your website!

I will be moving to a new shared hosting company before my next year’s bill arrives. This sort of thing is unacceptable and I refuse to deal with companies that employ such misleading practises.

Goodbye, PowWeb.

Share

Rackspace

Rackspace Cloud Server vs. Running Your Own ServerEvery web developer needs some sort of web server. Some use a virtual machine running on their workstation. Some use a physical box connected to their LAN. Until recently, it wasn’t really even feasible to consider having a remotely hosted development server. But with the introduction of hosted VPS services like the Rackspace Cloud servers, it’s not only affordable but possibly cheaper, depending on your requirements, to have your own hosted VPS.

The following is a comparison of the total cost of ownership for a Rackspace Cloud Server versus running your own local web development server. We want the comparison to be as fair as possible, and therefore we will try to compensate for the major differences between a virtual server and a physical server.

Rackspace Cloud Server… 1.5¢ per hour? I’ll take 2 please.

Let’s start with a Rackspace Cloud Server. The cheapest Cloud Server plan–which is more than sufficient for web development–starts at $0.015 per hour. All plans include 4 virtual CPU cores and RAID 10, and provide dedicated resources and CPU time. The cheapest plan comes with 256MB memory, 10GB of disk space and a 10Mbps connection to the Internet.

Hourly Daily Yearly Monthly
Price $0.015 $0.36 $131.49 $10.96

Formula: (Hourly rate X 24 X 365.25) / 12

Data transfer

Rackspace charges an additional per-gigabyte fee for incoming and outgoing data transfer, but since this is a dev server, it’s very unlikely this will affect your monthly fee very much. In my case, my dev server never comes close to 1GB in or out.

Bandwidth In Bandwidth Out
Price $0.08 $0.22

For these calculations, we will assume that we will be charged for 1GB incoming and 1GB outgoing transfer.

Our total transfer cost will be 1GB X $0.08 + 1GB X $0.22 = $0.30

Don’t forget to backup your Cloud Server

The last thing to consider is backup. Rackspace Cloud Server’s are hosted on servers featuring a RAID 10 hard drive configuration. Ideally your data should be safe, but just in case something goes wrong with the physical servers your Cloud Server is on, you’re covered. Rackspace’s backup for Cloud Servers is stored on their Cloud Files service. Backup storage is currently free, but it will eventually cost you $0.15 per gigabyte.

We’ll assume you want both a daily backup and a weekly backup, so your backup storage cost would be:

10GB X $0.15 X 2 = $3.00

Note: The backups are transferred via the network interface on your Rackspace Cloud Server that is connected to Rackspace private network. Rackspace does not charge any data transfer fees for any data transferred on this network.

Ok, so after adding up our average monthly server fee, monthly data transfer and backup charges, the total cost for running a Rackspace Cloud Server is:

$14.26 USD

Now let’s see what it costs to run your own server.

 

[ad name=”Google Adsense 468×60″]

Running your own server

With a Cloud Server, you are essentially leasing space on Rackspace’s hardware. They provide the hardware and make sure it’s working. If it breaks, they have to pay to fix it. With your own server, well… it’s all up to you.

I know you can turn your old Pentium 4 desktop into a great Linux box, but it’s not really fair to compare a professional grade server product to a budget workstation. To make our comparison as accurate as possible, we will use a used or off-lease server that is easily affordable for the average web developer.

Our used server will feature 2 hard drives in a RAID 1 configuration, a Pentium 4 processor, a 300W power supply and 1GB of RAM. I know the RAM here is 4 times the amount in Rackspace’s base Cloud Server, but since we are using a Pentium 4 processor instead of the quad core server class CPU Rackspace is using, I think that its use in our calculation is justified.

We’ll assign a price of $150 for this server.

What if the power goes out?

Since Rackspace obviously has uninterrupted power supplies supporting their servers, it’s only fair that we use one as well. Let’s assume we need a 300W UPS and it costs $50. If we add the cost of our server and UPS together we get $200. Let’s assume our used server will last 2 years (24 months).

$200 / 24 = $8.33

So a Rackspace Cloud Server costs almost double this amount? Not quite. I left out one important factor that you may not think about unless you’re the one paying the hydro bills: electricity. Surprisingly, the cost to run your server 24/7 is not an insignificant factor.

Electricity costs money too, you know

Since I live in Ontario, Canada, I’ll be using Canadian hydro rates for my initial calculations and then converting them to US dollars before adding them to our server total.

The non-Smart-Meter hydro rates for Ontario are as follows:

Condition Rate
First 1000 Kilo Watt Hours per month: 5.8 cents/kWh
Above 1000 kWh: 6.7 cents/kWh

Assuming we use under 1000kWh per month, we’ll use the rate of 5.8 cents.

In order to calculate the cost of our electricity consumption, we must first figure out how much power our server will consume. Since the server will probably be idle for the majority of the day, we won’t use the maximum power consumption but rather an average. I used this website to determine how much power our server will use. The calculator gave me a power consumption of 163W.

Let’s convert that to kilowatts:

163W / 1000 = 0.163kW

  Hourly Daily Yearly Monthly
Price $0.009454 $0.226896 $82.873764 $6.90

Formula: (0.163kW X $0.058 X 24 X 365.25) / 12

Before you get too excited, we still have to convert this back into US dollars. We’ll use $1.00 USD = $0.95 CAD as our exchange rate.

$6.90 CAD X 0.95 = $6.56

Wow, you could definitely argue that shared hosting is cheaper than running your own server on the basis of the electricity cost alone. When we add our electricity bill to our server cost we get:

$8.33 + $6.56 = $14.89

 

[ad name=”Google Adsense 468×60″]

Wow, they’re close!

  Rackspace Cloud Server Your own server Difference
Average monthly cost $14.26 USD $14.89 USD $0.63

The numbers speak for themselves.

Results with a grain of salt

There are two important aspects to consider when evaluating these results.

First, we made a lot of assumptions about our server. If you prefer to run a low power desktop as a server, can find a cheaper used server, or decide to turn your server off at night, these will significantly reduce the costs for running your own server.

Second, the value of the features and expertise provided by Rackspace is far superior to anything you might set up in your basement. I made a brief chart to highlight some of these differences that can’t easily be assigned a monthly monetary value.

  Rackspace Cloud Server Your own server
Hardware Managed for you by the professionals at Rackspace It’s your problem
Support 24/7 – chat, phone, email That’s up to you – 24/7 (if you don’t sleep)
Scalability Add more RAM and disk space anytime automatically or with a few clicks Turn off your server and open it up

Obviously a Cloud Server is not ideal for everybody, but I bet that it could save a lot of developers a great deal of time and money.

Why not try a Cloud Server? It’s only 1.5 cents an hour!

Cloud Computing & Cloud Hosting by Rackspace

Share

Zend Framework

Zend FrameworkI love the Zend Framework. I’ve been using it since version 1.5 (currently at 1.10 as of this writing). It has so many features and can do so many things–sometimes it’s just not immediately clear how to implement those great features.

One feature that took me awhile to figure out was AJAX context switching. The documentation contains various pieces of information about implementing AJAX, but it just wasn’t clear how to put those pieces together. To help make this more clear, I’m going to go through a simple example of how to add very basic AJAX to the Zend Framework QuickStart project. I’m going to be using jQuery because I prefer that to Dojo and the rest of the JavaScript frameworks.

This tutorial assumes you already have a development server set up, Zend Framework installed, and the Zend Framework QuickStart project up and running.

Modify IndexController.php

First we need to set up Ajax context switching in the main controller. Add the following init() function to the index controller found in controllers/IndexController.php

public function init()
{
    $ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('list', 'html')
                ->addActionContext('modify', 'html')
                ->initContext();
}

The html parameter is the type of Ajax request. You can also use JSON or XML.

Note: The modify context is not used in this tutorial but is merely there to demonstrate that you can have as many action contexts as you want.

Now we need to add the list action that we specified above in the addActionContext call to the IndexController.php.

public function listAction() {
    // pretend this is a sophisticated database query
    $data = array('red','green','blue','yellow');
    $this->view->data = $data;
}

Create the list view scripts

By default, Zend Framework tries to render view scripts with the same name as the action. If our action’s name is list and is controlled by the controller named index, then Zend will try to render a view script located at view/scripts/index/list.phtml. Since we are using Ajax context switching, Zend Framework attempts to render view/scripts/index/list.ajax.phtml instead.

For testing my Ajax actions I usually create a normal view helper as well as the Ajax helper but then just include the Ajax view helper.

Create the following view scripts. The second script list.phtml is optional but might aid in troubleshooting.

views/scripts/index/list.ajax.phtml

<!-- views/scripts/list.ajax.phtml should contain something like the following -->
<ul>
<?php foreach ($this->data as $color) : ?>
<li><?= $color ?></li>
<?php endforeach; ?>
</ul>

views/scripts/index/list.phtml

<?php
include('list.ajax.phtml');

[ad name=”Google Adsense 468×60″]

jQuery time

The last thing we need to do is to add some HTML and JavaScript to our index.phtml view script to test everything out.

Add the following to the bottom of views/scripts/index/index.phtml

<div id="container">
</div>
<script type="text/javascript">
  $(document).ready(function() {
        $('#container').load('/default/index/list/format/html');
  });
</script>

The most important part of that jQuery code is the content of the URL you specify. This is one of those cases when you need to specify the module and controller and action even if they are set to the default value.

‘/module/controller/action/format/html’

You must also not forget the format/html part. If you forget it, you’ll notice that Zend is rendering your layout too instead of just rendering the view script.

That’s it. You should now have a list of colours on the first page of your site.

UPDATE: there was an error in the jQuery code on the index.phtml view script. The code is correct now. I have also added a working project to my Google Code repository. Thanks to the commenters for pointing this out.

Share