<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
	<title>CloudSpring</title>
	
	<link>http://cloudspring.com</link>
	<description>Learn how to manage your website in the Cloud</description>
	<lastBuildDate>Fri, 18 May 2012 01:23:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cloudspring" /><feedburner:info uri="cloudspring" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Amazon DynamoDB</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/4uVX11LnWrg/</link>
		<comments>http://cloudspring.com/amazon-dynamo/#comments</comments>
		<pubDate>Fri, 18 May 2012 00:42:26 +0000</pubDate>
		<dc:creator>Aaron Osteraas</dc:creator>
				<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1822</guid>
		<description><![CDATA[<img width="150" height="92" src="http://cdn.cloudspring.com/files/2012/01/amazon-aws-logo1-150x92.jpg" class="attachment-thumbnail wp-post-image" alt="amazon-aws-logo1" title="amazon-aws-logo1" />Amazon DynamoDB was recently released as a high-performance, easily scalable, SQL alternative. Today we have a presentation on building apps with it!]]></description>
			<content:encoded><![CDATA[<img width="150" height="92" src="http://cdn.cloudspring.com/files/2012/01/amazon-aws-logo1-150x92.jpg" class="attachment-thumbnail wp-post-image" alt="amazon-aws-logo1" title="amazon-aws-logo1" /><div style="width:425px" id="__ss_12962739"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/AmazonWebServices/building-applications-with-dynamodb" title="Building Applications with DynamoDB" target="_blank">Building Applications with DynamoDB</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/12962739" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more presentations from <a href="http://www.slideshare.net/AmazonWebServices" target="_blank">Amazon Web Services</a> </div>
</p></div>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/4uVX11LnWrg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/amazon-dynamo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/amazon-dynamo/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=amazon-dynamo</feedburner:origLink></item>
		<item>
		<title>A cloud dedicated to PHP apps, say hello to PHPFog</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/segrQh2qDPs/</link>
		<comments>http://cloudspring.com/a-cloud-dedicated-to-php-apps-say-hello-to-phpfog/#comments</comments>
		<pubDate>Mon, 14 May 2012 20:00:49 +0000</pubDate>
		<dc:creator>Vito Tardia</dc:creator>
				<category><![CDATA[PHPFog]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1734</guid>
		<description><![CDATA[<img width="150" height="147" src="http://cdn.cloudspring.com/files/2012/04/fig2_apps_and_frameworks-150x147.png" class="attachment-thumbnail wp-post-image" alt="fig2_apps_and_frameworks" title="fig2_apps_and_frameworks" />PHPFog is a relatively new cloud hosting provider specifically designed for PHP applications. Their mission statement is &#8220;less management, more code&#8221; and the entire platform is centered around the most used and reliable PHP tools. As an example I tried to start a brand new WordPress blog on a free plan and it took just [...]]]></description>
			<content:encoded><![CDATA[<img width="150" height="147" src="http://cdn.cloudspring.com/files/2012/04/fig2_apps_and_frameworks-150x147.png" class="attachment-thumbnail wp-post-image" alt="fig2_apps_and_frameworks" title="fig2_apps_and_frameworks" /><p>PHPFog is a relatively new cloud hosting provider specifically designed for PHP applications. Their mission statement is &ldquo;less management, more code&rdquo; and the entire platform is centered around the most used and reliable PHP tools. As an example I tried to start a brand new WordPress blog on a free plan and it took just 3 minutes! Also, the process of installing and updating plugins and themes is instantaneous!</p>
<p>In this tutorial I&rsquo;ll build a simple subcription form application using two of PHPFog supported frameworks: Slim for the PHP part and Twitter Bootstrap for the CSS part. As a bonus the app will take advantage of the new responsive features of the Bootstrap 2 framework and will be usable out of the box from desktop PCs, tablets and smartphones.</p>
<h2>Platform key features</h2>
<p>How PHFog is different from other providers?</p>
<p>Firstly, the PHPFog platform is built upon well known and reliable open source technologies. HTTP requests are first filtered by a Varnish  cache proxy server, then passed through an Nginx load balancer that distributes the workload between several application servers. These servers are dedicated Linux machines running Apache with mod_php and the APC (Advanced PHP Cache) extension. The database storage is managed by MySQL using a master-slave scalable setup.</p>
<p>Secondly, the platform is designed for both developers and non-developers alike. During the application setup you can choose to start with a blank customizable PHP application, with one of the suggested PHP Frameworks (which include CakePHP, CodeIgniter, Zend Framework, etc) or, for non-developers, you can choose to deploy a ready application from a list that includes WordPress, Drupal, Joomla, Media Wiki and other more.</p>
<p>You also get free SSL if you use the <code>.phpfogapp.com</code> domain.</p>
<h2>Setting up your account</h2>
<p>Even the signup process is very fast at PHPFog, you just need to provide an email address, choose a password and you&rsquo;re in. No credit card is required initially, because each account starts with a free plan that uses a shared cloud with 3 applications, 100MB of disk storage and 20MB of MySQL storage. If you decide to upgrade to a premium plan you will have a private cloud with dedicated resources (CPU, RAM, disk and database storage). Premium plans also allow you to scale the number of database and application servers used, even for one or two days, paying only for what you use, with a minimum unit of 24 hours.</p>
<p>The most &ldquo;complicated&rdquo; thing you&rsquo;ll have to do during your account setup is setting your SSH keys, but PHPFog staff provides you with this <a href="http://dev.appfog.com/features/article/generating_a_ssh_key">step-by-step guide</a>. And that&#8217;all, you&rsquo;re in! Your account page should look like this:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/04/fig1_account.png" alt="&quot;PHPFog Account Page&quot;" /></p>
<h2>Create your application</h2>
<p>From you account page you should see the shared cloud box. Create a new application using the &ldquo;New App&rdquo; button. Your screen should look similar to this:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/04/fig2_apps_and_frameworks.png" alt="&quot;Available Apps and Frameworks&quot;" /></p>
<p>From there you can choose to deploy any of the pre-made applications (above) or a framework based application (below), where the first choice is a blank PHP app. We need to select Slim because the version of this framework provided by PHPFog includes some modifications in order to perform better, we&rsquo;ll get the Bootstrap stuff later. In the next step we are prompted to choose our application details: the app domain name and MySQL password.</p>
<p><img src="http://cdn.cloudspring.com/files/2012/04/fig3_app_details.png" alt="&quot;Slim Application Details&quot;" /></p>
<p>Your app will be reachable with the URL <code>http://myappname.phpfogapp.com</code>, I chose <code>http://subscribers.phpfogapp.com</code> for my application.</p>
<p>For the next 2 or 3 minutes the PHPFog platform will work for you, creating the environment for your app and will give you full access to the application&rsquo;s console:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/04/fig4_app_console.png" alt="&quot;PHPFog Application Console&quot;" /></p>
<p>At this point you can clone the application&rsquo;s repository to your local machine using your favorite Git tool:</p>
<pre class="brush: plain; title: ; notranslate">$ git clone git@git01.phpfog.com:subscribers.phpfogapp.com ./SlimSubscribers
Cloning into './SlimSubscribers'...
Identity added: /Users/ragman/.ssh/id_rsa (/Users/ragman/.ssh/id_rsa)
remote: Counting objects: 82, done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 82 (delta 35), reused 0 (delta 0)
Receiving objects: 100% (82/82), 75.79 KiB, done.
Resolving deltas: 100% (35/35), done.
</pre>
<p>I simply cloned the application directory inside the DocumentRoot of my local Apache, so that my developement URL is <code>http://localhost/SlimSubscribers/</code>.</p>
<h2>Build the application locally</h2>
<p>Now you have a local copy of a Slim Framework &ldquo;hello world&rdquo; application. What we need in the first place is to add the other components and organize our project.</p>
<p><img src="http://cdn.cloudspring.com/files/2012/04/fig5_dir_structure.png" alt="&quot;Application Directory Structure&quot;" /></p>
<p>As you can see from the screenshot above, the application root contains only two files: the <code>.htaccess</code> which is left &ldquo;as is&rdquo; and the <code>index.php</code> file that will be our main application controller.</p>
<p>I&rsquo;ve created a <code>lib</code> directory where I moved the full Slim package, then I&rsquo;ve added two more libraries. The <code>db</code> library is a simple PHP class that wraps around PDO. The <code>cake</code> directory contains two classes extraced from the CakePHP framework, used here to sanitize and validate user input. Both classes are available with this article&rsquo;s code package.</p>
<p>At this point you can download the <a href="http://twitter.github.com/bootstrap/">official Twitter Bootstrap</a> package along with the <a href="http://code.jquery.com/jquery-1.7.2.min.js">latest version of jQuery</a> and fill the other directories with its css, js and image files.</p>
<p>Then create an empty database on you local MySQL server and name it <code>slim_subscribers</code>, and use the following query to create the <code>subscribers</code> table:</p>
<pre class="brush: plain; title: ; notranslate">CREATE TABLE subscribers (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(128) NOT NULL,
    lastname VARCHAR(128) NOT NULL,
    email VARCHAR(128) NOT NULL UNIQUE,
    created TIMESTAMP
);
</pre>
<p>With all the main components in place we&rsquo;ll concentrate our work on the main controller <code>index.php</code> and the <code>templates</code> directory where the frontend files will be stored. The application will have two static descriptive pages, <code>home.php</code> and <code>about.php</code> and the <code>subscribe.php</code> page that contains the subscription form. All these pages will include the common header and footer, which I&rsquo;ve put together starting with the sample files provided by Bootstrap on its website.</p>
<p>This is the header:</p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;&lt;?php echo (!empty($pageTitle))? $pageTitle . ' | ' : ''; ?&gt;Slim Subscribe&lt;/title&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;meta name=&quot;description&quot; content=&quot;Sample application with Slim Framework and Twitter Bootstrap&quot;&gt;
    &lt;meta name=&quot;author&quot; content=&quot;Your Name&quot;&gt;
    &lt;!-- Le styles --&gt;
    &lt;link href=&quot;css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;style&gt;
      body {
        padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
      }
    .form-actions {
        background-color: transparent;
        border: none;
    }
    &lt;/style&gt;
    &lt;link href=&quot;css/bootstrap-responsive.min.css&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;!-- Le HTML5 shim, for IE6-8 support of HTML5 elements --&gt;
    &lt;!--[if lt IE 9]&gt;
      &lt;script src=&quot;http://html5shim.googlecode.com/svn/trunk/html5.js&quot;&gt;&lt;/script&gt;
    &lt;![endif]--&gt;
    &lt;!-- Le fav and touch icons --&gt;
    &lt;link rel=&quot;shortcut icon&quot; href=&quot;http://cloudspring.com/files/2012/04/ico/favicon.ico&quot;&gt;
    &lt;link rel=&quot;apple-touch-icon-precomposed&quot; sizes=&quot;114x114&quot; href=&quot;http://cloudspring.com/files/2012/04/ico/apple-touch-icon-114-precomposed.png&quot;&gt;
    &lt;link rel=&quot;apple-touch-icon-precomposed&quot; sizes=&quot;72x72&quot; href=&quot;http://cloudspring.com/files/2012/04/ico/apple-touch-icon-72-precomposed.png&quot;&gt;
    &lt;link rel=&quot;apple-touch-icon-precomposed&quot; href=&quot;http://cloudspring.com/files/2012/04/ico/apple-touch-icon-57-precomposed.png&quot;&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div class=&quot;navbar navbar-fixed-top&quot;&gt;
      &lt;div class=&quot;navbar-inner&quot;&gt;
        &lt;div class=&quot;container&quot;&gt;
          &lt;a class=&quot;btn btn-navbar&quot; data-toggle=&quot;collapse&quot; data-target=&quot;.nav-collapse&quot;&gt;
            &lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;
            &lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;
            &lt;span class=&quot;icon-bar&quot;&gt;&lt;/span&gt;
          &lt;/a&gt;
          &lt;a class=&quot;brand&quot; href=&quot;&lt;?php echo $baseurl ?&gt;/&quot;&gt;Slim Subscribe&lt;/a&gt;
          &lt;div class=&quot;nav-collapse&quot;&gt;
            &lt;ul class=&quot;nav&quot;&gt;
              &lt;li&lt;?php if ('home' == $action) echo ' class=&quot;active&quot;'; ?&gt;&gt;&lt;a href=&quot;&lt;?php echo $baseurl ?&gt;/&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
              &lt;li&lt;?php if ('subscribe' == $action) echo ' class=&quot;active&quot;'; ?&gt;&gt;&lt;a href=&quot;&lt;?php echo $baseurl ?&gt;/subscribe&quot;&gt;Subscribe&lt;/a&gt;&lt;/li&gt;
              &lt;li&lt;?php if ('about' == $action) echo ' class=&quot;active&quot;'; ?&gt;&gt;&lt;a href=&quot;&lt;?php echo $baseurl ?&gt;/about&quot;&gt;About&lt;/a&gt;&lt;/li&gt;
            &lt;/ul&gt;
          &lt;/div&gt;&lt;!--/.nav-collapse --&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;container&quot;&gt;
</pre>
<p>The first thing I added is a dynamic title tag, the <code>$pageTitle</code> variable will be passed by the controller file so we can have a different title for each page or fallback to a default one. The <code>viewport</code> meta tag is provided by default with this version of Bootstrap to support mobile devices and tablets. Then come the styles, first the main <code>bootstrap.css</code>, then some embedded customizations, and last the <code>bootstrap-responsive.css</code> that uses <code>@media</code> queries to adapt the layout for smaller screens.</p>
<p>Another default Bootstrap component is the HTML5 shim javascript, loaded from Google, that injects HTML5 tags support for IE 8 and older. At the end of the header section I placed the favicon and touch icon links, leaving the default Bootstrap icons found on Github.</p>
<p>The common body starts with a responsive Navbar component. I copied the base code from Bootstrap documentation and added the <code>$action</code> variables, injected by Slim controller, to trigget the link active states. The default javascript &ldquo;collapse&rdquo; plugin inside the <code>bootstrap.js</code> will take care of transforming the navigation to a dropdown for small screens.</p>
<p>The footer code is:</p>
<pre class="brush: xml; title: ; notranslate">        &lt;footer&gt;
          &lt;p&gt;(cc) 2012 Your Name &amp;amp;bull; Some rights reserved.&lt;/p&gt;
        &lt;/footer&gt;
    &lt;/div&gt; &lt;!-- /container --&gt;
    &lt;!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline --&gt;
    &lt;script src=&quot;//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js&quot;&gt;&lt;/script&gt;
    &lt;script&gt;window.jQuery || document.write('&lt;script src=&quot;js/jquery-1.7.1.min.js&quot;&gt;&lt;\/script&gt;')&lt;/script&gt;
    &lt;script src=&quot;js/bootstrap.min.js&quot;&gt;&lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>The footer file simply closes the application container and inserts the jQuery library and the <code>bootstrap.js</code> file.</p>
<p>We can start working on the index file now. This file processes all URLs passed by the <code>.htaccess</code> which don&rsquo;t map to actual files on the server.</p>
<pre class="brush: php; title: ; notranslate">/**
 * Simple Configuration
 */
if ('localhost' == $_SERVER['SERVER_NAME']) {
    $config['app']['home'] = '/SlimSubscribers';
    $config['db'] = array(
        'host' =&gt; 'localhost',
        'user' =&gt; 'myuser',
        'pass' =&gt; 'mypass',
        'name' =&gt; 'slim_subscribers',
    );
} else {
    $config['app']['home'] = '';
    $config['db'] = array(
        'host' =&gt; 'mysql-shared-xx.phpfog.com',
        'user' =&gt; 'Slim-xxxxx',
        'pass' =&gt; 'THE ONE YOU CHOSE',
        'name' =&gt; 'yourdb_phpfogapp_com',
    );
} // end if
/**
 * Step 1: Require the Slim PHP 5 Framework
 */
require 'lib/Slim/Slim.php';
// ...add other accessory libraries
require_once 'lib/db/db.class.php';
require_once 'lib/cake/sanitize.php';
require_once 'lib/cake/validation.php';
/**
 * Step 2: Instantiate the Slim application
 */
$app = new Slim();
</pre>
<p>In the first lines I&rsquo;m doing a quick config, placing the database details and the base path which will be prepended to all links. I need this bacause my local version is running in a sub path of localhost. Then the Slim framework and the other libraries are loaded and a new Slim application object in created with the default settings (see Slim docs for more info on this).</p>
<p>Once the <code>$app</code> object is created we can use it. Slim allows us to map the URLs we want to process to our custom functions, and all the unprocessed URLs are treated by default as 404 errors. The simplest mapping are the two static pages:</p>
<pre class="brush: php; title: ; notranslate">// Map the Home route
$app-&gt;get('/', function () use($app, $config) {
    $pageTitle = 'Welcome to Slim Subscribe';
    $action = 'home';
    $app-&gt;render('home.php', array(
        'pageTitle' =&gt; $pageTitle,
        'action' =&gt; $action,
        'baseurl' =&gt; $config['app']['home'],
        ));
});
// Map the About route
$app-&gt;get('/about', function () use($app, $config) {
    $pageTitle = 'About Slim Subscribe';
    $action = 'about';
    $app-&gt;render('about.php', array(
        'pageTitle' =&gt; $pageTitle,
        'action' =&gt; $action,
        'baseurl' =&gt; $config['app']['home'],
        ));
});
</pre>
<p>The <code>$app->get()</code> method takes the given URI path (<code>/</code> and <code>/about</code>) as first parameter and maps the HTTP method <code>GET</code> for this URL to a function passed as a second parameter. In this example I use two anonymous functions (PHP 5.3 or above is required) to which I pass the <code>$app</code> and <code>$config</code> variables that will be seen as local in scope.</p>
<p>First I&rsquo;m setting the current <code>$pageTitle</code> and <code>$action</code> values, then with the method <code>$app->render()</code> I tell the application object to load the <code>home.php</code> template file (first parameter) from the default <code>templates</code> directory and to inject the give variables using the the array provided as second parameter. The same is done for the <code>/about</code> URI. The <code>home.php</code> template file looks like:</p>
<pre class="brush: xml; title: ; notranslate">&lt;?php require_once 'header.php';?&gt;
&lt;div class=&quot;hero-unit&quot;&gt;
    &lt;h1&gt;Hello, world!&lt;/h1&gt;
    &lt;p&gt;This is a simple subscription form application built with Slim Framework, styled with Bootstrap and hosted on PHPFog.&lt;/p&gt;
    &lt;p&gt;
        &lt;a class=&quot;btn btn-primary btn-large&quot; href=&quot;&lt;?php echo $baseurl ?&gt;/subscribe&quot;&gt;Subscribe now&lt;/a&gt; or
        &lt;a class=&quot;btn&quot; rel=&quot;external&quot; href=&quot;http://phpfog.com/&quot;&gt;Learn more about PHPFog &amp;amp;raquo;&lt;/a&gt;
    &lt;/p&gt;
&lt;/div&gt;
&lt;?php require_once 'footer.php'; ?&gt;
</pre>
<p>And the <code>about.php</code> template file is:</p>
<pre class="brush: xml; title: ; notranslate">&lt;?php require_once 'header.php';?&gt;
&lt;div class=&quot;page-header&quot;&gt;
    &lt;h1&gt;About Slim Subscribe&lt;/h1&gt;
&lt;/div&gt;
&lt;div class=&quot;row content&quot;&gt;
    &lt;div class=&quot;span12&quot;&gt;
        &lt;p&gt;Slim Subscribe is a demo application written to test the PHPFog cloud platform.&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;Built using &lt;a href=&quot;http://www.slimframework.com/&quot;&gt;Slim Framework&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;Styled with &lt;a href=&quot;http://twitter.github.com/bootstrap/&quot;&gt;Twitter Bootstrap&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;?php require_once 'footer.php'; ?&gt;
</pre>
<p>Both files include the common header and footer. The home template uses a component called <code>hero-unit</code>, which is intended to showcase content, and some well styled buttons. The about page uses a standard <code>page-header</code> component and a one-column container for its content.</p>
<p>The <code>/subscribe</code> URL is the application&rsquo;s core functionality, it has a structure similar to the other two pages but it also has to handle the form interface and the data posted by the user. The controller code for subcribe is:</p>
<pre class="brush: php; title: ; notranslate">// Map the Subscribe route
$app-&gt;map('/subscribe', function () use($app, $config) {
    $pageTitle = 'Join Slim Subscribe';
    $action = 'subscribe';
    $data = array();
    $errors = array();
    if ($app-&gt;request()-&gt;isPost()) {
        // Sanitize
        $data = $app-&gt;request()-&gt;post();
        $data = Sanitize::clean($data, array('escape' =&gt; FALSE));
        // Validate
        $valid = Validation::getInstance();
        if (!$valid-&gt;email($data['email'])) {
            $errors['email'] = 'Invalid email address';
        } // end if
        if (!$valid-&gt;notEmpty($data['firstname'])) {
            $errors['firstname'] = 'Please insert your name';
        } // end if
        if (!$valid-&gt;notEmpty($data['lastname'])) {
            $errors['lastname'] = 'Please insert your last name';
        } // end if
        // Check/Insert subscriber
        if (empty($errors)) {
            if ($db = Db::getConnection()) {
                try {
                    // First check
                    $query = &quot;SELECT COUNT(id) AS count FROM subscribers WHERE email = :email&quot;;
                    $stmt = $db-&gt;prepare($query);
                    $stmt-&gt;bindParam(':email', $data['email'], PDO::PARAM_STR);
                    $stmt-&gt;execute();
                    $row = $stmt-&gt;fetch(PDO::FETCH_ASSOC);
                    if ((int) $row['count'] &gt; 0) {
                        throw new PDOException(&quot;This email address is already subscribed!&quot;);
                    } // end if
                    // Then Insert
                    $query = &quot;INSERT INTO subscribers (firstname, lastname, email) VALUES(:firstname, :lastname, :email)&quot;;
                    $stmt = $db-&gt;prepare($query);
                    $stmt-&gt;bindParam(':firstname', $data['firstname']);
                    $stmt-&gt;bindParam(':lastname',  $data['lastname']);
                    $stmt-&gt;bindParam(':email',     $data['email']);
                    $stmt-&gt;execute();
                    $app-&gt;flashNow('success', &quot;Subscription completed successfully!&quot;);
                } catch (PDOException $e) {
                    $app-&gt;flashNow('error', &quot;Unable to process your request: &quot; . $e-&gt;getMessage());
                } // end try
            } else {
                $app-&gt;flashNow('error', &quot;Unable to access access database&quot;);
            } // end if
        } // end if
    } // end if
    $app-&gt;render('subscribe.php', array(
        'pageTitle' =&gt; $pageTitle,
        'action' =&gt; $action,
        'data' =&gt; $data,
        'errors' =&gt; $errors,
        'baseurl' =&gt; $config['app']['home'],
        ));
})-&gt;via('GET', 'POST');
</pre>
<p>First of all you can notice that the method used to map the URI is different. I&rsquo;m using the <code>$app->map()</code> method which allows to specify more than one HTTP method. In this case the GET method displays the form and the POST method deals with the submitted data. The first and last part of the function is similar to the other pages: at the beginning we set some variables and at the end they are passed to the view file. This function uses two additional variables, <code>$errors</code> that contains the input validation errors and <code>$data</code> that stores the data submitted by the user.</p>
<p>The method <code>$app->request()->isPost()</code> checks for posted data, if there is something posted it&rsquo;s then copied into the <code>$data</code> array with <code>$app->request()->post()</code>. The posted data is first sanitized in order to remove invalid characters and then validated and any error found is stored into the <code>$errors</code> array. If there are no data validation errors the script tries to connect to the database, the <code>$app->flashNow()</code> method is used to store an error message into the current session. The template will have access to an associative array called <code>$flash</code> containing all the messages.</p>
<p>The database logic takes place inside the <code>try/catch</code> statement. First we check if the email address submitted is already registered, if so an exception is thrown. Then we try to insert the posted data into the subscribers table, the <code>$app->flashNow()</code> is used in both success and error cases. This lead us directly to the subscribe frontend.</p>
<pre class="brush: xml; title: ; notranslate">&lt;?php require_once 'header.php';?&gt;
&lt;div class=&quot;page-header&quot;&gt;
    &lt;h1&gt;Join Subscribe&lt;/h1&gt;
&lt;/div&gt;
&lt;?php if (!empty($flash['error'])): ?&gt;
&lt;div class=&quot;alert alert-error&quot;&gt;
    &lt;a class=&quot;close&quot; data-dismiss=&quot;alert&quot;&gt;×&lt;/a&gt;
    &lt;?php echo $flash['error'] ?&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;
&lt;?php if (!empty($flash['success'])): ?&gt;
&lt;div class=&quot;alert alert-success&quot;&gt;
    &lt;?php echo $flash['success'] ?&gt;
    &lt;a href=&quot;&lt;?php echo $baseurl ?&gt;/subscribe&quot;&gt;Do it again &amp;amp;raquo;&lt;/a&gt;
&lt;/div&gt;
&lt;?php else: ?&gt;
&lt;div class=&quot;row content&quot;&gt;
    &lt;div class=&quot;span12&quot;&gt;
        &lt;form class=&quot;form-horizontal&quot; action=&quot;&quot; method=&quot;post&quot;&gt;
            &lt;div class=&quot;control-group&lt;?php if (!empty($errors['email'])) echo ' error' ?&gt;&quot;&gt;
                &lt;label for=&quot;email&quot; class=&quot;control-label&quot;&gt;Your email address&lt;/label&gt;
                &lt;div class=&quot;controls&quot;&gt;
                    &lt;input name=&quot;email&quot; id=&quot;email&quot; class=&quot;input-xlarge&quot; type=&quot;email&quot; placeholder=&quot;john@example.com&quot; value=&quot;&lt;?php echo (!empty($data['email'])) ? $data['email'] : ''; ?&gt;&quot;&gt;
                    &lt;?php $field = 'email'; if (!empty($errors[$field])):?&gt;&lt;span class=&quot;help-inline&quot;&gt;&lt;?php echo $errors[$field] ?&gt;&lt;/span&gt;&lt;?php endif; ?&gt;
                &lt;/div&gt;
            &lt;/div&gt;
            &lt;div class=&quot;control-group&lt;?php if (!empty($errors['firstname'])) echo ' error' ?&gt;&quot;&gt;
                &lt;label for=&quot;firstname&quot; class=&quot;control-label&quot;&gt;Name&lt;/label&gt;
                &lt;div class=&quot;controls&quot;&gt;
                    &lt;input name=&quot;firstname&quot; id=&quot;firstname&quot; class=&quot;input-xlarge&quot; type=&quot;text&quot; placeholder=&quot;John&quot; value=&quot;&lt;?php echo (!empty($data['firstname'])) ? $data['firstname'] : ''; ?&gt;&quot;&gt;
                    &lt;?php $field = 'firstname'; if (!empty($errors[$field])):?&gt;&lt;span class=&quot;help-inline&quot;&gt;&lt;?php echo $errors[$field] ?&gt;&lt;/span&gt;&lt;?php endif; ?&gt;
                &lt;/div&gt;
            &lt;/div&gt;
            &lt;div class=&quot;control-group&lt;?php if (!empty($errors['lastname'])) echo ' error' ?&gt;&quot;&gt;
                &lt;label for=&quot;lastname&quot; class=&quot;control-label&quot;&gt;Last Name&lt;/label&gt;
                &lt;div class=&quot;controls&quot;&gt;
                    &lt;input name=&quot;lastname&quot; id=&quot;lastname&quot; class=&quot;input-xlarge&quot; type=&quot;text&quot; placeholder=&quot;Smith&quot; value=&quot;&lt;?php echo (!empty($data['lastname'])) ? $data['lastname'] : ''; ?&gt;&quot;&gt;
                    &lt;?php $field = 'lastname'; if (!empty($errors[$field])):?&gt;&lt;span class=&quot;help-inline&quot;&gt;&lt;?php echo $errors[$field] ?&gt;&lt;/span&gt;&lt;?php endif; ?&gt;
                &lt;/div&gt;
            &lt;/div&gt;
            &lt;div class=&quot;form-actions&quot;&gt;
                &lt;button class=&quot;btn btn-primary btn-large&quot; type=&quot;submit&quot;&gt;Subscribe&lt;/button&gt;
            &lt;/div&gt;
        &lt;/form&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;
&lt;hr/&gt;
&lt;?php require_once 'footer.php'; ?&gt;
</pre>
<p>The common header and footer templates are included and a <code>page-header</code> component is used for the title. Just after the page title the script checks the <code>$flash</code> session variable for global application errors. The error message is displayed using the alert classes provided by Bootstrap. The &ldquo;x&rdquo; anchor is hooked automatically by the Javascript and used to close the message box.</p>
<p>A similar check is performed for success messages, displayed using the &ldquo;alert-success&rdquo; class. If we don&rsquo;t have any success messages either there were some errors or there weren&rsquo;t data posted, so the form is displayed. The subscription form is built using the component provided by Bootstrap. I chose the &ldquo;form-horizontal&rdquo; form type and each control is wrapped around a &ldquo;control-group&rdquo; div. For each control group I check to see if the related data triggered any validation error and if it&rsquo;s the case a class of &ldquo;error&rdquo; is added to the group and the corresponding message is displayed near the input field.</p>
<p>The last line of the <code>index.php</code> controller file is <code>$app->run();</code> and it&rsquo;s responsible for executing the Slim application.</p>
<h2>Test and deploy</h2>
<p>We should have our application working perfectly from our localhost machine at this point. All we have to do in order to publish it is:</p>
<ul>
<li>create the subscribers table into our remote database using the phpMyAdmin provided by PHPFog,</li>
<li>do a <code>git push</code> command from our favorite git interface.</li>
</ul>
<p>Your application is up and running at <code>http://theappname.phpfogapp.com</code> and it&rsquo;s perfectly usable from desktop machines, tablets and smartphones.</p>
<h2>Summary</h2>
<p>Undoubtely PHPFog is another great tool at your disposal to publish you applications quickly. Is has still some limitations, most of them due to the fact that it&rsquo;s still a young platform. Nontheless reading the documentation you see that the staff behind the scenes is working really hard to fill the gaps and in the meantime they provide you with tips and tricks to work around the current limits.</p>
<p>Then there is the Bootstrap interface framework, that coupled with Slim or any other of your favorite PHP library, is a great starting point to build awesome user interfaces and let you concentrate on programming. In fact it took me more time to write this article than to build the sample application from scratch. <img src='http://cdn.cloudspring.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I hope this tutorial has boost your couriosity to explore the other platform features. Happy Coding!</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/segrQh2qDPs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/a-cloud-dedicated-to-php-apps-say-hello-to-phpfog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/a-cloud-dedicated-to-php-apps-say-hello-to-phpfog/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-cloud-dedicated-to-php-apps-say-hello-to-phpfog</feedburner:origLink></item>
		<item>
		<title>Amazon Cloud Drive</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/TDhTrAkZVpI/</link>
		<comments>http://cloudspring.com/amazon-cloud-drive/#comments</comments>
		<pubDate>Tue, 08 May 2012 03:33:05 +0000</pubDate>
		<dc:creator>Andy Hawthorne</dc:creator>
				<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1798</guid>
		<description><![CDATA[<img width="150" height="94" src="http://cdn.cloudspring.com/files/2012/05/Screen-Shot-2012-05-08-at-1.32.27-PM-150x94.png" class="attachment-thumbnail wp-post-image" alt="Screen Shot 2012-05-08 at 1.32.27 PM" title="Screen Shot 2012-05-08 at 1.32.27 PM" />There are plenty of cloud storage options available, and many now offer 5 Gb of free space. Google have just joined the fray with Drive, and we all know about DropBox of course. You may of heard about Amazon S3, and EC2, but Amazon also offer another cloud storage solution called Amazon Cloud Drive. It [...]]]></description>
			<content:encoded><![CDATA[<img width="150" height="94" src="http://cdn.cloudspring.com/files/2012/05/Screen-Shot-2012-05-08-at-1.32.27-PM-150x94.png" class="attachment-thumbnail wp-post-image" alt="Screen Shot 2012-05-08 at 1.32.27 PM" title="Screen Shot 2012-05-08 at 1.32.27 PM" /><p>There are plenty of cloud storage options available, and many now offer 5 Gb of free space. Google have just joined the fray with Drive, and we all know about DropBox of course.</p>
<p>You may of heard about Amazon S3, and EC2, but Amazon also offer another cloud storage solution called <a href="https://www.amazon.com/clouddrive/learnmore">Amazon Cloud Drive</a>. It is a more user friendly storage cloud and you get a free 5 Gb storage limit, and any music you buy from Amazon MP3 downloads can be stored there too &#8211; without affecting your free 5Gb space.</p>
<p>Amazon have now released a desktop app for both Windows and Mac. It tries to offer some integration with the operating system so that it is easy to upload stuff to your Amazon Cloud Drive.</p>
<p>But is Cloud Drive very useful? How does its features compare with DropBox? Lets take a look.</p>
<h2>The concept</h2>
<p>The idea behind Cloud Drive is not quite the same as DropBox. With DropBox the idea is: &#8220;a folder everywhere&#8221; to store your stuff, while Cloud Drive uses the idea that you access the cloud to get to your stuff, there is no locally stored folder.</p>
<p>You can download a file using the desktop apps (we&#8217;ll see those later in this article), or you can do it directly from the web interface.</p>
<h2>Getting started</h2>
<p>If you already have an Amazon account (who hasn&#8217;t?) starting out is easy. All you need to do is go to the <a href="https://www.amazon.com/clouddrive/learnmore">Cloud Drive information page</a>, click the Get Started button, and then sign in with your Amazon credentials. Your cloud drive will be available immediately.</p>
<p>Tha main interface provides the usual folders you might expect:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/2.png" alt="Cloud Drive web interface" title="" /></p>
<p>You can see that all the usual options you might expect are available. You can: upload files, create folders, and delete files. To upload new files, click the large Upload Files button:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/3.png" alt="uploading files to the web interface" title="" /></p>
<p>I have created a folder called &#8220;Testing&#8221; and by clicking into that folder, I can be sure that is where my stuff will be uploaded to. You can selected multiple files (not folders though, there is another way to do that) and Cloud Drive will upload each one in turn. Once complete, you will see your files and a confirmation message:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/4.png" alt="uploading files to the web interface" title="" /></p>
<h3>Where do uploads go by default?</h3>
<p>Anything uploaded will go the Uploads folder in your Cloud Drive. you can then move them to another folder which we will get to in later in the article.</p>
<h3>Tablet/mobile usage</h3>
<p>You can access Cloud Drive from your iPad, and you can view the contents of folders. however, you can&#8217;t upload or download files because Flash is needed. Also, there are no mobile apps available to interface with your Cloud Drive.</p>
<h2>The desktop apps</h2>
<p>Amazon recently released desktop applications to offer some integration with Cloud Drive. The apps are available for Mac and Windows, and can be downloaded from <a href="http://www.amazon.com/gp/feature.html?ie=UTF8&amp;docId=1000796781">here</a>.</p>
<p>Amazon have chosen to ignore Linux at this point in time, although you could still use the web interface of course.</p>
<p>Once you have installed the desktop app you will have a tray icon (Windows) or a menu bar icon (Mac) for interfacing with Cloud Drive. As I have already said, Cloud Drive does not store things locally, only on the cloud. So there won&#8217;t be a Cloud Drive folder like the DropBox one you probably already have.</p>
<h3>Windows</h3>
<p>You can right-click a file or folder and choose &#8220;Send to&#8230;&#8221; The sub menu that pops out will show &#8220;Amazon Cloud Drive&#8221; as an option. </p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/5.png" alt="uploading files via the Windows desktop app" title="" /></p>
<p>Click that, and your file/folder will be uploaded. You will also get a system tray notification when the upload has completed successfully. When you download a file from the web interface, it will be stored in your Downloads folder unless you have specified a different one in the options menu.</p>
<h3>Mac</h3>
<p>There are 2 options for uploading files: you can drag the file/folder to the Cloud Drive icon on your menu bar, or you can right-click, click &#8220;Services&#8221; and then choose &#8220;Upload to Cloud Drive&#8221;. Depending on the file type you might have the upload option available on your first right-click.</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/6.png" alt="uploading files via the Mac desktop app" title="" /></p>
<p>If you have Growl installed you will receive a notification when the upload is complete:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/7.png" alt="uploading files via the Mac desktop app" title="" /></p>
<h2>Moving files in your Cloud Drive</h2>
<p>Now that you have uploaded some files and/or folders, the next we need to look at is moving stuff around. This has to be done via the web app.</p>
<p>Once logged in, click into your uploads folder, and then use the tick boxes to select files that you want to move. Clicking on the &#8220;More Actions&#8221; button will provide you with the option to move the files selected:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/8.png" alt="moving files" title="" /></p>
<p>Clicking the &#8220;Move&#8221; option will produce a window where you can choose the folder you would like to move the files to:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/9.png" alt="moving files" title="" /></p>
<p>Clicking the &#8220;Move Items&#8221; button will then carry out the file move and when complete, close the window. There will be a message in the main window confirming that you have moved the files:</p>
<p><img src="http://cdn.cloudspring.com/files/2012/05/10.png" alt="moving files" title="" /></p>
<h2>Conclusion</h2>
<p>Amazon Cloud Drive is far more basic than DropBox. It is also lacking in features when compared with many other cloud storage services. However, in some ways that is one of its most redeeming features &#8211; simplicity. Although the web interface needs to be tablet enabled, it does everything you need it to with minimum fuss.</p>
<p>The 5Gb of space is more generous than the free offering from DropBox, and the cost of further space is vey competitive. Amazon charge $20 per year for 20Gb of space compared with $99 per year for 50Gb of space from DropBox. As an added bonus, Amazon will store all your MP3&#8242;s purchased from them for free.</p>
<p>Now that Amazon have provided the desktop integration software it does make Cloud Drive a bit more usable, so if you are looking for a cheap cloud storage solution give Cloud Drive a try.</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/TDhTrAkZVpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/amazon-cloud-drive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/amazon-cloud-drive/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=amazon-cloud-drive</feedburner:origLink></item>
		<item>
		<title>Fake S3 – Save time, money, and develop offline</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/MnFGCheh6qA/</link>
		<comments>http://cloudspring.com/fake-s3-save-time-money-and-develop-offline/#comments</comments>
		<pubDate>Thu, 03 May 2012 15:00:18 +0000</pubDate>
		<dc:creator>Aaron Osteraas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1693</guid>
		<description><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_24049792-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_24049792" title="shutterstock_24049792" />Amazon S3 is a extremely powerful service at the core of Amazon Web Services. However, outside of a production environment, S3 can be challenging to work with. It involves passing keys around, provisioning user accounts, and a reliable network connection — not to mention it costs money. At Spool, we built Fake S3 to make [...]]]></description>
			<content:encoded><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_24049792-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_24049792" title="shutterstock_24049792" /><p>Amazon S3 is a extremely powerful service at the core of Amazon Web Services. However, outside of a production environment, S3 can be challenging to work with. It involves passing keys around, provisioning user accounts, and a reliable network connection — not to mention it costs money.</p>
<p>At Spool, we built Fake S3 to make working with S3 in development and testing environments much easier. Our goal was to make a self contained executable that can mimic the majority of S3 Rest API with few external dependencies.</p>
<p>For development, each engineer runs her own instance of Fake S3 where she can put gigabytes of images and video to develop and test against, and her setup will work offline because it is all local. We also have a continuous integration setup that is running tests 24/7 (often against large video files). Fake S3 saves us $1000 a month in bandwidth alone for our tests. In both development and testing, the time saved in not waiting for assets to go back and forth into AWS, especially our larger media files, makes Fake S3 very useful.</p>
<p>We’re releasing Fake S3 as a gem on github. It’s an early release and we’ll keep improving it. If you have ideas or issues, please contribute to the project!</p>
<h3>Installation</h3>
<pre class="brush: ruby; title: ; notranslate">gem install fakes3</pre>
<h3>Running</h3>
<pre class="brush: ruby; title: ; notranslate">fakes3 -r ~/fakes3_root -p 10001</pre>
<h3>Example Client Code</h3>
<pre class="brush: ruby; title: ; notranslate">
require 'rubygems'
require 'aws/s3'
include AWS::S3
AWS::S3::Base.establish_connection!(:access_key_id =&gt; &quot;123&quot;,
                                    :secret_access_key =&gt; &quot;abc&quot;,
                                    :server =&gt; &quot;localhost&quot;,
                                    :port =&gt; &quot;10001&quot;)
Bucket.create('mystuff')
('a'..'z').each do |filename|
  S3Object.store(filename, 'Hello World', 'mystuff')
end
bucket = Bucket.find('mystuff')
bucket.objects.each do |s3_obj|
  puts &quot;#{s3_obj.key}:#{s3_obj.value}&quot;
end
Bucket.delete(&quot;mystuff&quot;,:force =&gt; true) # Delete your bucket and all its keys
</pre>
<p>In general clients can work if you can specify a host and port to connect them, as well as forcing path style requests (instead of subdomains.) Subdomain style S3 requests can work, but it involves adding your bucket names into /etc/hosts (ie. s3.localhost or mybucket.localhost) or using dnsmasq if you have a large number of buckets.</p>
<h3>Simulating Network Conditions</h3>
<p>Another useful feature is the support for simulating network conditions. You can run fakes3 with bandwidth limiting enabled like so:</p>
<pre class="brush: plain; title: ; notranslate">fakes3 -r ~/fakes3_root -p 10001 --limit=50K</pre>
<p>This will limit your GET request bandwidth to 50K/s per request instead of instantly off of your local machine. This is very convenient, for example, to simulate how mobile devices would behave in the real world.</p>
<h3>Related Tools</h3>
<p>Fake S3 is great for development and testing due to its simplicity, but is not intended to replace S3 in production. If you want to replace S3, there are other tools such as <a href="http://ceph.newdream.net/">Ceph</a>, <a href="https://github.com/mattjamieson/parkplace">ParkPlace</a> (supports bitorrent), <a href="https://github.com/razerbeans/boardwalk">Boardwalk</a> (S3 interface in front of MongoDB), and <a href="http://basho.com/products/riakcs/">RiakCS</a> that you can check out.</p>
<p>This article has been republished from the <a href="http://blog.getspool.com/2012/04/18/fake-s3-save-time-money-and-develop-offline/">Spool Blog</a> with permission.</p>
<p><small><a href="http://www.shutterstock.com/cat.mhtml?lang=en&#038;search_source=search_form&#038;version=llv1&#038;anyorall=all&#038;safesearch=1&#038;searchterm=s3&#038;search_group=#id=24049792&#038;src=478c3d1b98bf7f86af5cf596abece209-1-5">Audi S3</a> image via Shutterstock</small></p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/MnFGCheh6qA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/fake-s3-save-time-money-and-develop-offline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/fake-s3-save-time-money-and-develop-offline/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=fake-s3-save-time-money-and-develop-offline</feedburner:origLink></item>
		<item>
		<title>CloudSpring is seeking a Managing Editor!</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/ToiIKDiYa-Y/</link>
		<comments>http://cloudspring.com/cloudspring-is-seeking-a-managing-editor/#comments</comments>
		<pubDate>Thu, 03 May 2012 05:17:12 +0000</pubDate>
		<dc:creator>Aaron Osteraas</dc:creator>
				<category><![CDATA[CloudSpring]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1751</guid>
		<description><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/05/shutterstock_94921753-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_94921753" title="shutterstock_94921753" />CloudSpring is seeking an enthusiastic, knowledgable editor, to join the SitePoint ranks!]]></description>
			<content:encoded><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/05/shutterstock_94921753-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_94921753" title="shutterstock_94921753" /><p>CloudSpring is seeking an enthusiastic, knowledgable editor, to join the SitePoint ranks! When you complete the questionnaire, your results and email will be sent to us. If you have any questions, feel free to get in touch with me: aaron |at| sitepoint |dot| com </p>
<p><iframe name='proprofs' id='proprofs' height='800' width='600' frameborder=0 marginwidth=0 marginheight=0 src='http://www.proprofs.com/quiz-school/widget/v3/?id=357678&#038;bgcolor=ffffff&#038;fcolor=000000&#038;tcolor=000000&#038;w=420&#038;h=295&#038;ff=1&#038;fs=medium&#038;pplink=1&#038;socialmedia=0&#038;embedlink=1&#038;showpage=1&#038;btncolor=000000'></iframe>
<div style='font-size:10px; font-family:Arial, Helvetica, sans-serif; color:#000;'><a href='http://www.proprofs.com/quiz-school/story.php?title=cloudspring-parttime-editor-workfromhome' target='_blank' title='CloudSpring Part-Time Editor (Work-From-Home)'>CloudSpring Part-Time Editor (Work-From-Home)</a> &raquo; <a href='http://www.proprofs.com/quiz-school/' title='Quiz maker software' target='_blank'>Quiz maker software</a></div>
<p><small><a href="http://www.shutterstock.com/cat.mhtml?lang=en&#038;search_source=search_form&#038;version=llv1&#038;anyorall=all&#038;safesearch=1&#038;searchterm=editor&#038;search_group=#id=94921753&#038;src=fc966fee332451c7fd31673d6c494076-1-1">Editor image</a> via Shutterstock</small></p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/ToiIKDiYa-Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/cloudspring-is-seeking-a-managing-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/cloudspring-is-seeking-a-managing-editor/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=cloudspring-is-seeking-a-managing-editor</feedburner:origLink></item>
		<item>
		<title>Get in the cloud with CloudFoundry</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/NqxlCkHFD20/</link>
		<comments>http://cloudspring.com/get-in-the-cloud-with-cloudfoundry/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 07:01:12 +0000</pubDate>
		<dc:creator>Vishal Biyani</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1561</guid>
		<description><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_57736003-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_57736003" title="shutterstock_57736003" />Today, we are learning how to get in the cloud with CloudFoundry, a cloud platform by VMWare. On the way, we are going to setup a whole bunch of things that are reusable assets for some future adventures! So without further ado, let&#8217;s take a dive. Get up and running with Spring Roo Example Spring [...]]]></description>
			<content:encoded><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_57736003-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_57736003" title="shutterstock_57736003" /><p>Today, we are learning how to get in the cloud with CloudFoundry, a cloud platform by VMWare. On the way, we are going to setup a whole bunch of things that are reusable assets for some future adventures! So without further ado, let&#8217;s take a dive.</p>
<h2>Get up and running with Spring Roo Example</h2>
<p>Spring roo is a rapid application development (RAD) tool for Java. It offers a wide variety of capabilities, and integrates with various frameworks. What we are interested in, is getting a project up and running which we can use in this tutorial. You can download Roo from <a href="http://www.springsource.org/spring-community-download" target="_blank">here</a> and then extract in an appropriate directory. Modify the PATH variable to include the &#8220;bin&#8221; subdirectory of Roo. To check if we are all set properly, type &#8220;roo&#8221; at command prompt and it should show a screen like following:</p>
<p><img class="alignnone" src="http://cdn.cloudspring.com/files/2012/04/041512_2239_Getincloudw1.png" alt="" width="410" height="106" /></p>
<p>If Roo is running fine, then we are just one step away from our project being ready. Go to the samples directory in the Roo directory and copy the &#8220;clinic.roo&#8221; file to where you want your project to be located. Navigate to directory where you have placed clinic.roo file. Now enter &#8220;roo&#8221; which will take you to roo command prompt, and then run following command.</p>
<pre class="brush: plain; title: ; notranslate">
script --file clinic.roo
</pre>
<p>This will generate the code for a sample pet clinic project. You can see what commands are fired to roo by checking the clinic.roo file in any text editor. Once the project is generated, you can quit the roo prompt with &#8220;exit&#8221; command. To test if the project we have created, run the command &#8220;mvn tomcat:run&#8221; from the directory where project and pom.xml file is located. The command will invoke an embedded container and host project within it. When the command execution finishes you will notice the port and project host:</p>
<pre class="brush: plain; title: ; notranslate">
2012-04-11 09:29:11,657 [main] INFO org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'petclinic': initialization completed in 1918 ms
Apr 11, 2012 9:29:11 AM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080
Apr 11, 2012 9:29:11 AM org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080
</pre>
<p>To check the application hit the URL &#8220;<a href="http://127.0.0.1:8080/petclinic/">http://127.0.0.1:8080/petclinic/</a>&#8220;. You can play around the application to understand the functionality that it offers. If all looks good, we have created a project from scratch in less than ten minutes!</p>
<p><img src="http://cdn.cloudspring.com/files/2012/04/041512_2239_Getincloudw2.png" alt="" /></p>
<p>Go back to roo command prompt and fire command</p>
<pre class="brush: plain; title: ; notranslate">
$perform package
</pre>
<p>This command takes some time and will package our application with needed dependencies and in web-application format. If you check target directory, it will have a snapshot directory of the build for example in my case: &#8220;petclinic-0.1.0.BUILD-SNAPSHOT&#8221;. This will be ready for deployment when we have our cloud server ready.</p>
<h2>Install Ruby and CloudFoundry VMC</h2>
<p>Install the supported versions of ruby (1.8.7 &amp; 1.9.2) from <a href="http://www.ruby-lang.org/en/downloads/">here</a> suitable for your platform, and check the correctness of installation with &#8220;ruby -v&#8221;. We will install the command line interface (CLI) – &#8220;vmc&#8221; which is a ruby gem. We will be using vmc cli for all operations on CloudFoundry. Our interface is going to be same irrespective of if we are firing commands for a PaaS instance, or a micro instance hosted on our machine. For installing vmc gem, fire the command (For linux/unix based systems you will have to prefix with &#8220;sudo&#8221; and have appropriate permissions):</p>
<pre class="brush: plain; title: ; notranslate">
$ gem install vmc
</pre>
<p>For testing our installation quickly, use the command &#8220;vmc info&#8221; which will give output similar to the following text. We will test with an application in later sections.</p>
<pre class="brush: plain; title: ; notranslate">
VMware's Cloud Application Platform
For support visit http://support.cloudfoundry.com
Target: http://api.cloudfoundry.com (v0.999)
Client: v0.3.15
</pre>
<p>For getting a complete list of commands:</p>
<pre class="brush: plain; title: ; notranslate">
$ vmc help
</pre>
<h2>Install VM Player and start CloudFoundry Micro</h2>
<p>You can skip this section and jump to &#8220;Deploy your app to Cloudfoundry cloud&#8221; if you want to skip CloudFoundry micro instance installation etc, or just quickly want to test cloud instance before going into details of setting up a micro instance.</p>
<p>Before we install CloudFoundry micro, go ahead and sign up for an account at http://cloudfoundry.com/ this will help us later. After creating account, go to https:// cloudfoundry.com/micro/dns and create a domain name for your micro CloudFoundry &amp; note down the configuration token created. As soon as you create domain, there will be links to download &#8220;Micro CloudFoundry VM&#8221; and a &#8220;VM player&#8221;, start downloading those while we understand what exactly is happening.</p>
<p>The CloudFoundry micro is a virtual machine &amp; we need a player which can run the virtual machine. You can use one of &#8220;VMWare fusion&#8221;, &#8220;VMWare workstation&#8221; or &#8220;VMWare player&#8221;. The easiest and of course free option is to use VMWare player. Install the VMWare player and extract CloudFoundry micro into desired destination. Start VMWare Player open the &#8220;micro.vmx&#8221; in VMWare Player. You will see the &#8220;micro CloudFoundry vm&#8221; in a powered off state, turn it on.</p>
<p><img src="http://cdn.cloudspring.com/files/2012/04/041512_2239_Getincloudw3.png" alt="" /></p>
<p>Turning on the virtual machine will take you to a configuration menu; let&#8217;s choose 1 to do the configuration. After password configuration is done, the next step is to configure network, I chose DHCP and no proxy, you can make configuration as per your settings. After this the menu you will be asked for CloudFoundry configuration token which we generated online at CloudFoundry.com. It will take couple of minutes before the VM contacts servers and CloudFoundry micro is ready to use. The console will show current configuration, i.e. the URL at which your local CloudFoundry micro instance is available etc. For example in my case it shows configuration on information like below:</p>
<pre class="brush: plain; title: ; notranslate">
Current configuration:
Identity: cf-hostname.cloudfoundry.me (ok)
Admin: &lt;a href=&quot;mailto:email_addd@gmail.com&quot;&gt;email_addd@gmail.com&lt;/a&gt;
IP Address: 122.156.80.122 (network up)
To access your Micro Cloud Foundry instance, use:
vmc target http://api.cf-hostname.cloudfoundry.me
</pre>
<h2>Deploy your app to CloudFoundry micro</h2>
<p>We are all set! Assuming all previous steps have been done successfully, open the Ruby vmc command prompt, let&#8217;s try to register the CloudFoundry micro instance in vmc, for this let&#8217;s first set target and then do registration.</p>
<pre class="brush: plain; title: ; notranslate">
$vmc target http://api.cf-hostname.cloudfoundry.me
$vmc register
</pre>
<pre style="padding-left: 30px"></pre>
<p>This registration will create a username for CloudFoundry micro Ubuntu VM, and will use password we supplied when creating virtual machine in previous section. Provide an appropriate username and previously used password. Now navigate to directory where we had our snapshot of the project built and fire command</p>
<pre class="brush: plain; title: ; notranslate">
$vmc push
Would you like to deploy from the current directory? [Yn]: y
Application Deployed URL [petclinic.vishalbiyani.cloudfoundry.me]:
Detected a Java SpringSource Spring Application, is this correct? [Yn]: y
Memory Reservation (64M, 128M, 256M, 512M, 1G) [512M]:
Creating Application: OK
Would you like to bind any services to 'petclinic'? [yN]: y
The following system services are available
1: mongodb
2: mysql
3: postgresql
4: rabbitmq
5: redis
Please select one you wish to provision: 2
Specify the name of the service [mysql-e3d94]: vb-test
Creating Service: OK
Binding Service 1: OK
Uploading Application:
Checking for available resources: OK
Processing resources: OK
Packing application: OK
Uploading (18M): OK
Push Status: OK
Staging Application: OK
Starting Application: OK
</pre>
<p>Now the application is successfully hosted at <a href="http://petclinic.cf-hostname.cloudfoundry.me">http://petclinic.cf-hostname.cloudfoundry.me</a> and you will see a screen similar to when we ran Roo application using embedded container.</p>
<h2>Deploy your app to CloudFoundry cloud</h2>
<p>If you have your app up and running on CloudFoundry, simply change your target to point to CloudFoundry</p>
<pre class="brush: plain; title: ; notranslate">
$vmc target api.cloudfoundry.com
</pre>
<p>Your cloud application is just a &#8220;vmc push&#8221; away J refer to previous section, and same prompts are going to repeat to configure your app for cloud.</p>
<h2>Scaling &amp; managing in cloud</h2>
<p>Let&#8217;s look at some handy commands to configure and scale your application.</p>
<p>To look at services you have currently available and provisioned:</p>
<pre class="brush: plain; title: ; notranslate">
$vmc services
============== System Services ==============
+------------+---------+---------------------------------------+
| Service    | Version | Description                           |
+------------+---------+---------------------------------------+
| mongodb    | 1.8     | MongoDB NoSQL store                   |
| mysql      | 5.1     | MySQL database service                |
| postgresql | 9.0     | PostgreSQL database service (vFabric) |
| rabbitmq   | 2.4     | RabbitMQ message queue                |
| redis      | 2.2     | Redis key-value store service         |
+------------+---------+---------------------------------------+
=========== Provisioned Services ============
+-----------------+------------+
| Name            | Service    |
+-----------------+------------+
| mongodb-7fb72   | mongodb    |
| mysql-4cd0      | mysql      |
| vb-postgres     | postgresql |
| vbtest-postgres | postgresql |
+-----------------+------------+
</pre>
<p>To look at applications deployed in your instance:</p>
<pre class="brush: plain; title: ; notranslate">
$vmc apps
+-----------------------+----+---------+----------------------------------------------------+-------------+
| Application           | #  | Health  | URLS                                               | Services    |
+-----------------------+----+---------+----------------------------------------------------+-------------+
| cloudspring-petclinic | 1  | RUNNING | cloudspring-petclinic.vishalbiyani.cloudfoundry.me | mysql-bf5bd |
| petclinic             | 1  | RUNNING | petclinic.vishalbiyani.cloudfoundry.me             | vb-test     |
+-----------------------+----+---------+----------------------------------------------------+-------------+
</pre>
<p>To scale your application to two instances and looking at instances running</p>
<pre class="brush: plain; title: ; notranslate">
$vmc instances petclinic 2
Scaling Application instances up to 2: OK
$vmc instances petclinic
+-------+----------+--------------------+
| Index | State    | Start Time         |
+-------+----------+--------------------+
| 0     | RUNNING  | 04/15/2012 11:50AM |
| 1     | STARTING | 04/15/2012 03:33PM |
+-------+----------+--------------------+
</pre>
<h2>Finally!</h2>
<p>We developed an application using RAD techniques. We installed Ruby which is going to be extremely useful tool in our cloud journey. We created a CloudFoundry micro instance and ran an application locally within it. We also deployed the same app to cloud, all this quite quickly! Although what we did with CloudFoundry today is just a small pice of the cake! Explore and enjoy your journey in this open source PAAS and in cloud.</p>
<p><small><a href="http://www.shutterstock.com/cat.mhtml?lang=en&#038;search_source=search_form&#038;version=llv1&#038;anyorall=all&#038;safesearch=1&#038;searchterm=foundry&#038;search_group=#id=57736003&#038;src=0e3ab0d0862867318bd41d1bdba7855a-1-1">Foundry image</a> via Shutterstock</small></p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/NqxlCkHFD20" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/get-in-the-cloud-with-cloudfoundry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/get-in-the-cloud-with-cloudfoundry/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=get-in-the-cloud-with-cloudfoundry</feedburner:origLink></item>
		<item>
		<title>Architecting for the Cloud</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/Dp33j3nnUvE/</link>
		<comments>http://cloudspring.com/architecting-for-the-cloud/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 16:00:25 +0000</pubDate>
		<dc:creator>Aaron Osteraas</dc:creator>
				<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1598</guid>
		<description><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_55585270-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_55585270" title="shutterstock_55585270" />In today's post we have Architecting for the Cloud by Simone Brunozzi]]></description>
			<content:encoded><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_55585270-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_55585270" title="shutterstock_55585270" /><div style="width:425px" id="__ss_8597858"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/AmazonWebServices/2011-aws-tour-australia-architecting-for-the-cloud-demo-and-best-practices-by-simone-brunozzi" title="Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011 AWS Tour Australia) " target="_blank">Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011 AWS Tour Australia) </a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8597858" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more presentations from <a href="http://www.slideshare.net/AmazonWebServices" target="_blank">Amazon Web Services</a> </div>
</p></div>
<p><small><a href="http://www.shutterstock.com/cat.mhtml?lang=en&#038;search_source=search_form&#038;version=llv1&#038;anyorall=all&#038;safesearch=1&#038;searchterm=architechting&#038;search_group=&#038;orient=&#038;search_cat=&#038;searchtermx=&#038;photographer_name=&#038;people_gender=&#038;people_age=&#038;people_ethnicity=&#038;people_number=&#038;commercial_ok=&#038;color=&#038;show_color_wheel=1#id=55585270&#038;src=8aa1003529faabb3c526c87df8441b7e-1-3">Construction elements</a> image via Shutterstock</small></p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/Dp33j3nnUvE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/architecting-for-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/architecting-for-the-cloud/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=architecting-for-the-cloud</feedburner:origLink></item>
		<item>
		<title>The Best Online Backup &amp; Cloud Storage Solutions</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/-FHdT8LJlew/</link>
		<comments>http://cloudspring.com/the-best-online-backup-cloud-storage-solutions/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 16:00:31 +0000</pubDate>
		<dc:creator>Eric Shafer</dc:creator>
				<category><![CDATA[Backup]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1601</guid>
		<description><![CDATA[<img width="150" height="118" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_79406047-150x118.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_79406047" title="shutterstock_79406047" />Computers have permeated nearly aspects of daily life, from social networking to photography, finances and dating. This reliance on technology has brought a variety of advantages ranging from speed to adaptability. However, when a majority of your personal data and your entire digital life are stored on computers, there is always the risk of losing [...]]]></description>
			<content:encoded><![CDATA[<img width="150" height="118" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_79406047-150x118.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_79406047" title="shutterstock_79406047" /><p>Computers have permeated nearly aspects of daily life, from social networking to photography, finances and dating. This reliance on technology has brought a variety of advantages ranging from speed to adaptability.</p>
<p>However, when a majority of your personal data and your entire digital life are stored on computers, there is always the risk of losing that data. Hardware fails, viruses infect and data gets corrupted due to degredation.</p>
<p>That&#8217;s why the cloud revolution has been so important for businesses and individuals alike. Now, applications are no longer required to be installed on a user machine, they can be used in the cloud, and data can be mirrored and backed up in real time on cloud storage solutions.</p>
<p>Some cloud storage solutions are free, while others are paid. Some allow you unlimited backup, others have a size limit, and of course, there are always bandwidth considerations, but cloud storage is something that every computer user should consider.</p>
<p>It&#8217;s important to mind, however, the amount and type of data that is stored in the cloud. Cloud storage presents somewhat different security and privacy implications, as generally large corporations have better security than your home network, but you are trusting a 3rd party with your data and security.</p>
<p>Therefore, it&#8217;s important to consider what type of data and solution is best for you or your business. To help you in your quest, here&#8217;s a list of the best online backup and cloud storage providers &amp; solutions:</p>
<h3>Dropbox</h3>
<p>Dropbox is a free service that lets you bring all your photos, docs, and videos anywhere. This means that any file you save to your Dropbox will automatically save to all your computers, phones and even the Dropbox website.</p>
<p><a href="https://www.dropbox.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-1.jpg" alt="" width="500" /></a></p>
<h3>ADrive</h3>
<p>A Cloud Solution for Everyone. Protect &amp; manage your personal, business and enterprise-level data with ADrive cloud storage &amp; backup solutions.</p>
<p>ADrive delivers online cloud storage services to millions of individuals, businesses and enterprise-level users. Their goal is to provide users with a convenient and reliable way to better manage their data from virtually anywhere, at any time.</p>
<p><a href="http://www.adrive.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-2.jpg" alt="" width="500" /></a></p>
<h3>CRASHPLAN</h3>
<p>The best free way to back up personal data.Its the best way to back up personal data &#8211; online.<br />
Using it you can Get your files securely anytime, anywhere.</p>
<p><a href="http://www.crashplan.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-3.jpg" alt="" width="500" /></a></p>
<h3>CloudApp</h3>
<p>CloudApp allows you to share images, links, music, videos and files. Here is how it works: choose a file, drag it to the menubar and let us take care of the rest. We provide you with a short link automatically copied to your clipboard that you can use to share your upload with co-workers and friends.</p>
<p><a href="http://getcloudapp.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-4.jpg" alt="" width="500" /></a></p>
<h3>mozy</h3>
<p>Mozy offers a number of backup solutions to fit your individual needs. For non-commercial backup of your personal files, including music, photos, home videos, and personal tax records</p>
<p><a href="http://mozy.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-5.jpg" alt="" width="500" /></a></p>
<h3>LiveDrive</h3>
<p>Livedrive is creating technology that will revolutionise the way people store and access their files, photos, music, videos and other digital content. Our vision is simple: don&#8217;t store files on your PC, store them on your Livedrive instead. Livedrive is your personal storage space on the Internet. It&#8217;s unlimited, it&#8217;s secure and it&#8217;s there forever.<br />
The Livedrive management team is made up of respected industry experts and investors, who have lent their significant experience and financial strength to ensuring that Livedrive is both well-managed and well-funded.</p>
<p><a href="http://www.livedrive.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-6.jpg" alt="" width="500" /></a></p>
<h3>IBackup</h3>
<p>IBackup enables small and medium sized businesses to get enterprise-class online backup with superior performance for their critical data at a fraction of cost. Global corporations, Business houses and people trust IBackup for their storage and backup needs.<br />
IBackup&#8217;s online backup services include applications for automatic scheduling of backups with Compression, Encryption, Incremental/Full backups, Versioning, synchronization, open file support for Outlook, MS SQL Server, MS Exchange Server, Oracle Server, MS SharePoint Server backups and more.</p>
<p><a href="http://www.ibackup.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-7.jpg" alt="" width="500" /></a></p>
<h3>Spideroak</h3>
<p>SpiderOak provides an easy, secure and consolidated free online backup, sync, sharing, access &amp; storage solution for Windows, Mac OS X, and Linux (Ubuntu, Debian, Fedora &amp; openSUSE)</p>
<p><a href="https://spideroak.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-8.jpg" alt="" width="500" /></a></p>
<h3>sugarsync</h3>
<p>SugarSync is a free service that enables you to access, sync and share your files across all your computers and devices. We enable you to backup, sync and share all of your documents, photos, music and movies so that you can access them from your laptop, iPhone, iPad, Android, BlackBerry, or any other device.</p>
<p><a href="https://www.sugarsync.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-9.jpg" alt="" width="500" /></a></p>
<h3>MyPCBackup</h3>
<p>MyPCBackup takes the security and privacy of your data very seriously. All your files are encrypted with the same security as banks use.<br />
Unlike other online backup providers we don&#8217;t limit the amount of files you can backup, enjoy the freedom of unlimited online backup.</p>
<p><a href="http://www.mypcbackup.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-10.jpg" alt="" width="500" /></a></p>
<h3>JustCloud</h3>
<p>JustCloud lets you store all your files online so you can access them from anywhere at anytime.<br />
Store All Your Files In The Cloud<br />
Access Your Files From Anywhere At Anytime, From Any Device.<br />
Professional Cloud Storage from JustCloud is Simple, Fast and Unlimited.<br />
Your Just Cloud account will also function as a Computer backup device<br />
to completely automate all your Cloud Storage needs.</p>
<p><a href="http://www.justcloud.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-11.jpg" alt="" width="500" /></a></p>
<h3>Egnyte HybridCloud</h3>
<p>Egnyte HybridCloud addresses the needs of business users for a simple and easy way to access and share files with team members, at the same time enabling IT to control and monitor all access. The latest enhancements create a solution that scales to meet Enterprise needs.<br />
Egnyte Cloud File Server brings unprecedented file sharing, large file transfer, collaboration and backup capabilities. With the addition of breakthrough Local Cloud technology, Egnyte enables fast local file access and offline access.</p>
<p><a href="http://www.egnyte.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-12.jpg" alt="" width="500" /></a></p>
<h3>YouSendIt</h3>
<p>Offering unlimited storage and convenient accessibility, YouSendIt sits on solid ground in the competitive online storage industry. Designed as an email alternative, this online storage service is built on the premise that you should be able to easily send and receive large files. Recently, YouSendIt added cloud storage to its growing repertoire of services. As a result, YouSendIt is a versatile file sharing and data storage service that is quickly climbing the ranks.</p>
<p><a href="https://www.yousendit.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-13.jpg" alt="" width="500" /></a></p>
<h3>OpenDrive</h3>
<p>OpenDrive, a Palo Alto, California Corporation, provides an online software as a service that helps individuals and businesses store and collaborate on files easily, securely, and professionally.</p>
<p>The current version of OpenDrive was launched in 2008 to provide individuals with a simple solution to backup and share their digital media. Since the company&#8217;s creation, OpenDrive has grown to service over 1 million daily users and is trusted by over 20,000 businesses across the globe.</p>
<p><a href="http://www.opendrive.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-14.jpg" alt="" width="500" /></a></p>
<h3>box</h3>
<p>Box lets you store all of your content online, so you can access, manage and share it from anywhere. Integrate Box with Google Apps and Salesforce and access Box on mobile devices.<br />
You can access, share and collaborate on files anywhere through our award-winning mobile apps. Share folders in a tap, exchange feedback or save files for offline access.</p>
<p><a href="http://www.box.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-15.jpg" alt="" width="500" /></a></p>
<h3>Syncplicity</h3>
<p>Syncplicity’s Virtual Private Cloud lets you sync, access, share and backup your files without changing the way you work. Just set it up once and you’re done — Syncplicity does the rest.<br />
The easiest way to sync, share, access &amp; protect every file you need.Meet your virtual private Cloud.<br />
Sync files with all your computers. Access them from all your mobile devices. Share them without changing your work habits. Make sure everything is backed up. All with the control and security you need.</p>
<p><a href="http://www.syncplicity.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-16.jpg" alt="" width="500" /></a></p>
<h3>iCloud</h3>
<p>iCloud stores your music, photos, documents, and more and wirelessly pushes them to all your devices. Automatic, effortless, and seamless — it just works.<br />
iCloud is so much more than a hard drive in the sky. It makes it quick and effortless to access just about everything on the devices you use every day. iCloud automatically and securely stores your content so it&#8217;s always available to your iPhone, iPad, iPod touch, Mac, or PC. It gives you access to your music, movies, apps, latest photos, and more from whichever device you happen to be using. And it keeps your email, contacts, and calendars up to date across all your devices. No syncing required. No management required. In fact, no anything required. iCloud does it all for you.</p>
<p><a href="https://www.icloud.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-17.jpg" alt="" width="500" /></a></p>
<h3>Acronis</h3>
<p>Acronis software makes virtualization easy; many tools, one unified user interface. Our virtualization solutions deliver server consolidation, backup, recovery, data protection and data storage savings from a single user interface. And we support all major virtual platforms and Windows and Linux environments.</p>
<p><a href="http://www.acronis.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-27.jpg" alt="" width="500" /></a></p>
<h3>Wuala</h3>
<p>Wuala is a secure online storage, made in Switzerland. As the Swiss knife of online storage, it covers all the essential needs for professional and personal use: with Wuala, you can store your files securely online, share them with select others, access them from anywhere, setup automatic backups of your local data, or synchronize whole folders to the cloud. Wuala employs client-side-encryption to achieve a unique level of security. All data is encrypted locally, before it is uploaded. Your password never leaves your computer. Nobody &#8211; not even we as storage provider &#8211; can access your data without your authorization.</p>
<p><a href="http://www.wuala.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-19.jpg" alt="" width="500" /></a></p>
<h3>JungleDisk</h3>
<p>Using JungleDisk protect your files against loss, theft, viruses, and natural disasters. Share business data securely and privately in the office or across the globe. Sync your critical work across all your computers. Access your data from any web browser. You can do all of that and more, on the go, from anywhere, securely, with just a click.</p>
<p><a href="https://www.jungledisk.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-20.jpg" alt="" width="500" /></a></p>
<h3>ubuntu one</h3>
<p>Ubuntu One is the personal cloud that brings your digital life together, so you can enjoy your content, your way, wherever you are. With our suite of cloud services including storage, sync, sharing and streaming &#8211; you have immediate access to your music collection, favorite photos, videos, important documents and more, at any time and from any device.</p>
<p><a href="https://one.ubuntu.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-21.jpg" alt="" width="500" /></a></p>
<h3>Symform</h3>
<p>Symform is a revolutionary cloud storage &amp; backup service, providing up to 200GB free and unlimited online storage for a low flat fee. Symform’s distributed global network is the fastest, most secure &amp; lowest cost cloud storage available today. You join the network by contributing some of your excess local storage in exchange for really affordable cloud storage. Join the Revolution &amp; try Symform today!</p>
<p><a href="http://www.symform.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-22.jpg" alt="" width="500" /></a></p>
<h3>SecurusVault</h3>
<p>SecurusVault&#8217;s online backup service uses trusted cloud<br />
storage technology to ensure your data is backed up securely.<br />
Access, share, backup and manage your digital life with SecurusVault.<br />
Protect your data against hard drive failure or computer theft with SecurusVault’s online data archive. Make extra room on your hard drive but archiving files not used on a daily basis.</p>
<p><a href="http://www.securusvault.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-23.jpg" alt="" width="500" /></a></p>
<h3>Asigra</h3>
<p>Asigra brings a Cloud Model to backup and recovery &#8211; including the backup and recovery of mobile devices such as tablets and smart phones &#8211; through our Cloud Backup, Recovery and Restore software solution: Asigra Cloud Backup™ v11.</p>
<p><a href="http://www.asigra.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-24.jpg" alt="" width="500" /></a></p>
<h3>Microsoft SkyDrive</h3>
<p>Microsoft Skydrive is all about the ability to make backups and store files online rather than actually making it easy.<br />
In many respects, Skydrive is just a technical option &#8211; a place to put your files online. This is more attractive than it sounds: the service offers 25GB of free storage for docs, photos, or any file you care to post. There is a &#8216;single sign-on&#8217; mentality here. Once you sign up for Live, you are automatically grandfathered in to Skydrive so there is no separate registration process.</p>
<p><a href="http://skydrive.live.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-25.jpg" alt="" width="500" /></a></p>
<h3>Carbonite</h3>
<p>online backup service works quietly and continually in the background protecting your files. If something goes wrong or you delete a file by accident, we’ve still got a copy. Carbonite Online Backup now includes remote file access! Retrieve files you have backed up with Carbonite from any computer with an internet connection.</p>
<p><a href="http://www.carbonite.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-18.jpg" alt="" width="500" /></a></p>
<h3>intronis</h3>
<p>Intronis offers the most secure online backup storage services, online backup software, and data recovery services.<br />
Intronis not only offers a great online backup and recovery service to MSPs, but offers the unbeatable benefits of Intronis employees who care, put their best foot forward, and do all they can to make sure each and every partner is successful with their online backup business. Intronis isn&#8217;t just here to sell you a solution, but to make sure each partner has the tools to succeed in their business.</p>
<p><a href="http://www.intronis.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-28.jpg" alt="" width="500" /></a></p>
<h3>CoreVault</h3>
<p>CoreVault&#8217;s services are scaled to fit your needs. First, we grow with you. As your data expands, we accommodate its growth seamlessly. Second, we flexibly adjust services to keep our plan cost-effective. (Example, we can automatically switch data from Online protection to Archive at appropriate intervals, a process controlled by you). Finally, scalability works in reverse; our service can handle individual file and message restores as easily as recovering entire systems.</p>
<p><a href="http://www.corevault.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-29.jpg" alt="" width="500" /></a></p>
<h3>zmanda</h3>
<p>Zmanda Cloud Backup (ZCB) is a radically simple-to-use and cost-effective backup and disaster recovery solution. ZCB backs up Windows servers, desktops and live applications such as Microsoft Exchange and SQL Server to Amazon’s highly dependable online storage.</p>
<p><a href="http://www.zmanda.com/"><img src="http://cdn.cloudspring.com/files/2012/04/backup-30.jpg" alt="" width="500" /></a></p>
<p><small><a href="http://www.shutterstock.com/cat.mhtml?lang=en&#038;search_source=search_form&#038;version=llv1&#038;anyorall=all&#038;safesearch=1&#038;searchterm=cloud+backup&#038;search_group=&#038;orient=&#038;search_cat=&#038;searchtermx=&#038;photographer_name=&#038;people_gender=&#038;people_age=&#038;people_ethnicity=&#038;people_number=&#038;commercial_ok=&#038;color=&#038;show_color_wheel=1#id=79406047&#038;src=fdb1c657b728eae43ac8b4b1655693c3-1-47">One hand cursor</a> image via Shutterstock</small></p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/-FHdT8LJlew" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/the-best-online-backup-cloud-storage-solutions/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://cloudspring.com/the-best-online-backup-cloud-storage-solutions/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-best-online-backup-cloud-storage-solutions</feedburner:origLink></item>
		<item>
		<title>10 Recommended Cloud Management Tools</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/hXihUW_rKtQ/</link>
		<comments>http://cloudspring.com/10-recommended-cloud-management-tools/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 17:10:06 +0000</pubDate>
		<dc:creator>Alex Scott</dc:creator>
				<category><![CDATA[Cloud Basics]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1641</guid>
		<description><![CDATA[<img width="150" height="128" src="http://cdn.cloudspring.com/files/2012/04/machine1-150x128.jpg" class="attachment-thumbnail wp-post-image" alt="machine" title="machine" />Cloud management is becoming a popular concept and as such there are many vendors who offer a complete set of cloud services with the use of cloud computing technology. An umbrella is usually created to cover the management of data centers for multiple locations, computing and scalability, applications for security and monitoring among other things. [...]]]></description>
			<content:encoded><![CDATA[<img width="150" height="128" src="http://cdn.cloudspring.com/files/2012/04/machine1-150x128.jpg" class="attachment-thumbnail wp-post-image" alt="machine" title="machine" /><p>Cloud management is becoming a popular concept and as such there are many vendors who offer a complete set of cloud services with the use of cloud computing technology. An umbrella is usually created to cover the management of data centers for multiple locations, computing and scalability, applications for security and monitoring among other things. Sometimes it can be a daunting task to find good, efficient cloud management tools and as such, we have taken the liberty of providing you with 10 recommended ones.</p>
<p><a href="http://www.plex.com/">Plex Online</a></p>
<p>This is an enterprise resource planning manufacturing software for your cloud with advanced technical features that suits all manufacturing departments. It will provide you with insight to the operations, thus returning intelligence information throughout the enterprise supply chain.</p>
<p><a href="http://cloudstack.org/software.html">Cloud.com – CloudStack</a></p>
<p>They offer an advanced software platform that can be used to initiate private or public clouds with the addition of the necessary tools needed to generate, organize and manage cloud applications that could be multitenant or multitier. The software package is also open source so developers with the knowledge and know-how can tweak the applications to further suit their needs. The CloudStack makes it easy and timely to build cloud services due to the already existing IT services groundwork.</p>
<p><a href="http://www.appfirst.com/">AppFirst</a></p>
<p>This is a tool which is made to monitor the performance of application infrastructure which aids the companies to get a first-hand look of how their infrastructure operates from the inside. The program will lodge itself between your infrastructure and the OS in order to continuously collect data and performance information for the processes that your system goes through.</p>
<p><a href="http://www.rightscale.com/products/">RightScale Cloud Management Platform</a></p>
<p>This platform allows the clients to be able to create, setup and manage important business application on the cloud. Now the organizations will be able to utilize cloud computing without the complexities to manage scalability, economical IT infrastructure and more in a portable and manageable setting.</p>
<p><a href="http://www.informaticacloud.com/">Informatica Cloud</a></p>
<p>They are a multitenant service which offers advanced integration, data replication and data quality by enabling companies and computer users to assimilate data through databases, local systems and cloud-based applications.</p>
<p><a href="http://www.appdynamics.com/">Appdynamics</a></p>
<p>They are among the top vendors of management tools for application performance and architecture for clouds and data centers. You will be able to monitor and manage important cloud based applications and get assistant with cloud migration and full access to cloud bursting.</p>
<p><a href="http://cloudspring.com//localhost/Users/aosteraa/Downloads/results_cloudspring/10RecommendedCloudManagmentTools/bluemilecloud.com/">Bluemile</a></p>
<p>This is enterprise level cloud computing that is made to satisfy your private virtual server and data protection requirements. It is economical while escalating agility with its ability to compute, backup and store.</p>
<p><a href="http://www.cloudlock.com/">CloudLock</a></p>
<p>This is a multifaceted tool for any size organization as it offers access controls, protection for enterprise data and security. The program will grant you control and visibility over the Google Documents for your domain and is able to locate and repair exposure and audit share permissions. It can generate compliance reports, monitor access rights changes and produce alerts if a change is made.</p>
<p><a href="http://www.cloudshare.com/">CloudShare</a></p>
<p>They provide cloud computing with flexibility in relocating enterprise IT systems and applications into the cloud. The system and application will remain as is and the ready-to-go cloud enables you to easily move your enterprise systems to the cloud and share immediately through your browser. In addition, you will have access to a multi virtual machine networked environment where you can edit the virtual machine RAM and more.</p>
<p><a href="http://www.cloudswitch.com/">CloudSwitch</a></p>
<p>This application is able to connect the cloud computing services with enterprise data center, thus outspreading the level of control and security to the cloud. The applications are firmly integrated with the enterprise data center tools and policies. The enterprises can control the cloud’s economical benefit and the agility of the business without the usual intricacies and risks.</p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/hXihUW_rKtQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/10-recommended-cloud-management-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/10-recommended-cloud-management-tools/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=10-recommended-cloud-management-tools</feedburner:origLink></item>
		<item>
		<title>A Year in Cloud Innovation</title>
		<link>http://feedproxy.google.com/~r/cloudspring/~3/71VijpFWAfA/</link>
		<comments>http://cloudspring.com/a-year-in-cloud-innovation/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 16:00:39 +0000</pubDate>
		<dc:creator>Aaron Osteraas</dc:creator>
				<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">http://cloudspring.com/?p=1595</guid>
		<description><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_100459105-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_100459105" title="shutterstock_100459105" />2011 State of the Cloud: A Year&#39;s Worth of Innovation in 30 Minutes &#8211; Jinesh Varia UP Con Keynote View more presentations from Amazon Web Services Sunrise image via Shutterstock]]></description>
			<content:encoded><![CDATA[<img width="150" height="100" src="http://cdn.cloudspring.com/files/2012/04/shutterstock_100459105-150x100.jpg" class="attachment-thumbnail wp-post-image" alt="shutterstock_100459105" title="shutterstock_100459105" /><div style="width:425px" id="__ss_10477946"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/AmazonWebServices/2011-state-of-the-cloud-a-years-worth-of-innovation-in-30-minutes-jinesh-varia-up-con-keynote" title="2011 State of the Cloud: A Year&#39;s Worth of Innovation in 30 Minutes - Jinesh Varia UP Con Keynote" target="_blank">2011 State of the Cloud: A Year&#39;s Worth of Innovation in 30 Minutes &#8211; Jinesh Varia UP Con Keynote</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/10477946" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more presentations from <a href="http://www.slideshare.net/AmazonWebServices" target="_blank">Amazon Web Services</a> </div>
</p></div>
<p><small><a href="http://www.shutterstock.com/cat.mhtml?lang=en&#038;search_source=search_form&#038;version=llv1&#038;anyorall=all&#038;safesearch=1&#038;searchterm=innovation&#038;search_group=&#038;orient=&#038;search_cat=&#038;searchtermx=&#038;photographer_name=&#038;people_gender=&#038;people_age=&#038;people_ethnicity=&#038;people_number=&#038;commercial_ok=&#038;color=&#038;show_color_wheel=1#id=100459105&#038;src=9808165514c13a83614ff9cbdd067c59-1-143">Sunrise</a> image via Shutterstock</small></p>
<img src="http://feeds.feedburner.com/~r/cloudspring/~4/71VijpFWAfA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://cloudspring.com/a-year-in-cloud-innovation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://cloudspring.com/a-year-in-cloud-innovation/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-year-in-cloud-innovation</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 5/80 queries in 0.132 seconds using memcached
Object Caching 1899/2056 objects using memcached
Content Delivery Network via cdn.cloudspring.com

Served from: cloudspring.com @ 2012-05-17 18:44:38 -->

