<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>More of our thoughts:


View RSS feed
</description><title>Our Thoughts</title><generator>Tumblr (3.0; @cloudminellc)</generator><link>http://blog.cloudmine.me/</link><item><title>Host your site on CloudMine (and deploy it with a push)</title><description>&lt;p&gt;We’ve been polishing this feature for a while now, and we’re pleased to officially announce it. You can now use CloudMine to host your HTML5 / JavaScript powered apps. We’ve streamlined the deploy process: you can either drag-and-drop your site’s assets into the Dashboard, or use a git push-based deploy system.&lt;/p&gt;
&lt;h1&gt;How does it work?&lt;/h1&gt;
&lt;p&gt;&lt;img alt="image" src="http://blog-images.cloudmineapp.com/createsite.png" width="500px"/&gt;&lt;/p&gt;
&lt;p&gt;Sign in to your CloudMine account and navigate to your &lt;a href="https://cloudmine.me/dashboard"&gt;Dashboard&lt;/a&gt;. Follow the instructions to create a new site. You’ll be given the option to deploy your site via a zip file of assets, or via git. If you’ve ever used Heroku, you already know how your &lt;a href="https://devcenter.heroku.com/articles/git"&gt;site deploys&lt;/a&gt; will work - just add the CloudMine remote, and push to it when you make changes.&lt;/p&gt;
&lt;h1&gt;Features&lt;/h1&gt;
&lt;p&gt;We’ll provide you with a generated hostname (efficient-border-30.cloudmineapp.com being an example). However, it’s easy to use your own domain: just CNAME your domain to cloudmineapp.com and write it in the Additional Host Names field - we take care of the rest.&lt;/p&gt;
&lt;p&gt;We also provide SSL support automatically - just visit your host with https instead of http (see &lt;a href="https://pennapps.cloudmineapp.com"&gt;&lt;a href="https://pennapps.cloudmineapp.com"&gt;https://pennapps.cloudmineapp.com&lt;/a&gt;&lt;/a&gt; for an example).&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="http://blog-images.cloudmineapp.com/editsite.png" width="500px"/&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/37717254614</link><guid>http://blog.cloudmine.me/post/37717254614</guid><pubDate>Tue, 11 Dec 2012 10:58:34 -0500</pubDate><dc:creator>derekmansen</dc:creator></item><item><title>Teaming up with Singly for Social Superpowers</title><description>&lt;div&gt;
&lt;div class="im"&gt;
&lt;p&gt;&lt;strong&gt;(&lt;a href="#video"&gt;Skip down&lt;/a&gt; to the video if you don&amp;#8217;t feel like reading!)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s a new hip or useful breakout app coming out every few weeks.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s already less-than-easy to integrate with prevalent and mature APIs like Facebook, Twitter and Instagram (who likes dealing with OAuth themselves, anyway?). So who really wants to keep tabs on, much less do the work to integrate with, these and other more niche channels for identity, data access, synching, sharing and a whole host of the messy data work that goes with it?&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="im"&gt;
&lt;p&gt;&lt;a href="http://singly.com" target="_blank"&gt;&lt;img align="middle" alt="Singly Logo" height="115" src="https://singly.com/images/singly-logo_300.png" width="301"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Enter &lt;a href="http://singly.com" target="_blank"&gt;Singly&lt;/a&gt; - the fabric that connects apps together, empowering the rapidly expanding, new class of mobile developers. Singly’s service bridges an app user’s data and friends from one app to another in more powerful ways while saving developers time and energy replicating common patterns and maintenance fixes. Whether you want users to login with their GitHub, Twitter, Flickr, Google or any other myriad of accounts — Singly rounds up all APIs into one, providing developers with a unique and useful service.&lt;/p&gt;
&lt;p&gt;&amp;#8220;What does this mean for me?&amp;#8221; you ask. Good question!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_mao0kzWtfl1qiqgpl.png"/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Prior to now, in order to use our account management and privacy features you had to prompt the user for an email address and password. Our partnership and integration with Singly allows you to create user accounts using any of the major social networks. This makes it trivial to have that &amp;#8220;Login With Facebook&amp;#8221; or &amp;#8220;Login with Twitter&amp;#8221; button, but with many of the social networks Singly supports: &lt;a href="http://www.facebook.com" title="Facebook" target="_blank"&gt;Facebook&lt;/a&gt;, &lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCAQFjAA&amp;amp;url=https%3A%2F%2Ffoursquare.com%2F&amp;amp;ei=6k1aUOKjMcLIyQH8v4GACw&amp;amp;usg=AFQjCNHGGCMoR-Z9GnDspJBbxp6dPtxSCA" title="Foursquare" target="_blank"&gt;Foursquare&lt;/a&gt;, &lt;a href="http://www.linkedin.com" title="LinkedIn" target="_blank"&gt;LinkedIn&lt;/a&gt;, &lt;a href="http://www.twitter.com" title="Twitter" target="_blank"&gt;Twitter&lt;/a&gt;, &lt;a href="http://www.withings.com/" title="Withings" target="_blank"&gt;Withings&lt;/a&gt;, &lt;a href="http://www.dropbox.com" title="Dropbox" target="_blank"&gt;Dropbox&lt;/a&gt;, &lt;a href="http://www.fitbit.com/" title="FitBit" target="_blank"&gt;FitBit&lt;/a&gt;, &lt;a href="http://www.github.com" title="GitHub" target="_blank"&gt;GitHub&lt;/a&gt;, &lt;a href="http://www.wordpress.com" title="Wordpress" target="_blank"&gt;Wordpress&lt;/a&gt;, &lt;a href="http://www.instagram.com" title="Instagram" target="_blank"&gt;Instagram&lt;/a&gt;, &lt;a href="http://meetup.com" target="_blank"&gt;Meetup.com&lt;/a&gt;, &lt;a href="http://www.tumblr.com" title="Tumblr" target="_blank"&gt;Tumblr&lt;/a&gt;, and &lt;a href="http://www.yammer.com" title="Yammer" target="_blank"&gt;Yammer&lt;/a&gt; (say that all in one breath!). As Singly integrates with more networks (which they do at a blazingly fast speed) we will support them as well.&lt;/p&gt;
&lt;p&gt;Beyond auth and login, Singly also gives you fast, structured user data from those networks (like photos, friends, checkins etc). And best of all you get access to all of this through your CloudMine account using our existing APIs! Singly has been completely integrated into the CloudMine platform, OAuth and all.&lt;/p&gt;
&lt;p&gt;All this not only makes it possible to authenticate using a popular social network, but it also makes it even easier to engage with users&amp;#8217; connections on these networks. All that&amp;#8217;s left to do is bask in your success and focus on making an awesome app!&lt;/p&gt;
&lt;p&gt;Read about how to quickly implement social logins in your app in our docs (&lt;a href="https://cloudmine.me/docs/api#users_social" target="_blank"&gt;REST&lt;/a&gt;, &lt;a href="https://cloudmine.me/docs/js/reference#users_social" target="_blank"&gt;JavaScript&lt;/a&gt;, &lt;a href="https://cloudmine.me/docs/java/reference#users_social" target="_blank"&gt;Android&lt;/a&gt;). iOS developers: never fear, native social integration will be coming to you soon.&lt;/p&gt;
&lt;p&gt;&lt;a id="video" name="video"&gt;&lt;/a&gt;&lt;iframe frameborder="0" height="281" src="http://player.vimeo.com/video/53044170?byline=0&amp;amp;portrait=0&amp;amp;badge=0" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a href="http://vimeo.com/53044170"&gt;CloudMine + Singly Partnership Announcement&lt;/a&gt; from &lt;a href="http://vimeo.com/cloudmine"&gt;CloudMine&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;And as always, please feel free to reach out to us with any questions at &lt;a href="mailto:team@cloudmine.me"&gt;team@cloudmine.me&lt;/a&gt;, via Twitter &lt;a href="http://twitter.com/cloudmine"&gt;@cloudmine&lt;/a&gt;, or by using the comments section below.&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/35564979848</link><guid>http://blog.cloudmine.me/post/35564979848</guid><pubDate>Mon, 12 Nov 2012 10:30:00 -0500</pubDate><category>partnerships</category><category>API</category><category>social</category><dc:creator>marcweil</dc:creator></item><item><title>Design Breakdown: UX, UI and Why — The New Dashboard </title><description>&lt;p class="p1"&gt;Over the past couple of weeks, the CloudMine team has made a number of leaps forward with our technology. We&amp;#8217;ve integrated git for hosted sites, we&amp;#8217;ve added a new level of API access for use in development mode, and we have a super secret social offering that is right around the corner. &lt;/p&gt;
&lt;p class="p1"&gt;As we increase the number of service offerings for our clients, we also increase the number of interaction points in our dashboard. And this directly correlates to increased complexity of user flow — if you know anything about me, then you know I strive for simplicity &amp;amp; cleanliness.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;Why Change?&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;We could easily evolve our dashboard into a command interface, but internally, we want to flirt on the side of direct manipulation. By doing this, we don&amp;#8217;t limit our users control or function, while also decreasing the possibility of someone getting lost in control complexity — this line is thin. &lt;/p&gt;
&lt;p class="p1"&gt;So, our masterful front end engineer, Steven, and I took a long hard look at how people interact with our dashboard — We performed a task breakdown analysis and spec&amp;#8217;d out user goals. The following is a comparison of what we changed in our dashboard, accompanied with the always comforting reason of &amp;#8216;Why?&amp;#8217; &lt;/p&gt;
&lt;p&gt;&lt;img align="left" height="373" src="http://media.tumblr.com/tumblr_mc24cuVaZY1r8bqfl.png" width="267"/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;Change Breakdown&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;As you can see with our old styling, we relied heavily on the left navigation pane. Segmenting Apps, Hosted Sites and Account. There are two problems with this setup, one is the dynamic application tool (highlighted to the left). This tool is an issue when you click on &amp;#8216;object browser&amp;#8217; or &amp;#8216;file browser,&amp;#8217; — two additional tools appear, pushing the navigation down. Moving navigational elements is not standard convention and hinders user autonomy, navigational elements should always be preserved throughout an environment.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Which brings me to a second issue. The visual clutter we began to amass with our navigation styles. I say this because there are three hierarchical categories in our side nav, Apps, Hosted Sites, &amp;amp; Account. Everything below these items is a child to the respective category. But our visual weighting does not delineate this relationship, rather it suggests the opposite.&lt;/p&gt;
&lt;div&gt;&lt;img align="right" height="199" src="http://media.tumblr.com/tumblr_mc24i0qnF01r8bqfl.png" width="216"/&gt;&lt;p class="p1"&gt;So, we migrated the styles defined in our Documentation page to maintain visual consistency, and to clarify the parent child relationship. This visual language also affords a lessened visual stress in navigating the dashboard, increases user efficiency and ease of navigation — Clean&lt;/p&gt;
&lt;p class="p1"&gt;In addition, we moved the dynamic tool panels below the navigation. We now have much more vertical pixel space — eye fatigue is lessened by having a smaller area of scannable information, and navigational elements adhere to the consistency &lt;br/&gt;and standards of navigation design. &lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;What&amp;#8217;s that you ask, where&amp;#8217;d your hosted sites and account settings go?!&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Don&amp;#8217;t worry, we kept all that stuff around. In fact, now you have a sleek new tabbed interface. The tabs encapsulate user work spaces within the dashboard — Applications, Hosted Sites and Account. People don&amp;#8217;t tend to work on more than one of these categories during a given time, and so it makes more sense for an individuals mental model to separate this workflow. Hosted sites and Account details are not cluttering your interaction points or deterring your focus from the more important navigational elements. &lt;/p&gt;
&lt;p class="p1"&gt;&lt;img src="http://media.tumblr.com/tumblr_mc25yzU1Kl1r8bqfl.png"/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;Testing New Methods of Interaction&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Some things you need to prototype and test in the field, gain valuable insight and iterate. And so we&amp;#8217;re testing a new method of adding and selecting apps, or hosted sites — for that matter — as seen in the screenshots below. Go interact with them. Let us know your thoughts. &lt;/p&gt;
&lt;p class="p1"&gt;&lt;em&gt;&lt;br/&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;em&gt;New Application Selection Method:&lt;/em&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;img src="http://media.tumblr.com/tumblr_mc2607GWS91r8bqfl.png"/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;em&gt;&lt;br/&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;em&gt;Old Application Selection Method:&lt;/em&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;img src="http://media.tumblr.com/tumblr_mc26044iCx1r8bqfl.png"/&gt;&lt;/p&gt;
&lt;/div&gt;</description><link>http://blog.cloudmine.me/post/34711216650</link><guid>http://blog.cloudmine.me/post/34711216650</guid><pubDate>Wed, 31 Oct 2012 14:23:57 -0400</pubDate><dc:creator>unleadedthought</dc:creator></item><item><title>There's Plenty of Sleep in Hustle</title><description>&lt;p&gt;Everyone who knows us has probably seen our “There’s No Sleep in Hustle” t-shirts by now. This began with something the great Rob Spector (&lt;a href="https://twitter.com/dn0t"&gt;&lt;a href="https://twitter.com/dn0t"&gt;https://twitter.com/dn0t&lt;/a&gt;&lt;/a&gt;) said at a hackathon, and has since entered the lexicon as the CloudMine Thing We Say. We love Rob, and we love the shirts, but they are intended to be a bit tongue-in-cheek—and we’d like to clear the air about how our working lives actually are.&lt;/p&gt;
&lt;h1&gt;Overwork is bad.&lt;/h1&gt;
&lt;p&gt;This is a fact. Anybody who tries to tell you otherwise can be refuted by a myraid of studies (&lt;a href="http://www.igda.org/why-crunch-modes-doesnt-work-six-lessons"&gt;&lt;a href="http://www.igda.org/why-crunch-modes-doesnt-work-six-lessons"&gt;http://www.igda.org/why-crunch-modes-doesnt-work-six-lessons&lt;/a&gt;&lt;/a&gt;) (&lt;a href="http://www.good.is/posts/don-t-fall-asleep-at-the-wheel-successful-entrepreneurs-have-lives/"&gt;&lt;a href="http://www.good.is/posts/don-t-fall-asleep-at-the-wheel-successful-entrepreneurs-have-lives/"&gt;http://www.good.is/posts/don-t-fall-asleep-at-the-wheel-successful-entrepreneurs-have-lives/&lt;/a&gt;&lt;/a&gt;) (probably more) that show that going into “crunch mode” is the single most expensive way to get things done, going all the way back to Henry Ford and his factories. Here’s a great quote from the above essay:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When Henry Ford famously adopted a 40-hour workweek in 1926, he was bitterly criticized by members of the National Association of Manufacturers. But his experiments, which he’d been conducting for at least 12 years, showed him clearly that cutting the workday from ten hours to eight hours — and the workweek from six days to five days — increased total worker output and reduced production cost. Ford spoke glowingly of the social benefits of a shorter workweek, couched firmly in terms of how increased time for consumption was good for everyone. But the core of his argument was that reduced shift length meant more output.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This bears repeating: &lt;em&gt;reducing shift length meant more output&lt;/em&gt;. Often, the reasons cited for keeping the number of hours worked at a reasonable level are things like employee morale, health, etc. These are all important, and valid. But, I’m sure there are plenty of startup founders / managers who, while they don’t explicitly &lt;em&gt;encourage&lt;/em&gt; their employees to work extra hours, are nonetheless pleased when their employees go the “extra mile” and crank away in crunch mode of their own volition.&lt;/p&gt;
&lt;p&gt;This is a mistake. The correct response to this is to force your employees to go home. Yes, force. This is good for the employees and good for the business, and there’s no denying that.&lt;/p&gt;
&lt;h1&gt;Fight the Temptation!&lt;/h1&gt;
&lt;p&gt;Now, I’m sure there are plenty of people out there right now who are saying: “Well Derek, I &lt;em&gt;enjoy&lt;/em&gt; working the long hours! Work is my passion, and I want to do it all the time and there’s nothing wrong with that.” I say there is: when you overwork yourself, you’re doing a disservice to everyone you work with. Your mind can’t work at full capacity and your output gets sloppy.&lt;/p&gt;
&lt;p&gt;I can say this from personal experience: when I was implementing the hosted sites feature for CloudMine, I was working twelve hours a day to get it done by a deadline. This was almost entirely self-imposed, by the way: I was never told I had to work these hours! And, of course, I thought I enjoyed it! I was a hero! People will sing my praises from above when I get this thing done!&lt;/p&gt;
&lt;p&gt;Okay, so that’s not really what happened. What happened was:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;I was miserable, balancing out my unhappiness with self-medicative drinking.&lt;/li&gt;
&lt;li&gt;My relationships with the founders (whom I consider very close friends) started to deteriorate because I resented them and blamed them for what I was putting myself through.&lt;/li&gt;
&lt;li&gt;Last but not least: the code I wrote was terrible. (It has since been re-architected.)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I went on vacation shortly after the feature was completed. I turned off my phone and disconnected completely for a full week. It took me about two days to reach a relaxed state of mind after the stress I had been under.&lt;/p&gt;
&lt;p&gt;When I returned, one of my managers told me, flat-out: “Listen, I totally understand why, but that code from those twelve-hour days was the worst you’ve ever written.”&lt;/p&gt;
&lt;p&gt;This was a revelation. I replied, “Great! I won’t do that again.” And I try not to. Because there’s no point. Now, I go to bed early, wake up at 7 am, and produce my best work. I’m proud of it, and I don’t have to kill myself to do it. Not only that, but my extracurricular hobbies have blossomed: I’ve been writing lots of songs that I’m proud of, and improving my writing in leaps and bounds. I directly attribute this to improving my work-life balance.&lt;/p&gt;
&lt;p&gt;Don’t chase the dragon. Take a break - you’ll solve the problem in the shower later, instead of after ten cups of coffee at 2 am, and you’ll feel better for it.&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/34095870084</link><guid>http://blog.cloudmine.me/post/34095870084</guid><pubDate>Mon, 22 Oct 2012 08:30:12 -0400</pubDate><category>hustle</category><category>startup</category><category>advice</category><dc:creator>derekmansen</dc:creator></item><item><title> The Global Backend as a Service</title><description>&lt;p&gt;&lt;h2 class="p1"&gt;&lt;a href="https://s3.amazonaws.com/cm-blog/cloudmine-global-blue.png"&gt;&lt;img src="http://media.tumblr.com/tumblr_mbdna4ZDMV1r8bqfl.png"/&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h1 class="p1"&gt;&lt;strong&gt;A Hunch&lt;/strong&gt;&lt;/h1&gt;
&lt;p class="p1"&gt;A few weeks ago we had this hunch. Our hypothesis was that developers from around the world are building applications on the CloudMine platform. Being so intrigued with data, we hit up one of our databases and pulled down a list of IP addresses of people who signed up. We then mapped this dataset against a public record of IP address locations to aggregate their appropriate country of origin. Next, I went to work crunching the numbers and allocating the visual elements to create a heat map of where our users signed up from.&lt;/p&gt;
&lt;h1 class="p1"&gt;&lt;strong&gt;Understanding and Influence&lt;/strong&gt;&lt;/h1&gt;
&lt;p class="p1"&gt;The interesting nugget of information we garnered from this research is that 48% of all accounts are from outside the United States. That&amp;#8217;s almost half of our user base! We were not expecting results like this, and quite frankly, we were pretty stoked that we have such a varied base of developers on CloudMine. &lt;/p&gt;
&lt;p class="p1"&gt;Pieces of information like this help inform our internal design team to focus our product enhancements and UI requirements. Empathizing with our users means understanding that English may not be their primary language. So, we design our dashboard and site interactions to easily afford new users a strong mental model of how to navigate and use our product — across all language barriers.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;img src="http://media.tumblr.com/tumblr_mb85qaGjTe1r8bqfl.jpg"/&gt;&lt;/p&gt;
&lt;h1 class="p1"&gt;&lt;strong&gt;Reasoning&lt;/strong&gt;&lt;/h1&gt;
&lt;p class="p1"&gt;Looking through Google Analytics points us to how we have been able to spread so far and wide. You see, we&amp;#8217;re a global sponsor of &lt;a href="http://startupweekend.org/" target="_blank"&gt;Startup Weekend&lt;/a&gt; — you can see our logo below the fold of their landing page&amp;#160;; ] — Because our company was founded out of a Startup weekend here in &lt;a href="http://philly.startupweekend.org/" target="_blank"&gt;Philly&lt;/a&gt;, we enjoy giving back and helping out future startup leaders.&lt;/p&gt;
&lt;p class="p1"&gt;We&amp;#8217;ve attended somewhere around 20 startup weekends and had 4 representatives floating around Startup Weekend Philly just this past weekend. We help coach the teams for success while also judging their technical involvement and inquiry. If one of the teams is set on developing an application, well, then we&amp;#8217;re there to help them get that done, and to build that app as quickly, successfully and professionally as possible, too.&lt;/p&gt;
&lt;h1 class="p1"&gt;&lt;strong&gt;Reflection&lt;/strong&gt;&lt;/h1&gt;
&lt;p class="p1"&gt;Sponsoring Startup Weekend has been great on many levels. We&amp;#8217;ve networked with some amazing individuals from all over the United States and have been able to reach out across the globe to countries like &lt;a href="http://maps.google.co.jp/maps?ll=35.096439,132.447267&amp;amp;spn=0.006162,0.009538&amp;amp;sll=35.096772,132.446579&amp;amp;layer=c&amp;amp;cid=6986604069369491873&amp;amp;panoid=3Cr4FSwuqzgY8wkAW9jE9Q&amp;amp;cbp=13,17.47,,0,0&amp;amp;brcurrent=3,0x355a0f13e7f8a6d1:0x4bfdd53f11d35909,1&amp;amp;t=m&amp;amp;cbll=35.096991,132.44663&amp;amp;z=17" target="_blank"&gt;Japan&lt;/a&gt;, Germany, Brazil, and even &lt;a href="http://www.flickr.com/photos/69605418@N04/collections/72157631639969950/" target="_blank"&gt;Iceland&lt;/a&gt; to get developers all over the world using and investigating CloudMine. &lt;/p&gt;
&lt;p class="p1"&gt;If you happen to be one of those developers, near or far, feel free to &lt;a href="mailto:support@cloudmine.me" target="_blank"&gt;drop a line&lt;/a&gt;, tell us your experiences. If it wasn&amp;#8217;t from Startup Weekend, how&amp;#8217;d you come across our platform? Or, if you&amp;#8217;d like to become more involved and happen to be in Philadelphia, swing into our office at Venturef0rth — I&amp;#8217;ll buy you lunch and we can chat about CloudMine. And life.&lt;/p&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/32877468585</link><guid>http://blog.cloudmine.me/post/32877468585</guid><pubDate>Thu, 04 Oct 2012 12:38:00 -0400</pubDate><category>mobile</category><category>user-experience</category><dc:creator>unleadedthought</dc:creator></item><item><title>What We've Learned By Evolving Our Documentation</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_maxj26jDDB1qkx02f.png"/&gt;&lt;/p&gt;



&lt;p&gt;With the recent release of our brand-new documentation, we’d like to elaborate on how the docs and our process have evolved through the product’s lifetime.&lt;/p&gt;



&lt;h1&gt;In the beginning&lt;/h1&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;The first version of CloudMine was a &lt;a href="https://cloudmine.me/docs/api" title="REST API for mobile applications" target="_blank"&gt;REST API&lt;/a&gt;. We documented all of the endpoints and provided guidelines on how to use them. This was sufficient at first, before we had written any native libraries.&lt;/p&gt;



&lt;p&gt;The navigation at the time was flat list of operations (usually corresponding with a single HTTP endpoint). This was feasible at the time, because there weren’t many features yet, but we knew this was going to change soon.&lt;/p&gt;



&lt;h1&gt;Adding libraries&lt;/h1&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;As the libraries were being developed, we had to address the issue of documenting them. After all, a library without documentation is about as useful as no library at all.&lt;/p&gt;



&lt;p&gt;Being the disciplined developers we are, we decided that each library should have API documentation in-code (with HTML generated by Javadoc, or Doxygen) before release. This gave us something to work with. We also wrote Getting Started guides for each, so that developers had something besides a large list of functions with minimal organization.&lt;/p&gt;



&lt;h1&gt;Organization&lt;/h1&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;As the number of features grew, we noticed that the navigation was starting to get cluttered with everything that we had added.  So, we sat down and divided out individual operations into their most logical divisions of high-level features.&lt;/p&gt;



&lt;h1&gt;Feedback&lt;/h1&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;At this point, we had extensively documented the REST API, and had detailed API documentation for the &lt;a href="https://cloudmine.me/docs/ios" title="iOS API documentation for CloudMine" target="_blank"&gt;iOS&lt;/a&gt;, &lt;a href="https://cloudmine.me/docs/java" title="Android API documentation for CloudMine" target="_blank"&gt;Android&lt;/a&gt;, &lt;a href="https://cloudmine.me/docs/phonegap" title="PhoneGap API documentation for CloudMine" target="_blank"&gt;PhoneGap&lt;/a&gt; and &lt;a href="https://cloudmine.me/docs/js" title="JavaScript API documentation for CloudMine" target="_blank"&gt;JavaScript&lt;/a&gt; libraries. Through our own internal use and outside feedback, we quickly learned that API docs are necessary but not sufficient for a platform like ours. Problems with them included:&lt;/p&gt;



&lt;h2&gt;API docs are difficult to navigate.&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;This type of documentation is like reading the docs for a programming language that lumps all functions into a global namespace. There’s no “start here” - it’s tough to get an idea where to begin unless you already know where you’re going.&lt;/p&gt;



&lt;h2&gt;Can’t develop best practices.&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;API docs are a fairly thin layer of abstraction over the code. You can’t really see the big picture when you’re looking at detailed type information for everything.&lt;/p&gt;



&lt;h2&gt;Important concepts are omitted.&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;Big-picture concepts and overall system architecture aren’t referred to at all. This is another side effect of the docs being “too close to the code”, so to speak.&lt;/p&gt;



&lt;h1&gt;How do we fill in the gap?&lt;/h1&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;Once we identified problems with the current docs, it was time to come up with a plan to fix them. We ended up taking a three-tiered approach.&lt;/p&gt;



&lt;h2&gt;Sample apps&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p class="p1"&gt;Full, working sample apps provide a huge amount of value. Putting together the structure and initial version of an app is a daunting task, and having a new service API to learn on top doesn’t help the situation!&lt;/p&gt;



&lt;p class="p1"&gt;Sample applications  like &lt;a href="https://github.com/cloudmine/cloudmine-ios-sample-todo"&gt;&lt;span class="s1"&gt;Todoly&lt;/span&gt;&lt;/a&gt; or &lt;a href="https://github.com/cloudmine/devicetracker"&gt;&lt;span class="s1"&gt;DeviceTracker&lt;/span&gt;&lt;/a&gt; for each of our supported platforms help ease developers into using CloudMine. This frees you from needing to think about things like “where should I put this initialization code?”, and gives you a higher-level view of how your application might be structured.&lt;/p&gt;



&lt;h2&gt;Examples, examples, examples&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;Previously, our docs were lacking in the examples department. Our new goal was fairly ambitious: working, copy-pastable examples for every function CloudMine supports, for every library. It took quite a bit of effort, but we now have that for all of our native libraries.&lt;/p&gt;



&lt;h2&gt;Create a higher-level documentation flow&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;We know developers, and we know that when you can’t find the information you want (especially from a 3rd party), your opinion of that documentation, and the product, quickly deteriorates. We wanted users to have a clear flow from the most general to the most specific docs. That flow looks like this:&lt;/p&gt;



&lt;ol&gt;&lt;li&gt;“Getting Started” and tutorial sections for libraries.&lt;/li&gt;&#13;
&lt;li&gt;Extensive high-level examples for libraries.&lt;/li&gt;&#13;
&lt;li&gt;API documentation that captures lower-level implementation details, just above the code.&lt;/li&gt;&#13;
&lt;li&gt;The code itself. Code is a form of documentation - one of the best there is. All of &lt;a href="https://github.com/cloudmine" title="CloudMine open-source libraries" target="_blank"&gt;our libraries are open source&lt;/a&gt;.&lt;/li&gt;&#13;
&lt;/ol&gt;&lt;p&gt;We want motivated developers to be able to get all the information they need without ever having to contact us. It’s important to keep your users in the loop, especially when they are relying on you for a critical service.&lt;/p&gt;



&lt;p&gt;Of course, we still encourage developers to contact us if they need to - but the point is, they shouldn’t be &lt;em&gt;forced&lt;/em&gt; to!&lt;/p&gt;



&lt;h1&gt;Next Steps&lt;/h1&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;We’re very proud of the current state of our documentation. However, we see no reason to stay complacent with what we have, and have already been thinking about how we can make our docs even better. Here are a couple things we plan on rolling out in the near future.&lt;/p&gt;



&lt;h2&gt;Interactive documentation&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;All of the code examples are copy-pastable - as long as you modify things like your app ID and API key. We’d like to populate those automatically with your app, so that you could literally drop and go.&lt;/p&gt;



&lt;h2&gt;More best practices and patterns&lt;/h2&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;We’ve done a much better job than before of “lifting” the documentation to a higher level of abstraction - one that shows how the system works rather than describing it with words. We know we can do better, though - there are emerging high-level idioms and patterns for using CloudMine, and we want to encourage the use of these best practices.&lt;/p&gt;



&lt;h1&gt;Final Words&lt;/h1&gt;

&lt;p&gt;&#13;&lt;/p&gt;

&lt;p&gt;We’re creating our documentation using the same process as the product: constant feedback, iteration, and redesign. We believe that’s the quickest and most reliable path to high quality. This isn’t the last you’ll see of us re: documentation, so stay tuned.&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/32334985221</link><guid>http://blog.cloudmine.me/post/32334985221</guid><pubDate>Wed, 26 Sep 2012 13:03:00 -0400</pubDate><category>api</category><category>docs</category><dc:creator>derekmansen</dc:creator></item><item><title>PennApps: The Hackathon that Changed Everything (for me)</title><description>&lt;p&gt;Okay, I&amp;#8217;ll come right out and say it: I wasn&amp;#8217;t totally on board with the whole &amp;#8220;hackathon&amp;#8221; thing. I like to code, and I love my job. But I do work a normal work week, and spending my weekend doing a lot more of the same wasn&amp;#8217;t first priority for me.&lt;/p&gt;

&lt;p&gt;That is, until last weekend, when I had the pleasure to attend &lt;a href="http://2012f.pennapps.com/" title="PennApps"&gt;PennApps&lt;/a&gt;, the world&amp;#8217;s largest student-run hackathon. Some highlights for me: doing my first live demo of CloudMine in front of a room of about 400 people, finally getting to meet the most OG CloudMine employee (hi &lt;a href="http://twitter.com/temiri"&gt;Tess!&lt;/a&gt;), staying up til 5 am helping a team debug their iOS project in the 11th hour, and listening to a hysterical story told through the medium of a &lt;a href="https://twitter.com/rubinovitz/status/247240698473115648/photo/1"&gt;git repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In short: I&amp;#8217;m all in.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re on the fence about attending these events, allow me to give you some motivational reasons why you might want to attend.&lt;/p&gt;

&lt;h2&gt;Make meaningful, long-lasting connections.&lt;/h2&gt;

&lt;p&gt;In fact, CloudMine&amp;#8217;s founders met at a Startup Weekend (an oft-told story that you can read about &lt;a href="http://startupweekend.org/2012/04/03/core-team-guest-post-startup-weekend-stories-cloudmine/"&gt;here&lt;/a&gt;). You never know who you&amp;#8217;re going to meet at these things - and when the crowd is all self-selected hacker types, your odds get a whole lot better.&lt;/p&gt;

&lt;h2&gt;See how the pros work.&lt;/h2&gt;

&lt;p&gt;How often does a student get a chance to pair program with an engineer from Facebook? You can get some real insight into coding just by watching somebody who&amp;#8217;s done it for a long time. The first time you see somebody dive into &lt;em&gt;your&lt;/em&gt; code and quickly find the bug that you just spent two hours chasing down, you feel a bit more than humbled!&lt;/p&gt;

&lt;h2&gt;Discover what you&amp;#8217;re interested in.&lt;/h2&gt;

&lt;p&gt;Pick a project. Start writing it. Finish up for the weekend: did you enjoy it? Great! Keep working on it and it might be the next big thing! But, maybe you hated it - well, you only spent the weekend on it, and there&amp;#8217;s always the next one. Try something else next time, it&amp;#8217;s fine!&lt;/p&gt;

&lt;h2&gt;Practice.&lt;/h2&gt;

&lt;p&gt;Having 48 hours to conceive of a product, deliver it, and present it forces you to cut out the fat. You need to concentrate on what you can do well, right now. It&amp;#8217;s great practice for a life where these kinds of events are commonplace (working for a startup). And, as the teams using CloudMine discovered, it&amp;#8217;s great being able to cut out a massive chunk of the work when you&amp;#8217;re on such a strict deadline!&lt;/p&gt;

&lt;h2&gt;Okay, what else?&lt;/h2&gt;

&lt;p&gt;From the mentoring side, it was wonderful hanging with some of the sharpest minds I know, pooling together our resources to help the students build something meaningful. There was a great sense of camaraderie: we were all in it together. (Except for: what&amp;#8217;s with all college kids using vim, anyway? Let&amp;#8217;s move over to the big girl tools like emacs. Sorry, couldn&amp;#8217;t help myself.)&lt;/p&gt;

&lt;p&gt;As for me, I can&amp;#8217;t get enough right now. I&amp;#8217;m on my way to Boston today for &lt;a href="http://arthackday.net/big_bad_lab/"&gt;Art Hack Day&lt;/a&gt; and am super excited to see what kinds of hacks they&amp;#8217;re going to come up with. If you&amp;#8217;re in the area, stop by and say hello!&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/31994057610</link><guid>http://blog.cloudmine.me/post/31994057610</guid><pubDate>Fri, 21 Sep 2012 14:40:05 -0400</pubDate><category>Pennapps</category><category>hackathons</category><dc:creator>derekmansen</dc:creator></item><item><title>iOS Resources by Developers, for Developers  </title><description>&lt;p&gt;&lt;p class="p1"&gt;Being an individual developer can mean that it&amp;#8217;s difficult to write iOS apps because some of the tools to do so can be costly or simply hard to find. Sure, you may be able to get along by writing little bits of it here and there on your own time - but there are many existing services that help make the development and deployment process much easier. That&amp;#8217;s where &lt;a href="http://appdispatch.com/" title="iOS resources for developers" target="_blank"&gt;App Dispatch&lt;/a&gt; comes in.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;img src="http://media.tumblr.com/tumblr_ma567cyw251qiqgpl.png"/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;App Dispatch is a community focused on connecting mobile app developers to the tools and services that make iOS apps a blazing success. If there’s a feature you want to implement, from a simple push notification system to a complex data-store, there’s no reason to reinvent the wheel. &lt;/p&gt;
&lt;p class="p1"&gt;For its inaugural launch, we are partnering with App Dispatch to give individual developers a leg up on the competition. With full access to our backend platform your app can be developed, deployed and maintained all from one intuitive interface and for much cheaper than our normal plans.&lt;/p&gt;
&lt;p class="p1"&gt;Check out the &lt;a href="http://appdispatch.com/" title="App resources for developers" target="_blank"&gt;App Dispatch&lt;/a&gt; site to learn more about their offers.&lt;/p&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/31400514041</link><guid>http://blog.cloudmine.me/post/31400514041</guid><pubDate>Wed, 12 Sep 2012 10:47:56 -0400</pubDate><category>partnerships</category><category>iOS</category><dc:creator>localeverywhere</dc:creator></item><item><title>CloudMine goes SURFing</title><description>&lt;p&gt;&lt;p class="p1"&gt;From getting our beginnings at a Startup Weekend and exploding on to the stage with help from the &lt;a href="http://dreamitventures.com/"&gt;DreamIT&lt;/a&gt; accelerator, we&amp;#8217;ve been able to spread our startup roots.  As part of our commitment to the startup community at large, we’re going to be supporting the &lt;a href="http://www.surfincubator.com/"&gt;&lt;span class="s1"&gt;SURF Incubator space&lt;/span&gt;&lt;/a&gt; for digital startups.  All of the SURF resident companies will have complete access to our platform for developing, building, and deploying their apps.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;img align="right" alt="SURF Startup Incubator" height="143" src="http://www.pacificcrm.com/wp-content/uploads/2012/03/Logo1.jpg" width="243"/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;SURF is dedicated to advancing the ideas and passions of technology-focused entrepreneurs - who now won&amp;#8217;t have to worry about maintaining a backend.   By bringing together a collection of great minds from different technical and business backgrounds, entrepreneurs within the SURF community can solicit resources as needed and grow their businesses on their own terms.  Check out &lt;a href="http://www.surfincubator.com/" title="Seattle Startup Incubator" target="_blank"&gt;their site&lt;/a&gt; for more details about the program and how to apply. &lt;/p&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/30461041350</link><guid>http://blog.cloudmine.me/post/30461041350</guid><pubDate>Wed, 29 Aug 2012 13:19:32 -0400</pubDate><category>startups</category><category>incubator</category><category>entrepreneurship</category><category>entrepreneur</category><dc:creator>localeverywhere</dc:creator></item><item><title>App analytics and public Access Control Lists!</title><description>&lt;p&gt;&lt;p class="p1"&gt;&lt;img src="http://media.tumblr.com/tumblr_m98ims1Csw1r8bqfl.jpg"/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;With the summer coming to a close we wanted to share what we&amp;#8217;ve been working on over the past month.  &lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;What&amp;#8217;s new?&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ol1"&gt;&lt;li class="li1"&gt;The dashboard now has pretty graphs to show analytics for all of your deployed apps.  Go ahead, be sneaky and dig deep to find out what your users are up to and see when the &lt;em&gt;real&lt;/em&gt; action is happening. &lt;/li&gt;
&lt;li class="li1"&gt;Give your users the ability to share content with anybody who is logged into your app without the need to manually maintain a user list by using &lt;a href="https://cloudmine.me/docs/data-security#security/user" title="Public Access Control Lists allow in-app data sharing without user lists" target="_blank"&gt;public ACLs&lt;/a&gt;.  &lt;/li&gt;
&lt;/ol&gt;&lt;p class="p1"&gt;&lt;a href="https://cloudmine.me/docs" title="CloudMine documentation" target="_blank"&gt;Check out the docs&lt;/a&gt; for in depth details on how to use all of the new goodies.  Until next time, code on!&lt;/p&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/30106342709</link><guid>http://blog.cloudmine.me/post/30106342709</guid><pubDate>Fri, 24 Aug 2012 11:55:29 -0400</pubDate><category>ACL</category><category>android</category><category>Access Control List</category><category>iOS</category><category>apps</category><category>developer</category><category>development</category><category>Java</category><category>Analytics</category><category>JVM</category><dc:creator>localeverywhere</dc:creator></item><item><title>Forrester: "Backend as a service, the new mobile middleware" – Explained in graphic detail</title><description>&lt;p&gt;&lt;p class="p1"&gt;Being the designer amongst 7 hardcore developers who specialize in different niche worlds of software has been an interesting experience. Because designers and developers inherently solve problems, I thought it would be beneficial to merge these two areas of thought. Leveraging my understanding of visual storytelling and our developers&amp;#8217; understanding of french bistros – we&amp;#8217;ll get to the bistros later – I designed an infographic to help explain &lt;a href="http://blogs.forrester.com/michael_facemire/12-04-25-mobile_backend_as_a_service_the_new_lightweight_middleware" target="_blank"&gt;backend-as-a-service&lt;/a&gt;, which can sometimes be nebulous.  &lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;A little background&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;I am wrapping up my second month as CloudMine&amp;#8217;s UX/UI designer. Previously I was a web analyst in Boston serving clients such as Comcast, Liberty Mutual and the Make-A-Wish Foundation. Most recently, however, I obtained my Masters in Industrial Design with a focus on &lt;a href="http://mid.uarts.edu/" target="_blank"&gt;Human Centered Design&lt;/a&gt;. &lt;/p&gt;
&lt;p class="p1"&gt;Developers work very differently than how I am accustomed. To start, they speak in a completely different language. Many times it&amp;#8217;s like being in a French bistro when I only know a little bit of Spanish, catching a word or phrase here and there. It&amp;#8217;s not too soon that I realize they are speaking 19 different languages, and I decide that simply eating a croissant and sipping an espresso are much easier tasks. Secondly, the bulk of their work has to happen at the screen of their computer; printing out thousands of lines of code isn&amp;#8217;t really going to help their workflow – not to mention the resources of the &lt;a href="http://www.venturef0rth.com"&gt;Venturef0rth&lt;/a&gt; printer.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;Wrapping it up&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;There are clear professional and cultural differences that I have come to realize, but it&amp;#8217;s humbling to know that these differences are not siloed to my experience at CloudMine, nor are they particular to the world of design and development. Because it is sometimes difficult to explain exactly what it is we do at CloudMine, and because backend-as-a-service (BaaS) is still a new industry, I&amp;#8217;ve designed a visual overview to help convey what BaaS companies do – that is, without going into the oft foreign language of development. &lt;/p&gt;
&lt;p class="p1"&gt;This infographic should serve as a first pass into a visual explanation of BaaS. This visual is built off the basic storyboard of a smartphone application not dissimilar to &lt;a href="http://instagram.com/" target="_blank"&gt;Instagram&lt;/a&gt;. Providing an overview of the multiple stages involved in developing an application, the graphic highlights the specific areas of development that make up the bulk of the work when coding an app. And in the end, it shows what a backend service provider would take care of for our users (the developer). &lt;/p&gt;
&lt;p class="p1"&gt;Enjoy! Please leave any comments below, or send us a &lt;a href="http://twitter.com/cloudmine" target="_blank"&gt;tweet&lt;/a&gt; or an &lt;a href="mailto:team@cloudmine.me"&gt;email&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;a href="https://s3.amazonaws.com/cm-blog/baas-cloudmine-10.png" title="BaaS Infographic" target="_blank"&gt;&lt;img align="middle" alt="BaaS Infographic" height="3281" src="https://s3.amazonaws.com/cm-blog/baas-cloudmine-10.png" width="600"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/29830578382</link><guid>http://blog.cloudmine.me/post/29830578382</guid><pubDate>Mon, 20 Aug 2012 11:25:00 -0400</pubDate><category>baas</category><category>mbaas</category><category>mobile</category><category>development</category><category>enterprise</category><category>backend</category><category>infrastructure</category><category>IT</category><dc:creator>unleadedthought</dc:creator></item><item><title>We're a Top 10 Mobile App Development Tool!</title><description>&lt;p&gt;&lt;p class="p1"&gt;Dailytekk, the curators of cool and useful tech, picked us as a &lt;a href="http://dailytekk.com/2012/07/31/200-graphic-app-web-design-tools-resources/#mobile" title="Top Ten Mobile Development Tools" target="_blank"&gt;top ten resource for mobile developers&lt;/a&gt;! We&amp;#8217;re quite excited to have topped the list as one of the few BaaS players to make the cut. &lt;a href="http://dailytekk.com/2012/07/31/200-graphic-app-web-design-tools-resources/#mobile" title="The Top 10 Mobile Development Resources and Tools" target="_blank"&gt;&lt;img align="middle" alt="Dailytekk top 10" height="92" src="https://dl.dropbox.com/u/22649612/cloudmine/DailyTekk-toptenB.png" width="130"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;Built to handle what you&amp;#8217;re building&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Variety is the spice of life and that&amp;#8217;s the kind of ecosystem we&amp;#8217;re supporting. &lt;/p&gt;
&lt;p class="p1"&gt;From the fresh take on Mr. Men and Little Miss with the &lt;a href="http://sightin.gs/" title="Mr. Men and Little Miss Sightings" target="_blank"&gt;Sightings&lt;/a&gt; social photo sharing app starring numerous Little Miss favorites, to a CME &lt;br/&gt;certified &lt;a href="http://itunes.apple.com/us/app/icasescme/id516315360?mt=8" title="iCasesCME medical point-of-care application for iPhone" target="_blank"&gt;medical education and point-of-care tool&lt;/a&gt;, our platform makes sure the gamut of services you offer keep chugging along - at 1 user or 1 Million.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;a href="http://sightin.gs/" title="Mr. Men and Little Miss Sightings" target="_blank"&gt;&lt;img alt="MMLM App icon" height="100" src="https://dl.dropbox.com/u/22649612/mmlm.png" width="100"/&gt;&lt;/a&gt; &lt;a href="http://itunes.apple.com/us/app/icasescme/id516315360?mt=8" title="iCasesCME medical learning tool" target="_blank"&gt;&lt;img alt="Medical point-of-care application" height="100" src="https://dl.dropbox.com/u/22649612/icasescme.png" width="100"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="p1"&gt;We love getting dreams off the ground and liberating big data. Tell us what&amp;#8217;s holding your ideas from seeing the light of day - email &lt;a href="mailto:team@cloudmine.me"&gt;team@cloudmine.me&lt;/a&gt; - and we&amp;#8217;ll pave the way for your projects to rise up and shine.&lt;/p&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/29372882400</link><guid>http://blog.cloudmine.me/post/29372882400</guid><pubDate>Mon, 13 Aug 2012 20:40:32 -0400</pubDate><category>mobile</category><category>backend as a service</category><category>baas</category><category>development</category><category>iphone</category><category>ios</category><category>android</category><dc:creator>localeverywhere</dc:creator></item><item><title>Storm Clouds in VA, Happy CloudMiners all over</title><description>&lt;p&gt;One of the benefits that our users enjoy is running their applications on our infrastructure platform. A great example of how this pays off was seen during the Great AWS Outage of 2012 recently. Our API, and more importantly our users&amp;#8217; apps, stayed up despite Amazon&amp;#8217;s system-wide failures.&lt;/p&gt;

&lt;p&gt;It all started on Friday night when our website and API monitoring
systems starting sending us emails that the website is misbehaving and
requests were timing out.  An investigation commenced.&lt;/p&gt;

&lt;p&gt;Reports started flowing in on twitter that the &lt;a href="https://twitter.com/VentureBeat/status/218919130819076096"&gt;Internet was
down&lt;/a&gt;
(i.e., Netflix, Instagram, Pinterest, and others).&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://status.aws.amazon.com/"&gt;AWS status page&lt;/a&gt; started
describing outages in RDS, some availability zones, and EBS systems,
attributing them to a power loss due to electrical storms in the area.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m6g2nf4PyE1qmr9aj.png" alt="AWS Status" title="AWS Status"/&gt;&lt;/p&gt;

&lt;p&gt;Clearly Amazon AWS was not having a good day.&lt;/p&gt;

&lt;h1&gt;Impact&lt;/h1&gt;

&lt;p&gt;A quick check confirmed that the website was indeed down
and was having issues accessing the database instance powering it
(running on Amazon&amp;#8217;s RDS).&lt;/p&gt;

&lt;p&gt;I quickly spun up another database server from a very recent snapshot
but due to the prevailing RDS issues, it took about two hours to
start. Once it did, the website was back up and running normally.&lt;/p&gt;

&lt;p&gt;Our primary concern is the API servers. None of our users&amp;#8217; critical
operations are dependent on the website, but all their apps are
powered by our APIs.&lt;/p&gt;

&lt;p&gt;As it turned out, one of our API database servers stopped responding
as well.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m6g3hcaP3s1qmr9aj.jpg" alt="Don't panic" title="Don't panic"/&gt;&lt;/p&gt;

&lt;p&gt;But there was no need to panic! Our system is build to handle these
kinds of failures. Other database servers picked up the load and the
API servers kept happily serving requests (though there
were some brief ELB issues as well).&lt;/p&gt;

&lt;p&gt;The biggest impact on our API servers was that some requests were
taking a longer time to respond because of the database failover, but
they did eventually respond. Taking the failed API database out of the
configuration immediately resolved those issues. And we&amp;#8217;ll make sure
that this won&amp;#8217;t be a problem in the future.&lt;/p&gt;

&lt;p&gt;A potential crisis averted! And some lessons learned.&lt;/p&gt;

&lt;h1&gt;Takeaways&lt;/h1&gt;

&lt;ol&gt;&lt;li&gt;&lt;p&gt;Running on the cloud is not trivial. In this incident, we had two database servers fail completely  (and possibly irrecoverably) with no adverse affects. But most developers run only one database server or application server due to complexity and cost of redundancy. A single server failure would then be catastrophic for that developer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Our API uptime is very important to us because lots of developers
depend on us to keep their apps running and their end users
happy. This time, our redundancy and failover provisions kept our
primary Amazon servers up and serving customers. However, had that
failed, we were ready to failover the entire stack to the other cloud
providers. While others went down, sites and apps powered by CloudMine stayed up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Always, always have backups. We recovered our RDS instance
from a fresh snapshot, and had snapshots of our API database
ready to spin up if the need arose.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Both of the DB servers that failed (RDS and API) were on the
same availability zone - us-east-1d. It seems that this zone got hit harder
than the rest. The key to CloudMine staying up and not loosing any
data was having multiple redundant API and database servers in several
availability zones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rebooting misbehaving instances in AWS when there are system-wide
issues tends to make things worse. It takes many actions and
resources to spin up new instances and/or EBS volumes and more load
is placed on an already hurting system. In these cases, rebooting
usually fails anyway or is not the quick fix people expect. Plan for
other contingencies.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;</description><link>http://blog.cloudmine.me/post/26229541737</link><guid>http://blog.cloudmine.me/post/26229541737</guid><pubDate>Sat, 30 Jun 2012 16:38:19 -0400</pubDate><dc:creator>ilyabraude</dc:creator></item><item><title>Bringing the BaaS  </title><description>&lt;p&gt;From our humble beginnings at a &lt;a href="http://startupweekend.org/2012/04/03/core-team-guest-post-startup-weekend-stories-cloudmine/" title="CloudMine was born at Startup Weekend Philadelphia" target="_blank"&gt;Startup Weekend Philly&lt;/a&gt; to being a &lt;a href="http://startupweekend.org/2012/02/01/sw-born-cloudmine-is-now-a-startup-weekend-global-sponsor/" title="CloudMine grew to sponsor all Startup Weekend events" target="_blank"&gt;Global Sponsor of all Startup Weekend events&lt;/a&gt;, the past nine months have been a whirlwind of growth and activity for us.&lt;/p&gt;
&lt;p&gt;Embraced by developers — who are now running more than 1,500 apps on our platform — their feedback was instrumental in ironing out the kinks of developing apps on our backend. Months of strengthening the core have lead us to today.&lt;/p&gt;
&lt;p&gt;Introducing &lt;strong&gt;CloudMine 1.0&lt;/strong&gt;: a backend stack capable of supporting companies building something new, digital agencies working on hundreds of apps for their clients, and large enterprises vying to expose their legacy data to mobile.&lt;/p&gt;
&lt;h2&gt;How backend-as-a-service works&lt;/h2&gt;
&lt;p&gt;&lt;img align="left" alt="How Backend as a Service works" height="327" src="https://dl.dropbox.com/u/22649612/cloudmine/homepage-graphic-01.jpg" width="600"/&gt;Fast, flexible and simple to use. We take care of the entire mess of infrastructure and web service software development that stands between your idea and a finished app. Avoid building and scaling custom server-side software, maintaining a codebase that your customers will never interact with, and putting out server fires – just talk to our flexible API using HTTP or one of our &lt;a href="https://cloudmine.me/docs" title="SDKs for building mobile apps" target="_blank"&gt;numerous mobile and web SDKs&lt;/a&gt;. We’ll fight off the hassles and deal with the headaches of making sure your app is running whenever, wherever.&lt;/p&gt;
&lt;h2&gt;Build your way, just faster&lt;/h2&gt;
&lt;p&gt;All it takes to &lt;a href="https://cloudmine.me/docs" title="Get started building mobile and web apps with CloudMine" target="_blank"&gt;get started developing on CloudMine&lt;/a&gt; is dropping our SDK into your codebase. Everything else is already taken care of, leaving you free to flex your development and UX muscles. Want to develop for mobile? Download our &lt;a href="https://cloudmine.me/docs/ios#ios/download" title="build apps for iPhone and iPad" target="_blank"&gt;iOS&lt;/a&gt; or &lt;a href="https://cloudmine.me/docs/android" title="Build apps for Android with our SDK" target="_blank"&gt;Android SDK&lt;/a&gt;, or do it yourself through our &lt;a href="https://cloudmine.me/docs/overview" title="Build apps for mobile devices with the REST api" target="_blank"&gt;REST API&lt;/a&gt;. Want to build something for the web? Use the &lt;a href="https://cloudmine.me/docs/javascript#download" title="Build web applications with JavaScript" target="_blank"&gt;JavaScript SDK&lt;/a&gt; and upload your HTML, JavaScript, CSS, and image assets right to our servers.&lt;/p&gt;
&lt;p&gt;And best of all, there’s no data models or schema locking to worry about because  database structures should not influence the design of your apps. Code your model objects client-side the way you want, give them to the CloudMine SDK of your choosing, and we take care of the rest. You can even host custom code on our servers to be executed on your data whenever you want, which is great for doing that heavy processing or third-party API integration that would typically require your own server.&lt;/p&gt;
&lt;p&gt;Whichever platform you develop for, the same robust feature set will be available across the board. So you know that crazy location-based, social picture sharing chat room you wanted to build? Or all of that data you have been housing while dreaming of a way to get it mobile? &lt;a href="https://cloudmine.me#features" title="Tools for building great apps" target="_blank"&gt;We make all that possible&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Easier to get started&lt;/h2&gt;
&lt;p&gt;Just like on a date, first impressions are key. Taking that to heart, our entire site went through a major clean-up so you won’t feel bad for referring friends to check it all out.&lt;/p&gt;
&lt;p&gt;The polish didn’t stop at the surface though. &lt;a href="https://twitter.com/#!/xiata"&gt;Steve&lt;/a&gt;, &lt;a href="https://twitter.com/#!/artur_sapek" title="Artur does front-end development for CloudMine" target="_blank"&gt;Artur&lt;/a&gt;, and &lt;a href="https://twitter.com/#!/coianac" title="Nic works on UX design at CloudMine" target="_blank"&gt;Nic&lt;/a&gt; tore up the CloudMine Dashboard. The new version makes it much easier to view and manage all of your active apps, data, and users. It also provides more contextually relevant assistance when getting started so you can get to the good stuff faster.&lt;/p&gt;
&lt;p&gt;There’s lots to be discovered, so &lt;a href="https://cloudmine.me/users/sign_in" title="Sign in to CloudMine" target="_self"&gt;sign in and play around&lt;/a&gt;. We’d love to hear your feedback on the improvements!&lt;/p&gt;
&lt;p&gt;Happy Mining!&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/25643493308</link><guid>http://blog.cloudmine.me/post/25643493308</guid><pubDate>Fri, 22 Jun 2012 09:11:00 -0400</pubDate><category>iOS</category><category>Android</category><category>SDK</category><category>JavaScript</category><category>Java</category><category>HTML5</category><category>backend-as-a-service</category><dc:creator>zhenyag</dc:creator></item><item><title>Storing Private User Data with our JavaScript SDK</title><description>&lt;p&gt;Most apps require storing some sort of user data, whether that’s login credentials or sensitive data. The &lt;a href="http://blog.cloudmine.me/post/23737947762/ios-library-refresh" title="iOS SDK refresh"&gt;previous post&lt;/a&gt; already gave a high level overview of how to use our built-in user account management, so let’s dive in a step further and see how to secure user data. For this example, we’re going to use a sample app built using our JavaScript SDK.&lt;/p&gt;



&lt;h2&gt;Keeping Private Data Safe&lt;/h2&gt;

&lt;p&gt;&#13;
&#13;&lt;/p&gt;

&lt;p&gt;As an example of how to secure data, let’s take a look at a simple web app. We built this quick todo list app using our JavaScript SDK. The &lt;a href="https://cloudmine.me/sample-apps/todo/index.html" title="Sample JavaScript App" target="_blank"&gt;finished product&lt;/a&gt; is available for you to play with as well.&lt;/p&gt;



&lt;p&gt;&lt;img alt="" src="http://media.tumblr.com/tumblr_m59ehucouC1qjiwg9.png"/&gt;&lt;/p&gt;



&lt;p&gt;&lt;img alt="" src="http://media.tumblr.com/tumblr_m59eifGFvt1qjiwg9.png"/&gt;&lt;/p&gt;



&lt;p&gt;The app features two views: a simple login/registration page and the actual list itself. The todo items each have an assigned priority level (an integer between 1 and 3) as well as an optional due date. To keep things simple, this is expressed as an integer in hours from when the task is created.&lt;/p&gt;



&lt;p&gt;In this view we can see a few items of varying priority. It looks like we’ve already paid Derek back for sushi, so that’s good, but this post is still unfinished with a looming deadline, so let’s get at it.&lt;/p&gt;

&lt;h2&gt;Building with our Javascript SDK&lt;/h2&gt;



&lt;p&gt;CloudMine takes care of the data storage and other essentials, so all you have to do is use our brand new evented JavaScript SDK. We just need a copy of &lt;a href="https://cloudmine.me/developer_zone#javascript/download"&gt;the Javascript SDK&lt;/a&gt; and &lt;a href="http://code.jquery.com/jquery-1.7.2.min.js"&gt;jQuery&lt;/a&gt; (or save yourself the download by linking to a hosted version of &lt;a href="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"&gt;jQuery&lt;/a&gt;), plus some sprites for a colorful UI. To begin, configure a new instance of &lt;a href="http://cloudmine.me/js-docs/symbols/WebService.html"&gt;cloudmine.WebService&lt;/a&gt; with our app’s API Key and App ID.&lt;/p&gt;

&lt;p&gt;&#13;
&lt;script src="https://gist.github.com/2933472.js?file=initialize.js"&gt; &lt;/script&gt;&lt;/p&gt;

&lt;h2&gt;User accounts&lt;/h2&gt;



&lt;p&gt;Once the SDK is initialized, we can just start making API calls. The new JS SDK supports &lt;a href="https://github.com/danwrong/restler"&gt;Restler&lt;/a&gt;-style chaining, so we get to write these with clean, semantic syntax. Here’s a login request, which is triggered when the user clicks the &lt;strong&gt;Login&lt;/strong&gt; button in the UI.&lt;/p&gt;

&lt;script src="https://gist.github.com/2933472.js?file=login.js"&gt; &lt;/script&gt;&lt;p&gt;We can easily show error messages from the server. Here, a bad email will cause show_error to flash this response:&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="http://media.tumblr.com/tumblr_m59lc5wscf1qjiwg9.png"/&gt;&lt;/p&gt;



&lt;p&gt;We’re also using these same fields to offer registration. Just for the sake of the demo, we’re only asking for an email and a password again. Here’s how we might register a new user with CloudMine.&lt;/p&gt;

&lt;p&gt;&#13;
&lt;script src="https://gist.github.com/2933472.js?file=register.js"&gt; &lt;/script&gt;&lt;/p&gt;

&lt;p&gt;Notice how we are taking advantage of callback chaining. All you really need is the createUser call, but the extra stuff makes for a more user-friendly interface. We can listen for specific successes and errors and react to them differently. Here we chose to return the server’s raw error response when the email is already in use, but you can return our own message if the email is invalid. Since we also changed the UI to indicate the request is pending, we can reset it in the event of any error at all.&lt;/p&gt;



&lt;h2&gt;Storing and retrieving todos&lt;/h2&gt;

&lt;p&gt;&#13;
&#13;&lt;/p&gt;

&lt;p&gt;Once we’re logged in, we can query for that user’s data to see if they already have a todo list.&lt;/p&gt;

&lt;p&gt;&#13;
&lt;script src="https://gist.github.com/2933472.js?file=get_data.js"&gt; &lt;/script&gt;&lt;/p&gt;

&lt;p&gt;Sending new and updated todos is just as easy. Here we’re sending a new item that was just created, stored in the object_data object.&lt;/p&gt;

&lt;p&gt;&#13;
&lt;script src="https://gist.github.com/2933472.js?file=set.js"&gt; &lt;/script&gt;&lt;/p&gt;

&lt;h2&gt;Changing data&lt;/h2&gt;



&lt;p&gt;When the user checks off an item, we can use the update method to change one of its properties.&lt;/p&gt;

&lt;p&gt;&#13;
&lt;script src="https://gist.github.com/2933472.js?file=update.js"&gt; &lt;/script&gt;&lt;/p&gt;

&lt;h2&gt;Deleting data&lt;/h2&gt;



&lt;p&gt;We’ve also added little &lt;img alt="" src="http://media.tumblr.com/tumblr_m59njizH7W1qjiwg9.png"/&gt; buttons. Here’s how simple it is to remove an object both in frontend and in backend by calling one function:&lt;/p&gt;

&lt;p&gt;&#13;
&lt;script src="https://gist.github.com/2933472.js?file=destroy.js"&gt; &lt;/script&gt;&lt;/p&gt;

&lt;p&gt;To see more examples, including saving user sessions and logging out, you can fork the finished app from &lt;a href="https://github.com/cloudmine/cloudmine-js/tree/master/examples/todo_app"&gt;its repo&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/25157975125</link><guid>http://blog.cloudmine.me/post/25157975125</guid><pubDate>Fri, 15 Jun 2012 10:01:00 -0400</pubDate><category>iOS</category><category>Android</category><category>development</category><category>developer</category><category>API</category><dc:creator>artursapek</dc:creator></item><item><title>User Account Management For Mobile Apps</title><description>&lt;p&gt;We’re pleased to announce a dedicated set of tools for managing user accounts on all apps developed using our platform.  All examples in this tutorial use the CloudMine iOS SDK, however, all of the operations are also available through our REST API.&lt;/p&gt;
&lt;h2&gt;Creating Accounts&lt;/h2&gt;
&lt;p&gt;The CMUser class contains all the methods you need to manage user accounts. To create a new account, initialize a new CMUser object and call the &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_user.html#a75cc2286b78639d55992ee35a5a98ad9" title="createAccountWithCallback"&gt;createAccountWithCallback&lt;/a&gt; method.&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=CreateAccount.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;(see also: &lt;a href="https://cloudmine.me/developer_zone#ref/account_create"&gt;&lt;a href="https://cloudmine.me/developer_zone#ref/account_create"&gt;https://cloudmine.me/developer_zone#ref/account_create&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;Login&lt;/h2&gt;
&lt;p&gt;Once the account is created, the user can be authenticated by calling the &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_user.html#a3051b10f7ec22fa1a7064ad8d97b1c73" title="loginWithCallback"&gt;loginWithCallback&lt;/a&gt; method.&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=Login.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;(see also: &lt;a href="https://cloudmine.me/developer_zone#ref/account_login"&gt;&lt;a href="https://cloudmine.me/developer_zone#ref/account_login"&gt;https://cloudmine.me/developer_zone#ref/account_login&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;There is a shortcut for creating an account and logging in with one operation called  &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_user.html#adc2b15ea9176fb8756ab1492974c79d6" title="createAccountAndLoginWithCallback"&gt;createAccountAndLoginWithCallback&lt;/a&gt;:&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=CreateAccountAndLogin.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;Once the user is logged in, you will need to configure the &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_store.html" title="CMStore"&gt;CMStore&lt;/a&gt; for making authenticated requests.&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=ConfigureAuth.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;From now on, all requests for user-level data will be authenticated with the user’s credentials.&lt;/p&gt;
&lt;h2&gt;Logout&lt;/h2&gt;
&lt;p&gt;When you want to terminate a user’s session, call the &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_user.html#aadef7929e7f621df7d08c97b11195e97" title="logoutWithCallback"&gt;logoutWithCallback&lt;/a&gt; method.&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=Logout.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;(see also: &lt;a href="https://cloudmine.me/developer_zone#ref/account_logout"&gt;&lt;a href="https://cloudmine.me/developer_zone#ref/account_logout"&gt;https://cloudmine.me/developer_zone#ref/account_logout&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;Password Change&lt;/h2&gt;
&lt;p&gt;Users now have the ability to change their password. For security purposes, the user must provide their old password along with their new password.&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=PasswordChange.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;(see also: &lt;a href="https://cloudmine.me/developer_zone#ref/password_change"&gt;&lt;a href="https://cloudmine.me/developer_zone#ref/password_change"&gt;https://cloudmine.me/developer_zone#ref/password_change&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;Forgotten Password Reset&lt;/h2&gt;
&lt;p&gt;If a user forgets their password, they can request that an email be sent with instructions on how to reset it.&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=PasswordReset.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;(see also: &lt;a href="https://cloudmine.me/developer_zone#ref/password_reset"&gt;&lt;a href="https://cloudmine.me/developer_zone#ref/password_reset"&gt;https://cloudmine.me/developer_zone#ref/password_reset&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;How to Store and Retrieve User Data&lt;/h2&gt;
&lt;p&gt;There are many different methods for retrieving data from the &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_store.html" title="CMStore"&gt;CMStore&lt;/a&gt;. Each method has two versions: one to fetch app-level data, and one for user-level data. To store or retrieve user objects, call the “user” version of any method in &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_store.html" title="CMStore"&gt;CMStore&lt;/a&gt;: as long as the &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_store.html" title="CMStore"&gt;CMStore&lt;/a&gt; has been initialized with a logged-in user, requests will transparently be authenticated with that user.&lt;/p&gt;
&lt;p&gt;For example, to retrieve all user objects, call the &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_store.html#a0129298f1e9de520c117d4de9e6fe2a3"&gt;allUsersObjectsWithOptions&lt;/a&gt; method.&lt;/p&gt;
&lt;script src="https://gist.github.com/2423906.js?file=GetData.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;For more information, visit our &lt;a href="https://cloudmine.me/ios-docs"&gt;iOS Library Documentation&lt;/a&gt;.&lt;/p&gt;
&lt;script language="JavaScript" type="text/javascript"&gt;&lt;![CDATA[// &lt;![CDATA[
// &lt;![CDATA[
// &lt;![CDATA[
var OB_langJS = 'http://widgets.outbrain.com/lang_en.js'; var OBITm = '1338504503798';var OB_raterMode = 'none';var OB_recMode = 'dualBox'; 

var OutbrainPermaLink='http://blog.cloudmine.me/post/24124991903/user-account-management-for-mobile-apps'; 

 if ( typeof(OB_Script)!='undefined' )OutbrainStart(); else { var OB_Script = true; var str = unescape("%3Cscript src=\'http://widgets.outbrain.com/OutbrainRater.js\' type=\'text/javascript\'%3E%3C/script%3E"); document.write(str); }
 
// ]]]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]&gt;&lt;![CDATA[&gt;]]&gt;&lt;/script&gt;</description><link>http://blog.cloudmine.me/post/24124991903</link><guid>http://blog.cloudmine.me/post/24124991903</guid><pubDate>Thu, 31 May 2012 07:46:00 -0400</pubDate><category>iOS</category><category>development</category><category>how to</category><category>library</category><category>SDK</category><category>REST</category><category>API</category><dc:creator>derekmansen</dc:creator></item><item><title>iOS SDK Refresh</title><description>&lt;p&gt;&lt;p class="p1"&gt;We took your input, with just a bit of our own work sprinkled in for good measure, and updated the iOS library.  All of the updates compile and translate into easier and faster development for your iOS apps.  &lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;What’s New?&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;There are upgrades across the board to make development and deployment faster.   However, the three major changes that stand out are:&lt;/p&gt;
&lt;ol class="ol1"&gt;&lt;li class="li2"&gt;&lt;strong&gt;Run server-side code from any operation in the library.  &lt;/strong&gt;All operations can now &lt;a href="https://cloudmine.me/developer_zone#code/pp-get" title="Query metadata and code snippet results" target="_blank"&gt;access result data&lt;/a&gt; from server-side code snippets, as well as &lt;a href="https://cloudmine.me/developer_zone#ref/query_geo" title="Access metadata results from code snippets" target="_blank"&gt;any metadata&lt;/a&gt; returned in the API call response.  This gives you the power to use the power of server-side processing or plug in other services.  What we’re saying is - build whatever you want.&lt;/li&gt;
&lt;li class="li2"&gt;&lt;strong&gt;Upload files without keys.  &lt;/strong&gt;Even though we love gossip, there’s no need to tell us all the details.  Uploading a file without a key will automatically create one for it once it’s on our servers.&lt;/li&gt;
&lt;li class="li2"&gt;&lt;strong&gt;Sort object query results.   &lt;/strong&gt;Sometimes the natural order isn’t what you want.  Object queries can now be sorted by any field on the object, in ascending or descending order.  &lt;/li&gt;
&lt;/ol&gt;&lt;p class="p3"&gt;&lt;strong&gt;Backwards Compatibility&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;You will need to change the way callbacks are handled by your apps after upgrading to the new library.  Once this change is made, however, all future versions of the library will be completely backwards compatible.  The example below outlines the change.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;Previously&lt;/strong&gt; each callback would be passed parameters explicitly, like so:&lt;/p&gt;
&lt;script src="https://gist.github.com/2789558.js" type="text/javascript"&gt;&lt;![CDATA[// &lt;![CDATA[
// &lt;![CDATA[
// &lt;![CDATA[
 
// ]]]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]&gt;&lt;![CDATA[&gt;]]&gt;&lt;/script&gt;&lt;p class="p1"&gt;&lt;strong&gt;Now&lt;/strong&gt;, each callback takes just one object that contains all the properties you may need: &lt;/p&gt;
&lt;script src="https://gist.github.com/2789576.js" type="text/javascript"&gt;&lt;![CDATA[// &lt;![CDATA[
// &lt;![CDATA[
 
// ]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]&gt;&lt;![CDATA[&gt;]]&gt;&lt;/script&gt;&lt;p class="p1"&gt;Handling callbacks in this way allows us to add new attributes to our responses without breaking your code in the future.  We’re sorry for the trouble in the mean time!&lt;span class="s1"&gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;strong&gt;Get Building&lt;/strong&gt;&lt;span class="s1"&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt; &lt;iframe frameborder="1" height="300" src="http://player.vimeo.com/video/37117437?byline=0&amp;amp;portrait=0" width="400"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Take a gander at the video for a quick intro on how to get started developing with the new library.  The &lt;a href="https://cloudmine.me/developer_zone#ios/overview" title="iOS Library Developer Zone contains code snippets and getting started guides" target="_blank"&gt;iOS documentation in our Developer Zone&lt;/a&gt; is also a great place to fully familiarize yourself with the library and all of the changes. &lt;/p&gt;
&lt;p class="p1"&gt;As always, feel free to &lt;a href="mailto:support@cloudmine.me" title="Contact CloudMine" target="_blank"&gt;email&lt;/a&gt; or &lt;a href="http://twitter.com/#!/cloudmine" title="CloudMine's tech ramblings" target="_blank"&gt;tweet to us&lt;/a&gt; if there’s anything we can help with.&lt;/p&gt;&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/23737947762</link><guid>http://blog.cloudmine.me/post/23737947762</guid><pubDate>Fri, 25 May 2012 12:21:00 -0400</pubDate><category>iOS</category><category>iPhone</category><category>developers</category><category>library</category><dc:creator>localeverywhere</dc:creator></item><item><title>Application-Level Data Security</title><description>&lt;p&gt;We’re pleased to announce an all-new security feature for the CloudMine platform. You can now use our new &lt;a href="https://cloudmine.me/dashboard" target="_blank"&gt;API key rules interface&lt;/a&gt; to secure application-level data, allowing you to restrict access to your data without requiring your users to log in.&lt;/p&gt;
&lt;h1&gt;Why?&lt;/h1&gt;
&lt;p&gt;APIs like CloudMine usually restrict access to their data via the use of an API key, or token, that is sent with each request to perform authentication on the server. The problem with this is that the key must be embedded in code. This offers a small level of protection from malicious users, but a motivated person could still decompile the app and get the key without too much effort.&lt;/p&gt;
&lt;p&gt;With this feature, you can restrict access to some (or all) of your data using our rules system. You can make certain objects or files read-only, or only allow users to create objects (but not delete them). Security is validated on our servers with each API request. One common scenario is when an HTML5 web app needs access to your data. This works by embedding your key in the app’s JavaScript code. However, keys embedded in JavaScript are easily extracted. In this instance, you should create a new key with read-only permissions and use that to access the API.&lt;/p&gt;
&lt;h1&gt;How It Works&lt;/h1&gt;
&lt;p&gt;If you just want to jump in and play around with the new feature, head on over to your &lt;a href="https://cloudmine.me/dashboard" target="_blank"&gt;CloudMine Dashboard&lt;/a&gt;. Read the quick blurb about how the system is organized, make a new API key, and apply some rules to it. You can use the &lt;a href="https://cloudmine.me/dashboard/console" target="_blank"&gt;API Console&lt;/a&gt; to explore how your results change depending on which rules you’ve defined.&lt;/p&gt;
&lt;p&gt;When you’re satisfied that the rules you’ve created are what you want for your app, you can either apply them to your current API key, or redistribute your app with the new key. If you need more detailed information, visit the &lt;a href="https://cloudmine.me/developer_zone#security/app" target="_blank"&gt;App-Level Data Security&lt;/a&gt; section of our API documentation.&lt;/p&gt;
&lt;h1&gt;Start Developing!&lt;/h1&gt;
&lt;p&gt;We have a lot of pride in the new features we’re bringing you, and we’re excited to see how developers end up using it. If you have any questions or comments, don’t hesitate to drop us a line on &lt;a href="https://twitter.com/#!/cloudmine"&gt;Twitter&lt;/a&gt; or via &lt;a href="mailto://team@cloudmine.me"&gt;email&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/21380529268</link><guid>http://blog.cloudmine.me/post/21380529268</guid><pubDate>Thu, 19 Apr 2012 10:17:00 -0400</pubDate><category>appsec</category><category>security</category><dc:creator>derekmansen</dc:creator></item><item><title>About Sexism In Tech</title><description>&lt;p&gt;Some unfortunate events occurred during the afternoon, related to some very poor and offensive wording in the flyer for an event that we were sponsoring. A short summary of what happened:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;An &lt;a href="https://img.skitch.com/20120320-fmsc5mciy8e7n3nxhakmegxxg9.png"&gt;event posting&lt;/a&gt; for the &lt;a href="http://apijam-boston.eventbrite.com/"&gt;Boston API Jam&lt;/a&gt; was created containing clearly sexist language. We were listed as a sponsor of the event at the time.&lt;/li&gt;
&lt;li&gt;The sexism in the event details was pointed out to us by many followers on Twitter (special thanks to @coolaunterin!)&lt;/li&gt;
&lt;li&gt;Before the flyer was posted, we were unaware of the specific wording that was going to be used in the flyer.&lt;/li&gt;
&lt;li&gt;We, and other companies, pulled our sponsorships from the event.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;All of us at CloudMine agreed that this type of language is not acceptable, and we made an effort to contact the organizers of the event to get this changed as quickly as possible. Sexism in tech is a serious problem. Events like what happened today are, unfortunately, not uncommon. Catering exclusively to men in a sexist manner in your marketing materials is not only wrong, but it undermines those trying to make real progress. It hurts everyone when something like this happens—it can make women feel like outsiders in their own field, and it normalizes this type of behavior as okay (which it absolutely never is, even if there was no intention to hurt).&lt;/p&gt;
&lt;p&gt;Having said that, we sincerely apologize for any offense that was caused. We never would have posted something like that, and do not endorse anyone who does.&lt;/p&gt;
&lt;p&gt;Since we are no longer sponsoring this event, we now have extra funding to sponsor a different event which is more aligned with our views. We love hackathons—our company born at one—and we’d like to put this money to good use at an event that will bring all hackers (women and men alike!) together. Give us your suggestions in the comments or on Twitter (@CloudMine).&lt;/p&gt;</description><link>http://blog.cloudmine.me/post/19639692371</link><guid>http://blog.cloudmine.me/post/19639692371</guid><pubDate>Tue, 20 Mar 2012 16:37:00 -0400</pubDate><category>sexism</category><category>tech</category><category>startups</category><dc:creator>derekmansen</dc:creator></item><item><title>Announcing the CloudMine iOS SDK</title><description>&lt;p&gt;Performing manual URL concatination sucks. Client-side caching and dealing with the implications of a lost network connection sucks. Having to manually break down model objects into their JSON representation sucks. For all these reasons, we are happy to announce that the first release of the CloudMine iOS SDK is available, and you no longer have to deal with any of that. Getting started with CloudMine couldn&amp;#8217;t be easier. Just &lt;a href="https://github.com/downloads/cloudmine/cloudmine-ios/cloudmine-framework-release-0.1.tgz"&gt;download the SDK&lt;/a&gt;, drop it into your project, and go. We even have a video walkthrough of how to add the framework to your XCode project (since XCode doesn&amp;#8217;t make that as easy as it should be).&lt;/p&gt;

&lt;p&gt;The SDK is also open source and licensed under the MIT license. Its full source and building instructions are available on the &lt;a href="https://github.com/cloudmine/cloudmine-ios"&gt;GitHub repository&lt;/a&gt; if you get the urge to hack on it yourself.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/downloads/cloudmine/cloudmine-ios/cloudmine-framework-release-0.1.tgz"&gt;Download CloudMine SDK v0.1&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/cloudmine/cloudmine-ios"&gt;GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloudmine.me/developer_zone#ios/overview"&gt;SDK Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloudmine.me/ios-docs/index.html"&gt;Reference documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;After adding the framework to XCode, get started by configuring &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_a_p_i_credentials.html"&gt;&lt;tt&gt;CMAPICredentials&lt;/tt&gt;&lt;/a&gt; and making your model objects extend &lt;a href="https://cloudmine.me/ios-docs/interface_c_m_object.html"&gt;&lt;tt&gt;CMObject&lt;/tt&gt;&lt;/a&gt;. No more messing with Core Data! We have an &lt;a href="https://cloudmine.me/developer_zone#ios/overview"&gt;overview&lt;/a&gt; of the SDK you should check out as well.&lt;/p&gt;

&lt;h1&gt;Walkthrough Requests&lt;/h1&gt;

&lt;p&gt;Is there something that you&amp;#8217;d like to see explained in a short screencast? &lt;a href="mailto:team@cloudmine.me"&gt;Drop us a line&lt;/a&gt; and let us know!&lt;/p&gt;

&lt;h1&gt;Walkthrough: Adding the SDK to XCode&lt;/h1&gt;

&lt;iframe allowfullscreen="true" frameborder="0" height="250" mozallowfullscreen="true" src="http://player.vimeo.com/video/37117437?byline=0&amp;amp;amp;portrait=0" webkitallowfullscreen="true" width="611"&gt;&lt;/iframe&gt;</description><link>http://blog.cloudmine.me/post/19402119581</link><guid>http://blog.cloudmine.me/post/19402119581</guid><pubDate>Fri, 16 Mar 2012 13:09:19 -0400</pubDate><category>ios</category><category>release</category><dc:creator>marcweil</dc:creator></item></channel></rss>
