<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Jivespace Community Blog</title>
    <link>http://www.jivesoftware.com/jivespace/blogs/jivespace</link>
    <description>Jivespace Developer Community Blog</description>
    <pubDate>Mon, 28 Jul 2008 17:00:47 GMT</pubDate>
    <generator>Clearspace 2.5.5 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2008-07-28T17:00:47Z</dc:date>
    <item>
      <title>Web Service operation UserService deleteUser going away.</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/07/28/web-service-operation-userservice-deleteuser-going-away</link>
      <description>&lt;!-- [DocumentBodyStart:8846d8ea-79f7-40b5-8ba8-976d725a05e9] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;In 2.0.6 and 2.5.0 the UserService deleteUser method is going away. This is due to a transaction issue in the core UserManager#deleteUser method. The UserManager#deleteUser method is also disabled in these versions because of this.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the web service we opted to remove the method, rather than have the WSDL reflect a method that would only throw an Exception. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The method will once again return in a future version. In the meantime we recommend using the UserService disableUser operation instead as this will prevent the user from contributing any new content.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8846d8ea-79f7-40b5-8ba8-976d725a05e9] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">web-services</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <pubDate>Mon, 28 Jul 2008 17:05:44 GMT</pubDate>
      <author>andrew@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/07/28/web-service-operation-userservice-deleteuser-going-away</guid>
      <dc:date>2008-07-28T17:05:44Z</dc:date>
      <clearspace:dateToText>5 months, 2 weeks ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/web-service-operation-userservice-deleteuser-going-away</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1563</wfw:commentRss>
    </item>
    <item>
      <title>How and Where we used the Spring framework in Clearspace 2.0</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/03/20/how-and-where-we-used-the-spring-framework-in-clearspace-20</link>
      <description>&lt;!-- [DocumentBodyStart:a7e3f9d8-ed57-4404-bf0e-77174676fbb6] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;For those of you who are fans of Spring, or those who are just plain curious, I'd like to briefly go over the parts of the framework we used in the latest release of Clearspace.&amp;nbsp; One of our goals for the new release was to take advantage of the power the framework offered where it made sense to us, and in the end it turned out Spring and Clearspace are a good fit for eachother.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Core Context and Struts&lt;/strong&gt;: The JiveContext now extends the Spring ApplicationContext.&amp;nbsp; Everything registered with the context is a Spring bean.&amp;nbsp; Struts actions and interceptors are autowired using these bean definitions.&amp;nbsp; Writing Actions just got a whole lot simpler. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Data Access&lt;/strong&gt;: We changed a lot of our code to use Spring's JdbcTemplate and SimpleJdbcTemplate.&amp;nbsp; This has the advantage of making our DAO code much simpler and less error prone, as well as quicker to write.&amp;nbsp; Some classes ended up half the size after this effort.&amp;nbsp; We used annotation-based transactions, wired in using Spring's AspectJ support via the AnnotationTransactionAspect.&amp;nbsp; This allowed us to quickly add transactional coverage of far more DAO methods than before, and more easily make methods transactional in future development.&amp;nbsp; Finally we used Spring's LDAPTemplate in several places to simplify directory access code.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;: We're using Acegi (Spring Security) for authentication.&amp;nbsp; This allows the possibility to authenticate against more than one data store.&amp;nbsp; For example, you could have one account that authenticates against LDAP, and a separate machine account that authenticates against a database.&amp;nbsp; It also provides a well documented, peer-reviewed framework to use as a platform for developing custom authentication solutions.&amp;nbsp; We are investigating using Acegi more fully for authorization in future releases.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tasks&lt;/strong&gt;: We worked hard to externalize timed tasks so that they each have bean definitions.&amp;nbsp; This gives greater insight into what is being fired, why, and where.&amp;nbsp; It also makes it much easier to control when a task is firing, or turn it off completely for testing purposes.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Plugins&lt;/strong&gt;: We allow plugins to add their own Spring bean definitions to the context, so that Plugin actions and interceptors can be autowired as expected.&amp;nbsp; This is done via the plugin's "spring.xml" file.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Web Services and AJAX&lt;/strong&gt;: Apache CXF is now used to expose SOAP and REST style web services.&amp;nbsp; It relies heavily on Spring for its configuration.&amp;nbsp; We are also using Spring for DWR configuration, via the Spring 2.0 DWR namespace.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Customizations&lt;/strong&gt;: As part of the new release we also parse any XML file in the &amp;lt;jive home&amp;gt;/etc directory with the expectation that it's a Spring configuration file.&amp;nbsp; Developers can use this to extend or override bean definitions in the core application context.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the end, we found Spring very helpful to simplifying our codebase and providing a point of cohesion.&amp;nbsp; We look forward to using it even more fully as we continue to develop Clearspace, and as the Spring framework itself evolves.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a7e3f9d8-ed57-4404-bf0e-77174676fbb6] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">2.0</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">spring</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">springframework</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">struts</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">differences</category>
      <pubDate>Thu, 20 Mar 2008 19:55:01 GMT</pubDate>
      <author>dolan.halbrook@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/03/20/how-and-where-we-used-the-spring-framework-in-clearspace-20</guid>
      <dc:date>2008-03-20T19:55:01Z</dc:date>
      <clearspace:dateToText>9 months, 3 weeks ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/how-and-where-we-used-the-spring-framework-in-clearspace-20</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1494</wfw:commentRss>
    </item>
    <item>
      <title>Clearspace 2.0 Beta Sandbox</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/03/19/clearspace-20-beta-sandbox</link>
      <description>&lt;!-- [DocumentBodyStart:ee842579-ad0a-42dd-965c-3356254d2af8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Following up on &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/clearspace/2008/03/18/clearspace-20-public-beta-4"&gt;Nick's post from yesterday&lt;/a&gt;, there is now a &lt;a class="jive-link-external-small" href="http://eval2.jivesoftware.com/beta/index.jspa"&gt;public sandbox&lt;/a&gt; for the 2.0 beta. The beta sandbox is set up with Clearspace, not Clearspace X, but you can check out all of the new features that are in both products in the sandbox. You can register as a new user in the sandbox, but please be aware that the instance and data will be taken offline in early April with the general release of 2.0.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The best place to contribute is in the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/developer/clearspace/beta"&gt;Clearspace Beta space&lt;/a&gt;. Thanks again for all your questions, comments, and feedback over the past few weeks!&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ee842579-ad0a-42dd-965c-3356254d2af8] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">beta</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">2.0</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">sandbox</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <pubDate>Wed, 19 Mar 2008 20:46:37 GMT</pubDate>
      <author>greg@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/03/19/clearspace-20-beta-sandbox</guid>
      <dc:date>2008-03-19T20:46:37Z</dc:date>
      <clearspace:dateToText>9 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>11</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/clearspace-20-beta-sandbox</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1493</wfw:commentRss>
    </item>
    <item>
      <title>Where's the beta?</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/02/14/wheres-the-beta</link>
      <description>&lt;!-- [DocumentBodyStart:daa0ed64-9e0f-4605-b6e4-435fc43a9675] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Many of you have been anticipating a beta release today, and I have an update for you. As you might imagine, the first beta is expected to have some rough edges, and we decided to limit the distribution of this first beta to just a few customers. By keeping the number of beta 1 deployments low, we'll be able to work more closely with the people who deploy it and let the engineering team continue focusing on the rough edges we already know about. &lt;img height="16px" src="http://www.jivesoftware.com/community/images/emoticons/happy.gif" width="16px"/&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I'm sorry for the abrupt change of plans. We're excited to have everyone participate in the beta process and believe that this is the best way to keep the release on track. The second beta release will come out in early March, and we intend to make that a fully open beta.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:daa0ed64-9e0f-4605-b6e4-435fc43a9675] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">2.0</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">beta</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <pubDate>Thu, 14 Feb 2008 21:29:38 GMT</pubDate>
      <author>greg@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/02/14/wheres-the-beta</guid>
      <dc:date>2008-02-14T21:29:38Z</dc:date>
      <clearspace:dateToText>10 months, 4 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>10</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/wheres-the-beta</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1390</wfw:commentRss>
    </item>
    <item>
      <title>Clearspace 2.0 Beta is Coming</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/02/01/clearspace-20-beta-is-coming</link>
      <description>&lt;!-- [DocumentBodyStart:384f424f-ef7e-46c1-8ded-2e992f11d862] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;The Clearspace 2.0 beta is scheduled to arrive on February 14th (our Valentine's Day present to you). If you would like to participate, please let us know &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/thread/25904"&gt;by posting in the beta discussion&lt;/a&gt; area. We've made a bunch of awesome improvements, and you won't want to miss getting an early preview during the beta program.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The beta-1 release will be made available on Feb 14 on the &lt;a class="jive-link-external-small" href="http://dev.jivesoftware.com/downloads/index.jsp"&gt;downloads page&lt;/a&gt;. A beta-2 release is scheduled for March 6. The process will be very quick, with only three weeks in which to install, test and send back feedback during each cycle. We'll post more details regarding the contents of the release and the logistics of the beta program soon.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Of course it comes with the standard beta disclaimer. Please keep in mind that we offer these betas to give customers an opportunity to test pre-released Jive Software. Do NOT run production environments using beta products. These beta products are entirely unsupported. However, we would love to hear your feedback &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/developer/clearspace/beta"&gt;here&lt;/a&gt; about the beta product to help us improve the final version of Clearspace.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:384f424f-ef7e-46c1-8ded-2e992f11d862] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">2.0</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">beta</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">announcements</category>
      <pubDate>Fri, 01 Feb 2008 23:18:19 GMT</pubDate>
      <author>greg@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/02/01/clearspace-20-beta-is-coming</guid>
      <dc:date>2008-02-01T23:18:19Z</dc:date>
      <clearspace:dateToText>11 months, 1 week ago</clearspace:dateToText>
      <clearspace:replyCount>5</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/clearspace-20-beta-is-coming</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1383</wfw:commentRss>
    </item>
    <item>
      <title>Support Community joins Developer Community on ClearspaceX!</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/01/09/support-community-joins-developer-community-on-clearspacex</link>
      <description>&lt;!-- [DocumentBodyStart:a8cb092e-694f-4673-8912-20d01f3ea7c8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;As many of you have already noticed our Jive Integrated support instance on jivesoftware.com/jive has joined the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/developer"&gt;developer community&lt;/a&gt; on our Jive Community ClearspaceX instance at &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community"&gt;http://www.jivesoftware.com/community&lt;/a&gt;.&amp;nbsp; Through user feedback, we re-integrated the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/support"&gt;support&lt;/a&gt;and &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/developer"&gt;developer&lt;/a&gt;communities within a single site to improve your experience.&amp;nbsp; You should now have much less trouble deciding where to post--depending on whether the question is a developer related question or a support related question all on the same instance.&amp;nbsp; For users of our old instance, all information from our old site was migrated to this new location.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;With this move not only comes a better user interface and integrated user community but also provides Jive Support with the ability to create periodic blog posts.&amp;nbsp; Jive Support Engineers will be blogging on best practices we use ourselves when troubleshooting or improving our products' environments.&amp;nbsp; Please let us know if&amp;nbsp; &lt;/p&gt;&lt;p&gt;there is anything in particular you want to know more about!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks,&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Kevin Williams&lt;/p&gt;&lt;p&gt;Jive Support Manager&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a8cb092e-694f-4673-8912-20d01f3ea7c8] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">support</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">welcome</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">community</category>
      <pubDate>Wed, 09 Jan 2008 18:40:30 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2008/01/09/support-community-joins-developer-community-on-clearspacex</guid>
      <dc:date>2008-01-09T18:40:30Z</dc:date>
      <clearspace:dateToText>1 year, 6 hours ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/support-community-joins-developer-community-on-clearspacex</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1357</wfw:commentRss>
    </item>
    <item>
      <title>Clearspace 1.10 Now Available</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/12/28/clearspace-110-now-available</link>
      <description>&lt;!-- [DocumentBodyStart:f011d892-c239-45e6-98d0-9f34273299e5] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/products/clearspace/"&gt;Clearspace 1.10&lt;/a&gt; was released yesterday and includes a number of minor bug fixes and improvements. Be sure to &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/builds/docs/clearspace/latest/changelog.html"&gt;checkout the changelog&lt;/a&gt; if you are interested in what has changed.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We are going to continue putting out releases for the Clearspace 1.x series, but from this point forward they will only contain bug fixes and minor improvements. All new feature development has been moved to Clearspace 2.0, which will be available at the end of Q1 2008.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f011d892-c239-45e6-98d0-9f34273299e5] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">1.10</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">release</category>
      <pubDate>Fri, 28 Dec 2007 18:53:02 GMT</pubDate>
      <author>nick@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/12/28/clearspace-110-now-available</guid>
      <dc:date>2007-12-28T18:53:02Z</dc:date>
      <clearspace:dateToText>1 year, 1 week ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/clearspace-110-now-available</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1347</wfw:commentRss>
    </item>
    <item>
      <title>Extending Clearspace using macros</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/11/08/extending-clearspace-using-macros</link>
      <description>&lt;!-- [DocumentBodyStart:4568791f-9277-4d70-9a3a-9f7c233a91ad] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;An easy way to extend Clearspace is by writing a macro. Macros can be used to modify and/or decorate a piece of a document, blog post or comment. For example: Say you wanted to include a map of downtown Portland, OR. Assuming you had the yahoomaps plugin installed, you could do so using the &lt;em&gt;ymaps&lt;/em&gt; macro included in the plugin. &lt;/p&gt;&lt;p&gt;In a document or a blog post, you could write the following :&lt;/p&gt;&lt;!--[CodeBlockStart:f86eea68-dddd-431f-8bbe-7f5e2aad6bb7]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;
Jive Software is located in Downtown Portland
Address:
{ymaps}304 SW Adler, Portland, OR{ymaps}
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:f86eea68-dddd-431f-8bbe-7f5e2aad6bb7]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When the document or the blog post is rendered, the &lt;/p&gt;&lt;!--[CodeBlockStart:87b97569-89d0-4a50-8283-72c8629e6aa7]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;
{ymaps}304 SW Adler, Portland, OR{ymaps}
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:87b97569-89d0-4a50-8283-72c8629e6aa7]--&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;portion of the document would be replaced by a map from Yahoo.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Writing a macro is simple, all you have to do is implement that Macro interface&lt;/p&gt;&lt;!--[CodeBlockStart:49142bb6-15d5-42df-841b-1c4dd66c74e4]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-java"&gt;&lt;font color="navy"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color="navy"&gt;&lt;b&gt;interface&lt;/b&gt;&lt;/font&gt; Macro&lt;font color="navy"&gt;{&lt;/font&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String render(String body, Map&amp;lt;String, String&amp;gt; parameters, MacroContext macroContext);
&lt;font color="navy"&gt;}&lt;/font&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:49142bb6-15d5-42df-841b-1c4dd66c74e4]--&gt;&lt;p&gt;The return value (String) contains the HTML and/or Javascript code that replaces the macro tag in the document. For example, in case of Yahoo maps, the macro returns the following.&lt;/p&gt;&lt;!--[CodeBlockStart:fef3eb8a-97c8-4b31-aa47-5fa145686eb2]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-java"&gt;&amp;lt;script type=&lt;font color="red"&gt;"text/javascript"&lt;/font&gt; src=&lt;font color="red"&gt;"http://maps.yahooapis.com/v3.5/fl/javascript/apiloader.js?apid=foo"&lt;/font&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div id=&lt;font color="red"&gt;"mapContainer_1234"&lt;/font&gt;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;script type=&lt;font color="red"&gt;"text/javascript"&lt;/font&gt;&amp;gt;
...
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:fef3eb8a-97c8-4b31-aa47-5fa145686eb2]--&gt;&lt;p&gt;When the document is rendered in the browser, the Javascript block executes and adds the Yahoo maps widget to the &amp;amp;lt;div&amp;amp;gt; element. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The render method of the Macro interface is passed three arguments. &lt;/p&gt;&lt;ul&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;body: This argument contains the text between &lt;span&gt;&lt;/span&gt; tags. So, &lt;span&gt;304 SW Adler, Portland, OR&lt;/span&gt;, would mean that the render method would be passed the string "304 SW Adler, Portland, OR" as the body argument.&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;parameters: This argument is a map of name value pairs that capture the attributes set on the macro. For example, it is possible to specify the type of the map and zoom level by using "type" and "zoom" attributes on the yahoo maps plugin. So, &lt;span type="hybrid" zoom="4"&gt;304 SW Adler, Portland, OR&lt;/span&gt;, will create a hybrid map with the zoom level set to 4. These two attributes will be passed inside the parameter map argument. In the code, you would access them using the name of the attribute as the key.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;!--[CodeBlockStart:252db68f-ad29-4014-a2b2-6e06f6ea0d70]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-java"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String render(String body, Map&amp;lt;String, String&amp;gt; parameters, MacroContext macroContext)&lt;font color="navy"&gt;{&lt;/font&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String mapType = parameters.get(&lt;font color="red"&gt;"type"&lt;/font&gt;);&lt;font color="darkgreen"&gt;//will return the string "hybrid"&lt;/font&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String zoomLevel = parameters.get(&lt;font color="red"&gt;"zoom"&lt;/font&gt;); &lt;font color="darkgreen"&gt;//will return the string "4"&lt;/font&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="navy"&gt;}&lt;/font&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:252db68f-ad29-4014-a2b2-6e06f6ea0d70]--&gt;&lt;ul&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;macroContext: macroContext argument allows you to get handle to objects and managers inside Clearspace. Most macros never use this argument, but sometimes it is neccesary call into Clearspace to lookup a value or peek at the document that the macro was included in. For example, the yahoo maps macro needs to ensure that yahoo apis javascript is included only once in a document, regardless of the number of times a macro was included in the document. So, in the render method, it queries the macroContext for the document body and checks to see how many times it has been included and appropriately includes the &amp;amp;lt;script&amp;amp;gt; tag when needed.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;Testing&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;Unit testing macros is extremely easy, since all of the arguments of the render method are easily mock-able. Macros are ideal candidates for TDD, since you know exactly what the input arguments and the HTML/Javascript return value should look like.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;Packaging and additional docs&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;Macros are packaged as part of a plugin. So, the process is the same as a plugin. See &lt;a class="jive-link-community-small" href="http://www.jivesoftware.com/jivespace/community/plugins" title="Upload or download plugins such as macros, widgets, actions, and more. All uploads must be under the Apache License, version 2.0."&gt;Plugin&lt;/a&gt; and &lt;strike&gt;Clearspace&lt;/strike&gt; documentation for additional details.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4568791f-9277-4d70-9a3a-9f7c233a91ad] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">plugins</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">developers</category>
      <pubDate>Thu, 08 Nov 2007 19:20:30 GMT</pubDate>
      <author>alok@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/11/08/extending-clearspace-using-macros</guid>
      <dc:date>2007-11-08T19:20:30Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/extending-clearspace-using-macros</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1305</wfw:commentRss>
    </item>
    <item>
      <title>Clearspace 1.7 Beta</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/09/21/clearspace-17-beta</link>
      <description>&lt;!-- [DocumentBodyStart:5a506566-e0dc-4d31-989d-9482adb83a3f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;The Clearspace and Clearspace X 1.7 beta releases are now &lt;a class="jive-link-external-small" href="http://dev.jivesoftware.com/downloads/index.jsp"&gt;available&lt;/a&gt;. A few of the highlights in this release include a fantastic new UI for threaded discussions, a new 'photo' profile field type, and the ability to consume OpenSearch-compatible search services (Clearspace and Clearspace X are already OpenSearch providers). Check out Dolan's video for much more detail about &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/podcasts/2007/09/13/open-search-functionality-in-clearspace"&gt;OpenSearch&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Just a reminder: please don't use these beta releases in production, and please don't upgrade your production instances to the beta releases. Instead, install the beta as a new installation or use a copy of your production system to try out the beta upgrade. We don't officially support the betas, but would love to get your feedback on them in &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/developer/clearspace/beta"&gt;Jivespace&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5a506566-e0dc-4d31-989d-9482adb83a3f] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">beta</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <pubDate>Fri, 21 Sep 2007 16:11:39 GMT</pubDate>
      <author>greg@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/09/21/clearspace-17-beta</guid>
      <dc:date>2007-09-21T16:11:39Z</dc:date>
      <clearspace:dateToText>1 year, 3 months ago</clearspace:dateToText>
      <clearspace:replyCount>6</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/clearspace-17-beta</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1290</wfw:commentRss>
    </item>
    <item>
      <title>The Differences Between Clearspace and Clearspace X, Part 1</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/09/05/the-differences-between-clearspace-and-clearspace-x-part-1</link>
      <description>&lt;!-- [DocumentBodyStart:61315d24-3d4d-404f-8163-2dc8d532d55c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Thanks to some &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/thread/14620"&gt;great feedback from community members&lt;/a&gt; I wanted to clearly articulate the current differences between Clearspace and Clearspace X as well as provide sense of how the products will continue to diverge over time. You can also check out a &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/podcasts/2007/09/04/differences-between-clearspace-and-clearspace-x"&gt;video on the same topic&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When Clearspace was under development we realized that trying to force a single product into two very different use cases was a bad idea. Since Clearspace and Clearspace X serve different purposes, and have a different set of users and buying criteria, we decided to give them each their own focus. Clearspace is focused on giving people inside organizations a place to "get work done" that breaks down silos between groups, gives everyone a voice and recognition, and keeps people in the loop. Clearspace X, on the other hand, focuses on providing a full-featured online community solution where the needs are around customers getting support, providing feedback, sharing ideas and connecting with other users. This distinction allows our development teams to focus on solving specific business problems instead of worrying about how one product must "boil the ocean" by solving everyone's needs.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;Current Differences&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;The current feature differences stem from different configuration defaults and exposed functionality. Over time the products will diverge more significantly as new features are created for each use case. However, at an architectural level the differences between the products are basically non-existent, and we don't expect the two products to diverge architecturally in any meaningful way. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;p&gt;Name&lt;/p&gt;&lt;/th&gt;&lt;th&gt;&lt;p&gt;Description&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Profile Fields&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;The two products contain different default profile fields: Clearspace contains 'location', 'title', 'phone number', 'biography' and 'expertise'. Clearspace X contains 'location', 'occupation', 'biography', 'expertise', and 'homepage'.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Create Blog Permission&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Registered users are given permission by default to create a blog in Clearspace but are not allowed to create a blog unless given permission in Clearspace X.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Guest Access&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Anonymous / guest users are allowed to view content in Clearspace X by default, but in Clearspace that permission is off which forces users to first login before viewing any content.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Private Messages&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Private messages are enabled by default in Clearspace X and disabled by default in Clearspace.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Blog Trackbacks&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Blog trackbacks are off by default in Clearspace but on by default in Clearspace X.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Blog Pings&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Ping_blog"&gt;Blog pinging&lt;/a&gt; is enabled by default in Clearspace X and disabled by default in Clearspace. Blog pinging is a process that happens behind the scenes in most blog software. When enabled, your instance will send an XML-RPC ping to weblogs.com, Google blog search and Technorati, but only if blog pinging is enabled when a new blog post is created / published on your system.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Email Visibility&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Email addresses on user profiles are hidden by default in Clearspace X and are visible by default in Clearspace.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Language&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Clearspace X uses the word 'Community' when describing the containers for content while Clearspace uses the word 'Space'.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Design&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Clearspace X uses a different design than Clearspace. The difference is controlled by using jive-external.css versus jive-internal.css.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;More Differences Over Time&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;Over time there will be certain features or changes that only make sense in one or the other product. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;p&gt;Name&lt;/p&gt;&lt;/th&gt;&lt;th&gt;&lt;p&gt;Description&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Reputation and Recognition&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;The way that the reputation and recognition system work will change over time as each product gets a more focused version of the system.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Read/Write WebDAV&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;This type of functionality only makes sense in Clearspace for most customers.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Certain Integrations&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Integrations with other systems may only make sense in one use case or the other.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;h4&gt;&lt;span&gt;Summary&lt;/span&gt;&lt;/h4&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Clearspace and Clearspace X have different purposes and are meant to solve different problems. So it only makes sense that we want the respective development teams to be thinking about those problems as they further refine the product. The current differences are primarily focused on configuration to best fit the problem being solved by each product, but these differences will continue to grow as new features are added that are unique to its intended use case.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:61315d24-3d4d-404f-8163-2dc8d532d55c] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jive_software</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jivespace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">differences</category>
      <pubDate>Wed, 05 Sep 2007 16:42:06 GMT</pubDate>
      <author>greg@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/09/05/the-differences-between-clearspace-and-clearspace-x-part-1</guid>
      <dc:date>2007-09-05T16:42:06Z</dc:date>
      <clearspace:dateToText>1 year, 4 months ago</clearspace:dateToText>
      <clearspace:replyCount>7</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/the-differences-between-clearspace-and-clearspace-x-part-1</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1284</wfw:commentRss>
    </item>
    <item>
      <title>Differences Between Clearspace and Clearspace X</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/09/04/differences-between-clearspace-and-clearspace-x</link>
      <description>&lt;!-- [DocumentBodyStart:7d4d6ab2-8787-4483-b10a-51a25cc10a8f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Want to better understand the differences between Clearspace and Clearspace X along with some ideas for how the two products may evolve over time? Learn more from Jive Software's Aaron Johnson and Greg Unrein.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;object data="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-DifferencesBetweenClearspaceAndClearspaceX795.flv&amp;amp;source=" height="294" type="application/x-shockwave-flash" width="400" wmode="transparent"&gt;&lt;param name="movie" value="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=false&amp;amp;file=http://blip.tv/file/get/Samjive-DifferencesBetweenClearspaceAndClearspaceX795.flv&amp;amp;source="/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Or download the &lt;a class="jive-link-external-small" href="http://blip.tv/file/get/Samjive-DifferencesBetweenClearspaceAndClearspaceX795.mov"&gt;Quicktime Movie&lt;/a&gt; (Caution: 166MB File)&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:7d4d6ab2-8787-4483-b10a-51a25cc10a8f] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jivespace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jive_software</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jivespace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">video</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">podcast</category>
      <pubDate>Tue, 04 Sep 2007 23:21:46 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/09/04/differences-between-clearspace-and-clearspace-x</guid>
      <dc:date>2007-09-04T23:21:46Z</dc:date>
      <clearspace:dateToText>1 year, 4 months ago</clearspace:dateToText>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/differences-between-clearspace-and-clearspace-x</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1283</wfw:commentRss>
    </item>
    <item>
      <title>Clearspace and Clearspace X Beta Program</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/08/29/clearspace-and-clearspace-x-beta-program</link>
      <description>&lt;!-- [DocumentBodyStart:de4687ff-0217-4414-b7cb-1fe9c0ef115e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;We're excited to announce that the Clearspace and Clearspace X betas are now part of the &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/jivetalks/2007/08/01/the-release-train"&gt;release train&lt;/a&gt; and will be released every three weeks on the Wednesday directly following when the prior general release is made available. The first beta is &lt;a class="jive-link-external-small" href="http://dev.jivesoftware.com/downloads/index.jsp"&gt;available today&lt;/a&gt; for version 1.6, just after the final release of &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/blogs/jivetalks/2007/08/23/clearspace-15-released"&gt;1.5&lt;/a&gt; came out last week.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Please don't use these beta releases in production, and please don't upgrade your production instances to the beta releases. Instead, install the beta as a new installation or use a copy of your production system to try out the beta upgrade. We don't officially support the betas, but would love to get your feedback on them in &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/community/community/developer/clearspace/beta"&gt;Jivespace&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:de4687ff-0217-4414-b7cb-1fe9c0ef115e] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">beta</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <pubDate>Wed, 29 Aug 2007 22:48:50 GMT</pubDate>
      <author>greg@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/08/29/clearspace-and-clearspace-x-beta-program</guid>
      <dc:date>2007-08-29T22:48:50Z</dc:date>
      <clearspace:dateToText>1 year, 4 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/clearspace-and-clearspace-x-beta-program</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1282</wfw:commentRss>
    </item>
    <item>
      <title>The Switch to Freemarker</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/07/20/the-switch-to-freemarker</link>
      <description>&lt;!-- [DocumentBodyStart:178066f1-9872-4833-820d-911312dbb4cd] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Where are all the JSP's? That is a question we have been hearing a lot lately, after deciding that the view layer of Clearspace would be built on an open alternative to JSP, Freemarker. What is Freemarker? &lt;a class="jive-link-external-small" href="http://freemarker.org"&gt;Freemarker&lt;/a&gt; is simply a "template engine"; a generic tool to generate text output based on tempaltes. The next question that usually follows: &lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;Common problems with JSP&lt;/span&gt;&lt;/h4&gt;&lt;ul&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;Java code is too tempting, even though it is considered bad design to mix presentation with core logic, everyone knowingly does it.&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;Java code is required to do mundane things, such as &amp;amp;lt;a href="&amp;amp;lt;%= request.getContextPath() %&amp;gt;/index.html"&amp;amp;gt;Home page&amp;amp;lt;/a&amp;amp;gt;&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;Simple tasks are difficult, such as escaping html, or formatting a date&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;Looping is verbose, awkward and messy&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;Bad exception handling, printing out things like NullPointerExceptions to the user&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;Need a compiler and any change needs to be recompiled.&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;Various application server bugs. We have recently run into a few problems on 'unnamed' application servers where&amp;nbsp; the jsp's are created importing the servlet package without fully qualifying names, This causes us to have class name problems.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;Freemarker as an alternative&lt;/span&gt;&lt;/h4&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To fully realize the benefits of the &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC Pattern&lt;/a&gt;, a true separation of Java Code (the controller) and the HTML (the view) is required. Using a template engine, such as Freemarker, as your view will solve many of the problems listed above. The underlying design will be cleaner, the syntax clearer, the error messages more meaningful, and the application more customizable.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Also, Unlike JSP, FreeMarker templates are completely independent of the file format; they can just as easily be used to create an HTML file, XML file, CSS file, JavaScript file, even a plain text file. In fact, FreeMarker is independent of servlets altogether, making it just as useful on the client as on the server.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As an example of how Freemarker can cleanup your view pages, lets take one line of JSP and convert it to freemarker:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;p&gt;JSP&lt;/p&gt;&lt;/th&gt;&lt;th&gt;&lt;p&gt;Freemarker&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&amp;amp;lt;% Action action = ActionUtils.getAction(); %&amp;amp;gt; &lt;/p&gt;&lt;p&gt;&amp;amp;lt;input type="text" name="subject" &lt;/p&gt;&lt;p&gt;value="&amp;amp;lt;%= action.getSubject() != null ? StringUtils.escapeHTMLTags(action.getSubject()) : "" %&amp;amp;gt; "/&amp;amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&amp;amp;lt;input type="text" name="subject" &lt;/p&gt;&lt;p&gt;value="${subject!?html}"/&amp;amp;gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;Interesting Clearspace features relating to Freemarker&lt;/span&gt;&lt;/h4&gt;&lt;ul&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;&lt;strong&gt;Themes:&lt;/strong&gt; To help facilitate our customer's need to customize the look and feel of our products, we wrote a feature that provides our customer's the ability to customize most front end pages directly from the admin console without having to make a single change to the source code or even restart the application server. Simply select the page you want to customize and edit the template. Additionally, these custom pages can be grouped into different "Themes" and mapped to a commuity, a forum, even a URL pattern. This type of flexible UI would not be possible with JSP's. Freemarker provides us the ability to load the source of a template from a number of places, including a remote server, and without ever needing to be recompiled.&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;&lt;strong&gt;Community Everywhere:&lt;/strong&gt; If you want to make some dynamic HTML content available on any remote site, such as displaying a Clearspace thread at the bottom of a remote article, all you have to do is process the freemarker template that contains the thread HTML, wrap it in document.write(result); and return contentType text/javascript.&lt;/p&gt;&lt;/li&gt;&lt;li level="1" type="ul"&gt;&lt;p&gt;&lt;strong&gt;Freemarker Email Templates:&lt;/strong&gt; Allows for easily customizable dynamic emails with very detailed and useful information.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;After using Freemarker for some time, we can definitely say that it is a template language we?re confident in. We found it to be the easiest to use, learn and the most powerful while still having a clean, simple syntax. For a comparision with velocity, check out &lt;a class="jive-link-external-small" href="http://freemarker.org/fmVsVel.html"&gt;Freemarker vs. Velocity&lt;/a&gt;. We?ve also found that any good JSP programmer finds Freemarker enjoyable to use and learn. The one downside is that we all use Intellij Idea for development and there is currently no Freemarker support.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For those who still are not convinced, rest assured that it is still possible to make customizations to the application using only JSP's.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To learn more, check out &lt;a class="jive-link-external-small" href="http://www.javaworld.com/jw-01-2001/jw-0119-freemarker.html?page=1"&gt;FreeMarker: An open alternative to JSP&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:178066f1-9872-4833-820d-911312dbb4cd] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">freemarker</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">ui</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">themes</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">jsp</category>
      <pubDate>Fri, 20 Jul 2007 16:20:00 GMT</pubDate>
      <author>nick@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/07/20/the-switch-to-freemarker</guid>
      <dc:date>2007-07-20T16:20:00Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/the-switch-to-freemarker</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1014</wfw:commentRss>
    </item>
    <item>
      <title>Organizing Clearspace Content: Sub-spaces vs. Tag Groups</title>
      <link>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/07/19/organizing-clearspace-content-subspaces-vs-tag-groups</link>
      <description>&lt;!-- [DocumentBodyStart:ce17e7fa-9732-4465-bae2-426cf641c71c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Unfortunately wiki documents and discussions can only be created in a single specific space. The primary reason is that each space has its own set of permissions, allowed content types, etc. With that goal in mind, the logic around creating and viewing content living in multiple spaces could be counterintuitive.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;But this problem is the ideal use case for tags. Think of a space as a folder on your operating system. It can have sub-spaces (nested folders) and some files (wiki docs and discussions). Each file must live in one and only one parent folder. We are all very comfortable with this paradigm, but the drawbacks become self-evident in time.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Let's take a simple example. I want to organize all of my recipes, so I create a folder (space) called recipes. Now what? Do I create more sub folders based of the type of food, such as Italian, Chinese, Indian, Mexican, etc. Or do I create sub folders for breakfast, lunch, dinner, and dessert? How do I classify an Italian dessert then?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The solution to this problem, at least in Clearspace, is to use tags and tag groups. So wiki documents and discussions must live in one and only one space; however, they can be tagged with any keywords you might use to look for them. You can then browse the content by tags, regardless of which space the content was created in. Tags will transcend this typical folder-tree structure that we are all used to, and provide a means to find relevant content regardless of where it is created.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Also, we went a step further and created tag groups. A tag group is nothing more than a named collection of tags. The primary benefit of a tag group is that it groups your content virtually. A wiki document or discussion is not created in a tag group,&lt;/p&gt;&lt;p&gt;but will be associated with one or more tag groups if it is associated with tags in the tag groups. If a discussions morphs into something entirely different in time, you can change its tags to change the tag groups it can be found in.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So when would you use a sub-space as opposed to a tag group? A good rule of thumb is to think about people as opposed to content. If you simply need need a way to organize content, use a tag group. If instead you need to capture permissions for specific users, limit available content types, and so on, then you should create a sub-space.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Here is an example of both:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Space: Product Development&lt;/p&gt;&lt;p&gt;Sub-spaces: Clearspace, Forums, Openfire, Spark&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The preceding sub-spaces are some of our different products, and they would be sub-spaces because there are different teams with different permissions for each.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Space: Clearspace&lt;/p&gt;&lt;p&gt;Tag groups: Release Plan, Weekly Status, Documentation, Features&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The preceding are tag groups because they are simple containers of content; they do not need all the extra complexity a sub-space provides. As mentioned above, it is entirely possible to create a document or discussion that can be found in both Documentation and Features simply by tagging your content with the appropriate tags, say "documentation" and "features."&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ce17e7fa-9732-4465-bae2-426cf641c71c] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">clearspacex</category>
      <category domain="http://www.jivesoftware.com/jivespace/blogs/jivespace/tags">organization</category>
      <pubDate>Thu, 19 Jul 2007 23:44:00 GMT</pubDate>
      <author>nick@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/blogs/jivespace/2007/07/19/organizing-clearspace-content-subspaces-vs-tag-groups</guid>
      <dc:date>2007-07-19T23:44:00Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>8</clearspace:replyCount>
      <wfw:comment>http://www.jivesoftware.com/jivespace/blogs/jivespace/comment/organizing-clearspace-content-subspaces-vs-tag-groups</wfw:comment>
      <wfw:commentRss>http://www.jivesoftware.com/jivespace/blogs/jivespace/feeds/comments?blogPost=1012</wfw:commentRss>
    </item>
  </channel>
</rss>

