<?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>SproutCore</title>
	
	<link>http://blog.sproutcore.com</link>
	<description />
	<lastBuildDate>Tue, 22 May 2012 23:19:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Sproutcore-BlogPosts" /><feedburner:info uri="sproutcore-blogposts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Introducing the SproutCore Showcase</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/lHJ2yaBA4fE/</link>
		<comments>http://blog.sproutcore.com/introducing-the-sproutcore-showcase/#comments</comments>
		<pubDate>Tue, 22 May 2012 23:19:30 +0000</pubDate>
		<dc:creator>SproutCore</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=2024</guid>
		<description><![CDATA[As you may have noticed above, there is a new section to the sproutcore.com website, Showcase.  This page is meant to act as your one-stop reference for all of SproutCore&#8217;s Views and Controls. Previously, you would have had to install SproutCore and run it locally to view the Test Controls app and would have had to [...]]]></description>
			<content:encoded><![CDATA[<p>As you may have noticed above, there is a new section to the sproutcore.com website, <a title="SproutCore Showcase" href="http://showcase.sproutcore.com" target="_blank">Showcase</a>.  This page is meant to act as your one-stop reference for all of SproutCore&#8217;s Views and Controls.</p>
<p>Previously, you would have had to install SproutCore and run it locally to view the Test Controls app and would have had to search the source code of that app to figure out how the Controls were configured.  Now you can visit <a href="http://showcase.sproutcore.com" target="_blank">http://showcase.sproutcore.com</a> at any time and copy code snippets directly from within the page.  Even better, we&#8217;ve expanded the examples significantly to include all of the available Views and Controls with many more configuration examples.</p>
<p>On a technical note, the Showcase page is actually a SproutCore app itself deployed on Github pages.  The app is open-source and you can browse its source and contribute to it on <a title="Showcase App on Github" href="https://github.com/sproutcore/showcase" target="_blank">Github</a>.</p>
<p>In the coming weeks, we will work to consolidate the various SproutCore demos and deploy them on this page as well, ensuring easy access to up-to-date demos.</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/lHJ2yaBA4fE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/introducing-the-sproutcore-showcase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/introducing-the-sproutcore-showcase/</feedburner:origLink></item>
		<item>
		<title>SproutCore 1.8.2 Released</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/yznFwSAglek/</link>
		<comments>http://blog.sproutcore.com/sproutcore-1-8-2-released/#comments</comments>
		<pubDate>Sat, 12 May 2012 21:49:35 +0000</pubDate>
		<dc:creator>SproutCore</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=2015</guid>
		<description><![CDATA[[edit] Due to a mistake in the included files of the published 1.8.2 gem, the gem needed to be re-built.  Therefore the current working version of the gem for SproutCore 1.8.2 is sproutcore-1.8.2.1.  Sorry for any confusion. We are pleased to announce the release of SproutCore 1.8.2. This release contains minor fixes to the 1.8 code-base [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>[edit] Due to a mistake in the included files of the published 1.8.2 gem, the gem needed to be re-built.  Therefore the current working version of the gem for SproutCore 1.8.2 is sproutcore-1.8.2.1.  Sorry for any confusion.</em></p></blockquote>
<p>We are pleased to announce the release of <strong>SproutCore 1.8.2</strong>. This release contains minor fixes to the 1.8 code-base and will likely be the last patch of 1.8 prior to the 1.9.0 release. To upgrade to the latest version, simply run:</p>
<p><code>gem update sproutcore</code></p>
<p>This is a patch release and contains the following bug fixes:</p>
<ul>
<li>Fixed syntax error in Datastore unit test.</li>
<li>SC.SplitView can now mixin SC.SplitChild.</li>
<li>Thinned picker pane border divs so that they don&#8217;t overlap the content view.</li>
<li>Prevents target property conflict when configuring button targets with SC.AlertPane.</li>
<li>Changed the aria-orientation of horizontal SC.ScrollView to &#8216;horizontal&#8217; from &#8216;vertical&#8217;.</li>
<li>Allows SC.CollectionFastPath to work with sparse content by always returning an item view even when content isn&#8217;t yet available.</li>
<li>Prevents SC.GridView from iterating over its content array in order to work with sparse content.</li>
<li>The &#8216;mobile-safari&#8217; body class name is no longer being added in all browsers.</li>
<li>Enables pasting in SC.TextFieldView to notify that the value changed.</li>
<li>Prevents default touch behavior being intercepted on &lt;textarea&gt; and &lt;select&gt; elements.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/yznFwSAglek" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/sproutcore-1-8-2-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/sproutcore-1-8-2-released/</feedburner:origLink></item>
		<item>
		<title>Announcing SproutCore 1.8.1!</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/9UthKFuLMsA/</link>
		<comments>http://blog.sproutcore.com/announcing-sproutcore-1-8-1/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 03:01:27 +0000</pubDate>
		<dc:creator>SproutCore</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1997</guid>
		<description><![CDATA[We&#8217;re pleased to announce the release of SproutCore 1.8.1.  To upgrade to the latest version, simply run: gem update sproutcore If you installed SproutCore using the installer, please note that due to the strain that maintaining the installers puts on the release process, we will not be updating the installer for each patch level release. [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re pleased to announce the release of SproutCore 1.8.1.  To upgrade to the latest version, simply run:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gem update sproutcore</pre></div></div>

<p lang="bash">If you installed SproutCore using the installer, please note that due to the strain that maintaining the installers puts on the release process, we will not be updating the installer for each patch level release.   Therefore, to get the very latest stable version, it is recommended that you install the SproutCore gem.</p>
<p lang="bash">Installing the gem is actually quite easy and there are detailed instructions for each platform at <a href="http://sproutcore.com/install/">http://sproutcore.com/install/</a>.  Simply find your platform and go to the Advanced Install tab, which helps you get Ruby properly installed.  If you’ve already got Ruby 1.9 installed, it is as simple as <code>gem install sproutcore.</code></p>
<p><span id="more-1997"></span><br />
This is a patch level release and contains the following bug fixes:</p>
<pre>* Documentation fixes.
* Fixes the timeout proxy settings: :inactivity_timeout &amp; :connect_timeout. Setting them in a Buildfile proxy statement allows the developer to extend the timeout for the connection to be setup and for activity to occur.
* Adds missing CSS for SC.PickerPane left and right pointer.
* Tidies up index.rhtml template:
  - removes self-closing HTML
  - renames app.manifest to manifest.appcache
* Fixes the styling of ModalPane backdrop for SC.PanelPane.
* Fixes regression with Firefox specific SC.TextFieldView CSS.
* Improves use and compatibility of SC.TextFieldView:
  - applies 'autocapitalize' and 'autocorrect' attributes to all browsers
  - automatically centers hint text
  - fixes problem centering input elements in IE8
  - fixes problem positioning hint in textareas
  - improves readability of hints by making them antialiased in Webkit
* Fixes issue when subsequent attempts to load a failed/aborted image will result in queue processing being stalled.
* Fixes nesting SC.ScrollViews not passing mousewheel events from child to parent scroll view when child can no longer scroll.
* Fixes styling problem with SC.ListItemView right-icon.
* Fixes SC.StaticContentView not removing previous content when setting content to null.
* Fixes Safari focus ring artifacts in panes and Chrome bug with non-HW accelerated animations in render layers, by removing the default .sc-pane --webkit-transform: translate3d(0,0,0) CSS. This also makes it possible to accurately manage which parts of the page should become layers, because making everything a layer is not optimal.</pre>
<p>To view the individual changes, check out the <a title="1-8-stable Branch" href="https://github.com/sproutcore/sproutcore/tree/1-8-stable" target="_blank">1-8-stable</a> branch on github.</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/9UthKFuLMsA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/announcing-sproutcore-1-8-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/announcing-sproutcore-1-8-1/</feedburner:origLink></item>
		<item>
		<title>Wesley Workman &amp; Tim Evans are now SproutCore Reviewers</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/VWYJFLFCw0g/</link>
		<comments>http://blog.sproutcore.com/wesley-workman-tim-evans-are-now-sproutcore-reviewers/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 04:11:38 +0000</pubDate>
		<dc:creator>Tyler Keating</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1984</guid>
		<description><![CDATA[Please join us in congratulating Tim and Wesley on achieving SproutCore Reviewer status.  They are two of the most active contributors and have shown that they share our ideal of making SproutCore the most feature rich and highest quality application development framework. More importantly, please join us in thanking Tim and Wesley and all the [...]]]></description>
			<content:encoded><![CDATA[<p>Please join us in congratulating Tim and Wesley on achieving SproutCore Reviewer status.  They are two of the most active contributors and have shown that they share our ideal of making SproutCore the most feature rich and highest quality application development framework.</p>
<p>More importantly, please join us in thanking Tim and Wesley and all the Committers and Reviewers for the work they&#8217;ve done to get us here.  We ask a lot of our burgeoning team and we are fortunate to have such people.</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/VWYJFLFCw0g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/wesley-workman-tim-evans-are-now-sproutcore-reviewers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/wesley-workman-tim-evans-are-now-sproutcore-reviewers/</feedburner:origLink></item>
		<item>
		<title>Announcing SproutCore 1.8!</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/4LK3or0iB0I/</link>
		<comments>http://blog.sproutcore.com/announcing-sproutcore-1-8/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 06:48:23 +0000</pubDate>
		<dc:creator>Tyler Keating</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1941</guid>
		<description><![CDATA[I&#8217;m very pleased to announce the release of SproutCore version 1.8.0.  This release includes several new features, improvements and bug fixes and is a recommended upgrade for all SproutCore developers. To install the latest version of SproutCore, visit http://sproutcore.com/install/ to get an updated installer for your system or if you are using the SproutCore gem, simply [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very pleased to announce the release of SproutCore version 1.8.0.  This release includes several new features, improvements and bug fixes and is a recommended upgrade for all SproutCore developers.</p>
<p>To install the latest version of SproutCore, visit <a title="http://sproutcore.com/install/" href="http://sproutcore.com/install/">http://sproutcore.com/install/</a> to get an updated installer for your system or if you are using the SproutCore gem, simply run:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gem update sproutcore</pre></div></div>

<p><span id="more-1941"></span></p>
<h2>Thoughts on SproutCore</h2>
<p>But before I get into some of the technical details of 1.8, I wanted to give a brief update on the status of the project.  I want to do this, because this release is about more than the code, it&#8217;s also about marking a milestone and making a statement.</p>
<p>The milestone is that this is the first major release of SproutCore after the project&#8217;s most active backer disappeared and the statement is, is that the SproutCore community is stronger than ever!</p>
<p>I cannot begin to express my enthusiasm for the way that the community has pulled together to make this release happen.  When I was asked to take on more of the care and feeding of SproutCore, Charles Jolley and I introduced a number of policies that were supposed to ensure that SproutCore never fell into the same predicament again. But I don&#8217;t think anyone knew how successful these changes would be until today.</p>
<p>Although I generally like to sit on my opinions for as long as possible, I feel that this is a time to be firm.  I say SproutCore is not only the most complete JavaScript application framework, it is, or at least is going to be, the application framework with the strongest open source community.  And this is why:</p>
<p>Yes, we have been through a rocky period and like any period of transition, it was accompanied by a flurry of activity and opinion on what should become the new reality.  Most of the ideas came from those that believed change should be immediate, that we could simply cast off any previous concerns and leap frog into a new future.</p>
<p>This is of course, a pipe dream.  If we stopped building consensus and instead chased easy opportunities, we may generate hype, but the real issues, the issues of building trust; of fostering and supporting a community of experienced SproutCore committers and developers; these real issues would be completely unaddressed.  True change doesn&#8217;t take radical ideas, it simply takes hard work, endurance and keeping a clean house where good ideas can grow, and that is what I believe SproutCore 1.8 represents.</p>
<p>We have a core of developers that are professional enough to put aside the fun and fancy of leaping at ideas in order to knuckle down on the unglamorous and tedious work that makes a framework truly great.  Things like improving documentation, adding rigor to tests and following proper deprecation procedures.  We will bring in good ideas, but we won&#8217;t sacrifice quality to do so.</p>
<h2>Highlights of Version 1.8.0</h2>
<p>So please forgive my long opinionated introduction and let me point out some of the latest highlights.</p>
<ul>
<li>A brand new exceptionally detailed three part <a title="Getting Started with SproutCore" href="http://guides.sproutcore.com/getting_started.html" target="_blank">introduction to SproutCore</a>.</li>
<li>A new reference guide on the <a title="SproutCore's Build Tools" href="http://guides.sproutcore.com/build_tools.html" target="_blank">build tools</a>.</li>
<li>Many <span style="text-decoration: underline;">many</span> bug fixes. See the CHANGELOG for a complete breakdown.</li>
<li>The beginnings of a major clean up initiative includes several deprecations.  Look for console warnings to indicate deprecated functions and check the CHANGELOG for the full list of deprecations.</li>
<li>The Desktop framework has been thoroughly updated to include correct WAI-ARIA attributes for improved compatibility with assistive technologies.</li>
<li>Get a basic statechart structure in new projects using the &#8211;statechart switch with sproutcore init or sproutcore gen app.</li>
<li>Statechart States can be made to represent a route (by default SC.routes routes) and if assigned, the state will be notified any time the app&#8217;s location changes to match the state&#8217;s assigned route.</li>
<li>Addition of SC.StatechartDelegate mixin. Apply this to objects that are to represent a delegate for a SC.Statechart object. When assigned to a statechart, the statechart and its associated states will use the delegate in order to make various decisions.</li>
<li>Added the ability to dynamically add substates to a statechart via a state&#8217;s addSubstate method.</li>
<li>TextFieldView has a new property, hintOnFocus, which uses a div to act in place of the regular &#8216;placeholder&#8217; so that it remains visible while the text field has focus.</li>
<li>Rewrite of SC.browser, which matches more browsers correctly and replaces the potpourri of various properties with seven standard properties: device, name, version, os, osVersion, engine and engineVersion.  For possible values, see the matching constants: SC.BROWSER, SC.DEVICE, SC.OS, SC.ENGINE.</li>
<li>APP_IMAGE_ASSETS is a new global array that contains the list of all sprited images, this is ideal to preload images at different points.  For example, even before the app or SproutCore finishes loading.</li>
<li>Sprites generated using @include slice(s) are now optimized to use space in the most optimal way to reduce memory foot print generated by a lot of extra transparent space.</li>
<li>Added a security feature for dev environment. By default sc-server can only be used from your local machine unless you set the flag &#8211;allow-from-ips.</li>
<li>Made sc-server non-blocking to work with long-polling requests.</li>
<li>Allow longer timeouts in sc-server proxy by setting connect_timeout and inactivity timeout in the Buildfile.</li>
<li>See the CHANGELOG for the full list of changes.</li>
</ul>
<p>Finally, just thanks again to everyone that has made this release possible.  No matter if it was only a small part, I truly hope you feel pride in knowing that every part was essential.</p>
<hr />
<p>Please use the mailing list <a href="mailto://sproutcore@googlegroups.com">sproutcore@googlegroups.com</a> for all comments and questions.</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/4LK3or0iB0I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/announcing-sproutcore-1-8/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/announcing-sproutcore-1-8/</feedburner:origLink></item>
		<item>
		<title>Sprint Towards 1.8 Release</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/CNfHXklTwWM/</link>
		<comments>http://blog.sproutcore.com/sprint-towards-1-8-release/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 17:56:23 +0000</pubDate>
		<dc:creator>Tyler Keating</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1931</guid>
		<description><![CDATA[SproutCore is about to get a new release on February 29, 2012 and we want to kick it off with an important sprint over the last weekend of the month.  As an open-source project, the success of SproutCore depends on you and others like you, so please consider setting aside some time to get involved. [...]]]></description>
			<content:encoded><![CDATA[<p>SproutCore is about to get a new release on February 29, 2012 and we want to kick it off with an important sprint over the last weekend of the month.  As an open-source project, the success of SproutCore depends on you and others like you, so please consider setting aside some time to get involved.  Thanks!</p>
<ul>
<li><strong>Name</strong>:  SproutCore 1.8 Release Sprint</li>
<li><strong>Dates</strong>:  Friday, Feb. 24 through Monday, Feb. 27, free-form style</li>
<li><strong>Topics</strong>:  Will include both code and doc tasks. Please follow the wiki page:  <a href="https://github.com/sproutcore/sproutcore/wiki/1.8-Release-Sprint">https://github.com/sproutcore/sproutcore/wiki/1.8-Release-Sprint</a></li>
</ul>
<p>&nbsp;</p>
<p>Aside:  We&#8217;ve decided that the next release of SproutCore will be titled 1.8.  It&#8217;s simply an indication that the code base has changed enough since the 1.7 beta, which should have been finalized some time ago but was missed during the rocky period when SproutCore 2.0 was determined no longer to present the future of SproutCore.</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/CNfHXklTwWM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/sprint-towards-1-8-release/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/sprint-towards-1-8-release/</feedburner:origLink></item>
		<item>
		<title>Welcome to Maurits Lamers and Mitch Oliver</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/5EwHsfF375Q/</link>
		<comments>http://blog.sproutcore.com/welcome-to-maurits-lamers-and-mitch-oliver/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 16:08:36 +0000</pubDate>
		<dc:creator>Tyler Keating</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1928</guid>
		<description><![CDATA[Hot on the heels of last week&#8217;s introduction of five new team members, I&#8217;m pleased to announce that Maurits Lamers and Mitch Oliver have also signed on as SproutCore Committers. As with the people from my previous post, these names should be of no surprise to anyone who has been with SproutCore for some time. [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of last week&#8217;s introduction of five new team members, I&#8217;m pleased to announce that <strong>Maurits Lamers</strong> and <strong>Mitch Oliver</strong> have also signed on as SproutCore Committers.  As with the people from my previous post, these names should be of no surprise to anyone who has been with SproutCore for some time.</p>
<p>For those that aren&#8217;t sure of the difference between Committers and Reviewers, Committers are actually required to work in their own branches in the repo and submit every change as a pull request to be accepted by a Reviewer.  The Reviewers are allowed to make direct fixes, but will most likely submit anything at all substantial as a pull request too in order to get another Reviewer&#8217;s feedback and acceptance.  Both roles also include the responsibility to try to move the outstanding issues and pull requests towards a resolution.</p>
<p>As you can tell from the above description, both roles are a lot of work and it takes people with a real dedication to the project to accept what can be a thankless and demanding task, so please take a moment to catch all of these people on #sproutcore and sproutcore@googlegroups.com and show them your support.</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/5EwHsfF375Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/welcome-to-maurits-lamers-and-mitch-oliver/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/welcome-to-maurits-lamers-and-mitch-oliver/</feedburner:origLink></item>
		<item>
		<title>Welcome to SproutCore’s newest Committers and Reviewer</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/bpiu7_srLs8/</link>
		<comments>http://blog.sproutcore.com/welcome-to-sproutcore%e2%80%99s-newest-committers-and-reviewer/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 04:17:40 +0000</pubDate>
		<dc:creator>Tyler Keating</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1922</guid>
		<description><![CDATA[As noted in the previous post, we are in the beginning of a major new thrust in SproutCore development and community involvement. As part of this work, we’ve created a guideline to becoming a contributor and list of contributors. Today, I’m pleased to announce that several people have already graciously accepted the offer to take [...]]]></description>
			<content:encoded><![CDATA[<p>As noted in the previous post, we are in the beginning of a major new thrust in SproutCore development and community involvement.  As part of this work, we’ve created a <a href="https://github.com/sproutcore/sproutcore/wiki/Collaborator-Guidelines" title="guideline to becoming a contributor">guideline to becoming a contributor</a> and <a href="https://github.com/sproutcore/sproutcore/wiki/List-of-Collaborators">list of contributors</a>.  </p>
<p>Today, I’m pleased to announce that several people have already graciously accepted the offer to take on roles and contribute even more towards shaping the future of SproutCore as the best application development framework, period.</p>
<p>Please join me in welcoming:</p>
<p> <strong>Jason Dooley</strong>,<br />
 <strong>Jeff Pittman</strong>,<br />
 <strong>Tim Evans</strong>, and<br />
 <strong>Wesley Workman</strong> </p>
<p>as the first <em>SproutCore Committers</em> and </p>
<p><strong>Geoffrey Donaldson</strong></p>
<p>as a new <em>SproutCore Reviewer</em>.  </p>
<p>Undoubtedly, you will have come across these individuals on IRC and the mailing lists and will recognize them for their commitment to SproutCore and to the community.  We are very excited and lucky to have them onboard.</p>
<p>In the future I expect to write many more posts like this, so to those that wish to be included, keep contributing, keep learning and we hope to hear from you soon.</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/bpiu7_srLs8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/welcome-to-sproutcore%e2%80%99s-newest-committers-and-reviewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/welcome-to-sproutcore%e2%80%99s-newest-committers-and-reviewer/</feedburner:origLink></item>
		<item>
		<title>Changes to SproutCore</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/jlb8OKQHCE8/</link>
		<comments>http://blog.sproutcore.com/changes-to-sproutcore/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 20:00:06 +0000</pubDate>
		<dc:creator>Charles Jolley</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1914</guid>
		<description><![CDATA[Today I am writing to announce three important changes to the SproutCore project to better accomodate the community who are using it. Change 1: SproutCore 2.0 Is Now Amber SproutCore 2.0 started out as a rebuild of SproutCore around a more modular and modern design. Since then, the project has evolved in a different direction [...]]]></description>
			<content:encoded><![CDATA[<p>Today I am writing to announce three important changes to the SproutCore project to better accomodate the community who are using it.</p>
<h2>Change 1: SproutCore 2.0 Is Now Amber</h2>
<p>SproutCore 2.0 started out as a rebuild of SproutCore around a more modular and modern design. Since then, the project has evolved in a different direction that means it will never be a complete replacement for SproutCore 1.x.</p>
<p>Therefore, we have decided to rename SproutCore 2.0 and manage it as a separate project. The new project will take on the original code name &#8211; Amber. It will be run by Yehuda Katz, Tom Dale, and Peter Wagenet.</p>
<p>The Amber guys are working on a new website and complete update for the new project. When they are ready we will post a link to the blog here so you can find out more about it. In the meantime, work on this project is continuing in the <a title="SproutCore 2.0 Repository" href="github.com/sproutcore/sproutcore20" target="_blank">sproutcore20</a> repository on Github.</p>
<h2>Change 2: New Contributor Process</h2>
<p>With the Amber change, SproutCore will now once again be the sole domain of those wanting to create fast, native style applications on the web based on the SproutCore 1.x code base.</p>
<p>There is a very active community of developers who have invested heavily in this area. But, due to the structure of our governance system (via a Core Team), we haven&#8217;t done a very good job at making it easy for members of the community to get actively involved.</p>
<p>As of today we are adopting a new contributor process that will change all of this. The new process is based on the Reviewer/Committer model used by WebKit and several other big projects. It is <a href="https://github.com/sproutcore/sproutcore/wiki/Collaborator-Guidelines" target="_blank">fully documented</a> on the SproutCore wiki, but here are the highlights:</p>
<ul>
<li>All SproutCore projects will have reviewers and committers. Reviewers have the authority to approve changes to the code, committers can commit code when it is approved by a reviewer.</li>
<li>Anyone can become a committer once they have had a few patches accepted and a reviewer is willing to sponsor them. Anyone can become a reviewer once they have experience as a committer and the majority of other reviewers votes to approve them.</li>
<li>There is no longer a &#8220;Core Team&#8221;. Instead, we expect reviewers and committers to agree as a group on directional changes to the project. All discussions will be held on the sproutcore-dev mailing list or in IRC. We will avoid private mailing lists.</li>
</ul>
<p>The goal is to make it possible for anyone who is willing to put in the time and effort to contribute to SproutCore to become a leader in the community. You don&#8217;t need a secret handshake to get in &#8211; just contribute.</p>
<p>To get this process started, we have identified a group of people &#8211; both former Core Team members and others &#8211; who qualify as either Committers or Reviewers and reached out to them. You can <a href="https://github.com/sproutcore/sproutcore/wiki/List-of-Collaborators" target="_blank">see the list</a> of those who have already accepted on the wiki. If you aren&#8217;t on the list and you want to be, please email Tyler Keating and he will help you out.</p>
<h2>Change 3: New Leadership</h2>
<p>Finally, I want to talk a bit about my own role in SproutCore. Over the last year, my job has evolved to include a lot less coding and more other activities. While I am still very passionate about seeing SproutCore grow, I am not able to provide the kind of detailed attention that the project needs on a day-to-day level.</p>
<p>Part of the solution to this is to move towards the community driven contributor process above so that no one person can be a bottleneck anymore. We also need someone who has shown dedication to the community to help lead the process.</p>
<p>Tyler Keating is an independent developer who has been contributing to SproutCore for the last four years. He has shown dedication to the project and a desire to get others involved that is just what SproutCore needs.</p>
<p>Therefore, Tyler has agreed to become the new administrator for SproutCore. He is the main guy you should now contact with questions about managing the project day to day. I am going to remain as an honorary project owner so I can chime in on directional things.  In general though, I hope SproutCore can become more community directed than it has been in the past.  Tyler is here to help facilitate that.</p>
<p>Open source is only as strong as the community around it. I have been proud to get to work with some of the best technical talent on the planet through SproutCore. Thank you everyone for your contributions over the last several years.</p>
<p>SproutCore exists to serve your needs. Get involved and make it your own!</p>
<p>PS. I am posting a similar version of this post to the <a href="https://groups.google.com/group/sproutcore" target="_blank">SproutCore mailing list</a> where we can discuss this in the open.  Please feel free to join in there.</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/jlb8OKQHCE8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/changes-to-sproutcore/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/changes-to-sproutcore/</feedburner:origLink></item>
		<item>
		<title>Why Handlebars?</title>
		<link>http://feedproxy.google.com/~r/Sproutcore-BlogPosts/~3/-mueOyIDry8/</link>
		<comments>http://blog.sproutcore.com/why-handlebars/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 06:20:35 +0000</pubDate>
		<dc:creator>Tom Dale</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Handlebars]]></category>

		<guid isPermaLink="false">http://blog.sproutcore.com/?p=1872</guid>
		<description><![CDATA[UPDATE: The following post refers to SproutCore 2.0, which has split off as a separate project. However, the information within this post is entirely applicable with respect to using SC.TemplateView and Handlebars in SproutCore 1.8. If you wish to use SC.TemplateView in SproutCore, you only need be aware that the many views and controls in [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE</strong>: </p>
<blockquote><p><strong>The following post refers to SproutCore 2.0, which has split off as a separate project.  However, the information within this post is entirely applicable with respect to using SC.TemplateView and Handlebars in SproutCore 1.8.  If you wish to use SC.TemplateView in SproutCore, you only need be aware that the many views and controls in the Desktop framework may contain templates, but should not themselves be contained within templates.</strong></p></blockquote>
<hr />
<p>When people check out SproutCore 2.0 for the first time, one question that they frequently ask is: Do I have to use Handlebars?</p>
<p><a href="http://www.handlebarsjs.com/">Handlebars</a>, if you&#8217;re not familiar with it, is a semantic templating language written entirely in JavaScript. It&#8217;s an expressive language with a tag syntax reminiscent of HTML, except expressions (oftentimes referred to as &#8220;mustaches&#8221;) are wrapped in double-curly braces. A simple template might look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div class=&quot;entry&quot;&gt;
  &lt;h1&gt;{{title}}&lt;/h1&gt;
  &lt;div class=&quot;body&quot;&gt;
    {{body}}
  &lt;/div&gt;
&lt;/div&gt;</pre></div></div>

<p>Handlebars, unlike other templating solutions like Eco, doesn&#8217;t tempt you to embed domain logic in your HTML. Anything other than simple conditionals and loops must be contained in your application&#8217;s JavaScript, which enforces the separation of concerns and leads to better testability. The language is also extensible with custom helpers, which allows you to effectively write a template DSL for your particular application.</p>
<p>So, while the answer to the question is<em> use whatever templating system you&#8217;d like,</em> we think Handlebars is a great option. Perhaps most importantly, we&#8217;ve spent a lot of time deeply integrating SproutCore and Handlebars, such that you get a lot for free just by using bindings, computed properties, and the SproutCore object system. In fact, while we like the features and simple-yet-expressive syntax of Handlebars, the real reason we chose it when creating SproutCore 2.0 was because of its speed and architecture, allowing us the kind of integration that would be very difficult with other templating libraries.<br />
<span id="more-1872"></span><br />
Handlebars compiles a given template only once. After that, it generates a JavaScript function that can be executed repeatedly without the expense of re-parsing the template. For example, a template like this:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">{{#if arrived}}
	Hello,
{{else}}
	Goodbye,
{{/if}}
{{name}}!</pre></div></div>

<p>might be translated into a function like this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> arrived <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">arrived</span><span style="color: #339933;">,</span>
      <span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">name</span><span style="color: #339933;">,</span>
      result <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>arrived<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    result <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;Hello, &quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
    result <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;Goodbye, &quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  result <span style="color: #339933;">+=</span> <span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;!&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">return</span> result<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>(Please note that the generated code looks different; this is just illustrative of the effect.)</p>
<p>Because you declare your intent, Handlebars knows how to generate the JavaScript that gets executed at runtime. If your templates don&#8217;t change, you can precompile the templates into JavaScript during the build process for additional speed and file size improvements. It also means that, as Handlebars is optimized, so is your application.</p>
<p>But most importantly, because of its declarative nature, we can make your templates bindings-aware. Here&#8217;s where the real advantage appears: <b>you never have to write code that updates the DOM.</b> Most other frameworks require you to have two separate code paths: one that creates the initial representation (often via a templating solution), and one to update it, usually with something like:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#welcome'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Goodbye, &quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>With SproutCore and Handlebars, both behaviors are contained in the same template.</p>
<p>But beyond simple values, we also support things like conditionals and loops. If you use the <code>{{#each}}</code> helper to print an array, for example, the DOM will update <em>automatically</em> whenever items are added, removed, or modified. This eliminates lots of boilerplate and common bugs from your application, and it means you don&#8217;t need to anticipate all of the places data may change and manually re-render. Just modify the array (or the contents of the array) and let Handlebars take care of the rest.</p>
<p>So, while we encourage you to use whatever templating system makes most sense to you, we think that using the built-in Handlebars integration will let you write less code&mdash;and have fewer bugs&mdash;by eliminating the tedious boilerplate that you&#8217;re used to writing.</p>
<p>You can expect many improvements to these auto-updating templates as time goes on. In particular, we are focused on ensuring they work flawlessly with elements, such as <code>&lt;tr&gt;</code>, that have strict requirements about their enclosing tag. Yehuda and I have been working on <a href="https://github.com/tomhuda/metamorph.js">metamorph.js</a>, which we are in the process of integrating into SproutCore 2.0, that will both improve compatibility with these kinds of elements, as well as offer performance improvements. Look for these commits to SproutCore soon!</p>
<img src="http://feeds.feedburner.com/~r/Sproutcore-BlogPosts/~4/-mueOyIDry8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.sproutcore.com/why-handlebars/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://blog.sproutcore.com/why-handlebars/</feedburner:origLink></item>
	</channel>
</rss>

