<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>mattgadient.com &#187; Webmaster</title> <atom:link href="http://mattgadient.com/category/webmaster/feed/" rel="self" type="application/rss+xml" /><link>http://mattgadient.com</link> <description>Informational blogging by Matthew Gadient.</description> <lastBuildDate>Fri, 27 Jan 2012 13:03:34 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>possible fix &#8211; MySQL not starting after upgrade to 5.5 through WHM/cPanel</title><link>http://mattgadient.com/2011/10/08/possible-fix-mysql-not-starting-after-upgrade-to-5-5-through-whmcpanel/</link> <comments>http://mattgadient.com/2011/10/08/possible-fix-mysql-not-starting-after-upgrade-to-5-5-through-whmcpanel/#comments</comments> <pubDate>Sat, 08 Oct 2011 23:44:26 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/?p=941</guid> <description><![CDATA[If you upgrade from MySQL 5.0 to MySQL 5.5 through WHM / cPanel, you may find that MySQL doesn&#8217;t start afterwards. It&#8217;ll dump out a message like: ERROR! MySQL server PID file could not be found! UPDATE: cPanel put out a fix on Oct 12 2011, in the latest WHM EDGE (version 11.31.1.6). Mind you, [...]]]></description> <content:encoded><![CDATA[<p>If you upgrade from MySQL 5.0 to MySQL 5.5 through WHM / cPanel, you may find that MySQL doesn&#8217;t start afterwards. It&#8217;ll dump out a message like:</p><p><span
style="color: #800000;"><strong>ERROR! MySQL server PID file could not be found!</strong></span><span
id="more-941"></span></p><p><span
style="color: #000080;"><strong>UPDATE</strong>: cPanel put out a fix on Oct 12 2011, in the latest WHM EDGE (version 11.31.1.6). Mind you, it may not help if you&#8217;re already in this situation (so keep reading), but should help prevent it from happening to others &#8211; from the looks of it the depreciated options will be handled during the upgrade, assuming you&#8217;ve upgraded WHM to beyond 11.31.1.4  before upgrading MySQL to 5.5 anyway.</span></p><p>There are plenty of possible reasons, but one strong possibility is that it doesn&#8217;t like something in your old <span
style="color: #003366;"><strong>my.cnf</strong></span> file. Some things in 5.0 were depreciated and cause newer versions of MySQL to choke on startup (I found this out playing with 5.1 on another server, and it again hit me again recently).</p><p>The quick-fix in this case is to simply rename your existing <span
style="color: #003366;"><strong>my.cnf</strong></span> file (located in <span
style="color: #003366;"><strong>/etc/my.cnf</strong></span> ), and try restarting MySQL again ( <span
style="color: #003366;"><strong>/etc/rc.d/init.d/mysql restart</strong></span> should do the trick). If it works, create a new <span
style="color: #003366;"><strong>my.cnf</strong></span> (or copy over one of the defaults included with the installation) and start re-adding your previous tweaks, being sure to restart MySQL after each change. Eventually you&#8217;ll probably hit the one that made MySQL choke, and you can simply omit it at that point.</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2011/10/08/possible-fix-mysql-not-starting-after-upgrade-to-5-5-through-whmcpanel/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Getting shadowbox working with HTML5 (how to make it validate)</title><link>http://mattgadient.com/2011/10/04/getting-shadowbox-working-with-html5-how-to-make-it-validate/</link> <comments>http://mattgadient.com/2011/10/04/getting-shadowbox-working-with-html5-how-to-make-it-validate/#comments</comments> <pubDate>Wed, 05 Oct 2011 04:16:27 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/?p=935</guid> <description><![CDATA[If you&#8217;ve been delving into the process of converting any of your pages or sites into HTML5, you&#8217;ve probably run into a few&#8230; headaches along the way. If you&#8217;ve been using shadowbox and trying to validate through the w3c&#8217;s validator, one of these headaches might look like this: The message is &#8220;Bad value shadowbox for [...]]]></description> <content:encoded><![CDATA[<p>If you&#8217;ve been delving into the process of converting any of your pages or sites into HTML5, you&#8217;ve probably run into a few&#8230; headaches along the way.</p><p>If you&#8217;ve been using <a
title="Shadowbox.js" href="http://www.shadowbox-js.com/" target="_blank">shadowbox</a> and trying to validate through the <a
title="W3C HTML validator" href="http://validator.w3.org/" target="_blank">w3c&#8217;s validator</a>, one of these headaches might look like this:<span
id="more-935"></span></p><p><a
href="http://mattgadient.com/wp-content/uploads/2011/10/shadowbox-not-validating-html5.png" rel="lightbox[935]"><img
class="size-full wp-image-936 aligncenter" style="border: 2px solid black;" title="shadowbox-not-validating-html5" src="http://mattgadient.com/wp-content/uploads/2011/10/shadowbox-not-validating-html5.png" alt="Shadowbox not validating as html5" width="546" height="158" /></a></p><p>The message is &#8220;<em><strong>Bad value shadowbox for attribute rel on element a: Keyword shadowbox is not registered.</strong></em>&#8221;</p><p>&#8211;</p><p>What does this mean? Well, there are only certain things you&#8217;re technically allowed to put in a &#8220;rel&#8221; tag. For example, the following is okay:</p><blockquote><p><span
style="font-style: normal; color: #993300;">&lt;a href=&#8221;image.png&#8221; <strong>rel=&#8221;nofollow&#8221;</strong>&gt;</span></p></blockquote><p>&#8220;nofollow&#8221; is a valid &#8220;rel&#8221; attribute. You&#8217;ll find other valid attributes in the links provided by the W3C validator. Unfortunately, you won&#8217;t find things like lightbox, shadowbox, etc as valid rel attributes. And as you&#8217;re probably aware, the W3C&#8217;s validator can be rather picky.</p><p>&#8212;</p><p>The first thing I tried was looking for an alternative. <a
title="Fancybox" href="http://fancybox.net/" target="_blank">Fancybox</a> ended up being one of the few which appeared to use id&#8217;s and classes instead of rel, but for the life of me, I couldn&#8217;t get it working. Maybe it doesn&#8217;t recognize the new html5 doctype (it mentions it&#8217;s picky). Or maybe I just messed up trying to implement it (yeah yeah, probably this).</p><p>&#8212;</p><p>What I tried next, and <strong><span
style="color: #008000;">what ended up working</span></strong>, was looking through shadowbox&#8217;s js file. I figured that &#8220;<strong>rel</strong>&#8221; must be mentioned in the file <em>somewhere</em>, and maybe it would be as simple as changing anything that says &#8220;<strong>rel</strong>&#8221; into &#8220;<strong>class</strong>&#8220;.</p><p>As it turned out, it was that easy.</p><p>There were 2 instances of &#8220;<strong>rel</strong>&#8220;, which I changed into &#8220;<strong>class</strong>&#8220;. After making the changes, saving the file, editing my html to change every <strong>rel=&#8221;shadowbox&#8221;</strong> into <strong>class=&#8221;shadowbox&#8221;</strong>, and re-validating through W3C, I got the following:</p><p><a
href="http://mattgadient.com/wp-content/uploads/2011/10/shadowbox-validating.png" rel="lightbox[935]"><img
class="size-medium wp-image-937 aligncenter" title="shadowbox-validating" src="http://mattgadient.com/wp-content/uploads/2011/10/shadowbox-validating-300x30.png" alt="" width="300" height="30" /></a></p><p><strong>Success!</strong><br
/> (the 1 warning was the W3C&#8217;s standard message about the HTML5 validator being experimental right now)</p><p>&#8212;</p><p>If you&#8217;re looking to do the same thing, it&#8217;s pretty easy. The <em>shadowbox.js</em> file is minified, so rather than hurting your eyes trying to find the right places to change, simply use your favorite editor to do a quick search (and replace) of <strong>&#8220;rel&#8221;</strong> to <strong>&#8220;class&#8221;</strong>. Save it, update your html, and you should be golden.</p><p>&#8212;</p><p>Of course, if you upgrade Shadowbox.js in the future, you&#8217;ll have to remember make the change to the new version.</p><p>Incidentally, whether it&#8217;s worth it to begin with is something you&#8217;ll have to decide on your own &#8211; being 100% compliant isn&#8217;t necessarily critical &#8211; I mean&#8230; I don&#8217;t forsee your site crashing browsers or even rendering wrong simply because you have rel attributes you technically shouldn&#8217;t. And heck, even Google&#8217;s main search page fails the html5 check (with 37 errors no less).</p><p>If that nice green validation bar makes you feel all warm and fuzzy though (I know it does for me!), hopefully the above instructions help you out.</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2011/10/04/getting-shadowbox-working-with-html5-how-to-make-it-validate/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>WHM locked out &#8211; getting un-locked-out</title><link>http://mattgadient.com/2011/09/29/whm-locked-out-getting-un-locked-out/</link> <comments>http://mattgadient.com/2011/09/29/whm-locked-out-getting-un-locked-out/#comments</comments> <pubDate>Fri, 30 Sep 2011 03:58:36 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/?p=923</guid> <description><![CDATA[I&#8217;ve had this happen a number of times&#8230; wrong password gets entered a few times, and BAM &#8211; locked out of WHM and unable to connect. Whether I goofed manually entering a password too many times, or my FTP client had the wrong password and tried to connect through SSH a pile of times, inevitably [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;ve had this happen a number of times&#8230; wrong password gets entered a few times, and BAM &#8211; locked out of WHM and unable to connect. Whether I goofed manually entering a password too many times, or my FTP client had the wrong password and tried to connect through SSH a pile of times, inevitably at some point I can&#8217;t get in.</p><p>Whitelisting only goes so far &#8211; the fact that I change IP addresses a lot (and am trying to remember which of the dozens of different passwords I might have used) doesn&#8217;t help.</p><p>Incidentally, WiredTree (my current VPS host) has been rather gracious (and fast) in getting me un-banned. They&#8217;re a great host in so many ways.</p><p>&#8212;</p><p>Anyway, there are a few possible ways to get back in all on your own, and I&#8217;ll mention a couple of them here.<span
id="more-923"></span></p><p>&nbsp;</p><h3>METHOD #1 &#8211; SSH and manual unblocking in CSF and CPHULKD</h3><p><span
style="color: #993300;"><strong>Warning:</strong> <em>Before messing with this stuff, make sure you&#8217;ve got good backups &#8211; if you don&#8217;t, it might be worth simply asking your host to unblock you from their end. While I&#8217;ve tried to be accurate here, it&#8217;s possible that I&#8217;ve made a mistake (or that the writeup will be messed up the next time I do a theme change), that you will make a mistake, or that your system is configured differently and that something will still bork your machine regardless. Proceed at your own risk!</em></span></p><p>1) SSH in as root. If it lets you, great. <em>If not, you may be able to do so through another server you have SSH access to (since it&#8217;ll appear you&#8217;re logging in through the other server&#8217;s IP address). To do this, SSH into server2 and from there SSH into server1.</em></p><p>Regardless as to the route you go, once you&#8217;ve managed to SSH in, there are 2 common places where you may have been banned &#8211; <strong>csf</strong> and <strong>cphulkd</strong>.</p><h4>WHITELISTING YOUR IP IN CSF</h4><p>First, you&#8217;ll try to add your IP address to csf (the most common if you can&#8217;t even visit your websites on the server). It&#8217;s dead-simple. Type the following:</p><blockquote><div
style="font-family: monospace; color: #4c1be0;"> csf -a xxx.xxx.xxx.xxx</div><p><em>(replace xxx.xxx.xxx.xxx with your current IP address)</em></p><p><em>If that&#8217;s where you were banned, you&#8217;ll see the following message:</em></p><div
style="font-family: monospace; color: #4c1be0;">Removing xxx.xxx.xxx.xxx from csf.deny and iptables DROP&#8230;<br
/> Adding xxx.xxx.xxx.xxx to csf.allow and iptables ACCEPT&#8230;</div></blockquote><p>Now try accessing the server again. If it still doesn&#8217;t work, you&#8217;ll have to check <strong>cpuhulkd</strong>.</p><p>&nbsp;</p><h4>REMOVING YOURSELF FROM THE CPHULKD BLOCKLIST:</h4><p><span
style="color: #808080;">(note: credit for this solution comes from <a
title="cpanel.net thread - help i have been locked out brute force system" href="http://forums.cpanel.net/f5/help-i-have-been-locked-out-brute-force-sistem-112341.html#post495817" target="_blank">&#8220;thobarn&#8221; on the cpanel.net forums</a>. Feel free to visit that page for the original, more detailed version which includes the command to back up the database).</span></p><p>To check cphulkd and remove yourself from the blacklist, type the following:</p><blockquote><div
style="font-family: monospace; color: #4c1be0;">mysql</div><p>(prompt should change to &#8220;mysql&gt;&#8221;)</p><div
style="font-family: monospace; color: #4c1be0;">use cphulkd;</div><p>(should say &#8220;Database changed&#8221;)<br
/> (in the next line, replace xxx.xxx.xxx.xxx with your ip address. Note that <span
style="font-family: monospace; color: #4c1be0;"><strong>`</strong></span> and <span
style="font-family: monospace; color: #4c1be0;"><strong>&#8216;</strong></span> are used in different places. <span
style="font-family: monospace; color: #4c1be0;"><strong>`</strong></span> is left of the 1 key on most keyboards and shares with the tilde (~). <span
style="font-family: monospace; color: #4c1be0;"><strong>&#8216;</strong></span> is the apostrophe you are probably accustomed to typing with.)</p><div
style="font-family: monospace; color: #4c1be0;">SELECT * FROM `brutes` WHERE `IP`=&#8217;xxx.xxx.xxx.xxx&#8217;;</div><p>(note: you should see your IP come up now. If instead it says &#8220;Empty Set&#8221;, you were NOT banned through cpuhulkd and don&#8217;t need to do the next DELETE line. If you got an ERROR message about your SQL syntax, you probably messed up your typing and will need to try again, remembering to use the correct <span
style="font-family: monospace; color: #4c1be0;"><strong>&#8216;</strong> <strong>`</strong></span> and <span
style="font-family: monospace; color: #4c1be0;"><strong>;</strong></span> )</p><div
style="font-family: monospace; color: #4c1be0;">DELETE FROM `brutes` WHERE `IP`=&#8217;xxx.xxx.xxx.xxx&#8217;;</div><p>(again, replace the xxx.xx parts with your IP address. Remember, only do the DELETE line if it spit out your IP address when you did the SELECT)</p><div
style="font-family: monospace; color: #4c1be0;">quit</div></blockquote><p>Hopefully, you&#8217;re unblocked now. Try logging into WHM &#8211; if it&#8217;s still not working, you&#8217;ve been blocked via some other method and may want to consider contacting your web host provider for support.</p><p>&#8212;</p><h3>METHOD #2 &#8211; switching your IP address</h3><p>The easiest method (doesn&#8217;t involve SSH) is to simply switch your IP address, at least temporarily. Before doing so, TAKE NOTE of your current IP address because you&#8217;ll probably want to whitelist it.</p><ol><li>If you&#8217;re at home, many ISP&#8217;s don&#8217;t give you a static IP and this is one case where that might actually work to your benefit. Reset your modem and you might end up with a new IP &#8211; try to get back in.</li><li>Another option is to head to another location to log in. If you&#8217;re friendly with the neighbours or happen to be 5 minutes away from work, this could be an option.</li><li>A slightly more dangerous option is to check the nearby wireless connections to see if there&#8217;s an unsecured wireless network around (a neighbour&#8217;s for example), and connect to it. Beyond the moral (and possibly legal) implications here, if somebody&#8217;s purposely left their connection unsecured for nefarious purposes, well&#8230; let&#8217;s just say it&#8217;s an option to be avoided. If you do go this route, be sure to disconnect from that network afterwards &#8211; if nothing else, your neighbour might be paying through the nose for data-transfer or having speed issues they can&#8217;t figure out, and leeching on to their internet access just plain isn&#8217;t nice.</li></ol><p>Once you&#8217;ve connected via another IP, log into WHM and get to the cPHulk Brute Force Protection page <em>(Main &#8212;&gt; Security Center &#8212;&gt; cPHulk Brute Force Protection)</em>.<br
/> <a
href="http://mattgadient.com/wp-content/uploads/2011/09/whm-cphulk-protection.png" rel="lightbox[923]"><img
class="alignnone size-medium wp-image-924" title="whm-cphulk-protection" src="http://mattgadient.com/wp-content/uploads/2011/09/whm-cphulk-protection-300x229.png" alt="" width="300" height="229" /></a></p><p>From here, you can:</p><ul><li>Whitelist yourself (Trusted IP List). Type in your IP address. If you&#8217;re only connected through another IP temporarily, make sure you enter the IP address you wrote down earlier!. Once you&#8217;ve typed in the IP address, click the &#8220;<em>Quick Add</em>&#8221; button, and you should be good to go. If there are other IP addresses you regularly connect from, you may want to add them as well. If your ISP doesn&#8217;t give you a static IP address it&#8217;s possible to enter a range, but I won&#8217;t go into the details here.</li><li>Edit the Blacklist (lower right of the picture) &#8211; It&#8217;ll bring up a page showing blacklisted IP addresses &#8211; make sure yours isn&#8217;t on it and delete if so!</li><li>Clear failed logins ( the <em>&#8220;Flush DB&#8221;</em> button). While I usually do this just to make sure I don&#8217;t have any problems, this will also flush all the naughty-people from the database who&#8217;ve been trying to break in, meaning they&#8217;ll get a few more attempts at your server if they&#8217;re still trying. Use at your own discretion.</li></ul><p>Get back on your regular connection/IP, and hopefully you should be able to log in.</p><p>&#8212;</p><p>&#8212;</p><p>Ideally, you&#8217;ll be in and good-to-go at this point.</p><p>&#8212;</p><p>&#8212;</p><p>Feel free to leave a comment below, particularly if:</p><ul><li>Something above <span
style="text-decoration: underline;">has</span> worked for you.</li><li>Something above <span
style="text-decoration: underline;">hasn&#8217;t</span> worked for you.</li><li>You know of additional methods (perhaps better methods!) that may help others.</li></ul> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2011/09/29/whm-locked-out-getting-un-locked-out/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>SimpleCDN down&#8230; for good?</title><link>http://mattgadient.com/2010/12/10/simplecdn-down-for-good/</link> <comments>http://mattgadient.com/2010/12/10/simplecdn-down-for-good/#comments</comments> <pubDate>Sat, 11 Dec 2010 05:02:35 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/?p=827</guid> <description><![CDATA[Dec 11 2010 update: They&#8217;ve posted further updates to their the SimpleCDN site, as well as the SimpleCDN twitter feed. From what I gather it looks like they&#8217;re doing what they can to help customers transition to other companies. On twitter they seem to be suggesting MaxCDN (using coupon code &#8220;simplecdn&#8221;) and/or Cloudfront as potential options. MaxCDN&#8217;s [...]]]></description> <content:encoded><![CDATA[<p><em><span
style="color: #008000;"><strong>Dec 11 2010 update:</strong> They&#8217;ve posted further updates to their the <a
href="http://admin.simplecdn.com/">SimpleCDN site</a>, as well as the <a
href="http://twitter.com/simplecdn">SimpleCDN twitter feed</a>. From what I gather it looks like they&#8217;re doing what they can to help customers transition to other companies. On twitter they seem to be suggesting <a
href="http://www.maxcdn.com">MaxCDN</a> (using coupon code &#8220;simplecdn&#8221;) and/or <a
href="http://aws.amazon.com/cloudfront/">Cloudfront</a> as potential options. <a
href="http://blog.maxcdn.com/news/maxcdn-offers-easy-transition-for-stranded-simplecdn-customers/">MaxCDN&#8217;s blog has a mention of the issue</a>, and they appear to be doing what they can to ease the transition for those who decide to move to them.</span></em></p><p><em><span
style="color: #008000;">An unfortunate situation, but it&#8217;s nice to see that they&#8217;re trying to keep people informed and are working with some of their competition (or&#8230; at least competition a few days ago) to help customers move on. I&#8217;d imagine SimpleCDN&#8217;s business is pretty much toast &#8211; something like this would be very difficult to ever recover from. </span></em></p><p>Popped open one of my sites, and it was taking forever to load&#8230; no images. Tried another, and another.</p><p>&nbsp;</p><p><span
style="font-size: 8px; color: #888888;">While I use a VPS for the main site, I use HostGator shared hosting for some of my smaller sites, the downloads I provide here, as well as for downloads through my other sites (big and small). It&#8217;s hard to beat the unlimited bandwidth provided at the price they offer it. If you&#8217;re looking at starting up a website, HostGator might be worth a look (don&#8217;t forget to use the coupon code mentioned in the banner above!)</span></p><p>&nbsp;</p><p>Yep, the CDN wasn&#8217;t responding. Turns out SimpleCDN is down. Upon logging trying to hit the admin section of the site, I was presented with the following:</p><blockquote><p><span
style="font-size: 8px;">Dear SimpleCDN Customer,<br
/> -<br
/> I am writing this letter to update you on a situation that has been developing for the past 72 hours between SimpleCDN and our technology and infrastructure providers, SoftLayer and Hosting Services, Inc.<br
/> -<br
/> Two days ago these organizations decided to immediately terminate our contract and suspend service on much of our infrastructure in Dallas, Seattle and Washington, D.C. This infrastructure constitutes the majority of our delivery network for our value services, including on-demand and live streaming services.<br
/> -<br
/> Absolutely no valid reason or warning was or has been given for this termination, and our best guess currently is that these organizations could not provide the services that we contracted and paid for, so instead they decided that terminating services would be the best solution for them.<br
/> -<br
/> We have already started to take legal action against these organizations, however thus far we have not gotten either party to reconsider their position. As it stands now, certain SimpleCDN services will begin to fail within the next few days as additional services are terminated.<br
/> -<br
/> We believe the actions of Hosting Services, Inc. and SoftLayer constitute a deliberate attempt to cripple SimpleCDN’s current service offering.<br
/> -<br
/> SoftLayer and Hosting Services / UK2 Group also resell &#8220;CDN&#8221; services at a much higher price point, and it is clear these actions constitute a conspiracy to remove us, and many other corporations affected by their reckless actions, from the marketplace.<br
/> -<br
/> I invite you to contact these organizations directly to voice your frustration and opinions on this matter, while we’ll continue to ensure access is available to key services for backing up your data currently contained on the CDN for as long as possible.<br
/> -<br
/> Hosting Services, Inc. – UK2 Group Contacts:<br
/> Jeff Hunsaker<br
/> President/COO UK2 Group / Hosting Services, Inc.<br
/> jeff.hunsaker@uk2group.com<br
/> 801.368.3358<br
/> -<br
/> Ditlev Bredahl<br
/> ditlev@uk2group.com<br
/> -<br
/> SoftLayer Contacts:<br
/> Support Team at 1-866-398-7638<br
/> -<br
/> Lance Crosby, CEO<br
/> 214-442-0600<br
/> -<br
/> I understand how difficult this is for you, and for the past two days we have been scrambling to make alternative arrangements, but not enough time has been given to secure additional delivery resources.<br
/> -<br
/> Our support team will be available 24/7 at support.simplecdn.com to answer any of your questions, and assist you with alternative services in any way possible.<br
/> -<br
/> You may contact me directly at: frank.wilson@simplecdn.com or via our corporate number at 800-269-3033 ext 704.<br
/> -<br
/> Sincerely,<br
/> -<br
/> Frank Wilson<br
/> Chief Engineer, SimpleCDN</span></p></blockquote><p>Well, there goes my cheap CDN provider.</p><p>Fortunately I&#8217;ve made periodic backups and the VPS I&#8217;m on should be more than up to the task of serving everything in the interim &#8211; if you&#8217;re stuck waiting on images to load on another one of my sites, it&#8217;ll probably be an hour or two for the new DNS to resolve, so check back shortly.</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2010/12/10/simplecdn-down-for-good/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>&#8230;and here I thought ValueClick was the problem.</title><link>http://mattgadient.com/2009/11/01/and-here-i-thought-valueclick-was-the-problem/</link> <comments>http://mattgadient.com/2009/11/01/and-here-i-thought-valueclick-was-the-problem/#comments</comments> <pubDate>Sun, 01 Nov 2009 07:27:34 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/2009/11/01/and-here-i-thought-valueclick-was-the-problem/</guid> <description><![CDATA[A couple CPM advertisers I&#8217;ve run on the Warcraft-Maps site were Burst and ValueClick. I ran a few others as well although they were lesser-known names and I dropped them because not only did they not pay well, but they ran some questionable ads. Last year I had a little surprise in that Warcraft-Maps.com was [...]]]></description> <content:encoded><![CDATA[<p>A couple CPM advertisers I&#8217;ve run on the Warcraft-Maps site were Burst and ValueClick. I ran a few others as well although they were lesser-known names and I dropped them because not only did they not pay well, but they ran some questionable ads.</p><p>Last year I had a little surprise in that Warcraft-Maps.com was listed as an attack site. Turned out that either Burst or ValueClick were running some not-so-nice ads and got the site flagged. It did eventually un-flag, but I wasn&#8217;t thrilled.</p><p>I always thought ValueClick was the problem. They&#8217;ve got a huge amount of ads running on their network, and they don&#8217;t seem as selective as Burst!. You can imagine my surprise a few minutes ago though, when Kaspersky did the little &#8220;violin&#8221; when I visited my site. Turned out Burst doesn&#8217;t behave so well after all.<span
id="more-725"></span></p><p>-</p><p>Last month, I dumped ValueClick &#8211; I was only serving Burst! Media ads, and Google ads.</p><p>Well, time to say goodbye to Burst. It&#8217;s rather unfortunate that one of the &#8220;better&#8221; providers has gone downhill in this way.</p><p>-</p><p>The reason I originally ran CPM ads to begin with was because the bandwidth that Warcraft-Maps.com used was the big part in upgrading hosting packages over the last 3 years. It used more than all the other sites combined, and effectively cost the most to run.</p><p>If you&#8217;ve ever wondered why &#8220;download&#8221; sites bombard you with ads, popups, pop-unders, and everything else, it&#8217;s because that bandwidth isn&#8217;t free &#8211; it&#8217;s got to be paid for somehow. As much as I despise pop-unders, I&#8217;ll admit I did have them running on the Warcraft-Maps site for quite some time.</p><p>And yes, running pop-unders on one of my sites did leave me with a dirty feeling inside &#8211; I&#8217;m still recovering.</p><p>-</p><p>However, that&#8217;s all in the past now. I have to give a big thanks to HostGator actually. Their unlimited hosting has allowed me to throw all the bandwidth-intensive stuff on there at a cost of under $10/month. How unlimited is unlimited? Well, Brent from HostGator recently <a
href="http://www.webhostingtalk.com/showpost.php?p=6472727&amp;postcount=47">posted</a> on WHT, mentioning that he regularly comes across accounts using over 5TB of bandwidth per month. I&#8217;m way under that.</p><p>&nbsp;</p><p>&nbsp;</p><p>In any case, Warcraft-Maps.com is now running only Adsense stuff, which has generally shown to be safe to viewers.</p><p>Goodbye Burst&#8230; and here I thought ValueClick was the problem. Turns out you both were.</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2009/11/01/and-here-i-thought-valueclick-was-the-problem/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Fixing a broken contact form on a Joomla site</title><link>http://mattgadient.com/2009/10/18/fixing-a-broken-contact-form-on-a-joomla-site/</link> <comments>http://mattgadient.com/2009/10/18/fixing-a-broken-contact-form-on-a-joomla-site/#comments</comments> <pubDate>Sun, 18 Oct 2009 08:20:19 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/2009/10/18/fixing-a-broken-contact-form-on-a-joomla-site/</guid> <description><![CDATA[Recently, I switched most of my sites to another server. After about a week of not receiving any messages through the contact form on one of them, I suddenly realized&#8230; &#8220;ya know&#8230; it&#8217;s been a while&#8221;. I tried sending myself a test message through the contact form, and never received it. Sending from another email [...]]]></description> <content:encoded><![CDATA[<p>Recently, I switched most of my sites to another server.</p><p>After about a week of not receiving any messages through the contact form on one of them, I suddenly realized&#8230; &#8220;ya know&#8230; it&#8217;s been a while&#8221;. I tried sending myself a test message through the contact form, and never received it. Sending from another email account worked though. Strange&#8230;..</p><p>Before going any further it&#8217;s worth noting that I&#8217;m using Google Apps on the aforementioned site for mail (gmail for domains).</p><p>To narrow down <span
id="more-716"></span>the cause, I did a couple things. First, I came across a little script on the Joomla forums (thanks to &#8220;ChiefGoFor&#8221;). It basically tests the PHP mail function (which Joomla uses by default) and looks like this:</p><blockquote><p>&lt;?php<br
/> mail(&#8220;youremail@domain.com&#8221;, &#8220;Testing PHP mail&#8221;, &#8220;Email sent successfully&#8221;);<br
/> echo &#8220;script complete.&#8221;;<br
/> ?&gt;</p></blockquote><p>I made a file called &#8220;testmail.php&#8221;, plunked that code in, changed the email address to a hotmail one that I own, and opened in in my web browser. It worked.</p><p>&#8212;&#8212;</p><p>Next I tried changing the email address it sends to from within the Joomla site, again, pointing it to the hotmail one I tried above.</p><p>It worked!</p><p>Problem was obviously either Google not accepting messages from the server, or the server not sending to Google for some reason.</p><p>I popped open WHM, and ran the &#8220;Mail Troubleshooter&#8221; (under the &#8220;Email&#8221; section in WHM). When I typed in the address hosted through Google Apps, it spit out the following message:</p><blockquote><p><em>virtual_aliases via virtual_aliases router</em> forced address failure</p></blockquote><p>Fun.</p><p>I tried entering a hotmail address, and it showed the proper MX lookups through Hotmail.</p><p>Now all the pieces were falling together.</p><p>&#8212;&#8212;</p><p>Here&#8217;s what was happening&#8230;.</p><ul><li>The DNS isn&#8217;t hosted on the web server in my case. It&#8217;s hosted elsewhere. It&#8217;s properly set up (MX records and all).</li><li>The web server however <strong>doesn&#8217;t look</strong> at the DNS server for a site contained on the web server. After all, why would it spend the time to look itself up?</li><li>In short, while MX records were properly set up on the DNS server, they also have to be set up on the web server if it ever sends mail to an email address that reflects a domain on the server which is hosted elsewhere.</li></ul><p>I&#8217;ll draw a little picture to explain it a little better.</p><p><img
class="alignnone size-full wp-image-715" title="web-server-dns-email-process-google-apps" src="http://mattgadient.com/wp-content/uploads/2009/10/web-server-dns-email-process-google-apps.png" alt="web-server-dns-email-process-google-apps" width="400" height="400" /></p><p>As you can see from my wonderful drawing, if your mail is hosted somewhere else, it won&#8217;t matter that your separately-hosted DNS server was set up correctly &#8211; you&#8217;ll still have to add the MX entries to the web server (otherwise it&#8217;ll just look at itself).</p><p>The good news is that for those who self-host their DNS, WHM/CPanel will pick up the MX entries when you add them to the zone file.</p><p>For everyone else, MX entries can be added easily in CPanel&#8217;s &#8220;MX Entry&#8221; section.</p><p>&nbsp;</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2009/10/18/fixing-a-broken-contact-form-on-a-joomla-site/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Removing mootools.js and caption.js from Joomla</title><link>http://mattgadient.com/2009/10/16/removing-mootools-js-and-caption-js-from-joomla/</link> <comments>http://mattgadient.com/2009/10/16/removing-mootools-js-and-caption-js-from-joomla/#comments</comments> <pubDate>Fri, 16 Oct 2009 23:08:55 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/2009/10/16/removing-mootools-js-and-caption-js-from-joomla/</guid> <description><![CDATA[If you&#8217;ve tried to clean up your Joomla template, something may have perplexed you at one point or another. There&#8217;s no mention of mootools or caption.js in the template file, yet these 2 things end up in the HEAD section of all your pages anyway. If your site is pretty basic, you probably don&#8217;t need [...]]]></description> <content:encoded><![CDATA[<p>If you&#8217;ve tried to clean up your Joomla template, something may have perplexed you at one point or another. There&#8217;s no mention of mootools or caption.js in the template file, yet these 2 things end up in the HEAD section of all your pages anyway.</p><p>If your site is pretty basic, you probably don&#8217;t need them, and having them load every time just makes it that much more painful for your dial-up viewers. Heck, mootools.js alone is 74 kb !</p><p>So how do you get rid of mootools? It&#8217;s pretty simple code that you throw in your template&#8217;s HTML fi<span
id="more-714"></span>le. Hopefully, you know where the template is, but if not, you can find it one of two ways (you may want to back up first just in case!):</p><ul><li>Browse to (and edit) the <strong>/templates/your-template-name/index.php</strong> file (located in the directory your website is in); or,</li><li>From within Joomla&#8217;s administrator panel, choose <strong>Extensions</strong> / <strong>Template Manager</strong> , then click on your template (probably the one with a star beside it), then choose &#8220;<strong>Edit HTML</strong>&#8220;.</li></ul><p>Depending on how the permissions are set up on your server, one method may be easier than the other. Here&#8217;s the code you&#8217;re going to put in the template:</p><blockquote><p>&lt;?php<br
/> //remove mootools.js and caption.js<br
/> $headerstuff=$this-&gt;getHeadData();<br
/> reset($headerstuff['scripts']);<br
/> foreach($headerstuff['scripts'] as $key=&gt;$value){<br
/> unset($headerstuff['scripts'][$key]);<br
/> }<br
/> $this-&gt;setHeadData($headerstuff);<br
/> ?&gt;</p></blockquote><p>Note that this goes near the top, right AFTER this:</p><blockquote><p>&lt;?php<br
/> // Prevent direct access sans Joomla!:<br
/> defined( &#8216;_JEXEC&#8217; ) or die( &#8216;Restricted access&#8217; );<br
/> ?&gt;</p></blockquote><p>So once you&#8217;re done, the first few lines are probably going to look something like this (the <strong><span
style="color: #000080;">blue</span></strong> is the stuff you&#8217;re <strong><span
style="color: #000080;">adding</span></strong>):</p><blockquote><p>&lt;?php<br
/> // Prevent direct access sans Joomla!:<br
/> defined( &#8216;_JEXEC&#8217; ) or die( &#8216;Restricted access&#8217; );<br
/> ?&gt;</p><p><span
style="color: #000080;">&lt;?php<br
/> //remove mootools.js and caption.js<br
/> $headerstuff=$this-&gt;getHeadData();<br
/> reset($headerstuff['scripts']);<br
/> foreach($headerstuff['scripts'] as $key=&gt;$value){<br
/> unset($headerstuff['scripts'][$key]);<br
/> }<br
/> $this-&gt;setHeadData($headerstuff);<br
/> ?&gt;</span></p><p>&lt;!DOCTYPE html PUBL&#8230;&#8230;..</p></blockquote><p>That&#8217;s it! Save, load up your website, make sure to hit refresh once (F5), and view the source &#8211; no more mootools or caption.js! Your website should load faster, and dial-up users can save their tears for another site.</p><p>&#8212;&#8212;</p><p>A couple final things to note:</p><ol><li>Some Joomla templates (usually just the really fancy ones) may need mootools.js to operate properly. Make sure to check  your template&#8217;s functionality afterwards.</li><li>There are a few Joomla plugins/modules/components that require mootools as well. Many lightbox modules do for example, and you may find that many image/photo/video galleries do as well.</li></ol><p>If you have any issues, just remove that bit of code from your template and you should be good to go again.</p><p>&#8212;&#8212;</p><p>Finally, as much as I&#8217;d like to take credit for the above, credit goes to someone on the Joomla forums who posted it long ago (I don&#8217;t recall who it was, or who came up with it in the first place).</p><p>&nbsp;</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2009/10/16/removing-mootools-js-and-caption-js-from-joomla/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Host CPU speed test &#8211; HostGator vs VPSLink vs WiredTree</title><link>http://mattgadient.com/2009/10/08/host-cpu-speed-test-hostgator-vs-vpslink-vs-wiredtree/</link> <comments>http://mattgadient.com/2009/10/08/host-cpu-speed-test-hostgator-vs-vpslink-vs-wiredtree/#comments</comments> <pubDate>Fri, 09 Oct 2009 01:41:22 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/2009/10/08/host-cpu-speed-test-hostgator-vs-vpslink-vs-wiredtree/</guid> <description><![CDATA[While reading through WHT, I came across a neat little tidbit. It&#8217;s a bit of PHP code that can be used to get an idea as to how fast the processor is on the machine your websites are hosted on &#8211; or at least the speed you have available to you. A thanks to &#8220;webpan&#8221; [...]]]></description> <content:encoded><![CDATA[<p>While reading through WHT, I came across a <a
href="http://www.webhostingtalk.com/showthread.php?t=895413">neat little tidbit</a>.</p><p>It&#8217;s a bit of PHP code that can be used to get an idea as to how fast the processor is on the machine your websites are hosted on &#8211; or at least the speed you have available to you. A thanks to &#8220;webpan&#8221; of the WHT forums for putting up the code he used for his LiquidWeb test.</p><p>Basically, you create a php file that looks like this:</p><blockquote><p>&lt;?php<br
/> $startTime = microtime(true);<br
/> for ($i=0;$i&lt;500;$i++) {<br
/> $j++;<br
/> for ($k=0;$k&lt;10000;$k++) {<br
/> $j++;}<br
/> }<br
/> $endTime = microtime(true);<br
/> $delta = $endTime &#8211; $startTime;</p><p>echo &#8220;total time: $delta seconds.\n&#8221;;</p><p>//phpinfo();<br
/> ?&gt;</p></blockquote><p>Call it &#8220;test.php&#8221; or something, and put it somewhere on your webserver &#8211; then browse and run it. You <em>could</em> modify it to do some more stressful math, but don&#8217;t go crazy.</p><p>I tried it on 3 hosts, and here were my results:</p><div
id="attachment_705" class="wp-caption alignnone" style="width: 411px"><img
class="size-full wp-image-705" title="HostGator vs VPSLink vs WiredTree speed test" src="http://mattgadient.com/wp-content/uploads/2009/10/speedtest.PNG" alt="time in seconds" width="401" height="387" /><p
class="wp-caption-text">time in seconds - lower is better</p></div><p>Each test was run at 3 different time periods during the day. To make things a <span
id="more-706"></span>little more readable the times for each run are only shown to 2 decimal points. The variance here is the sum of the deviations from the average of all 3 tests.</p><p>&nbsp;</p><p>&nbsp;</p><p>You&#8217;ll notice the following:</p><ul><li>WiredTree came out on top, and VPSLink wasn&#8217;t far behind. HostGator was the slowest.</li><li>Each run was *very* similar. There was almost no variance, indicating that none of the host machines seem to suffer from high CPU loads at certain points of the day.</li></ul><p>&#8212;</p><p><strong>But what does it all mean, Basil? </strong>(obligatory Austin Powers quote)</p><p>Well, as far as processor-intensive PHP tasks go, the WiredTree and VPSLink VPS&#8217;s are likely to be quicker, and pump out the results faster. In all likelihood they&#8217;re simply using faster processors than HostGator. There could very well be other reasons that HostGator came behind, but the fact of the matter is that there&#8217;s more processor speed/power available to both VPS scripts.</p><p>&#8212;</p><p><strong>Does this mean that HostGator&#8217;s slow/bad?</strong></p><p>Not at all.</p><p>There are so many factors that come into play, that you can&#8217;t base a host decision on one type of test. HostGator&#8217;s got a lot of servers, and I can guarantee you they&#8217;re not all the same. The same probably holds true of the VPS providers. If someone gets a brand-spanking-new machine, it&#8217;ll be faster than the old machines. It&#8217;s a &#8220;luck of the draw&#8221; thing as far as which machine you&#8217;re put on.</p><p>You also have to consider that there are many other things that come into play when you&#8217;re looking at how long it takes for a page to load somewhere. There are many things that go into tuning a server. A server that&#8217;s strapped for RAM, a poorly tuned MySQL database, a server that&#8217;s always waiting on IO, a server connected to the network with a 10Mbps port that&#8217;s being maxed out, the server location, and the datacenter&#8217;s connectivity are just a few examples of things that can really affect how long it takes for a page to load on the viewer&#8217;s end.</p><p>&#8212;</p><p><strong>The test subjects (aka &#8220;You Rigged the Test!&#8221;)</strong></p><p>I&#8217;ll be the first to admit that these weren&#8217;t necessarily level playing fields. Here were the candidates:</p><p><span
style="text-decoration: underline;">HostGator</span><br
/> Shared hosting plan<br
/> Apache/FCGI/SuExec</p><p><span
style="text-decoration: underline;">VPSLink</span><br
/> Link-4 VPS &#8211; Xen<br
/> Apache/SuPHP/SuExec</p><p><span
style="text-decoration: underline;">WiredTree</span><br
/> 1024 VPS &#8211; Virtuozzo<br
/> LiteSpeed/LSAPI/SuExec</p><p>The way it typically works for PHP speed is this:<br
/> DSO &gt; FastCGI &gt;SuPHP<br
/> Litespeed&#8217;s PHP server&#8217;s a little tough to put in there although most of the info out there seems to indicate it may be faster than all the above. I have no way of knowing whether the speed of the above test is affected much by the engine serving up the PHP, although I&#8217;d expect the effect to be marginal in a test like this.</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2009/10/08/host-cpu-speed-test-hostgator-vs-vpslink-vs-wiredtree/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>SimpleCDN vs Amazon CloudFront</title><link>http://mattgadient.com/2009/10/07/simplecdn-vs-amazon-cloudfront/</link> <comments>http://mattgadient.com/2009/10/07/simplecdn-vs-amazon-cloudfront/#comments</comments> <pubDate>Wed, 07 Oct 2009 08:17:40 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/2009/10/07/simplecdn-vs-amazon-cloudfront/</guid> <description><![CDATA[UPDATE 2 (Dec 11 2010): SimpleCDN is currently DOWN! Posted at mattgadient.com/2010/12/10/simplecdn-down-for-good? Update: SimpleCDN has changed somewhat in their offerings (there seems to be a move away from the &#8220;small customer&#8221; base), and thus, much of the following is outdated. I recently started up an account at SimpleCDN to help offload a webserver a little [...]]]></description> <content:encoded><![CDATA[<p><strong><span
style="color: #800000;">UPDATE 2 (Dec 11 2010): SimpleCDN is currently DOWN!<br
/> Posted at</span> </strong><a
href="http://mattgadient.com/2010/12/10/simplecdn-down-for-good/"><strong>mattgadient.com/2010/12/10/simplecdn-down-for-good</strong></a><strong><span
style="color: #800000;">?</span></strong></p><p><em><span
style="color: #000080;"><strong>Update: SimpleCDN has changed somewhat in their offerings (there seems to be a move away from the &#8220;small customer&#8221; base), and thus, much of the following is outdated.</strong></span></em></p><p>I recently started up an account at SimpleCDN to help offload a webserver a little bit by putting static images there.  After a couple days, I decided to give Amazon&#8217;s CloudFront a try as well.</p><p>&nbsp;</p><p>I&#8217;ll start off by saying this was originally going to be primarily about the performance differences. However, after a few hours of testing, I found there&#8217;s not enough of a difference to be worth mentioning &#8211; neither was consistently better than the other. Performance-wise, for the most part it really boiled down to how close each test location was to the nearest respective edge server. This was relatively small-scale testing with a site that pulled about 12 images per page (and thus pulled 12 items from each CDN), but I concluded that neither&#8217;s going to make a lick of difference performance-wise&#8230; at least, not for the typical individual who&#8217;s looking at these two for solutions.</p><p>That said, time to take a look at the merits of each at a basic level:<span
id="more-704"></span></p><table
border="0"><tbody><tr><td></td><td><strong>SimpleCDN</strong></td><td><strong>Amazon CloudFront</strong></td></tr><tr><td>Upload Buckets</td><td><span
style="color: #008000;">Yes (ftp upload)</span></td><td>Yes (through Amazon S3)</td></tr><tr><td>Mirror Buckets</td><td><span
style="color: #008000;">Yes</span></td><td>No</td></tr><tr><td>CNAME support</td><td>Yes ($5 per CNAME)</td><td><span
style="color: #008000;">Yes (free &#8211; up to 10 CNAMES per distribution)</span></td></tr><tr><td>Peering/Edge locations</td><td>13</td><td><span
style="color: #008000;">14</span></td></tr><tr><td>Set Expires Header</td><td><span
style="color: #008000;">Yes</span></td><td>Difficult but possible</td></tr><tr><td>Set Gzip Encoding</td><td><span
style="color: #008000;">Yes</span></td><td>Difficult but possible</td></tr><tr><td></td><td></td><td></td></tr><tr><td>Payment frequency</td><td>Pay-as-you-go. Start with $15 free. Minimum $50 top-ups.</td><td>Pay-as-you-go. Billed at end of month.</td></tr><tr><td>Minimum monthly fee/cost</td><td>None</td><td>None</td></tr><tr><td>Starting Price per GB of transfer</td><td><span
style="color: #008000;">3.9 cents</span></td><td>17 cents (more for non-US locations) + transfer cost to/from S3</td></tr><tr><td>Storage cost per GB / month</td><td>75 cents</td><td><span
style="color: #008000;">15 cents (Amazon S3)</span></td></tr><tr><td>Starting cost per 10,000 GET requests</td><td><span
style="color: #008000;">free</span></td><td>1 cent</td></tr></tbody></table><p><strong>Preface:</strong><br
/> SimpleCDN was designed straight-up as a CDN, and meant to be simple (hence the name). CloudFront on the other hand is built upon the structure of the other Amazon services, and can be thought of as more of a &#8220;bolt-on&#8221;. In fact, CloudFront uses (and requires) the Amazon S3 service for hosting the files &#8211; CloudFront then pulls the files to the CDN from S3. These are very different approaches. SimpleCDN is generally simpler to use, and more powerful in the options it offers. That said, anyone already using Amazon S3 extensively will probably feel more at home with CloudFront.</p><p><strong>Upload Buckets:</strong><br
/> For those unfamiliar with the way these work, you basically upload the files you want on the CDN into what&#8217;s called a &#8220;bucket&#8221;. It&#8217;s a pretty simple concept &#8211; you basically end up with a new URL where those files are located &#8211; no different from linking to files on a separate server/website, except that these are now on a CDN and should be served closer to whichever users are requesting them. Both SimpleCDN and CloudFront can use them. For SimpleCDN you use your favorite FTP client to upload the files. For Amazon CloudFront, you put the files up on Amazon S3, and set it up to pull from there.</p><p><strong>Mirror Buckets:</strong><br
/> For those unfamiliar with these (also called &#8220;origin pull&#8221;), these are often easier to implement with dynamic websites &#8211; particularly those where static content you may want on the CDN (such as images) are often uploaded/added to the site. Both WordPress and Drupal have plugins for these. All the content you want on the CDN stays on your server/website. Requests for those files are redirected to the CDN which &#8220;pulls&#8221; the file(s) from the server/website, and begins serving them through the CDN. SimpleCDN has support for this. CloudFront does not.</p><p><strong>CNAME Support:</strong><br
/> This is often more of a &#8220;vanity&#8221; feature than anything else. It allows you to use something like cache.mywebsite.com, images.mywebsite.com, static.mywebsite.com, cdn.mywebsite.com &#8230;.. you get the idea. You basically use a subdomain or domain that you own, and use a CNAME in your DNS settings to point it to the CDN. That way, viewers see your pretty, professional-looking name as the page loads instead of an ugly long url. To be frank, most viewers won&#8217;t see/notice the difference with content that&#8217;s loaded within the page (template images, css, etc). In any case, both SimpleCDN and CloudFront offer this. SimpleCDN charges a 1-time fee of $5 for each CNAME you set up, while Amazon includes them for free (but with a max of 10 per distribution). This is one area where Amazon really has the upper hand price-wise, particularly if you&#8217;re looking to add a lot of CNAMES.</p><p><strong>Peering/Edge Locations:</strong><br
/> Both have a comparable number of locations, and for the most part they&#8217;re in relatively similar geographical regions. Unless you have a *very* specific geographical target (a specific city for example), neither&#8217;s likely to come ahead in this respect (the similarities were reflected in performance testing I did).</p><p><strong>Expires Header and gzip Encoding:</strong><br
/> SimpleCDN wins in this area hands-down. There are currently 17 combinations, and what they enable (a certain expires length, gzip, or both for example) depends on what URL you use to access the bucket making it easy to mix/match between them. As far as Amazon&#8217;s side goes, from what I understand you can set expires headers through S3 which will be pulled to CloudFront, but you need particular software to do it. CloudFront won&#8217;t gzip content either. You can technically get around it by pre-gzipping the content and using the PHP on your site to determine whether to grab the gzip or non-gzip version of items depending on the browser&#8217;s capabilities, but really&#8230; you get the idea. It&#8217;s ugly. SimpleCDN is simple, easy, and just plain comes out ahead here.</p><p><strong>Payment:</strong><br
/> SimpleCDN is completely pay-as-you-go, and they currently start you off with a free $15. At under 4 cents per GB, you&#8217;re looking at close to 375GB of transfer before you use it all up (minus any storage). You can also use part of this free $15 for the $5 CNAMES if you&#8217;d like. Once you&#8217;ve used it up, you&#8217;ll have to add more if you want the CDN to remain accessible. The lowest amount you can add at a time is $50. Amazon on the other hand simply bills you each month for your usage. Which is better is a matter of perspective.</p><p><strong>Minimum Monthly Fee/Cost:</strong><br
/> Neither have monthly fees, minimums, or costs. You pay for what you use &#8211; that&#8217;s it.</p><p><strong>Starting price per GB of transfer:</strong><br
/> SimpleCDN charges 3.9 cents per GB, no matter where the traffic is coming from. This gets even cheaper if you hit the 100TB mark in any given month. CloudFront on the other hand is a fair bit more expensive. Amazon charges anywhere from 17-22 cents per GB (depending on the location the content&#8217;s pulled from) for the first 10TB, after which the price starts going down. SimpleCDN is clearly ahead here.</p><p><strong>Storage cost per GB / month:</strong><br
/> SimpleCDN charges 75 cents per GB of storage per month. Since the Amazon content is stored on their S3 service, it&#8217;s much cheaper &#8211; starting at 15 cents per GB per month. However, with Amazon you&#8217;re also hit with all the S3 rules &#8211; so you&#8217;re charged for both data-transfer (including each time CloudFront pulls the files from S3), as well as GET/PUT/COPY/etc requests. Amazon is still likely to come out ahead here (especially if you store many terrabytes of seldom-accessed content), but it&#8217;s worth doing the math to see.</p><p><strong>Starting cost per 10,000 GET requests:</strong><br
/> SimpleCDN doesn&#8217;t charge for these. Amazon does, and Cloudfront will charge a penny for every 10,000 GET requests. Calculate how many static contents are on your website page that you&#8217;d be serving from the CDN. Multiply it by the page views in a month and you&#8217;ll get a rough idea as to how much this will cost.</p><p>&#8212;&#8212;</p><p>A few notes I couldn&#8217;t quite squeeze up there:</p><ul><li>If you use SimpleCDN and decide to use CNAME&#8217;s as well, be sure to type it in correctly when creating it! Most of SimpleCDN&#8217;s website is very easy/intuitive, but the CNAME part is one area that isn&#8217;t as clear until you *read* it.</li><li>While you can use as many expires/gzip options and combinations as you want, note that each CNAME can only point to ONE of these combinations at a time.</li><li>There&#8217;s a Firefox plugin called S3Fox which is one of the quickest/easiest ways to upload files to Amazon&#8217;s S3 (and then push to CloudFront). You do have to read the instructions though &#8211; otherwise you&#8217;ll be right-clicking for a while to figure things out.</li><li>Setting expires headers can help to reduce your transfer costs &#8211; possibly by a substantial amount.</li><li>SimpleCDN has changed their policies in the past &#8211; they used to charge a flat rate depending on the file-size, and then give unlimited transfer. Hopefully they&#8217;re out of the &#8220;growing/learning/testing&#8221; phase and are well-settled on the current policies and prices but be aware that it wasn&#8217;t that long ago that things changed &#8211; they could always change again (in other words, don&#8217;t go adding enough money to cover you for the next 5 years of traffic &#8211; things could change)</li></ul><p>So which CDN comes out ahead? Definitely SimpleCDN. It&#8217;s easier to use, it&#8217;s more flexible/powerful, it&#8217;s less than 1/4 of the cost of CloudFront, you won&#8217;t go mad with a calculator trying to predict your costs, and the &#8220;Simple&#8221; part of the name is well-earned.</p><p>That said, Amazon CloudFront is still a viable option in certain cases. If you&#8217;re already familiar with (and like) the S3 service, adding CloudFront to your mix may be a no-brainer. It&#8217;s also likely to be a less-risky bet since SimpleCDN has already scrapped/revamped their entire pricing structure once (much to the dismay of many), whereas Amazon&#8217;s been a relatively stable company for years. Amazon also has many strengths as a storage option. Finally, if you&#8217;re looking for a lot of CNAME&#8217;s and aren&#8217;t as concerned about expires headers and gzip (or are willing to go to the lengths to manually work them out), Amazon does give them out for free.</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2009/10/07/simplecdn-vs-amazon-cloudfront/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>How to add Google&#8217;s canonical tag to Joomla articles</title><link>http://mattgadient.com/2009/10/05/how-to-add-googles-canonical-tag-to-joomla-articles/</link> <comments>http://mattgadient.com/2009/10/05/how-to-add-googles-canonical-tag-to-joomla-articles/#comments</comments> <pubDate>Mon, 05 Oct 2009 22:09:01 +0000</pubDate> <dc:creator>Matt Gadient</dc:creator> <category><![CDATA[Webmaster]]></category><guid
isPermaLink="false">http://mattgadient.com/?p=699</guid> <description><![CDATA[Background: I used to use non-SEF url&#8217;s on a Joomla site, and recently turned on Joomla&#8217;s built-in SEF. Problem is that the old URL&#8217;s still &#8220;work&#8221;. Of course, this is great for people who visit &#8211; not so great when GoogleBot comes along. GoogleBot comes happily along and for any given article sees the original [...]]]></description> <content:encoded><![CDATA[<p><strong>Background:</strong></p><p>I used to use non-SEF url&#8217;s on a Joomla site, and recently turned on Joomla&#8217;s built-in SEF. Problem is that the old URL&#8217;s still &#8220;work&#8221;. Of course, this is great for people who visit &#8211; not so great when GoogleBot comes along.</p><p>GoogleBot comes happily along and for any given article sees the original archaic url with a bunch of parameters that have been there forever. Of course, there&#8217;s little incentive for it to use the &#8220;cleaner&#8221; versions. As far as it&#8217;s concerned, the archaic stuff is the original, and the new url&#8217;s are duplicate content. It could eventually change it&#8217;s mind as to the &#8220;preferred&#8221; page on it&#8217;s own, but there are a few fighting factors here. On one hand, the sitemap points to the &#8220;new&#8221; one, and it&#8217;s predominantly linked to through the current site. On the other hand, anyone who&#8217;s linked to the site in the past has linked to the &#8220;old&#8221; one, and let&#8217;s face it &#8211; it was there first.</p><p>To make the change and get Google looking at the right page, we&#8217;ll go over the things I tried that <strong>didn&#8217;t</strong> work, and then the thing I tried that <strong>did</strong> work:<span
id="more-699"></span></p><p><strong>Stuff that didn&#8217;t work:</strong></p><ul><li>.htaccess redirects &#8211; I came mighty close with some mod_rewrite rules, but to be honest even if I had eventually got the proper ruleset set-up, copying/pasting the cryptic stuff for every article would have been very time consuming. Of course the plus side had it worked is that the &#8220;old&#8221; url&#8217;s wouldn&#8217;t even be accessible anymore, so there wouldn&#8217;t be any risk of someone linking to the depreciated url in the future. Really though, the amount of time required to create a custom rewrite rule for each URL is uncanny.</li><li>Circumventing the existing META tags for each article &#8211; I assumed this is a loophole that would have been closed for security reasons, but I gave it a try anyway. The thought being that if you edit one of the existing META&#8217;s for an article, you can inject whatever you want into the HEAD section by closing the tag, and then inserting a new one (without closing it). As I suspected, one of the dev&#8217;s obviously thought of this, and any quotes you enter are stripped when you save the article.</li><li>Common SEF plugins &#8211; The largest &#8220;canonical&#8221; plugin I found seemed to be more for redirecting a www to a non-www. I didn&#8217;t try it myself, but it really looked like it was designed for large-scale site-wide changes.</li><li>Template modification &#8211; If you look back at a couple articles I wrote back in Feb (2009), you can use PHP to stuff some head tags whereever you want them. Unfortunately this would be even messier to do than setting up .htaccess stuff and would make for a very large PHP file. It also doesn&#8217;t make sense to spend the time stuffing canonical into the head section this way when spending the time on .htaccess would give *redirects* which are *better* in this case. A bad solution for many reasons, so I didn&#8217;t even bother.</li></ul><p><strong>What did work:</strong></p><ul><li>There is small, relatively unknown plugin for Joomla called &#8220;JosTag&#8221;. Turns out it&#8217;s all that I needed.</li></ul><p></p><p>You can find it in the <a
href="http://extensions.joomla.org/extensions/site-management/seo-a-metadata/5139">Joomla Extensions Directory</a>, or right from the <a
href="http://info-graf.fr/infografcvs/telechargements/cat_view/25-joomla-extensions.html">developer&#8217;s site</a>. The site is mainly french, but there&#8217;s enough english to get you by &#8211; the instructions after you install it are dead-easy.</p><p>Install it, enable the plugin, and then it&#8217;s simply a matter of throwing {tag}whatever-you-want-in-the-head{/tag} in each of your content pages. So for a canonical entry, something like this:</p><blockquote><p>{tag}&lt;link rel=&#8221;canonical&#8221; href=&#8221;http://www.website.com/current-friendly-url.html&#8221;/&gt;{/tag}</p></blockquote><p>You can stick it anywhere in the content. The downside is that you obviously have to do this for each content page, meaning you&#8217;ll have to know the &#8220;desired&#8221; url. On the plus side, it&#8217;s easy to do (especially compared to the above options), it gives you full control for each page, you can stick other stuff in the &#8220;head&#8221; section if you want it later, and it&#8217;s free.</p> ]]></content:encoded> <wfw:commentRss>http://mattgadient.com/2009/10/05/how-to-add-googles-canonical-tag-to-joomla-articles/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: mattgadient.com @ 2012-02-05 00:18:30 -->
