<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Database.com</title>
	
	<link>http://blog.database.com</link>
	<description>Blog</description>
	<lastBuildDate>Tue, 13 Nov 2012 16:13:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DatabaseDotComBlog" /><feedburner:info uri="databasedotcomblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Introduction to Database.com</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/Z762i2LaWHk/</link>
		<comments>http://blog.database.com/blog/2012/11/13/introduction-to-database-com/#comments</comments>
		<pubDate>Tue, 13 Nov 2012 16:13:08 +0000</pubDate>
		<dc:creator>Steve Bobrowski</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=511</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2012/11/13/introduction-to-database-com/"><img align="right" hspace="5" width="150" src="http://blog.database.com/wp-content/uploads/2012/11/intro-db.com_-300x213.png" class="alignright wp-post-image tfe" alt="Introduction to Database.com" title="Introduction to Database.com" /></a>Database.com is the worlds first enterprise cloud database. It&#8217;s proven technology that reliably powers billions of transactions per quarter and securely manages data for thousands of organizations business-critical apps and users. Watch and learn how you can leverage Database.com to support your apps.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright  wp-image-512" title="Introduction to Database.com" src="http://blog.database.com/wp-content/uploads/2012/11/intro-db.com_-300x213.png" alt="Introduction to Database.com" width="210" height="149" />Database.com is the worlds first enterprise cloud database. It&#8217;s proven technology that reliably powers billions of transactions per quarter and securely manages data for thousands of organizations business-critical apps and users. <a title="Introduction to Database.com" href="http://events.developerforce.com/conferences/dreamforce?session=21021">Watch and learn</a> how you can leverage Database.com to support your apps.</p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/Z762i2LaWHk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2012/11/13/introduction-to-database-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2012/11/13/introduction-to-database-com/</feedburner:origLink></item>
		<item>
		<title>Cloud Integration with Database.com and Heroku</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/6MA7tikSADU/</link>
		<comments>http://blog.database.com/blog/2012/11/12/cloud-integration-with-database-com-and-heroku/#comments</comments>
		<pubDate>Mon, 12 Nov 2012 14:41:33 +0000</pubDate>
		<dc:creator>Steve Bobrowski</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[integration]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=507</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2012/11/12/cloud-integration-with-database-com-and-heroku/"><img align="right" hspace="5" width="150" src="https://cloudspokes.s3.amazonaws.com/CloudSpokes.png" class="alignright wp-post-image tfe" alt="Cloudspokes" title="Cloudspokes Logo" /></a>Discover how Appirio architected the CloudSpokes crowdsourced development community and marketplace using Database.com, Heroku, and other cloud-based services such as Redis and MailChimp.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Cloudspokes Logo" src="https://cloudspokes.s3.amazonaws.com/CloudSpokes.png" alt="Cloudspokes" width="125" height="97" />Discover how <a title="Appirio" href="http://www.appirio.com">Appirio</a> architected the <a title="Cloudspokes" href="http://www.cloudspokes.com/">CloudSpokes</a> crowdsourced development community and marketplace using Database.com, <a title="Heroku" href="http://www.heroku.com">Heroku</a>, and other cloud-based services such as Redis and MailChimp. <a title="Cloud Integration with Database.com and Heroku" href="http://events.developerforce.com/conferences/dreamforce?session=7951">This Dreamforce &#8217;12 session is an in-depth technical discussion</a> looking at how Appirio decomposed CloudSpokes into functional building blocks and mapped those blocks to the appropriate cloud platforms. Learn why Appirio chose Database.com and how they built search capabilities using Redis on Heroku.</p>
<p>&gt; <a title="Cloud Integration with Database.com and Heroku" href="http://events.developerforce.com/conferences/dreamforce?session=7951">View Session Now</a></p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/6MA7tikSADU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2012/11/12/cloud-integration-with-database-com-and-heroku/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2012/11/12/cloud-integration-with-database-com-and-heroku/</feedburner:origLink></item>
		<item>
		<title>Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/ZZXef4Z4U8g/</link>
		<comments>http://blog.database.com/blog/2012/11/08/creating-html5-applications-with-jquery-mobile-ruby-and-database-com/#comments</comments>
		<pubDate>Thu, 08 Nov 2012 20:01:55 +0000</pubDate>
		<dc:creator>Steve Bobrowski</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=502</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2012/11/08/creating-html5-applications-with-jquery-mobile-ruby-and-database-com/"><img align="right" hspace="5" width="150" src="http://blog.database.com/wp-content/uploads/2012/11/Ruby-and-Database.com_.png" class="alignright wp-post-image tfe" alt="Ruby and Database.com" title="Ruby and Database.com" /></a>Learn how easy it is to create an HTML5 application that runs on browsers, mobile devices, and tablets. We'll walk through the entire process of setting up a jQuery Mobile application hosted on Heroku that uses Database.com as it's backend with the Databasedotcom Ruby gem.]]></description>
			<content:encoded><![CDATA[<p>Mobile is a hot theme this year and there&#8217;s no better platform than Heroku and Force.com for your mobile applications.</p>
<p style="text-align: center;"><a href="http://events.developerforce.com/conference/dreamforce?session=10701"><img class="aligncenter size-full wp-image-503" title="Ruby and Database.com" src="http://blog.database.com/wp-content/uploads/2012/11/Ruby-and-Database.com_.png" alt="Ruby and Database.com" width="603" height="141" /></a></p>
<p><a title="Ruby and Database.com" href="http://events.developerforce.com/conference/dreamforce?session=10701">In this session</a>, we&#8217;ll show you how easy it is to create an HTML5 application that runs on browsers, mobile devices and tablets. We&#8217;ll walk through the entire process of setting up a jQuery Mobile application hosted on Heroku that uses Database.com as it&#8217;s backend with the Databasedotcom Ruby gem.</p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/ZZXef4Z4U8g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2012/11/08/creating-html5-applications-with-jquery-mobile-ruby-and-database-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2012/11/08/creating-html5-applications-with-jquery-mobile-ruby-and-database-com/</feedburner:origLink></item>
		<item>
		<title>Building a Java Play! App on Heroku using Database.com</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/gCmorBczVgA/</link>
		<comments>http://blog.database.com/blog/2012/11/07/building-a-java-play-app-on-heroku-using-database-com/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 18:17:34 +0000</pubDate>
		<dc:creator>Steve Bobrowski</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=495</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2012/11/07/building-a-java-play-app-on-heroku-using-database-com/"><img align="right" hspace="5" width="150" src="http://blog.database.com/wp-content/uploads/2012/11/Play.png" class="alignright wp-post-image tfe" alt="Play and Force.com/Database.com" title="Play and Force.com/Database.com" /></a>Building a Java Play! App on Heroku using Database.com. Join us as we walk through the Apex code used to create REST services, the Play! development process in Java, and touch lightly on the use of Scala. ]]></description>
			<content:encoded><![CDATA[<p>The Play! framework has emerged as an elegant way to leverage Java or Scala to build high performance, scalable web applications, all with the ease and productivity found in Rails. Combining Heroku&#8217;s support for the Play! framework, and the ability to create powerful REST services in Apex, this session demonstrates a pattern for building web apps on top of Database.com, including the use of OAuth to create both user-authenticated and public portions of the application.</p>
<p style="text-align: center;"><a href="http://events.developerforce.com/conferences/dreamforce?session=4911"><img class="aligncenter size-full wp-image-497" title="Play and Force.com/Database.com" src="http://blog.database.com/wp-content/uploads/2012/11/Play.png" alt="Play and Force.com/Database.com" width="536" height="113" /></a></p>
<p><a title="Play! plus Database.com Dreamforce Session" href="http://events.developerforce.com/conferences/dreamforce?session=4911">Join us as we walk through</a> the Apex code used to create REST services, the Play! development process in Java, and touch lightly on the use of Scala.</p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/gCmorBczVgA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2012/11/07/building-a-java-play-app-on-heroku-using-database-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2012/11/07/building-a-java-play-app-on-heroku-using-database-com/</feedburner:origLink></item>
		<item>
		<title>Drinking Our Own Champagne: Database.com Docs Run on Heroku!</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/mETQUNkS9F8/</link>
		<comments>http://blog.database.com/blog/2012/03/02/drinking-our-own-champagne-database-com-docs-run-on-heroku/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 18:48:21 +0000</pubDate>
		<dc:creator>Caroline Roth</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=489</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2012/03/02/drinking-our-own-champagne-database-com-docs-run-on-heroku/"><img align="right" hspace="5" width="150" height="150" src="http://blog.database.com/wp-content/uploads/2012/03/dbcomDocScreenshot-150x150.jpg" class="alignright wp-post-image tfe" alt="" title="" /></a>Amongst all the new Spring ’12 features that were just released, there’s one that the database.com documentation team is especially proud of – our new Database.com online help system! Built entirely on Heroku using CouchDB and Websolr add-ons, this online help is the first version of a new architecture that will soon enhance the way [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.database.com/wp-content/uploads/2012/03/dbcomDocScreenshot.jpg"><img class="alignright size-medium wp-image-490" src="http://blog.database.com/wp-content/uploads/2012/03/dbcomDocScreenshot-300x216.jpg" alt="" width="300" height="216" /></a> Amongst all the new Spring ’12 features that were just released, there’s one that the database.com documentation team is especially proud of – our new Database.com online help system! Built entirely on Heroku using <a href="http://couchdb.apache.org/" target="_blank">CouchDB</a> and <a href="http://websolr.com/" target="_blank">Websolr</a> add-ons, this online help is the first version of a new architecture that will soon enhance the way you browse and search for developer doc content on both <a href="http://www.database.com" target="_blank">www.database.com</a> and <a href="http://developer.force.com" target="_blank">developer.force.com</a>.</p>
<p>Features we&#8217;re considering for future releases include:</p>
<ul>
<li>Additional content, like developer guides, workbooks, and discussion board posts</li>
<li>Tools for filtering and sorting search results</li>
<li>A place for readers to leave questions, comments, and best practices on every topic</li>
</ul>
<p>Check out Version 1 at <a href="http://docs.database.com/" target="_blank">http://docs.database.com/</a> and let us know what you’d like to see in your dream doc portal.</p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/mETQUNkS9F8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2012/03/02/drinking-our-own-champagne-database-com-docs-run-on-heroku/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2012/03/02/drinking-our-own-champagne-database-com-docs-run-on-heroku/</feedburner:origLink></item>
		<item>
		<title>Go Mobile with Database.com</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/g4t11pDFpd4/</link>
		<comments>http://blog.database.com/blog/2012/01/25/go-mobile-with-database-com/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 19:12:58 +0000</pubDate>
		<dc:creator>Steve Bobrowski</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=481</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2012/01/25/go-mobile-with-database-com/"><img align="right" hspace="5" width="150" src="http://blogs.developerforce.com/developer-relations/files/2012/01/apps-sdk-frameworks.png" class="alignright wp-post-image tfe" alt="" title="SDK" /></a>In case you hadn&#8217;t heard, the Salesforce Mobile SDK went GA in December. How can you leverage this SDK with Database.com? The Salesforce Mobile SDK is an open-source suite of familiar technologies—like a REST API and OAuth 2.0—that you can use to build great mobile apps. It supports three development approaches for building mobile apps: native, HTML5, [...]]]></description>
			<content:encoded><![CDATA[<p>In case you hadn&#8217;t heard, the Salesforce Mobile SDK went GA in December. How can you leverage this SDK with Database.com?</p>
<p><span id="more-481"></span></p>
<p><img class="alignright" title="SDK" src="http://blogs.developerforce.com/developer-relations/files/2012/01/apps-sdk-frameworks.png" alt="" width="159" height="199" />The Salesforce Mobile SDK is an open-source suite of familiar technologies—like a REST API and OAuth 2.0—that you can use to build great mobile apps. It supports three development approaches for building mobile apps: native, HTML5, and hybrid.</p>
<ul>
<li>Native—You can code native apps for each mobile platform (e.g., Android, iOS), taking advantage of each platform&#8217;s native capabilities.</li>
<li>HTML5—You can build HTML5 apps using familiar technologies such as HTML5, CSS, and JavaScript. An HTML5 app with lightweight server-side pages typically offers the most portability (i.e., the same app can run on all platforms), but won&#8217;t be able to access native platform features.</li>
<li>Hybrid—You can create hybrid apps that use a JavaScript bridge in a native container to merge the portability of HTML5 with native device capabilities, such as the camera or address book.</li>
</ul>
<p>So how can you get started with the Mobile SDK and Database.com?</p>
<ul>
<li>Read <a title="http://wiki.developerforce.com/page/Getting_Started_with_the_Mobile_SDK_for_Android" href="http://wiki.developerforce.com/page/Getting_Started_with_the_Mobile_SDK_for_Android" rel="nofollow">Getting Started with the Mobile SDK for Android</a></li>
<li>Read <a title="http://wiki.developerforce.com/page/Getting_Started_with_the_Mobile_SDK_for_iOS" href="http://wiki.developerforce.com/page/Getting_Started_with_the_Mobile_SDK_for_iOS" rel="nofollow">Getting Started with the Mobile SDK for iOS</a></li>
<li>Register for the free <a title="Mobile SDK Webinar" href="http://www.developerforce.com/events/mobilesdk_webinars/registration.php?d=70130000000sBfh">Mobile SDK Webinar</a>, to take place on January 26, 2012.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/g4t11pDFpd4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2012/01/25/go-mobile-with-database-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2012/01/25/go-mobile-with-database-com/</feedburner:origLink></item>
		<item>
		<title>A Database.com/Force.com Foreign-Data Wrapper for PostgreSQL</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/k18gl3p18fY/</link>
		<comments>http://blog.database.com/blog/2011/11/21/a-database-comforce-com-foreign-data-wrapper-for-postgresql/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 00:31:38 +0000</pubDate>
		<dc:creator>Pat Patterson</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=470</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2011/11/21/a-database-comforce-com-foreign-data-wrapper-for-postgresql/"><img align="right" hspace="5" width="150" src="http://blogs.developerforce.com/developer-relations/files/2011/11/Screen-shot-2011-11-20-at-4.59.42-PM.png" class="alignright wp-post-image tfe" alt="" title="" /></a>Note: This entry has been cross-posted from the Force.com blog. Dan Farina, a developer at Heroku, recently clued me in to Multicorn, a PostgreSQL 9.1+ extension for writing foreign-data wrappers in Python. Foreign-data wrappers are a mechanism for exposing external data as PostgreSQL tables, allowing that data to be queried as if it were sitting [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://multicorn.org/"><img class="alignleft size-full wp-image-6826" style="margin: 5px" src="http://blogs.developerforce.com/developer-relations/files/2011/11/Screen-shot-2011-11-20-at-4.59.42-PM.png" alt="" width="82" height="81" /></a><em>Note: This entry has been cross-posted from <a href="http://blogs.developerforce.com/">the Force.com blog</a>.</em></p>
<p><a href="https://twitter.com/#%21/danfarina">Dan Farina</a>, a developer at <a href="http://www.heroku.com/">Heroku</a>, recently clued me in to <a href="http://multicorn.org/">Multicorn</a>, a <a href="http://postgres.org/">PostgreSQL</a> 9.1+ extension for writing <a href="http://www.postgresql.org/docs/9.1/static/fdwhandler.html">foreign-data wrappers</a> in <a href="http://python.org/">Python</a>. Foreign-data wrappers are a mechanism for exposing external data as PostgreSQL tables, allowing that data to be queried as if it were sitting in PostgreSQL just like any other table. That little nugget of information, and Josh&#8217;s <a rel="bookmark" href="http://blogs.developerforce.com/developer-relations/2011/11/insanely-simple-python-rest-script.html">Insanely Simple Python REST Script</a> from earlier last week, inspired me to write my first Python script &#8211; <a href="https://github.com/metadaddy-sfdc/Database.com-FDW-for-PostgreSQL">a Multicorn foreign-data wrapper (FDW) for database.com</a> (compatible with Force.com, of course, since they share the same API).</p>
<p>The <a href="https://github.com/metadaddy-sfdc/Database.com-FDW-for-PostgreSQL/blob/master/README.md">README</a> has full instructions, but, in summary, once you have PostgreSQL 9.1 or higher, Python and Multicorn all installed, you can create a Remote Access app in database.com/Force.com, build the database.com FDW, install it in the system-wide Python distribution and start using it. We&#8217;ll pick up the story here assuming you have completed the steps mentioned above. First, create the Multicore extension and a &#8216;foreign server&#8217; in your database:</p>
<pre>CREATE EXTENSION multicorn;

CREATE SERVER multicorn_force FOREIGN DATA WRAPPER multicorn
OPTIONS (
 wrapper 'forcefdw.DatabaseDotComForeignDataWrapper'
);</pre>
<p>Now you can create a table. You can list any number of fields from a database.com sobject<del>, but field names are (currently) case-sensitive and must be quoted</del>:</p>
<pre>CREATE FOREIGN TABLE contacts (
 firstname character varying,
 lastname character varying,
 email character varying
) SERVER multicorn_force OPTIONS (
 obj_type 'Contact',
 client_id 'CONSUMER_KEY_FROM_REMOTE_ACCESS_APP',
 client_secret 'CONSUMER_SECRET_FROM_REMOTE_ACCESS_APP',
 username 'user@domain.com',
 password '********'
);</pre>
<p>At this point, you can query the foreign table as if it were  any other PostgreSQL table. Note that FDWs are read-only, so you won&#8217;t  be able to create, update or delete records.</p>
<pre>postgres=# SELECT email FROM contacts WHERE lastname LIKE 'G%';
NOTICE:  SOQL query is SELECT lastname,email FROM Contact WHERE lastname LIKE 'G%'
       email       
-------------------
 rose@edge.com
 jane_gray@uoa.edu
 agreen@uog.com
(3 rows)

postgres=# SELECT favorite_color FROM example
 JOIN contacts ON example.email=contacts.email
 WHERE contacts.firstname = 'Rose';
NOTICE:  SOQL query is SELECT lastname,email,firstname FROM Contact WHERE firstname = 'Rose'
 favorite_color
----------------
 Red
(1 row)</pre>
<p><del>Currently, the database.com FDW is very much  prototype code. The main limitation right now is that the amount of data  that you can read from database.com is somewhat limited, since the JSON  response is parsed into a Python object in memory. If this looks  interesting, then let me know in the comments and I&#8217;ll take a look at  parsing the database.com response as a stream. Alternatively, if you&#8217;re a  Pythonista and you&#8217;re interested in lending a hand, feel free to <a href="https://github.com/metadaddy-sfdc/Database.com-FDW-for-PostgreSQL">fork the project on Github</a> and get to work!</del></p>
<p><em>UPDATE  &#8211; the FDW now uses the yaml-py module to parse the JSON stream without  reading it all into memory at once, and field names are no longer case  sensitive.</em></p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/k18gl3p18fY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2011/11/21/a-database-comforce-com-foreign-data-wrapper-for-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2011/11/21/a-database-comforce-com-foreign-data-wrapper-for-postgresql/</feedburner:origLink></item>
		<item>
		<title>Force.com IDE Update for Winter ’12</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/O5qYL1KIZAY/</link>
		<comments>http://blog.database.com/blog/2011/11/04/force-com-ide-update-for-winter-%e2%80%9912/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 16:38:46 +0000</pubDate>
		<dc:creator>Steve Bobrowski</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=467</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2011/11/04/force-com-ide-update-for-winter-%e2%80%9912/"><img align="right" hspace="5" width="150" src="http://wiki.developerforce.com/images/9/91/Force-ide-cloud-logo.png" class="alignright wp-post-image tfe" alt="Force.com IDE" title="" /></a>The Winter '12 release of the Force.com IDE now supports Database.com.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://wiki.developerforce.com/images/9/91/Force-ide-cloud-logo.png" alt="Force.com IDE" width="142" height="103" />The <a href="http://wiki.developerforce.com/page/Force.com_IDE_Release_Notes">Winter &#8217;12 release of the Force.com IDE</a> now supports Database.com and the latest Force.com platform features (aka API v23.0). It&#8217;s available as a downloadable installer or through an Eclipse update site. Please <a href="http://wiki.developerforce.com/page/Force.com_IDE_Release_Notes">go here</a> for complete information.</p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/O5qYL1KIZAY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2011/11/04/force-com-ide-update-for-winter-%e2%80%9912/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2011/11/04/force-com-ide-update-for-winter-%e2%80%9912/</feedburner:origLink></item>
		<item>
		<title>Winter ’12: Efficient, Manageable Security Policies with Permission Sets</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/cQHGYUfhT8c/</link>
		<comments>http://blog.database.com/blog/2011/10/12/winter-%e2%80%9912-efficient-manageable-security-policies-with-permission-sets/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 15:00:42 +0000</pubDate>
		<dc:creator>Steve Bobrowski</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[cloud database]]></category>
		<category><![CDATA[Database.com]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=461</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2011/10/12/winter-%e2%80%9912-efficient-manageable-security-policies-with-permission-sets/"><img align="right" hspace="5" width="150" src="http://blogs.developerforce.com/developer-relations/files/2011/10/pto-perm-set.png" class="alignright wp-post-image tfe" alt="" title="" /></a>Profiles are the foundation of any Database.com or Force.com security policy implementation. With the Winter &#8217;12 release, permission sets now complement profiles, letting you more efficiently implement and manage your organization&#8217;s security policy. Read on for a quick primer on perm sets. A Quick Review of Access Controls The profile that you assign to a [...]]]></description>
			<content:encoded><![CDATA[<p>Profiles are the foundation of any Database.com or Force.com security policy implementation. With the Winter &#8217;12 release, permission sets now complement profiles, letting you more efficiently implement and manage your organization&#8217;s security policy. Read on for a quick primer on perm sets.</p>
<p><span id="more-461"></span></p>
<h2>A Quick Review of Access Controls</h2>
<p>The profile that you assign to a user controls basic things like when the user can log in, from where, and among other things, which database objects and fields a user can access. After that, object-specific features such as organization-wide record sharing models, role hierarchies, groups, and sharing rules determine how to share records that a user owns. If you need a refresher on these concepts and features, please read <a href="http://devcenter.database.com/page/Understanding_Database.com_System_and_Data_Access_Controls">Understanding Database.com System and Data Access Controls</a>.</p>
<h2>Profiles, As They Were</h2>
<p>Before the Winter &#8217;12 release, a profile is the only feature you can use to control which database objects and fields that a profile user can access. Consequently, this leads to two unfortunate situations.</p>
<ul>
<li>When your organization has two very similar types of users that vary by even a single object or field permission, you need to create two different profiles to satisfy your requirement. Multiply this by five, ten, or more times, and you get what many administrators commonly refer to as &#8220;profile explosion.&#8221;</li>
<li>As the complexity of your organization schema grows with more and more objects and Apex classes, each profile typically becomes unwieldy as it must account for an overwhelming number of permissions.</li>
</ul>
<h2>Permission Sets to the Rescue</h2>
<p>With Winter &#8217;12, permission sets let you implement and manage security policies much more efficiently than ever before. Here&#8217;s how it works.</p>
<ol>
<li>You create a base level profile for each general type of user (administrator, app user, etc.), and for each profile, assign base level permissions that are common to all variations of the corresponding user type.</li>
<li>Create permission sets to handle exceptions to the base level permissions available via profiles.</li>
<li>Assign a user a profile and the permission sets that, together, provide the user with the permissions necessary to perform their job.</li>
</ol>
<p>Here&#8217;s another way to think about the relationship between profiles and permission sets. As you create multiple apps, it becomes easier to manage additional permissions (beyond what a profile controls) when you think about permission groupings by app rather than by user. Permission sets let you implement this type of association. For example, you might have base user profile along with the PTO manager permission set to approve PTO requests.</p>
<p style="text-align: center;"><a class="overlay" href="http://blogs.developerforce.com/developer-relations/files/2011/10/pto-perm-set.png"><img class="aligncenter size-full wp-image-6465" src="http://blogs.developerforce.com/developer-relations/files/2011/10/pto-perm-set.png" alt="" width="500" height="491" /></a></p>
<p>For a more information about permission sets, take a look at the recording of the popular Dreamforce 2011 session <a href="http://www.youtube.com/watch?v=arXxUgH9cD4">I Love Permission Sets: A Deep Dive Into Profiles 2.0</a>.</p>
<p>Enjoy!</p>
<p>[Cross-posted at <a href="http://blogs.developerforce.com">Developerforce.com</a>]</p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/cQHGYUfhT8c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2011/10/12/winter-%e2%80%9912-efficient-manageable-security-policies-with-permission-sets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2011/10/12/winter-%e2%80%9912-efficient-manageable-security-policies-with-permission-sets/</feedburner:origLink></item>
		<item>
		<title>Using the Database.com Java SDK</title>
		<link>http://feedproxy.google.com/~r/DatabaseDotComBlog/~3/xYdwWPwmi0o/</link>
		<comments>http://blog.database.com/blog/2011/10/06/using-the-database-com-java-sdk/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 17:40:47 +0000</pubDate>
		<dc:creator>Sandeep Bhanot</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[cloud database]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://blog.database.com/?p=455</guid>
		<description><![CDATA[<a href="http://blog.database.com/blog/2011/10/06/using-the-database-com-java-sdk/"><img align="right" hspace="5" width="150" src="http://blogs.developerforce.com/developer-relations/files/2011/09/Picture1-300x85.png" class="alignright wp-post-image tfe" alt="" title="" /></a>There was an exciting Java-related announcement around the time of Dreamforce that you may have missed - the Beta release of the Database.com Java SDK. Read more.]]></description>
			<content:encoded><![CDATA[<p><a class="overlay" href="http://blogs.developerforce.com/developer-relations/files/2011/09/Picture1.png"><img class="alignleft size-medium wp-image-5565" src="http://blogs.developerforce.com/developer-relations/files/2011/09/Picture1-300x85.png" alt="" width="300" height="85" /></a>If you&#8217;re a Java developer reading this blog (i.e. you have some interest in the Force.com platform), you&#8217;ve probably heard of <a href="http://blog.heroku.com/archives/2011/8/25/java/" target="_blank">Java on Heroku</a> &#8211; one the biggest announcements at this year&#8217;s Dreamforce. You can now &#8220;slip the surly bonds&#8221; of your local J2EE app server by deploying your Java apps to Heroku and taking advantage of all the benefits that a polygot PAAS platform like Heroku provides. Java on Heroku has deservedly gotten a lot of attention and press and if you&#8217;re interested in learning more, check out this great <a href="http://www.youtube.com/watch?v=K9IsxnM3z8Y" target="_blank">Dreamforce session recording</a> by the very esteemed <a href="http://twitter.com/#!/_JamesWard" target="_blank">James Ward</a>. There was however another exciting Java related announcement around the time of Dreamforce that you may have missed &#8211; the <a href="http://blogs.developerforce.com/engineering/2011/08/announcing-java-spring-development-kit-for-force-com-and-database-com.html" target="_blank">Beta release of the Database.com Java SDK</a>. I&#8217;d like to spend some time talking about the SDK and so lets break it down.<span id="more-455"></span></p>
<p><strong>1) So, it&#8217;s an SDK for Database.com?</strong> &#8211; Yes and no. Even though the official name for the SDK is the &#8216;Database.com Java SDK&#8217;, you can use it to connect to <em>both</em> <a href="http://www.database.com" target="_blank">Database.com</a> and Force.com/Salesforce.</p>
<p><strong>2), Got it. So what is it?</strong> At the highest level, the SDK provides a <a href="http://download.oracle.com/javaee/6/tutorial/doc/bnbpz.html" target="_blank">JPA 2.0</a> interface to Database.com/Force.com. If allows any Java application to use Database.com or Force.com as their persistence/data layer and use the standard JPA interface provided by the SDK to query and update data from our platform. And the SDK is completely runtime agnostic in that you can deploy your application to a cloud environment that supports Java (e.g. Heroku), or to a local J2EE container &#8211; the SDK works in all cases. In addition to a JPA interface, the SDK also has a couple of other very important components/value adds.</p>
<p><strong>3) But I can already connect my Java app to Database.com/Force.com. Why do I need the SDK?</strong> &#8211; Its true that Java applications (or any other language/platform for that matter) have always been able to integrate with Force.com using one of our APIs &#8211; for e.g. the <a href="http://www.salesforce.com/us/developer/docs/api/index.htm" target="_blank">Web Services (SOAP) API</a> or the <a href="http://www.salesforce.com/us/developer/docs/api_rest/index.htm" target="_blank">REST API</a>. What&#8217;s different with the SDK is that you can now use a J2EE standard &#8211; JPA &#8211; to do the same. No WSDL/XML/JSON  to parse or consume &#8211; simply use the standard ORM functionality provided by JPA and simplify and standardize your Java code. Other than the JPA provider, the SDK also has other components that provide additional value-adds to Java developers.</p>
<p><strong>4) How is the SDK related to Java on Heroku?</strong> &#8211; As mentioned before, the SDK has absolutely no direct dependency on Java on Heroku. You can use the SDK no matter what you runtime environment. The only real intersection of the two is if you wanted to deploy a Java application to Heroku that used Database.com/Force.com as its persistence layer.</p>
<p><strong>5) What are the various components of the SDK?</strong></p>
<p><strong><em>5.1) JPA Provider</em>:</strong> The most important component of the SDK is obviously the JPA 2.0 provider. Here is quick snippet from a Java application that uses a simple &#8216;Album&#8217; Entity with a Many-to-One relationship to the &#8216;Artist&#8217; Entity.</p>
<pre>@Entity
public class Album {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private String id;

    private String name;

    @DateTimeFormat(iso=ISO.DATE)
    @Column(nullable = false)
    private Date releaseDate;

    @ManyToOne
    @CustomField(type= FieldType.MasterDetail)
    private Artist artist;
    ....
    //Public accessor and mutator methods for the above variables
}</pre>
<p>Anyone familiar with JPA will instantly recognize this code. JPA uses a POJO based persistence model and relies heavily on annotations &#8211; both of which you can see in the above snippet. The SDK supports most of the standard JPA annotations and adds a couple of custom ones (e.g. the &#8216;@CustomField(type= FieldType.MasterDetail)&#8217; used above). Here is another small snippet of how you can query and update data from the Album entity using the SDK.</p>
<pre>public static EntityManagerFactory emf =
                  Persistence.createEntityManagerFactory("forceDatabase");

public void saveArtistRecord(Artist artist) {
    EntityManager em = emf.createEntityManager();
    EntityTransaction tx = em.getTransaction();
    tx.begin();

    if(artist.getId()==null) {
                                em.persist(artist);
                } else {
                                artist = em.find(Artist.class, artist.getId());
                                artist =  em.merge(artist);
                }

                tx.commit();
}

public static List&lt;Album&gt; getAlbumsByName(String albumName) {
                if(albumName==null) {
                                throw new IllegalArgumentException("Album name cannot be null");
                }

                EntityManager em = emf.createEntityManager();

                String jpqlQuery = "SELECT a FROM Album a WHERE a.Name LIKE '%s'";
                jpqlQuery =        String.format(jpqlQuery,albumName);

                List&lt;Album&gt; albums = em.createQuery(jpqlQuery).getResultList();
                return albums;
}</pre>
<p>Its all standard JPA code, including the use of <a href="http://download.oracle.com/javaee/6/tutorial/doc/bnbtg.html" target="_blank">JPQL</a> (which the SDK supports) to query Database.com/Force.com data. Under the covers, the Album and Artist Entities will be mapped by the SDK to corresponding Custom Objects in the respective Database.com/Force.com Org. The SDK can even keep your data model in sync automatically. If you add a new Entity class (or a new field to an existing Entity class) and restart your application, the SDK will automatically detect these schema changes and create the custom object/field automatically in Database.com/Force.com.</p>
<p><em><strong>5.2) OAuth and Spring Security:</strong></em> The SDK also has an OAuth component that lets you delegate the authentication and authorization for your Java web app to Salesforce. You only have to configure a couple of OAuth parameters (not a single line of code required) and every time a user tries to access your Java app they will be redirected to Salesforce to login and then redirected back to your Java app. The SDK also includes a Spring Security plugin that &#8220;wraps&#8221; this OAuth component and lets you delegate security for Spring MVC apps to Salesforce.</p>
<p><strong><em>5.3) Maven Code generation plugin:</em></strong> Though not technically part of the SDK, I still see this as another component of the SDK. If you have your data model already defined in Database.com/Force.com using some Standard and/or Custom Objects, you can run a simple Maven command and generate the corresponding JPA Entity classes. This cuts down on your development time significantly.</p>
<p><strong>6) This all sounds great! How do I get started? </strong>Check out the <a href="http://forcedotcom.github.com/java-sdk/force-sdk-overview" target="_blank">SDK&#8217;s home page</a> for additional details and to get started. You can also watch a <a href="http://www.youtube.com/watch?v=C4v1XVlBlDw" target="_blank">recording of the Dreamforce session</a> where I previewed the SDK.</p>
<img src="http://feeds.feedburner.com/~r/DatabaseDotComBlog/~4/xYdwWPwmi0o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.database.com/blog/2011/10/06/using-the-database-com-java-sdk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.database.com/blog/2011/10/06/using-the-database-com-java-sdk/</feedburner:origLink></item>
	</channel>
</rss>
