<?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>boomcycle.com</title>
	<atom:link href="http://boomcycle.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://boomcycle.com</link>
	<description>Custom Software Development and IT Consulting</description>
	<lastBuildDate>Sun, 05 Feb 2012 16:56:55 +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>Winning the Spam Fight</title>
		<link>http://boomcycle.com/winning-the-spam-fight/</link>
		<comments>http://boomcycle.com/winning-the-spam-fight/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 16:56:05 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[General IT]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=963</guid>
		<description><![CDATA[For those of us still mired in the modes of communication of the previous century, email is still our primary method of communication. And the bane of all email users is now, and probably forever will be, spam. In this post, I discuss spam problems and solutions as pertaining to Linux-based servers running WHM/cpanel. I [...]]]></description>
			<content:encoded><![CDATA[<p>For those of us still mired in the modes of communication of the previous century, email is still our primary method of communication. And the bane of all email users is now, and probably forever will be, <strong>spam</strong>. In this post, I discuss spam problems and solutions as pertaining to Linux-based servers running WHM/cpanel.</p>
<p>I find it interesting that the discussion of how to best deal with spam is ongoing and evolving. Part of the problem is that there are many different email clients and servers, which means there is no one-size-fits-all anti-spam solution. Some solutions work only with Outlook, some work on the email server, some are hardware-based solutions, some are open source solutions. Every solution I&#8217;ve seen includes trade-offs. And certainly spammers change their tactics constantly, which means that anti-spam solutions must always stay one step ahead if they are to be effective.</p>
<p>So which is the best anti-spam solution for you? There are two primary considerations:</p>
<ol>
<li>The email client used. Do you use Outlook or Thunderbird to read your email? Or do you use a web interface?</li>
<li>The server environment where your email account is hosted. This article deals with Linux/cpanel-based servers.</li>
</ol>
<h3>Preventive Strategies</h3>
<p>This would not be a complete article without mentioning some popular preventive strategies. The idea here is that if you can prevent the spammers from harvesting your email address, you are invisible to them. The first and most popular preventive strategy is to prevent &#8220;data scraping&#8221; of your website. If your email address appears on your website in plain text (you can highlight and &#8220;copy&#8221; it into your paste buffer) chances are sooner or later a spammer will scrape your site and add your email address to their database. The primary preventive strategy is to make your email address un-parseable. There are a few techniques for this. Two of the most popular are:</p>
<ol>
<li>Putting your email address in a bitmap (an image). This way, your email address still displays and is readable to humans, but parsers typically cannot read the image.</li>
<li>Obfuscation through Javascript. This method involves burying the plain-text email into a jumble of javascript display statements. This is possibly easier to defeat for spammers though it can be adjusted quite easily. Of course, they only need to grab the address once and then they have it.</li>
</ol>
<h3>Antidotal Strategies</h3>
<p>Okay, so the spammers have your email address. This is the most common, and in some sense, inevitable, situation most email aficionados find themselves in eventually. What to do now?</p>
<h4>Server Side Anti-Spam Solutions</h4>
<ul>
<li><strong>Spam Assassin</strong> &#8211; this software is essentially the first line of defense and being open source, it is fairly well understood by spammers. Most sophisticated spammers have little trouble getting around Spam Assassin. However, it does do a decent job of blocking unsophisticated spammers, of which there are many. Spam Assassin uses an algorithm intended to mark emails as spam which include common spammer tactics or &#8220;signatures&#8221;. The spam emails can be auto-deleted or simply passed on to the email client marked as spam (typically in the subject line). Spam Assassin is nice because it&#8217;s basically a set-and-forget piece of software that does its job behind the scenes. Downsides include incorrectly marking good emails as spam and the fact that it seems in practice to be fairly easily defeated by the more sophisticated spammers.</li>
<li><strong>Box Trapper</strong> &#8211; many cpanel installations now include Box Trapper. Box Trapper is a tougher nut to crack for spammers though not surprisingly, it causes a bit more pain for the email user than Spam Assassin. The basic idea of Box Trapper is that everyone who emails you is essentially considered &#8220;guilty until proven innocent&#8221;. When Box Trapper is activated, everyone who emails you will receive a &#8220;challenge&#8221; email which requires a response from the emailer. Generally this consists of a simple &#8220;reply to&#8221; (you need only reply to the challenge email, no other modifications are necessary). This works because most spam reply-to email addresses are fake and have no monitoring. You might consider it amusing that the reason that most spammers have fake reply-to addresses is that they do not wish to be spammed or electronically assaulted in any other way. The most classic response to spam for a newbie is to send an email asking to be removed from the mailing list. This has the unintended effect of confirming to the spammer that a real, live human is monitoring the account and reading all the crappy spam. Ironically, this only makes the spammer consider your address more valuable!</li>
<li><strong>Other Solutions</strong> &#8211; hardware anti-spam systems and other software will not be covered here as they are not available at most low-cost hosting companies.</li>
</ul>
<h4>Client Side Anti-Spam Solutions</h4>
<p>The final barrier to spam is the client software. If you use a web interface to read email on your inexpensive email hosting account, you&#8217;re primary hopes are pinned on the server-side solutions.</p>
<h5><strong>Open Source Solutions</strong></h5>
<p>This was a category that didn&#8217;t even exist a few years ago. Since then a few Windows add-ons have been written for popular clients like Outlook and Thunderbird. The two I have used before are <strong>SpamBully</strong> and <strong>SpamBayes</strong>. After using SpamBully for several months on my Windows box, I&#8217;ve determined that SpamBully is unfit for my needs. SpamBully consistently marked obvious spam as not-spam and emails from safe senders, friends and even my own website (which I&#8217;d specifically white-listed as well as marking the emails as &#8220;not spam&#8221;) as spam. Basically, it required more effort to read my emails and to mark spam emails as junk than would have been required by simply not using it.</p>
<h5><strong>Commercial Solutions</strong></h5>
<p>I have a very lengthy experience with a product called SpamFighter. SpamFighter initially seemed to work well, but after several months (actually over a year) of constant use, it has the same problems as SpamBully, namely incorrectly marking good emails as spam and (far more often) marking spam emails as good. Again, my yardstick was to determine if SpamFighter required more time to use than not, and again, this solution did not work often enough for me to want to continue to use it.</p>
<h5><strong>Junk Email Filter on Outlook and Thunderbird</strong></h5>
<p>This brings us all the way back to email client software spam filtering solutions which are oft-overlooked solutions. The Junk email filter on Outlook has various settings, as seen here:</p>
<p><a href="http://boomcycle.com/wp-content/uploads/2012/01/junk-email-options.png"><img class="alignnone size-medium wp-image-972" title="junk-email-options" src="http://boomcycle.com/wp-content/uploads/2012/01/junk-email-options-274x300.png" alt="" width="274" height="300" /></a></p>
<p>A major revelation for me was the &#8220;level of junk protection&#8221; setting. I had always had it set &#8220;Low&#8221; previously, as I was concerned about missing real emails. This had the effect of passing a great deal of spam to my inbox, to the point where I had spent time working with SpamFighter and SpamBayes. However, merely changing the protection level to &#8220;High&#8221;, meant that almost all spam was caught, as well as a small handful of legitimate emails.</p>
<p>This led to a large revelation:<strong> it&#8217;s much easier to &#8220;un-junk&#8221; legitimate emails than it is to &#8220;junk&#8221; spam emails</strong>, simply because there are <strong>so many more spam emails</strong> sent than legitimate emails.</p>
<p>This change in my own mind-set really made my Outlook Junk filter start working for me. The few legit emails caught in the Outlook Junk email filter are easily marked &#8220;Not Junk&#8221; and from then on, delivered straight to my inbox.</p>
<h3>Summary</h3>
<p>If you&#8217;ve given up on client-side solutions, especially those built-in solutions so often overlooked, try reversing your mindset: crank that junk mail sensitivity setting to &#8220;High&#8221;, unjunk the legitimate emails and see how many junk emails get through to your inbox. If your experience is similar to mine, the junk emails in your inbox will drop to near-zero.</p>
<p>Happy emailing!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/winning-the-spam-fight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is My Server Secure?</title>
		<link>http://boomcycle.com/is-my-server-secure/</link>
		<comments>http://boomcycle.com/is-my-server-secure/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 19:38:14 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[IT Security]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=891</guid>
		<description><![CDATA[If you are a sysadmin or if configuring Linux servers is part of your job description, you&#8217;ve probably been asked to set up all kinds of software packages under tight deadlines and cost constraints.  After you installed mail, DNS, MySQL, Apache, and your application stack was up and running, you might have briefly paused to [...]]]></description>
			<content:encoded><![CDATA[<p>If you are a sysadmin or if configuring Linux servers is part of your job description, you&#8217;ve probably been asked to set up all kinds of software packages under tight deadlines and cost constraints.  After you installed mail, DNS, MySQL, Apache, and your application stack was up and running, you might have briefly paused to wonder, &#8220;<em>is my server secure</em>?&#8221; It&#8217;s a very important question.  Let us put aside for a moment the acrid debate of whether open source software is more or less safe than closed source software and heed famous security expert Bruce Schneier who argues that <strong>security is not something you can buy, it is something your must get for yourself</strong>.</p>
<p>If you&#8217;ve ever received a phone call from someone wailing that the &#8220;server is down&#8221; and they are &#8220;losing money by the hour&#8221; then you probably logged into the poor machine and restarted a few services (or the entire machine) and then started sniffing around the log files to see what happened. It is during this sort of rescue operation that one really starts to wonder about the security of a given machine. It&#8217;s quite disconcerting to see endless brute force login attempts in the sshd log.  It&#8217;s infuriating to see SQL injection attempts in an Apache log. Almost always, an organization just wants to get the machine running again with a minimum of expenditure.  Your instructions are to <em>just get it running again</em>.</p>
<p>It is entirely understandable that organizations want to avoid a real security audit in order to save money, but &#8212; make no mistake &#8212; saving money in this way inherently involves risk, especially if your servers process financial transactions or other sensitive data. Consider the damage dealt to Sony&#8217;s reputation by the Playstation Network hack in Spring 2011.  Consider also the breach of the Dutch certificate authority Diginotar that came to light in summer 2011. These large institutions have suffered staggering blows to their reputation and credibility because of their failure to guard privacy entrusted to them.</p>
<p>To <strong>secure your Linux servers</strong>, there are a few very important and fairly easy things you can do to keep the bad guys out:</p>
<h3>Firewalls</h3>
<p>Close every port that doesn&#8217;t need to be open and disable every service you do not need that might open a port. Limit administrative access (e.g., SSH access on port 22) to networks that belong to you. This iota of prevention is worth megatons of cure. The iptables command is an amazingly powerful tool that can lock your server up tighter than Fort Knox.  Amazon&#8217;s EC2 service offers Security Groups.  Make use of these if you have them at your disposal.</p>
<h3>Secure Authentication</h3>
<p>Disable direct login as root via SSH.  It&#8217;s in the sshd configuration.  Go even further, disable password login and require key pair authentication.  If you must use passwords, make sure you pick good ones.  It&#8217;s <a href="http://xkcd.com/936/">not as easy</a> as you think. Also, when users must authenticate themselves, <em>make absolutely certain that the passwords are encrypted in transit</em>. These means using Secure FTP and not plain old FTP.  It also means requiring SSL/TSL for mail connections.</p>
<h3>Autoban</h3>
<p>Simple packages like fail2ban allow you to create &#8216;jails&#8217; which monitor logs so that, using simple rulesets, you can temporarily ban any remote address which is repeatedly failing to login or which is requesting nonexistent pages, etc. If you must have ports open, fail2ban helps you protect them.</p>
<h3>Update Your System Regularly</h3>
<p>When security patches are released, your need to update your software to take advantage of the patches.  The longer you wait, the longer you might have a hole in your system.  Unfortunately, this usually requires some human interaction.  If you automatically update your servers, the security patch may break something in your system.  Build some time in your budget to apply regular updates &#8212; but test them first!</p>
<h3>Integrity Checking</h3>
<p>A file integrity checker such as samhain can provide tremendous peace of mind.  It&#8217;s an automated daemon process that calculates a hash on your precious binaries and critical folders and lets you know if they ever change.  If someone breaks in, samhain will let you know soon after.  If you are worried about someone halting samhain before it gets a chance to inform you, you can go the extra mile and conceal samhain&#8217;s operation using generic process names and steganography.</p>
<h3>Good Coding Practices</h3>
<p>At the end of the day, your application looks like swiss cheese compared to the core applications that support it.  Linux, Apache, MySQL, etc. are all grizzled, hardened veterans compared to the script kids you hired on Craiglist to write your email form.  Choose your developers carefully.  Make sure you check out the <a href="http://cwe.mitre.org/top25/">Top 25 Coding Mistakes</a>.  Your coders should know what these mistakes are and how to avoid them. If you are considering hiring a developer, quiz them on this.  A good coder will know a thing or two.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/is-my-server-secure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding the Cloud &#8211; Saas, Paas and IaaS</title>
		<link>http://boomcycle.com/how-smbs-use-saas-paas-iaas/</link>
		<comments>http://boomcycle.com/how-smbs-use-saas-paas-iaas/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 23:08:15 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Amazon Cloud]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Web Development Philosophy]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=858</guid>
		<description><![CDATA[The infographic below by the Horn Group  gives a good visual overview of the differences between SaaS, PaaS and IaaS, and the various vendors in those markets right now Think of it as a snapshot, as if you&#8217;re looking at a photo of the night sky &#8212; the sky will look different tomorrow night&#8230;and 3 [...]]]></description>
			<content:encoded><![CDATA[<p>The<a href="http://www.readwriteweb.com/cloud/2011/04/the-cloud-stratosphere-infogra.php" target="_blank"> infographic below</a> by <a href="http://www.horngroup.com/" target="_blank">the Horn Group</a>  gives a good visual overview of the differences between <a title="Types of cloud services" href="http://boomcycle.com/cloud-computing-los-angeles/#Types_of_cloud_services" target="_blank">SaaS, PaaS and IaaS</a>, and the various vendors in those markets right now</p>
<p><em>Think of it as a snapshot, as if you&#8217;re looking at a photo of the night sky &#8212; the sky will look different tomorrow night&#8230;and 3 months from now.</em> The internet changes quickly. Cloud vendors will continue to come and go, so longevity, stability and portability will become increasingly important factors when choosing vendors.</p>
<p style="text-align: center;"><a href="http://boomcycle.com/how-smbs-use-saas-paas-iaas/cloud-stratosphere1/" rel="attachment wp-att-861"><img class="aligncenter size-full wp-image-861" title="cloud-stratosphere1" src="http://boomcycle.com/wp-content/uploads/2011/09/cloud-stratosphere1.jpg" alt="Understanding the Cloud - Where do SMBs fit into SaaS, PaaS and IaaS?" width="511" height="830" /></a></p>
<p><strong>Where do SMB owners fit in?</strong><br />
As a small business owner, you and your staff will most likely only have direct experience with <em>SaaS</em> &#8211; the applications that deliver software like Microsoft Office and Google Docs.</p>
<p>Here&#8217;s an example of how the three layers work together.</p>
<p><strong><em>SaaS</em> (Software as a Service)</strong> &#8211; You and your employees use it as off-the-shelf application software. You may decide to use SalesForce to manage your customer database. The SalesForce software is hosted on the cloud, rather than individual hard drives on your office computers, or on the network server in your office. In order to use SalesForce, you download apps that connect with the cloud version, so you&#8217;re using <em>SaaS</em>.</p>
<p><strong><em>PaaS</em> (Platform as a Service)</strong> &#8211; You hire a software developer who uses this to create custom software. (As a small business owner, you won&#8217;t have to know the technical details about <em>PaaS</em> or <em>IaaS</em>, but we&#8217;ll give you an overview just for fun.)</p>
<p>Now, let&#8217;s say you decide that the off-the-shelf version of SalesForce still requires too many hours of manual data manipulation.</p>
<p>For example, you&#8217;re paying overtime in the accounting and sales departments because they need to use different spreadsheets every month to sort and extract data that&#8217;s specific to your company.</p>
<p>SalesForce also sells access to bare-bones software platform versions (Force.com and others) &#8212; <em>PaaS</em> &#8212; on which you can develop, build and host your own version of SalesForce, customized to your individual business needs.</p>
<p><strong>That&#8217;s the point where you hire a custom software developer.</strong> The custom software development team codes the custom software on the <em>PaaS</em> &#8212; uses it as a testing and developing platform &#8212; and saves the time it would have taken to set up the development environment on a separate server.</p>
<p>There are many other <em>PaaS</em> providers besides Force.com. And there&#8217;s fierce competition among providers to give developers more choices of languages, frameworks and platforms as <em>PaaS</em> evolves, especially in the Open Source community, according to <a href="http://olex.openlogic.com/wazi/2011/how-open-is-open-a-paas-scorecard/" target="_blank">Wazi, the most current news source for Open Source development</a>.</p>
<p>Honestly, the further you go into learning about <em>PaaS</em> and <em>IaaS</em>, the geekier it gets. We touch lightly upon <a title="SMB Cloud Computing Trends" href="http://boomcycle.com/smb-cloud-computing-trends/" target="_blank"><em>IaaS</em> in another blog post</a>. But<em> trust me</em> &#8212; your time and energy will be better spent running your business than trying to figure out the differences between <em>PaaS</em> and <em>IaaS</em>. Their functions often overlap and  they&#8217;re moving targets &#8212; evolving even as you read this.  The developers who use them don&#8217;t even agree on their definitions.</p>
<p>You&#8217;re better off <a href="http://boomcycle.com">finding a software development team</a> that writes brilliant code, will handle the <em>PaaS</em> and <em>IaaS</em> for you, and can communicate with you so you get the software you want &#8212; really!</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/how-smbs-use-saas-paas-iaas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMB Cloud Computing Trends</title>
		<link>http://boomcycle.com/smb-cloud-computing-trends/</link>
		<comments>http://boomcycle.com/smb-cloud-computing-trends/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 09:00:16 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[small business]]></category>
		<category><![CDATA[smb]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=850</guid>
		<description><![CDATA[Small and mid-sized businesses in the market for custom software are flocking to the Public IaaS cloud space &#8212; like Amazon or Rackspace &#8211;in larger numbers than enterprise users, according to Forrester Research. One of the reasons is that corporate IT departments are slower to make decisions because of their hierarchy. IT managers often need [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://boomcycle.com/smb-cloud-computing-trends/hot-air-balloons-racing-in-the-sky/" rel="attachment wp-att-853"><img class="alignleft size-full wp-image-853" title="SMB Cloud Computing Trends" src="http://boomcycle.com/wp-content/uploads/2011/09/clouds-balloons-MP900442321-300x199.jpg" alt="SMB Cloud Computing Trends" width="300" height="199" /></a>Small and mid-sized businesses in the market for custom software</strong> are flocking to the <a href="http://boomcycle.com/cloud-computing-los-angeles/#Types_of_clouds" target="_blank">Public IaaS cloud space</a> &#8212; like Amazon or Rackspace &#8211;in larger numbers than enterprise users, according to <a href="http://blogs.forrester.com/frank_gillett/11-03-24-informal_buyers_of_iaas_cloud_computing_are_driving_the_market_not_formal_it_buyers_vendor_strategis" target="_blank">Forrester Research</a>.</p>
<p>One of the reasons is that corporate IT departments are slower to make decisions because of their hierarchy. IT managers often need to spend weeks or months developing proposals and attending meetings in order to get buy-in and budget allocated to move forward.</p>
<p>But <strong>SMB owners</strong> who work directly with a knowledgeable and experienced custom software developers can say &#8216;Yes&#8217; and get the project launched as soon as the planning is complete. They can make decisions faster &#8212; and save money in the process.</p>
<p><strong>Developers</strong> love IaaS (Infrastructure as a Service) because it provides everything they need for their basic development environment in a push-button scalable form: processing, storage and networking can all be sized to fit the project almost instantaneously. They don&#8217;t have to wait around for a human to show up to configure and network a new server if they need more storage space. There&#8217;s no down time waiting for more physical memory to be installed to increase computing power.</p>
<p><strong>SMB owners</strong> love IaaS because it It keeps development costs down. There&#8217;s no large up-front hardware investment needed to buy, configure and network larger servers. Yet the pay-per-use cost is scalable. When computing power and databases need to expand as the business grows, it&#8217;s easily done. Again, there&#8217;s no large up-front hardware investment necessary &#8212; just an incrementally higher monthly bill for the additional resources from the IaaS provider.</p>
<p><strong>Key takeaway:</strong> If you want to save time and money on your small business <strong>custom software project</strong> in the long run, look for a <strong>software developer</strong> who has experience with Public IaaS cloud &#8212; like Amazon or Rackspace.</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/smb-cloud-computing-trends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon Cloud Computing Solutions</title>
		<link>http://boomcycle.com/amazon-cloud-computing-solutions/</link>
		<comments>http://boomcycle.com/amazon-cloud-computing-solutions/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 18:28:54 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Amazon Cloud]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Custom Software Development]]></category>
		<category><![CDATA[LAMP Development]]></category>
		<category><![CDATA[MySQL Development]]></category>
		<category><![CDATA[Performance Scaling]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[amazon cloud]]></category>
		<category><![CDATA[amazon web services]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[RDS]]></category>
		<category><![CDATA[Route 53]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[ses]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=844</guid>
		<description><![CDATA[Amazon&#8217;s Cloud services are a veritable alphabet soup of acronyms. Let Boomcycle provide Amazon Acronym Assistance! If you&#8217;ve ever owned a dilapidated old car or if you&#8217;ve been forced to travel a lot for work, then you probably know how the venerable American Automobile Association can be a real life saver.  I once owned a [...]]]></description>
			<content:encoded><![CDATA[<p><em>Amazon&#8217;s Cloud services are a veritable alphabet soup of acronyms. Let Boomcycle provide Amazon Acronym Assistance!</em></p>
<p>If you&#8217;ve ever owned a dilapidated old car or if you&#8217;ve been forced to travel a lot for work, then you probably know how the venerable American Automobile Association can be a real life saver.  I once owned a 1987 Honda Prelude with a list of mechanical problems longer than the <a href="http://en.wikipedia.org/wiki/Midgard_Serpent">Midgard Serpent</a>. When that faulty oxygen valved caused me to stall on the 101 Freeway in downtown Los Angeles, I called AAA and they rescued me.  When work had me driving 100,000 miles in just 3 years, AAA provided me with enormously helpful and up-to-date highway maps and traffic data that kept me out of the nightmare that is the Washington, DC beltway at quitting time on a Friday.</p>
<p><strong>If you have a broken down old website or if you are planning a journey into the Amazon cloud, Boomcycle can help.</strong>  We would like to offer you our own Triple A Service: Amazon Acronym Assistance.  Everyone is talking about the cloud and CTOs everywhere are convinced they need cloud technologies.  But what does it mean exactly?  Who can explain what <strong>EC2</strong>, <strong>RDS</strong> and <strong>SES</strong> actually do and how to take advantage of them for your business?  Who can help you plan your cloud migration effectively so that you don&#8217;t end up in a website migration quagmire that costs you a fortune? Boomcycle can.</p>
<p><strong>Boomcycle has hands-on software development experience with cloud technologies</strong> and has experienced first-hand some of the remarkable benefits:  <strong>scalability</strong>, <strong>flexibility</strong>, and <strong>cost savings</strong>.</p>
<p>For starters, setting up a development machine to get your new site started is a lot easier with Amazon EC2.  The old way involved calling your go-to hosting company and muddling through all the details they need to give you either a) a bloated machine with Webhost Manager designed to host a thousand websites or b) a bare-bones server with nothing but CentOS off the CDROM installed on it.  With <strong>Amazon Elastic Compute Cloud</strong> (EC2), you can set up your favorite distro once with all of your favorite development tools and store a snapshot of it as an <strong>Amazon Machine Image</strong> (AMI).  If you need a new server quickly, you can instantiate a virtual machine from one of these images almost immediately.  It gets you up and running faster.  Additionally, when you need to scale up your service, the ability to instantiate new servers is invaluable and can be automated. When you need to scale down for cost savings, you can delete them just as quickly and just as automatically.</p>
<p>Boomcycle is also familiar with the pitfalls and hazards of <strong>Amazon Web Services</strong> (<strong>AWS</strong>).  The AWS ecosystem is a patchwork of APIs, code libaries, documentation, and outright quirks that can present challenges.  For example, <strong>Amazon&#8217;s DNS service</strong> &#8212; <strong>Route 53</strong> &#8212; currently has no interface in the AWS web console and one must make use of the command line tools to create and delete DNS records.  Additionally, there is no edit function.  One must first delete an existing record and then create a new one to replace it.  Even so, it&#8217;s a lot easier and more secure than maintaining BIND on one&#8217;s own servers. Even integration of two different Amazon services &#8212; EC2 and <strong>Amazon&#8217;s Simple Email Service</strong> (SES) &#8212; can be a challenge in certain contexts.  This EC2/SES integration is in many cases a necessary chore as the IPs one can assign to an Amazon EC2 compute instances are all on a policy block list at spamhaus so one must find a different way to send outgoing email.  Boomcycle has done this before.  We know that the perl scripts provided by Amazon have numerous dependencies and we know how to get those installed.</p>
<p>If you think you need to use the Amazon cloud for your IT project, call us.  We can help you understand not only the alphabet soup of acronyms, but also the IT implications and cost considerations. <em>We&#8217;d love to help.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/amazon-cloud-computing-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Client Solutions in the Rackspace Cloud</title>
		<link>http://boomcycle.com/client-solutions-rackspace-cloud/</link>
		<comments>http://boomcycle.com/client-solutions-rackspace-cloud/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 15:21:44 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Content Delivery Network (CDN)]]></category>
		<category><![CDATA[Custom Software Development]]></category>
		<category><![CDATA[LAMP Development]]></category>
		<category><![CDATA[MySQL Development]]></category>
		<category><![CDATA[Performance Scaling]]></category>
		<category><![CDATA[RackSpace.com]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[custom cloud solutions]]></category>
		<category><![CDATA[rackspace]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=837</guid>
		<description><![CDATA[Some months back we posted an article about one of our favorite things:  Helping Websites Grow. The issue at hand back in March was that our client had a server that was struggling to serve large amounts of images while at the same time trying to make sure that Gigabytes of images were backed up [...]]]></description>
			<content:encoded><![CDATA[<p>Some months back we posted an article about one of our favorite things:  <a href="../remedies-for-website-growing-pains/">Helping Websites Grow</a>. The issue at hand back in March was that our client had a server that was struggling to serve large amounts of images while at the same time trying to make sure that Gigabytes of images were backed up regularly.  The system was also struggling to import remote image assets quickly enough.  There were so many remote images to be fetched some nights that the image-fetching script would run all night and into the next day and would still be running when the cron job that started it fired it off again. The system would crash almost nightly.  The backups never completed.  The products on the site did not have valid images.</p>
<p>Following a concerted effort by Boomcycle open source senior engineer (and genius!) Jason, the system is functioning much more smoothly.  The database duties are still handled by their primary dedicated machine, and our monitor scripts still complain every now and then about excessive load when there are a lot of visitors, but the 30+ Gigabytes of images are now happily hosted by the Rackspace Content Delivery Network.  These images bypass the primary server entirely and are fetched directly from their remote sources by a Rackspace Cloud Server and fed directly into the content delivery network.  The multithreaded script that handles the images has fetched as many as 17,000 images, generated 6 different thumbnails for each image, and uploaded the original image and all its thumbnails into the Rackspace CDN <em>in a single hour.</em></p>
<p>Boomcycle&#8217;s remedy for this client has not just stabilized their system and improved performance for their clients and customers, but we have significantly reduced their monthly cost.  Thanks to our new system, the client was able to shut down a second image server that is no longer needed.  Our client estimates the Rackspace Cloud Server and CDN costs at around $50 &#8212; considerably less than the hundreds of dollars per month they were paying for a dedicated machine to host all these images.  The Rackspace system also makes redundant copies of the images and manages backups.  It&#8217;s an all around win.</p>
<p>Our client is happy and we&#8217;re talking to them about some further initiatives to help them keep up with their customer demand. Boomcycle is happy to help our clients grow!</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/client-solutions-rackspace-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make WordPress Run Like Greased Lightning</title>
		<link>http://boomcycle.com/make-wordpress-run-like-greased-lightning/</link>
		<comments>http://boomcycle.com/make-wordpress-run-like-greased-lightning/#comments</comments>
		<pubDate>Sun, 15 May 2011 01:29:53 +0000</pubDate>
		<dc:creator>Aaron C.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[performance tuning]]></category>
		<category><![CDATA[server speed]]></category>
		<category><![CDATA[server tuning]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=638</guid>
		<description><![CDATA[There are many advertised ways to tweak, tune, and cache your way into the WordPress Speed Loading Championships. We&#8217;re going to show you a couple of changes that worked wonders for boomcycle.com. Hopefully they will work for you as well! Page Speed Before Here is a screen shot of the Google Page Speed plugin before tweaking [...]]]></description>
			<content:encoded><![CDATA[<p>There are many advertised ways to tweak, tune, and cache your way into the WordPress Speed Loading Championships. We&#8217;re going to show you a couple of changes that worked wonders for boomcycle.com. Hopefully they will work for you as well!</p>
<h3>Page Speed Before</h3>
<p>Here is a screen shot of the Google Page Speed plugin before tweaking WordPress. It was clocking in at 47/100, which is noticeably slow to visitors:</p>
<p><a rel="attachment wp-att-641" href="http://boomcycle.com/make-wordpress-run-like-greased-lightning/wordpress_before_tweaks-2/"></a><a rel="attachment wp-att-641" href="http://boomcycle.com/make-wordpress-run-like-greased-lightning/wordpress_before_tweaks-2/"><img class="alignnone size-full wp-image-641" title="wordpress_before_tweaks" src="http://boomcycle.com/wp-content/uploads/2011/05/wordpress_before_tweaks1.png" alt="WordPress before tweaks" width="492" height="294" /></a></p>
<p>There are several things going on here, some of which are outside the scope of this post. There are also several ways to analyze the web site to determine where exactly the bottlenecks are, some more complicated than others. We&#8217;re going to keep it simple.</p>
<p>For starters, the <a href="https://addons.mozilla.org/en-US/firefox/addon/firebug/" target="_blank">Firebug plugin</a> for Firefox is your friend when troubleshooting speed issues on web pages. Use the &#8220;Net&#8221; time line to quickly identify the biggest delays when loading your web page. (If you&#8217;re feeling extra frisky, check out xdebug for PHP.) In boomcycle.com&#8217;s case, there were 3 images that stuck out immediately, as they were each taking over 4 seconds to load. The browser was downloading them concurrently, so it wasn&#8217;t as big of a delay as it could have been.</p>
<p>On to the tweaks&#8230;</p>
<h3>MySQL Query Cache</h3>
<p>OK, this is an easy one. Just add the following lines to your MySQL configuration file (usually my.cnf), and then restart MySQL. Unfortunately this little tweak is probably not available unless you have root access to a dedicated or VPS server. If that is the case, it doesn&#8217;t hurt to open a support ticket and ask if they would be willing to add it globally.</p>
<blockquote><p>query-cache-type = 1<br />
query-cache-size = 20M</p></blockquote>
<p>These settings tell MySQL to use up to 20 Megabytes of cache to store common queries and their result sets. If there is more memory available on your server, go ahead and crank up the setting higher, but don&#8217;t go too crazy. More info on MySQL query caching can be found <a href="http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html" target="_blank">here</a>.</p>
<h3>timthumb.php</h3>
<p>This particular theme, Minimal, makes use of an image resizing (among other functions) script called <a href="http://code.google.com/p/timthumb/" target="_blank">timthumb</a>. While this is a handy script, the version installed was fairly old and was taking over 4 seconds to read, resize, and then serve a thumbnail from a 300K image. The newest version shaved almost a full 3 seconds off the image load time due to better processing and caching.</p>
<p>The easiest way to tell if your theme is using TimThumb is to use the Media section of FireFox&#8217;s built-in Page Info utility. Just look for a URL with timthumb.php in it like this one:</p>
<blockquote><p>http://boomcycle.com/wp-content/themes/Minimal/timthumb.php?src=http://boomcycle.com/wp-content/uploads/2011/01/web_development_sample_3.png&amp;h=226&amp;w=406&amp;zc=1&amp;q=90</p></blockquote>
<p>That URL also helps you identify where the file is stored on your server. In this case, it is in wp-content/themes/Minimal, which is relative to the public html directory of the web user. Use that information to save a copy of the original and then upload the new version in its place.</p>
<h3>gzip compression</h3>
<p>We are constantly amazed at how many web sites out there don&#8217;t take advantage of this very useful setting. gzip compression allows the server to compress almost everything except images before sending it to the visitor, saving both time and bandwidth. Web browsers have been supporting gzip compression for years, so there&#8217;s almost never a reason not to use it.</p>
<p>For boomcycle.com, enabling gzip compression saved over 180k per initial page load. (After the initial view the browser has usually cached the content, unless another web server configuration setting is not enabled &#8211; more on Expires Headers in a minute.) Sure, 180KB of bandwidth savings doesn&#8217;t sound like much, but multiply that by 10,000 visitors and you&#8217;ve just saved over 1.8GB of bandwidth! That also means your web server can spend more time handling other requests instead of being tied up delivering large, single-threaded resources like Javascript (more on that subject in a minute as well.)</p>
<p>First, check to see if gzip compression is enabled on the web server in question. There are several ways to do this, but by far the easiest is with this web site:</p>
<p><a href="http://www.whatsmyip.org/http_compression/" target="_blank">http://www.whatsmyip.org/http_compression/</a></p>
<p>That compression test will also report how much there is to gain by enabling gzip compression. One thing to keep in mind is that all modern image formats are already highly compressed, so enabling gzip compression for images will actually have the opposite result.</p>
<p>Various speed checking plugins for Firefox will also tell you if gzip compression is enabled, but we have experienced false information due to aggressive browser caching.  There is nothing more frustrating than chasing your tail trying to troubleshoot a issue that doesn&#8217;t really exist. Instead, use a third party point of view that hasn&#8217;t cached the web site in question.</p>
<p>In order to enable gzip compression on your web server, it has to be compiled in and available. If your web site is on a shared hosting provider, then you&#8217;ll have to open a ticket to request enabling gzip compression globally. It&#8217;s better for you; it&#8217;s better for them; it&#8217;s better for all of their customers.</p>
<p>The following settings are typical gzip compression settings for Apache 2.x web servers. The settings are surrounded by an IF statement to ensure it doesn&#8217;t break your web site if for some reason the compression module is unavailable. This configuration can be placed in the main .htaccess, or in a global included configuration file.</p>
<blockquote>
<pre>&lt;IfModule mod_deflate.c&gt;
    SetOutputFilter DEFLATE
    &lt;IfModule mod_setenvif.c&gt;
        # Netscape 4.x has some problems
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        # MSIE masquerades as Netscape, but it is fine
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        # Don't compress already-compressed files
        SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI .(?:avi|mov|mp3|mp4|rm|flv|swf|mp?g)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary
        &lt;/IfModule&gt;
    &lt;IfModule mod_headers.c&gt;
        #Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
    &lt;/IfModule&gt;
&lt;/IfModule&gt;</pre>
</blockquote>
<p>If the settings are put into .htaccess, the changes will take place immediately upon next page load. If they are in a main Apache include file, the service must be reloaded or restarted for the changes to take effect.</p>
<h3>Expires Headers</h3>
<p>Most web sites have static content that rarely or never changes. Images, style sheets, javascript, etc. This content should be delivered with appropriate expires headers so that the visitors to your site will have the content cached in their browsers instead of having to request it for every single page load. The result is less bandwidth and resources used on your server, and a much faster user experience for your visitors.</p>
<p>The configuration settings are similar to the gzip compression settings. They can go into the .htaccess file, or a globally included configuration file:</p>
<blockquote>
<pre>&lt;IfModule mod_expires.c&gt;
    # Remove ETags if mod_expires is controlling caching
    Header unset ETag
    FileETag None

    ExpiresActive on
    ExpiresByType image/jpg "access plus 60 days"
    ExpiresByType image/png "access plus 60 days"
    ExpiresByType image/gif "access plus 60 days"
    ExpiresByType image/jpeg "access plus 60 days"

    ExpiresByType text/css "access plus 1 days"

    ExpiresByType image/x-icon "access plus 1 month"

    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType audio/x-wav "access plus 1 month"
    ExpiresByType audio/mpeg "access plus 1 month"
    ExpiresByType video/mpeg "access plus 1 month"
    ExpiresByType video/mp4 "access plus 1 month"
    ExpiresByType video/quicktime "access plus 1 month"
    ExpiresByType video/x-ms-wmv "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access 1 month"

    ExpiresByType text/javascript "access plus 1 week"
    ExpiresByType application/x-javascript "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
&lt;/IfModule&gt;</pre>
</blockquote>
<p>If you&#8217;re curious what the ETags setting is for, feel free to Google it. In our experience ETags is not a big deal one way or another, but it always shows up in the speed test results if it is not disabled.</p>
<p>The other settings are perhaps self-explanatory. Adjust them according to your web site usage and update habits. If you frequently alter flash content, then just change the application/x-shockwave-flash expires setting to &#8220;access plus 1 day&#8221; instead of 1 month. If you have a WordPress blog where existing content never changes, then it&#8217;s probably safe to crank most of the settings to several months instead.</p>
<h3>WordPress Plugins &#8211; DB Cache Reloaded and Hyper Cache</h3>
<p>There are plenty of WordPress caching plugins to choose from out there, so how do you decide which one is right for your web site? The answer is by a lot of trial and error, or a lot of reading comments <a href="http://www.tutorial9.net/tutorials/web-tutorials/wordpress-caching-whats-the-best-caching-plugin/" target="_blank">regarding other people&#8217;s experience</a>.</p>
<p>We&#8217;ve tried many different caching plugins, and by far the most impressive is a combination of <a href="http://wordpress.org/extend/plugins/db-cache-reloaded/">DB Cache Reloaded</a> and <a href="http://wordpress.org/extend/plugins/hyper-cache/">Hyper Cache</a>. They work wonders with out-of-the-box configuration, and should not interfere with anything WordPress is trying to do. Having said that, they might not be compatible with other caching plugins, so it&#8217;s best to delete the old cache stores and then disable the other plugins before activating DB Cache Reloaded and Hyper Cache.</p>
<h3>Page Speed After Tweaks</h3>
<p>Here is a screen shot of Page Speed for boomcycle.com after all the above tweaks were implemented. The increase in speed was significant, both on paper (66/100)  and most importantly, in user experience (&lt;2 second load times):</p>
<p><a rel="attachment wp-att-662" href="http://boomcycle.com/make-wordpress-run-like-greased-lightning/wordpress_after_tweaks/"><img class="alignnone size-full wp-image-662" title="wordpress_after_tweaks" src="http://boomcycle.com/wp-content/uploads/2011/05/wordpress_after_tweaks.png" alt="WordPress page speed after tweaks" width="540" height="361" /></a></p>
<p><strong>NOTE: </strong>When testing with Page Speed, be sure to hold down the SHIFT or CTRL key while pressing F5 in your browser. This will force the browser to request all of the content from the web server, regardless of what is in the browser&#8217;s cache. Do this a couple of times to ensure the caching has been activated in the WordPress plugins, and then run the Page Speed test. The result should be obvious in Firebug. For example &#8211; once TimThumb has cached the thumbnails, the image load times dropped from over 4 seconds to 500 &#8211; 900 milliseconds.</p>
<p>Interestingly, the Firefox version of the Page Speed plugin reports an even better score than the Chrome version &#8211; 79/100. That&#8217;s on par with some of the biggest and most popular web sites on the internet today.</p>
<p><a rel="attachment wp-att-663" href="http://boomcycle.com/make-wordpress-run-like-greased-lightning/wordpress_after_tweaks_firefox/"><img class="alignnone size-full wp-image-663" title="wordpress_after_tweaks_firefox" src="http://boomcycle.com/wp-content/uploads/2011/05/wordpress_after_tweaks_firefox.png" alt="WordPress page speed after tweaks - Firefox" width="463" height="366" /></a></p>
<p>The only way to get a much better rating is to combine JavaScript and convert everything to static content.</p>
<h3>Other WordPress Speed Tweaks</h3>
<p>You might have noticed that Page Speed mentions Javascript in several places in all the reports. There is a good reason for this. When the web browser requests Javascript content, it does so one at a time, essentially blocking all other requests for content until the Javascript is downloaded completely. (The reason for this seemingly odd behavior is beyond the scope of this post. Google it if you&#8217;re curious.) The impact in this case is  a 66/100 Page Speed instead of a much higher result, since the browser had to request 6 different Javascript files.</p>
<p>There is only one way to resolve this problem, and it can cause serious issues and upgrade headaches in the future. We do not recommend implementing the change unless you really know what you are doing. The resolution is to combine all javascript sources into one large file, and then update the source html/php/template so that it only references one file. If your WordPress theme makes proper use of headers and footers, this might actually be a fairly easy change to make. Upgrading the theme or making other WordPress changes could easily break what you&#8217;ve changed, however.</p>
<p>The other recommended change relating to Javascript is to move all the Javascript to the end of the page instead of at the top. The result is that all the visual content is loaded before the Javascript loads, making it appear that the page loaded much faster than it really did. This is also not a change to take lightly, as it could very easily break your web site.</p>
<p>By far the best method of speeding up a WordPress web site is by using a plugin that pre-caches all of the content, and then serves it as static html files instead of dynamic content. The result is blazing Page Speed times in the low to high 90&#8242;s. However, this particular method of caching will not work for a majority of WordPress blogs due to the liberal use of dynamic content &#8211; ads, tag words, comments, etc. Usually if the WordPress site is busy enough to warrant this type of pre-caching, the visitors will be expecting constant updates, defeating the whole purpose of pre-caching to begin with (and if the site is that large and busy, then it&#8217;s probably time to invest in some dedicated servers with all of that ad revenue coming in!)</p>
<p>We hope you&#8217;ve found this information helpful for speeding up your WordPress website. <a href="http://boomcycle.com/contact-us/">If you still need faster website speed, Boomcycle would love to help!</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/make-wordpress-run-like-greased-lightning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leveraging Amazon RDS to maximize database performance</title>
		<link>http://boomcycle.com/leveraging-amazon-rds-to-maximize-database-performance/</link>
		<comments>http://boomcycle.com/leveraging-amazon-rds-to-maximize-database-performance/#comments</comments>
		<pubDate>Fri, 06 May 2011 23:38:49 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Amazon Cloud]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[MySQL Development]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[RDS]]></category>
		<category><![CDATA[Scaling]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=626</guid>
		<description><![CDATA[Amazon Relational Database Service (RDS) is a feature of Amazon’s cloud computing platform that allows customers to establish an installation of the MySQL Relational Database Management System (RDBMS) that is running “in the cloud.” This installation of MySQL functions exactly like MySQL installed on conventional servers&#8211;existing software requires no changes and new software requires no [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon Relational Database Service (RDS) is a feature of Amazon’s cloud computing platform that allows customers to establish an installation of the MySQL Relational Database Management System (RDBMS) that is running “in the cloud.” This installation of MySQL functions exactly like MySQL installed on conventional servers&#8211;existing software requires no changes and new software requires no special design considerations. However, unlike conventional servers, Amazon RDS has tremendous advantages in terms of scaling and fault tolerance that are of tremendous value.</p>
<h3>Amazon RDS Scaling</h3>
<p>Scaling refers to the ability to increase the capacity of the database server to meet customer demand. As customer demand increases, database servers may be unable to keep up with this demand. They will become slower and slower as their capacity to serve requests is exceeded and eventually will begin dropping requests and causing errors. Amazon RDS provides cloud-based tools for scaling the database to head off this trouble in the form of both <em>horizontal </em>and <em>vertical </em>scaling.</p>
<h3>Horizontal Scaling</h3>
<p>Horizontal scaling refers to increasing the capacity of the database by adding more machines. Amazon RDS facilitates this by providing a simple way to implement <strong>database replication</strong>. With database replication, an installation of Amazon RDS serves as the “master” and one or more instances of Amazon RDS are set up as separate and distinct “read replicas.” All updates to the database take place on the single master instances, and those updates propagate out to the read replicas. Because the typical choke point with database-driven web applications is in many simultaneous attempts to read the database, this provides the value benefit of sharing the load of retrieving the data among multiple servers. Amazon RDS supports establishing as many read replicas as necessary.</p>
<p>One drawback with database replication is that it is <strong>asynchronous</strong>. Because updates to the database must propagate out from the master to the read replicas, and because this is not instantaneous, the data on the read replicas may differ from the data on the master. Special consideration is required in the design of a software application where this type of scaling is utilized to prevent data inconsistency errors.</p>
<p>Another type of horizontal scaling of database is called “<strong>sharding</strong>”. Sharding is the act of splitting up pieces of the database to separate servers so that a single server doesn’t have to bear the entire load. A database scaled in this manner does not suffer the disadvantages of being asynchronous, but sharding requires very special design considerations, both in terms of database and software design. For extra scaling power, this may be employed in tandem with database replication, where each piece of the database is being read by its own set of read replicas.</p>
<h3>Vertical Scaling</h3>
<p>Vertical scaling refers to increasing the database capacity without adding more machines. This usually means faster processors, more RAM, bigger disks, faster network connections, and so on. Because the instance of Amazon RDS is running on the cloud, increasing the amount of RAM, number of processor cores, or disk space is a simple matter and may be done “on-the-fly.”</p>
<h3>Fault Tolerance</h3>
<p>Amazon RDS has an option called a Multiple Availability Zone, or <strong>Multi-AZ</strong> deployment. This means that instead of a single server instance, an additional server instance with identical configuration is established at a geographically distinct location. If the primary server is ever unreachable (network outages or hardware failures), this second server immediately takes over in a completely transparent manner. The second server’s data is “synchronous” with the primary server, meaning the databases are always identical. This provides an effective backup of the database and goes a very long way towards ensuring the database is always available.</p>
<h3>Recent Amazon Outage</h3>
<p>In April of 2011, Amazon suffered a much-publicized outage of aspects of its cloud computing platform, illustrating quite dramatically that even their system is not perfect. At a high level, the outage occurred in multiple availability zones in their “US-EAST-1” region. This caused some high profile web sites to be unavailable and some actual permanent data loss. Although outages of this nature are rare, they are a risk that must be accounted for. Risks of this type may be mitigated by ensuring availability zones are in distinct broad geographic regions and having a backup plan for the database that is independent of Amazon RDS.</p>
<h3>Combining Scaling with Fault Tolerance</h3>
<p><em>Scaling and fault tolerance may be combined to maximize the availability of databases to clients</em>. In an environment with a single master and multiple read replicas, the master may be configured as a Multi-AZ deployment. In the event the master is unavailable, its invisible backup will immediately take over its duties and changes will automatically propagate from it to the replicas. It is also possible to configure the read replicas as Multi-AZ deployments, though the advantage of doing so is not as obvious. Multiple read replicas serve as available backups of each other, though they may not be located in separate geographic locations (which increases risk).</p>
<h3>Finding the right solution</h3>
<p>Boomcycle employs benchmarking and load testing of the Amazon RDS instances using real data scenarios from the application to determine capacity. These data are balanced with the requirements and budget of the client to arrive at an ideal configuration to meet clients’ needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/leveraging-amazon-rds-to-maximize-database-performance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Intro to Mobile Apps</title>
		<link>http://boomcycle.com/going-mobile/</link>
		<comments>http://boomcycle.com/going-mobile/#comments</comments>
		<pubDate>Fri, 06 May 2011 03:47:53 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[mobile apps]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=307</guid>
		<description><![CDATA[Mobile App Development for the Non-Techie Most business people know they need a mobile presence but many don&#8217;t know where to start or even what an &#8220;app&#8221; truly is. Technology is moving quickly and as usual the business owner whose core business is not technology-centric is left behind in the ongoing and ever-changing technology conversation. [...]]]></description>
			<content:encoded><![CDATA[<h4><em>Mobile App Development for the Non-Techie</em></h4>
<p>Most business people know they need a <strong>mobile presence</strong> but many don&#8217;t know where to start or even what an &#8220;app&#8221; truly <em>is</em>. Technology is moving quickly and as usual the business owner whose core business is not technology-centric is left behind in the ongoing and ever-changing technology conversation. Recently that conversation has centered around <a title="Mobile devices are iPhones, iPads, Android, Blackberry and many others" href="#">mobile devices</a>. Mobile is an exploding field, with new devices seemingly entering the market every day and an ever expanding user base demanding more convenience. If the business does not enjoy a mobile presence, the marketplace may leave them behind.</p>
<p>Here at Boomcycle, we hear similar questions again and again:</p>
<ul>
<li>What is an &#8220;app&#8221;?</li>
<li>What are the various mobile platforms I should care about?</li>
<li>What types of apps can be built?</li>
<li>What does an app cost to build?</li>
<li>How does an app get into in the iTunes App Store?</li>
<li>Can I build one app that works on all devices?</li>
</ul>
<p>So let us address the &#8220;mobile basics&#8221; so that you have a better idea of what you need and how to most effectively implement your businesses mobile presence.</p>
<h3>What Is An App?</h3>
<p>Some would say that Apple did the world a service by using television ads to make people aware of <strong>programs that ran on mobile devices</strong>, specially the iPod, iPad and most popularly, the iPhone. The word &#8220;<strong>app</strong>&#8221; is short for &#8220;application&#8221;, meaning a program that performs some function, written in a computer programming language. Prior to the introduction of the word &#8220;app&#8221; into the common vernacular, we often noticed an immediate glazing of the eyes whenever we used the word &#8220;application&#8221; in front of many clients. So thank you, Apple: the word &#8220;app&#8221; is now commonly understood to mean &#8220;little programs that run on iPhones&#8221;. Such a definition, while far too vague and far too broad, at least allows &#8220;techies&#8221; and &#8220;civilians&#8221; to start a conversation!</p>
<p>And while Apple does not have a monopoly on mobile devices, they do currently seem to enjoy a monopoly on mobile mind-share. When most people think of apps, they think &#8220;i-something&#8221; first (iPhone, iPod, iPad) and every other platform (if they are even aware there <em>are </em>other platforms) second. This is changing rapidly, though as Apple popularized the app first, Apple iOS apps are usually considered first by our clients looking to go mobile.</p>
<h3>What Are The Most Popular Mobile Devices?</h3>
<p>You&#8217;ve no doubt heard of at least some other mobile platforms. The biggest mobile platforms at the time of this writing are:</p>
<ul>
<li>iPhone, iPod</li>
<li>iPad</li>
<li>Android</li>
<li>Blackberry</li>
</ul>
<p>If you are thinking about &#8220;going mobile&#8221; with your website or building a totally custom app, these are the main devices on which you should focus. Naturally as time marches on, newer devices are bound to displace or obviate the current list.</p>
<p>Why did we separate the iPhone/iPod from the iPad? The size of the display. The larger sized iPad enables comfortable use of different kinds of apps. Reading apps like Kindle or iBooks are the most popular for these larger devices. While some people considered the iPad a ho-hum usability improvement, they fail to see the tectonic shift happening in sales, medicine and electronic publishing, to name but a few.</p>
<h3>What Types of Apps Can Be Built?</h3>
<p>Here&#8217;s where the definitions get a tad foggy, but bear with us, we&#8217;ll do our best to make it clear!</p>
<h4>The Mobile Friendly Website</h4>
<p>Your website has been around for years, and you&#8217;ve probably tried to pull it up on your mobile device&#8217;s web browser. Remember what an annoying experience that was? The text is too small, the menus are a mess and the website is generally unusable. So you never look at it that way again. What you need is to &#8220;re-purpose&#8221; your existing &#8220;traditional&#8221; website as a <a title="A mobile friendly website is a website that can be easily viewed on a mobile device" href="#"><strong>Mobile Friendly</strong></a> or <strong>Mobile Compatible website</strong>.</p>
<p>Building a mobile friendly website is the easiest way to &#8220;go mobile&#8221; and retain the eyeballs you&#8217;ve worked so hard to get on your traditional website. You will need to do a few things to create a mobile website:</p>
<ul>
<li>Ensure that your current website is powered by a <a title="Click this link for the WikiPedia article on Content Management Systems" href="http://en.wikipedia.org/wiki/Content_management_system" target="_blank">Content Management System</a> (CMS) like WordPress</li>
<li>Evaluate your current site and make a list of the most important factors for mobile display</li>
<li>Create screen mock-ups and get feedback from stakeholders, clients and customers</li>
<li>Build the mobile version of your website based on the mock-ups</li>
</ul>
<p>Your CMS will provide data to your traditional website <em>and </em>your mobile website, insuring consistent content on both websites.</p>
<h4>Native App</h4>
<p>These are what most people are referring to when they say &#8220;app&#8221;. This is an app, typically downloaded from the mobile platform&#8217;s store (EX: an app from the Apple&#8217;s iTunes App Store) and running &#8220;natively&#8221; &#8212; on the phone&#8217;s hardware. No connection to a wireless network is <em>necessarily </em>required to run a native app. Native apps can be ebook readers, games, calculators or any number of useful programs that don&#8217;t necessarily require a connection to the internet. The look-and-feel of an iPhone app is fairly well established thanks to Apple&#8217;s user interface conventions. Other platforms are more akin to the wild west, design-wise.</p>
<p>The big problem with &#8220;native apps&#8221; are that <strong>these apps are native to the devices on which they run</strong>. So if you want to develop native apps for mobile devices, you must select which mobile platforms on which you wish to make your app available. Most companies that want to develop a native app start with the iPhone/iPod/iPad and Android, though many also choose to develop on Blackberry simultaneously. The former are definitely the Big Three when it comes to mobile development currently.</p>
<h4>Web App</h4>
<p>A &#8220;web app&#8221; is a special type of app that looks like a Native App except that a <strong>web app runs on your mobile device&#8217;s web browser</strong> (for example, on the iPhone, a <strong>web app</strong> runs in Safari, the built-in web browser). A web app <em>feels </em>like   a native app to the user, except that it relies on a data connection  to  work. For example, a web app that uses GPS needs a data connection  to  determine the location of the mobile device. A simple example of  this  type of web app is the Google Maps application that comes standard  on  Apple mobile devices.</p>
<h3>What Does an App Cost to Build?</h3>
<p>If this is not the first question we hear, it is a close second. We wish there was a simple answer to this question! <strong>Programming for mobile devices is still programming</strong>: it can be complex and it requires education and experience in order to do well. The complexity of any program is the key cost factor. The greater the complexity, the greater the number of hours to design and develop the app.</p>
<p>The other driver in the mobile equation is supply vs. demand. There are a <strong>limited number of good mobile developers and an exploding demand</strong> for the development of new mobile apps. Mobile development is currently more expensive than traditional software development.</p>
<p>One of the most important considerations in mobile development is <strong>the location of the data that the app uses</strong>: where does the data for the app come from?</p>
<p>Complexity may be found in surprising places. For example, to &#8220;mobil-ify&#8221; a standard website, one of the first things to consider is whether or not the website uses a CMS as its data source. If the site is &#8220;plain vanilla&#8221; HTML/CSS or Flash-based, the information from the website may not be usable by the mobile friendly website. In this case, the first step of the mobile friendly website initiative may be converting the current website so it uses a CMS (Project #1). The second step is then building a mobile friendly website that uses the data from the CMS.</p>
<p>If your app&#8217;s data can be consumed freely from the web (e.g., Google, Craigslist, eBay, etc.) your app can pull the data and with a bit of user customization such as a saved search (e.g., &#8220;I want to look at houses for sale in Santa Monica for $750K&#8221;) &#8212; bang! You have a useful app because freely available and current data is present.</p>
<p>However if your data is custom and requires effort to maintain &#8212; such as your own company&#8217;s data (products in stock, prices for software, the number of locations to serve your customers) then this data must be maintained by back-office systems. These back-office systems may exist already, in which case the effort may be in connecting those systems to the outside world so that a mobile device may use the data. And if these back-office systems must be built to support a mobile app, developing said systems will add to the cost of developing the &#8220;app&#8221;. In this latter scenario, the app itself may be thought of as simply<strong> the display of the data that&#8217;s maintained through more traditional systems</strong>.</p>
<p>Beware of mobile app developers who give you quotes for apps that have yet to be designed and formally specified through consultation with a competent programming consultancy.</p>
<h3>How Does an App Get In the App Store?</h3>
<p>A detailed explanation of why an app may or may not get into Apple&#8217;s iTunes Store is beyond the scope of this article. Apple may not approve an application for obvious reasons (buggy or poorly-performing) or reasons that may be far less &#8220;obvious&#8221;. The iPhone Developer Program License Agreement is a lengthy document which attempts to codify these issues. Suffice it to say, getting your app in iTunes is not a slam-dunk and may involve some time and effort on the part of your business and your consultant.</p>
<p>The challenging Apple approval queue is one reason why a mobile website (which doesn&#8217;t require approval) may be a good first step for businesses looking to dip their toes into mobile development.</p>
<h3>Can I Build One App That Works On All Devices?</h3>
<p>Strictly speaking, an app that is &#8220;<strong>native</strong>&#8221; to Device &#8220;A&#8221; will not run on Device &#8220;B&#8221;. For example, a native iPhone app will not run on an Android device, or any other manufacturer&#8217;s device. This means if you want to develop native apps, you will need to develop an app for each device you wish to target. Again, the most popular targets these days are iPhone/iPod and iPad, Android and Blackberry, in that order.</p>
<p>Web apps and mobile websites entail less <a title="Apple's approval or disapproval for getting into the iTunes App Store" href="#">deployment risk</a> and can generally run on multiple mobile browsers. Your development team must be certain to check the app against the most popular mobile browsers, just like with traditional web applications on standard desktop computer web browsers.</p>
<h3>Go Mobile!</h3>
<p>Mobile is exploding and those businesses who go mobile first will be the first to capture the eyeballs and business of the users of these devices. If your website is not mobile-friendly, this is an obvious place to start your mobile initiative.</p>
<p>Ideas for native and web apps are everywhere and one need only survey the iTunes App Store or <a href="https://market.android.com/" target="_blank">Android Market </a>to get a plethora of ideas.</p>
<p>So let your imagination run wild: you may create that killer mobile app that your competitor doesn&#8217;t have! Do so, and you&#8217;ll be tapping into a whole new generation of clients and consumers of your products and services.</p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/going-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boomcycle is BBB Accredited</title>
		<link>http://boomcycle.com/boomcycle-is-bbb-accredited/</link>
		<comments>http://boomcycle.com/boomcycle-is-bbb-accredited/#comments</comments>
		<pubDate>Mon, 02 May 2011 23:31:51 +0000</pubDate>
		<dc:creator>Boomcycle Admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://boomcycle.com/?p=622</guid>
		<description><![CDATA[Los Angeles based Boomcycle is now a Better Business Bureau accredited business. We take our reputation seriously and we want our clients to know that great service is our highest priority. Boomcycle has been around since 2003 and we aim to be around for many more years.]]></description>
			<content:encoded><![CDATA[<p>Los Angeles based Boomcycle is now a Better Business Bureau accredited business. We take our reputation seriously and we want our clients to know that great service is our highest priority. Boomcycle has been around since 2003 and we aim to be around for many more years. </p>
<p><a href="http://www.la.bbb.org/BusinessReport.aspx?CompanyID=100104842&#038;source=ctc"><img src="http://www.la.bbb.org/images/ClickToCheckVert.gif" WIDTH="86" HEIGHT="139" BORDER="0"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://boomcycle.com/boomcycle-is-bbb-accredited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

