<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SoftLayer Blog &#187; JSON</title>
	<atom:link href="http://blog.softlayer.com/tag/json/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.softlayer.com</link>
	<description>A Behind the Scenes Look at the Best Hosting Provider in the World</description>
	<lastBuildDate>Tue, 04 Jun 2013 20:27:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>Cloudant: Tech Partner Spotlight</title>
		<link>http://blog.softlayer.com/2012/cloudant-tech-partner-spotlight/</link>
		<comments>http://blog.softlayer.com/2012/cloudant-tech-partner-spotlight/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:50:06 +0000</pubDate>
		<dc:creator>Guest Blog</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Partner Marketplace]]></category>
		<category><![CDATA[Apache CouchDB]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[grow]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[partner marketplace]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.softlayer.com/?p=7245</guid>
		<description><![CDATA[This is a guest blog from our featured Technology Partners Marketplace company, Cloudant. Cloudant enables you to build next-generation data-driven applications without having to worry about developing, managing, and scaling your data layer. Company Website: https://cloudant.com/ Tech Partners Marketplace: http://www.softlayer.com/marketplace/cloudant Cloudant: Data Layer for the Big Data Era The recipe for big data app success: [...]]]></description>
			<content:encoded><![CDATA[<p class="attribution">This is a guest blog from our featured Technology Partners Marketplace company, <a href="https://cloudant.com">Cloudant</a>. Cloudant enables you to build next-generation data-driven applications without having to worry about developing, managing, and scaling your data layer.</p>
<div class="yt560"><iframe src="http://www.youtube.com/embed/n5IuA_A9Z_M?hd=1" frameborder="0" width="560" height="349"></iframe></div>
<div class="more-info"><strong>Company Website:</strong> <a href="https://cloudant.com/">https://cloudant.com/</a><br />
<strong>Tech Partners Marketplace:</strong> <a href="http://www.softlayer.com/marketplace/cloudant">http://www.softlayer.com/marketplace/cloudant</a></div>
<h3>Cloudant: Data Layer for the Big Data Era</h3>
<p>The recipe for big data app success: Start small. Iterate fast. Grow to epic proportions. </p>
<p style="margin-bottom:0;">Unfortunately, most developers&#8217; databases come up short when they try to simultaneously &#8220;iterate fast&#8221; and &#8220;grow to epic proportions&#8221; &mdash; those two steps are most often at odds. I know &#8230; I&#8217;ve been there. In a recent past life, I attacked petabyte-per-second data problems as a particle physicist at the <a href="http://en.wikipedia.org/wiki/Large_Hadron_Collider">Large Hadron Collider</a> together with my colleagues and Cloudant co-founders, Alan Hoffman and Adam Kocoloski. Here are some lessons we learned the hard way:</p>
<ol style="margin-top:10px; margin-bottom:10px; padding-top:0; padding-bottom:0;">
<li><strong>Scaling a database yourself is brutally hard</strong> (both application level sharding and the master-slave model). It is harder with SQL than it is with NoSQL databases, but either way, the &#8220;scale it yourself&#8221; approach is loaded with unknowns, complications and operational expense.</li>
<li><strong>Horizontal scaling on commodity hardware is a must.</strong> We got very good at this and ended up embedding <a href="http://couchdb.apache.org/">Apache CouchDB</a> behind a horizontal scaling framework to scale arbitrarily and stay running 24&#215;7 with a minimal operational load.</li>
<li><strong>The data layer must scale.</strong> It should be something that applications grow into, not out of.</li>
</ol>
<p>That last point inspired Alan, Adam and me to co-found Cloudant.</p>
<p><strong>What is Cloudant?</strong><br />
Cloudant is a scalable data layer (as a service) for Big Data apps. Built on CouchDB, JSON, and MapReduce, it lets developers focus on new features instead of the drudgery of growing or migrating databases. The Cloudant Data Layer is already big: It collects, stores, analyzes and distributes application data across a global network of secure, high-performance data centers, delivering low-latency and non-stop data access to users no matter where they&#8217;re located. You get to focus on your code; we&#8217;ve got data scalability and availability covered for you. </p>
<p><strong>Scaling Your App on Cloudant</strong><br />
Cloudant is designed to support fast app iteration by developers. It&#8217;s based on the CouchDB NoSQL database where data is encapsulated and transferred as JSON documents. You don&#8217;t need to design and redesign SQL data models or migrate databases in order to create new app features. You don&#8217;t need to write object-relational mapping code either. The database resides behind an HTTP layer and provides a rich permission model, so you can access, secure and share your data via a RESTful API. </p>
<p>Your app is a tenant within a multi-tenant data layer that is already big and scalable. You get a URL end point for your data layer, get data in and out of it via HTTP, and we scale and secure it around the globe. Global data distribution and intelligent routing minimizes latency between your users and the data, which can add 100s of milliseconds per request (we&#8217;ve measured!). Additionally, Cloudant has an advanced system for prioritizing requests so that apps aren&#8217;t affected by &#8216;noisy neighbors&#8217; in a multi-tenant system. We also offer a single-tenant data layer to companies who want it &mdash; your very own white-labeled data cloud. As your data volume and IO requests rise (or fall), Cloudant scales automatically, and because your data is replicated to multiple locations, it&#8217;s always available. Start small and grow to epic proportions? <em>Check.</em></p>
<p style="margin-bottom:0;"><strong>Other Data Management Gymnastics</strong><br />
The Cloudant Data Layer also makes it easy to add advanced functionality to your apps:</p>
<ul style="margin-top:10px;">
<li>Replicate data (all of it or sub-sets) to data centers, computers or even mobile devices for local processing (great for analytics) or off-line access (great for mobile users). Re-synching is automatic.</li>
<li>Perform advanced analytics with built-in MapReduce and full-text indexing and search.</li>
<li>Distribute your code with data &mdash; Cloudant can distribute and serve any kind of document, even HTML5 and other browser-based code, which makes it easy to scale your app and move processing from your back-end to the browser.</li>
</ul>
<p><strong>Why We Run on SoftLayer</strong><br />
Given the nature of our service, people always ask us where we have our infrastructure, and we&#8217;re quick to tell them we chose SoftLayer because we&#8217;re fanatical about performance. We measured latencies for different data centers run by other cloud providers, and it&#8217;s no contest: SoftLayer provides the lowest and most predictable latencies. Data centers that are thousands of miles apart perform almost as if they are on the same local area network. SoftLayer&#8217;s rapidly expanding global presence allows Cloudant to replicate data globally throughout North America, Europe and Asia (with plans to continue that expansion as quickly as SoftLayer can build new facilities).</p>
<p>The other major draw to SoftLayer was the transparency they provide about our infrastructure. If you run a data layer, IO matters! SoftLayer provisions dedicated hardware for us (rather than just virtual machines), and they actually tell us exactly what hardware we are running on, so we can tweak our systems to get the most bang for our buck. </p>
<p><strong>Get Started with Cloudant for Free</strong><br />
If you&#8217;re interested to see what the Cloudant Data Layer could do for your app, sign up at <a href="https://cloudant.com">cloudant.com</a> to get your <a href="https://cloudant.com/#!/solutions/cloud">FREE</a> global data presence created in an instant.</p>
<p>-Michael Miller, <a href="https://cloudant.com/">Cloudant</a></p>
<div class="tpm-note">This guest blog series highlights companies in SoftLayer&#8217;s <a href="http://www.softlayer.com/marketplace">Technology Partners Marketplace</a>. <br/>These <a href="http://blog.softlayer.com/partner-marketplace/">Partners</a> have built their businesses on the SoftLayer Platform, and we&#8217;re excited for them to tell their stories. New Partners will be added to the Marketplace each month, so stay tuned for many more come.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.softlayer.com/2012/cloudant-tech-partner-spotlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modern Website Design: Layout</title>
		<link>http://blog.softlayer.com/2011/modern-website-design-layout/</link>
		<comments>http://blog.softlayer.com/2011/modern-website-design-layout/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 13:40:06 +0000</pubDate>
		<dc:creator>Kevin Trachier</dc:creator>
				<category><![CDATA[SoftLayer]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[efficiency]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[recommendation]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://blog.softlayer.com/2011/</guid>
		<description><![CDATA[There have been many books written about website design, and I am not about to take on the challenge of disputing any of them or trying to explain every facet of design. In this short blog, I want to explain what I have come to understand as the modern layout of websites. The term &#8220;layout&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>There have been many books written about website design, and I am not about to take on the challenge of disputing any of them or trying to explain every facet of design. In this short blog, I want to explain what I have come to understand as the modern layout of websites. The term &#8220;layout&#8221; may have many different definitions, but for this article I am talking about the basic structure of your website, meaning <a href="http://en.wikipedia.org/wiki/Separation_of_concerns">separation of concerns</a>, data transfer from host to client, how to handle changes in data, and when to change your page structure.</p>
<h3>Separation of Concerns</h3>
<p>It is important when sitting down for the first time to build a website to come up with an outline. Start by making a list of the parts of your website and the functions of those parts. I always start at the base of my web structure and work from there. HTML is always the foundation of a website; it defines the structure and outlines how you will display your data &ndash; plain and simple. It doesn&#8217;t have to include data or styles, nor does it need to be dynamic &#8230; At its essence, it&#8217;s a static file that browsers can cache. </p>
<p>Client-side scripting languages like JavaScript will take care of client-side animations and data dispersal, while cascading style sheets (CSS) take care of style and presentation, and server-side scripting languages like <a href="http://en.wikipedia.org/wiki/PHP">PHP</a> or <a href="http://en.wikipedia.org/wiki/Perl">Perl</a> can take care of data retrieval and formatting.</p>
<h3>Data Transfer</h3>
<p>Where is your data going to come from, and what format it will be in when the client receives it? Try to use a data format that is the most compatible with your scripting languages. I use JavaScript as my primary client side scripting program, so I try to use <a href="http://www.json.org/">JSON</a> as my data format, but that&#8217;s not always possible when dealing with APIs and transferring data from remote computers. JSON is quickly becoming a standard data format, but <a href="http://en.wikipedia.org/wiki/XML">XML</a>* is the most widely accepted format.</p>
<p>I prefer to use <a href="http://blog.softlayer.com/2011/api-basics-rest/">REST APIs</a> as much as possible, because they sends the information directly on the client, rather than using the server as a proxy. However, if a REST API is not available or if there is a security risk involved, you get the advantage of being able to format the data on the server before pushing it to the client. Try to parse and format data as little as possible on the client side of things, the client should be concerned with placing data.</p>
<h3>Changes in Data</h3>
<p>In the past, websites were made from multiple HTML documents, each one containing different data. The structure of the pages were the same though, so the data changed, but the code was nearly identical. Later, using server side scripting programs, websites became more dynamic, displaying different data based on variables passed in the URL. Now, using AJAX or <a href="http://blog.softlayer.com/2011/ajax-without-xml-http-requests/">script injection</a>, we can load new data into a static webpage without reloading. This means less redundant code, less load on the client, and better overall performance.</p>
<h3>Page Structure</h3>
<p>It is important when displaying data to understand when to change the structure of the page. I start by creating a structure for my home page &#8211; it needs to be very open and unrestricting so I can add pictures and text to build the site. Once the overall loose structure is established, I create a structure for displaying products (this will be more restrictive, containing tables and ordering tools). The idea is to have as few HTML structures as possible, but if you find that your data doesn&#8217;t fit or if you spend a lot of time positioning your data, then it might be time to create a new structure.</p>
<h3>The Impact of a Modern Layout</h3>
<p>Following these steps will lead to quicker, more efficient websites. This is (of course) not a new subject, and further understanding of web layout can be found in Model-View-Controller frameworks. If you find that you spend too much time writing code to interface with databases or place data, then frameworks are for you.</p>
<p>-Kevin</p>
<p>*If you have to deal with XML, make sure to include JavaScript libraries that make it easier to parse, like <a href="http://jquery.com/">JQuery</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softlayer.com/2011/modern-website-design-layout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>API Basics: REST API &#8211; &#8220;Hello World&#8221;</title>
		<link>http://blog.softlayer.com/2011/api-basics-rest-api-hello-world/</link>
		<comments>http://blog.softlayer.com/2011/api-basics-rest-api-hello-world/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 15:30:11 +0000</pubDate>
		<dc:creator>Kevin Trachier</dc:creator>
				<category><![CDATA[SoftLayer]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.softlayer.com/2011/</guid>
		<description><![CDATA[Learning SoftLayer&#8217;s API When I first started to look at SoftLayer&#8217;s API, I favored the SOAP programming interface because I liked the strictly formatted XML responses, the good separation of concerns (using the server as proxy for data retrieval) and the increased security. All of these are great reasons to use the SOAP interface, but [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Learning SoftLayer&#8217;s API</strong><br />
When I first started to look at SoftLayer&#8217;s API, I favored the <a href="http://blog.softlayer.com/2011/api-basics-what-is-soap/">SOAP programming interface</a> because I liked the strictly formatted XML responses, the good separation of concerns (using the server as proxy for data retrieval) and the increased security. All of these are great reasons to use the SOAP interface, but once I saw how easy and direct the <a href="http://blog.softlayer.com/2011/api-basics-rest/">REST</a> interface is, I decided that I would use it as my cornerstone for learning the SoftLayer API.</p>
<p><strong>REST API</strong><br />
Although the REST software archetype is a difficult concept to explain, its practice has become natural to those of us who use the internet daily. Imagine that the information that you want to know is saved as a web page somewhere and all you have to do is type in the URL, it will prompt you for a username and password, and you will see the information that you requested.</p>
<p><strong>Authentication</strong><br />
Before making a request you will need to find your API authentication token. To do this, log into your customer account and click API under the Support tab. Click the &#8220;Manage API Access&#8221; link. At the bottom of the next page you will see a drop-down menu that says &#8220;Select a User&#8221; and above it a tag that says &#8220;Generate a new API access key.&#8221; Select a user and click the &#8220;Generate API Key&#8221; button. You will see your username and the generated API key for that user. Copy this API key, as you&#8217;ll need it to send commands SoftLayer&#8217;s API.</p>
<p><strong>&#8220;Hello World&#8221;</strong><br />
Unfortunately, there is no specific &#8220;Hello World&#8221; command in SoftLayer&#8217;s API, but there are some commands that are very simple and don&#8217;t require any variables, like the <code>getObject()</code> method. APIs are like component libraries, split into web services and methods of that service. The <a href="http://sldn.softlayer.com/wiki/index.php/Category:API_Services">SLDN</a> has a full list of SoftLayer&#8217;s web services to choose from. I am going to use the <code>getObject()</code> method from the <code>SoftLayer_Account</code> service in this example:</p>
<p style="margin-bottom:0;"><a href="https://api.softlayer.com/rest/v3/SoftLayer_Account.xml">https://api.softlayer.com/rest/v3/SoftLayer_Account.xml</a></p>
<ul style="margin-top:0;">
<li>You will be prompted for your username and API access key</li>
<li>XML data type output</li>
</ul>
<p style="margin-bottom:0;"><a href="https://USERNAME:PASSWORD@api.softlayer.com/rest/v3/SoftLayer_Account.json">https://USERNAME:PASSWORD@api.softlayer.com/rest/v3/SoftLayer_Account.json</a></p>
<ul style="margin-top:0;">
<li>Automatic authentication</li>
<li>JSON data type output</li>
</ul>
<p><strong>The Request</strong><br />
Here is the basic REST request structure:</p>
<div style="width: 650px; height: auto; overflow:auto; border: 1px solid black;">
<pre><code>https://<u><em>username</em></u>:<u><em>API key</em></u>@api.service.softlayer.com/rest/v3/<u><em>serviceName</em></u>/<u><em>InitializationParameter</em></u>.<u><em>returnDatatype</em></u></code></pre>
</div>
<ul>
<li>All requests are sent via secure transfer (https://)</li>
<li>Listing your <code>username</code> and <code>API key</code> before the URL allows for automatic HTTP authentication</li>
<li><code>Service</code> and <code>serviceName</code> both refer to the web service you are trying to access</li>
<li><code>InitializationParameter</code> is only used if the method you are calling requires an initialization Parameter</li>
<li>SoftLayer&#8217;s REST API can respond with either JSON or XML data types; replace <code>returnDatatype</code> with the type you would like to receive.</li>
</ul>
<p><strong>The Data</strong><br />
Looking at the first link above, your browser should be able to output the response data in XML format, showing information about your account. More information about the format of the data can be found <a href="http://sldn.softlayer.com/wiki/index.php/SoftLayer_Account_%28type%29">on the SLDN wiki</a>.</p>
<p><strong>REST Basics</strong><br />
When you start integrating this into a website you will want to get/make a function or library to handle advanced requests and to properly receive and disperse the response; I recommend using JQuery. This is the most basic example of a function call for SoftLayer&#8217;s API, I hope that it will help you get a feel for the information that you will need to pass to our server and the kind of response that you will receive.</p>
<p>-Kevin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softlayer.com/2011/api-basics-rest-api-hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
