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

<channel>
	<title>Cappuccino Blog &#187; Cappuccino</title>
	<atom:link href="http://cappuccino.org/discuss/category/cappuccino/feed/" rel="self" type="application/rss+xml" />
	<link>http://cappuccino.org/discuss</link>
	<description>Home of Cappuccino and Objective-J</description>
	<lastBuildDate>Thu, 19 Aug 2010 01:56:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Cappuccino 0.8 Tools</title>
		<link>http://cappuccino.org/discuss/2010/04/12/cappuccino-0-8-tools/</link>
		<comments>http://cappuccino.org/discuss/2010/04/12/cappuccino-0-8-tools/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 18:40:47 +0000</pubDate>
		<dc:creator>tlrobinson</dc:creator>
				<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=601</guid>
		<description><![CDATA[Cappuccino comes with a comprehensive set of tools for developing, debugging, optimizing, and deploying your Cappuccino applications. Those who have been following Cappuccino since the 0.7 release will notice some changes in the tools. The most important being that Cappuccino's tools are now written entirely in JavaScript and Objective-J.]]></description>
			<content:encoded><![CDATA[<p>Cappuccino comes with a comprehensive set of tools for developing, debugging, optimizing, and deploying your Cappuccino applications. Those who have been following Cappuccino since the 0.7 release will notice some changes in the tools. The most important being that Cappuccino&#8217;s tools are now written entirely in JavaScript and Objective-J.</p>
<p>The 0.7 release used <a href="http://rake.rubyforge.org/">Rake</a>, a Ruby build tool similar to &#8220;make&#8221;, to manage the build process of Cappuccino applications, as well as Cappuccino and Objective-J itself. In an effort to speed up the tools, reduce the number of dependencies, and allow us to focus on a single language family, we have replaced the Rake dependency with a simple port of Rake for JavaScript, aptly named <a href="http://github.com/280north/jake">Jake</a>. Since Jake is written in JavaScript, other JavaScript and Objective-J build tools like the Objective-J compiler can run within the same process, speeding up the build time significantly.</p>
<p>Additionally, we have expanded the command-line/server-side JavaScript environment used for Cappuccino&#8217;s tools, now available as a separate project called <a href="http://narwhaljs.org/">Narwhal</a>. Narwhal aims to support the emerging <a href="http://commonjs.org/">CommonJS</a> module and standard library specifications on multiple JavaScript engines.</p>
<p>We started working with the <a href="http://www.mozilla.org/rhino/">Rhino</a> engine, since the existing build tools were built on Rhino, and have recently added support for the JavaScriptCore / SquirrelFish engine. The performance of Narwhal on JavaScriptCore is an order of magnitude faster than Rhino, vastly improving build times. Currently &#8220;narwhal-jsc&#8221; supports Mac OS X, but other platform support is in progress.</p>
<p>Another major change was the refactoring of the <a href="http://wiki.github.com/280north/cappuccino/press">&#8220;press&#8221;</a> tool, which attempts to strip unnecessary files from your application bundle. As part of that refactoring we moved the &#8220;&#8211;flatten&#8221; feature, which inlines all code and files into one or more JavaScript files, into a separate tool, unsurprisingly called <a href="http://wiki.github.com/280north/cappuccino/flatten">&#8220;flatten&#8221;</a>. Flatten now supports splitting your application into multiple files which will be downloaded by the browser in parallel, via the &#8220;&#8211;split N&#8221; option.</p>
<p>For more information on all of these tools, check out the <a href="http://wiki.github.com/280north/cappuccino/Tools">Tools</a> wiki page.</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2010/04/12/cappuccino-0-8-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solving the JavaScript Memory Management Problem</title>
		<link>http://cappuccino.org/discuss/2010/04/01/solving-the-javascript-memory-management-problem/</link>
		<comments>http://cappuccino.org/discuss/2010/04/01/solving-the-javascript-memory-management-problem/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 00:01:58 +0000</pubDate>
		<dc:creator>ross</dc:creator>
				<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Objective-J]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=606</guid>
		<description><![CDATA[JavaScript has some real problems. Anyone who has programmed for the web can attest to that. And anyone familiar with what we&#8217;re doing with Cappuccino will recognize that we&#8217;re not afraid to tackle those problems head on. When we created Objective-J we set out to create a set of true enhancements to the JavaScript language [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript has some real problems. Anyone who has programmed for the web can attest to that. And anyone familiar with what we&#8217;re doing with Cappuccino will recognize that we&#8217;re not afraid to tackle those problems head on. When we created Objective-J we set out to create a set of true enhancements to the JavaScript language that would add powerful new dynamic features to the language, like advanced automatic dependency resolution, truly dynamic message passing, and familiar classical inheritance. By all accounts it has been a tremendous success.</p>
<p>Lately, though, we&#8217;re beginning to realize that we didn&#8217;t quite go far enough. Memory issues have long plagued JavaScript developers. Because the garbage collector is opaque to the developer, and nothing like &#8220;finalize&#8221; is provided by the language, programmers often find themselves in situations where they are forced to hold on to an object reference for too long (or forever) creating a memory leak.</p>
<p>Just as we&#8217;ve done before, when we tackled this problem we decided to look at what has worked in the past. Finding inspiration in the elegant simplicity of C, we knew we&#8217;d found the right solution. And so, we&#8217;re pleased to announce the immediate availability of a manual memory management system in Cappuccino.</p>
<p>A lot of Cocoa developers disparaged garbage collection when it came to Objective-C, and we&#8217;ve come to realize they were absolutely right! Why rely on machines to solve problems for us when we can do it by hand. So, we&#8217;ve taken the Cocoa reference counting system and implemented it in JavaScript. We&#8217;ve replaced the existing no-op -retain, -release, and -autorelease methods with fully working implementations. When an object&#8217;s release count reaches 0, the object&#8217;s dealloc method will be called, and the memory will be able to be reclaimed. Now you have a clear way to clean up unwanted references when an object is no longer being used. Just make sure you do your reference counting correctly!</p>
<p>To do this right, we&#8217;ve created a global object table. These objects aren&#8217;t going anywhere on their own! If you don&#8217;t release an object, it will stick around forever, ensuring you&#8217;ll always have it when you need it. This global table acts as a lookup table for any object, allowing us to finally implement pointers in JavaScript. Since $ has become the coolest way to do completely non-standard lookups in an almost indecipherable way, we thought we&#8217;d jump on the bandwagon. Pass any pointer to $ and you&#8217;ll get the associated object! How do you get a pointer you ask? $$ of course! For example:</p>
<pre><code>
var o = [CPobject new]; // +new returns with a retain count of 1!
var p = $$(o); // returns a pointer to o

o === $(p); // we dereference the pointer and get the right object!</code></pre>
<p>Zombies come standard, too! Just set OBJJ_ZOMBIE_DETECTION to true and objj_msgSend will throw an exception if you ever message an object that&#8217;s been dealloc&#8217;d. </p>
<p>We&#8217;ve even take the time to properly -autorelease all objects returned from class methods in Foundation, but we&#8217;ve made absolutely no effort to properly retain those objects in Cappuccino code that uses them yet. So we need your help. Every line must be scrutinized (but we shouldn&#8217;t to automate this process, as it would surely be too error prone). Rather than focus on developing new features or fixing bugs in the issue tracker, we hope that all Cappuccino contributors will spend their time writing memory management code so that we can fully realize this web development revolution!</p>
<p>We&#8217;ll be including these exciting new features in a future release, so you should get started adding manual memory management code to every single line of Cappuccino you&#8217;ve ever written! In the meantime, check out the <a href="http://github.com/280north/cappuccino/commit/6678bba94f7778b245d8219292b3a6ac85d31678">working code on Github</a>.</p>
<p><em>Please note this is an April Fools joke!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2010/04/01/solving-the-javascript-memory-management-problem/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Randy Luecke Becomes a Committer</title>
		<link>http://cappuccino.org/discuss/2010/03/12/randy-luecke-becomes-a-committer/</link>
		<comments>http://cappuccino.org/discuss/2010/03/12/randy-luecke-becomes-a-committer/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 19:22:11 +0000</pubDate>
		<dc:creator>ross</dc:creator>
				<category><![CDATA[Cappuccino]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=575</guid>
		<description><![CDATA[A little late to post this, but everyone in the Cappuccino has loved the work Randy (Me1000) has been doing on CPTableView. Thanks to his hard work and significant contributions, the table view component in Cappuccino is now a force to be reckoned with. So we&#8217;re proud to have Randy as our latest Cappuccino committer, [...]]]></description>
			<content:encoded><![CDATA[<p>A little late to post this, but everyone in the Cappuccino has loved the work Randy (<a href="http://github.com/me1000">Me1000</a>) has been doing on CPTableView. Thanks to his hard work and significant contributions, the table view component in Cappuccino is now a force to be reckoned with. So we&#8217;re proud to have Randy as our latest Cappuccino committer, and we&#8217;re looking forward to the table view features still to come.</p>
<p>Randy also has his own Cappuccino app he&#8217;s been developing called <a href="http://timetableapp.com/">TimeTable</a>. It&#8217;s a time tracking app thats set to launch soon, so keep an eye out!</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2010/03/12/randy-luecke-becomes-a-committer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nick Small Becomes a Cappuccino Committer</title>
		<link>http://cappuccino.org/discuss/2009/11/29/nick-small-becomes-a-cappuccino-committer/</link>
		<comments>http://cappuccino.org/discuss/2009/11/29/nick-small-becomes-a-cappuccino-committer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 02:14:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cappuccino]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=555</guid>
		<description><![CDATA[A big congratulations to nciagra for becoming a committer to the Cappuccino repository. While we&#8217;ve always been taking in contributions from Nick and other community members, this represents the first time someone outside 280 North has been granted access to commit directly to the repo. Anyone following Cappuccino can see that Nick has been a [...]]]></description>
			<content:encoded><![CDATA[<p>A big congratulations to <a href="http://github.com/nciagra">nciagra</a> for becoming a committer to the <a href="http://github.com/280north/cappuccino">Cappuccino repository</a>. While we&#8217;ve always been taking in <a href="http://contributors.cappuccino.org">contributions</a> from Nick and other community members, this represents the first time someone outside 280 North has been granted access to commit directly to the repo.</p>
<p>Anyone following Cappuccino can see that Nick has been a valuable member of the community. He&#8217;s always offering help in the IRC channel and on the mailing list, and he&#8217;s also the <a href="http://contributors.cappuccino.org/contributors/nicholas-small/commits">most active contributor</a> outside 280 North. On top of all that, he&#8217;s been working on some <a href="http://github.com/nciagra/Cappuccino-Extensions">exciting new ideas</a> for Cappuccino, some of which we hope to fold into the main repository in the coming months. </p>
<p>So congratulations to Nick! And as Cappuccino continues to progress, we look forward to adding even more committers to the project.</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2009/11/29/nick-small-becomes-a-cappuccino-committer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Just One File with Cappuccino 0.8</title>
		<link>http://cappuccino.org/discuss/2009/11/11/just-one-file-with-cappuccino-0-8/</link>
		<comments>http://cappuccino.org/discuss/2009/11/11/just-one-file-with-cappuccino-0-8/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 10:44:24 +0000</pubDate>
		<dc:creator>tolmasky</dc:creator>
				<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=498</guid>
		<description><![CDATA[The entire 280 crew just got back from an awesome time at JSConf EU in Berlin, where we got to show off some of the cool new developments coming with Cappuccino 0.8. I wanted to take the time to share one in particular in more depth here: image spriting. The Problem with Spriting Image spriting [...]]]></description>
			<content:encoded><![CDATA[<p>The entire 280 crew just got back from an awesome time at <a href = "http://jsconf.eu/2009/">JSConf EU</a> in Berlin, where we got to show off some of the cool new developments coming with Cappuccino 0.8. I wanted to take the time to share one in particular in more depth here: <strong>image spriting</strong>.</p>
<h3>The Problem with Spriting</h3>
<p>Image spriting is the act of taking all the images in your app (or framework, or library, or whatever) and combining them down to one single image. This has the advantages of being smaller (since each individual image has overhead associated with the format), as well as allowing you to grab it from your server with one request:</p>
<p><center><img style = "border:1px solid black;" src="http://cappuccino.org/discuss/wp-content/uploads/2009/11/Screen-shot-2009-11-11-at-1.55.50-AM.png" alt="Traditional Spriting" title="Traditional Spriting" width="471" height="304" class="size-full wp-image-549" /></center></p>
<p>This is faster in an absolute sense, but even more so psychologically since it allows you to show the contents of your app faster without having all the images &#8220;flash in&#8221; later. Cappuccino currently uses a similar technique with the source code in your application: concatenating it all together and minifying it, but up until now we&#8217;ve had no automatic, or built-in, support for spriting, you&#8217;ve instead had to do it entirely yourself. And truthfully, no framework has really good support for this.</p>
<p>This is because the fundamental problem with spriting today is that the process isn&#8217;t really automated and the results are thus subpar. Sure, there are scripts which will put images together for you, but they all require you to configure them first and to update them as your use of the images in question changes. This is because traditional spriting is dependent on <strong>how</strong> you use your images. Whether you choose to repeat, stretch, scale, or even draw to a canvas affects which images can be sprited together, and even which can&#8217;t be sprited at all. This has a number of unfortunate side effects:</p>
<ul>
<li><strong>Rarely do you actually end up with just one image:</strong> Instead, you can end up with 2, 3, or even more. This is because images have to be &#8220;grouped&#8221; by their use. For example, vertically repeating images can be sprited together, but not with horizontally repeating images.</li>
<li><strong>You may have to actually change your code:</strong> Since images are being mutated, the code you write needs to take into account these new images. If you are lucky you have a system that is relatively good at doing this for you. However, if you decide to use an image in a new way (such as drawing it to a canvas), you either have to update your configuration files or choose to code it differently. This is easy to forget.</li>
<li><strong>Your images are still shipped separately from your code:</strong> Even in the best case where you are lucky enough to successfully sprite all your images together, you still have to wait for them separately from when your code is ready, potentially leading to noticeable delays from latency, or a &#8220;flash in&#8221; effect.</li>
<li><strong>Inflexible due to loss of data:</strong> There exist cases where your code is meant to be used by others, such as with libraries and frameworks. In this case, images can&#8217;t be used in any way other than how you intended them to if they are sprited, because the original images are gone or would require a redundant second download.
</li>
</ul>
<p>So unfortunately there is currently no good one-size-fits-all solution for image spriting the way there is with &#8220;code spriting&#8221;. All of them require the user to actually become involved in the optimization process, and even still can produce less than stellar results. This is clearly not a solution that can scale, and most everyone agrees to this.</p>
<p>But we&#8217;re hoping to change this with the release of Cappuccino 0.8, as we&#8217;re introducing a whole new, completely cross-platform, way to sprite: base64 images. By encoding images as base64, we create a lossless text representation of images, allowing us not only to use them in whatever way we please, but to actually ship them <strong>with</strong> the code:</p>
<p>There are many advantages to this:</p>
<ul>
<li><strong>One file, guaranteed:</strong> All images can always be sprited together regardless of how you plan to use them, and can be included with the actual source code. This has the added benefit that gzip can work its magic on the entirety of your web app as one, producing better results.</li>
<li><strong>No need to ever modify code or configuration files:</strong> Since we&#8217;ve eliminated the ambiguous part of spriting images, the Cappuccino build tools are able to perform this optimization on your code automatically without tedious configuration files or having to &#8220;learn&#8221; how to sprite.</li>
</ul>
<h3>Yes, This Works in IE 6 and 7.</h3>
<p>I&#8217;m sure most people are wondering how we are pulling this off in versions of IE before 8, since they do not support data URLs. Notice that earlier I didn&#8217;t specifically mention data URLs though, I instead only referred to the more broad technology of base64 images. As it turns out, IE has had support for base64 images since version 6 (!) with a little-known technology called MHTML. MHTML allows you place all your resources in one &#8220;resources&#8221; file, which incidentally can be any file in your website&#8230; including the same file that contains all your code.</p>
<p>Cappuccino is already smart enough to be able to automatically download and use different code depending on what browser is being used (and with <strong>no</strong> server configuration), so we now simply ship data URL versions of this technique to modern browsers, and MHTML versions to older copies of IE:<br />
<center><img style = "border:1px solid black;" src="http://cappuccino.org/discuss/wp-content/uploads/2009/11/Screen-shot-2009-11-11-at-1.57.08-AM.png" alt="Cappuccino Spriting" title="Cappuccino Spriting" width="464" height="303" class="aligncenter size-full wp-image-546" /></center></p>
<p>This is a very exciting feature for us. This has been a weak point in Cappuccino and its nice to finally have a solution that not only works, but is drop dead simple to use. Our tests have been proven incredibly promising, giving us the fastest load times we&#8217;ve ever seen with Cappuccino, and absolutely fantastic perceived speed as well. Our tools have all been honed to use this at every level: Apps, frameworks, and themes will automatically sprite your images for you.</p>
<p>This is just one of the many enhancements coming with Cappuccino 0.8, and the best part is as usual you won&#8217;t have to change a single line of code to get all the benefits.</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2009/11/11/just-one-file-with-cappuccino-0-8/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Push with Cappuccino and Tornado</title>
		<link>http://cappuccino.org/discuss/2009/10/05/push-with-cappuccino-and-tornado/</link>
		<comments>http://cappuccino.org/discuss/2009/10/05/push-with-cappuccino-and-tornado/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 13:35:52 +0000</pubDate>
		<dc:creator>tolmasky</dc:creator>
				<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=463</guid>
		<description><![CDATA[Elias Klughammer has taken the time to put together a demo of using the new Tornado web server to bring push to Cappuccino applications. Tornado is a brand new non-blocking server recently open sourced by Facebook which was built to deal with the high intensity demands of FriendFeed. When combined with Cappuccino, the results are [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/eliasklughammer">Elias Klughammer</a> has taken the time to put together a demo of using the new <a href="http://www.tornadoweb.org/">Tornado web server</a> to bring push to Cappuccino applications. Tornado is a brand new non-blocking server recently open sourced by Facebook which was built to deal with the high intensity demands of <a href = "http://friendfeed.com">FriendFeed</a>. When combined with Cappuccino, the results are pretty impressive:</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/1MPTxS9uyT4&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1MPTxS9uyT4&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>Check out the project on <a href="http://github.com/eliasklughammer/Cappuccino-X-Tornado">GitHub</a> to start hacking on your own real time Cappuccino services!</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2009/10/05/push-with-cappuccino-and-tornado/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cappuccino Turns One</title>
		<link>http://cappuccino.org/discuss/2009/09/08/cappuccino-turns-one/</link>
		<comments>http://cappuccino.org/discuss/2009/09/08/cappuccino-turns-one/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 14:44:02 +0000</pubDate>
		<dc:creator>tolmasky</dc:creator>
				<category><![CDATA[Cappuccino]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=384</guid>
		<description><![CDATA[Cappuccino officialy turned one last Friday. I suppose that technically Cappuccino is quite a bit older, but a year ago was when we finally released it into the open source community. It&#8217;s unbelievable to me that in just one year we went from being a completely unkown technology to one of the most popular JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p><center><img class="aligncenter size-full wp-image-418" title="cappuccino-birthday-icon" src="http://cappuccino.org/discuss/wp-content/uploads/2009/09/cappuccino-birthday-icon.png" alt="cappuccino-birthday-icon" width="300" height="400" /></center></p>
<p>Cappuccino officialy turned one last Friday. I suppose that technically Cappuccino is quite a bit older, but <a href="http://cappuccino.org/discuss/2008/09/04/announcing-cappuccino/">a year ago</a> was when we finally released it into the open source community. It&#8217;s unbelievable to me that in just one year we went from being a completely unkown technology to <a href="http://github.com/languages/JavaScript">one of the most popular JavaScript projects on GitHub</a>. I&#8217;m a little embarrassed to admit this, but I can remember that just a few weeks before launching, the guys over at <a href="http://heroku.com/">Heroku</a> were still convincing us that we needed to switch from svn to git. Good times.</p>
<p>I&#8217;d like to take a step back and go over just some of the things that have happened with Cappuccino in the past year:</p>
<ul>
<li>We released one of our coolest tools: <a href="http://wiki.github.com/280north/cappuccino/nib2cib">nib2cib</a>. nib2cib actually lets you visually build your Cappuccino apps using Apple&#8217;s Interface Builder!</li>
<li>We added a much requested theming engine. With the help of our friends over at <a href="http://www.madebysofa.com/">Sofa</a>, we also launched <a href="http://github.com/280north/aristo/tree/master">Aristo</a>, a beautiful new open source UI to serve as the default look and feel for Cappuccino apps.</li>
<li>We added native <a href="http://www.alertdebugging.com/2009/04/29/building-a-better-javascript-profiler-with-webkit/">debugging and profiling</a> support for Objective-J in WebKit, which now ships standard with Safari.</li>
<li>We&#8217;ve begun to integrate some of the cool new features from HTML 5 into Cappuccino, like <a href="http://www.alertdebugging.com/2009/08/16/on-html-5-drag-and-drop/">native drag and drop</a>.</li>
<li>We added KVC and KVO (key value coding and observing), to help you automatically propagate and sync changes from your models to your views.</li>
</ul>
<p>But most importantly we&#8217;ve built an amazing community. People have really stepped in to fill the gaps in the Cappuccino environment, writing <a href="http://wiki.github.com/280north/cappuccino/cappuccino-tutorials">tutorials</a>, <a href="http://cappuccinocasts.com/">filming screencasts</a>, and of course <a href="http://almost.at">creating awesome apps</a>. Another place the community really outdid themselves is backend technologies. We originally wrote Cappuccino with the express intent of being completely server agnostic. Since then, backend support has been added for <a href="http://ajaxian.com/archives/cp2javaws-gwt-like-cappuccino-to-java-remote-services-bridge">Java</a>, <a href="http://cappuccinocasts.com/2009/05/11/8-cappuccino-and-ruby-on-rails-the-weblog-application-part-1/">Rails</a>, and just recently <a href="http://github.com/dpp/Frothy/tree/master">Lift</a>. We&#8217;ve even written an Objective-J module for the emerging <a href="https://wiki.mozilla.org/ServerJS">CommonJS server-side JavaScript standard</a> to get Cappuccino running on the backend too. The best part of course, is that people are contributing code faster than we can integrate it (we promise to get the fork queue back down to zero!). People have been working on core features in Cappuccino that I never imagined anyone outside the members of the core team tackling.</p>
<p>This year has truly been great and I&#8217;m incredibly thankful to everyone that has used and <a href="http://contributors.cappuccino.org/">contributed to Cappuccino</a>. But next year is going to be even better. We have so much planned for this project and the vision is far from complete. It&#8217;s already the case that building Cappuccino apps is a fundamentally different experience than any other web framework out there. It amazes me that someone can pick up a copy of <a href="http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1252397201&amp;sr=1-1">Aaron Hillegass&#8217; Cocoa Programming</a> and use it to throw together a <strong>web app</strong> using drag and drop in no time. But just wait to see what&#8217;s in store. If you took a look at us when we first launched but never gave it a shot, or just haven&#8217;t had time to play around with it yet, now is a great time to <a href="http://cappuccino.org/download">join the party!</a></p>
<p>- Francisco</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2009/09/08/cappuccino-turns-one/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Cappuccino 0.7 Now Available</title>
		<link>http://cappuccino.org/discuss/2009/05/20/cappuccino-07-now-available/</link>
		<comments>http://cappuccino.org/discuss/2009/05/20/cappuccino-07-now-available/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:28:29 +0000</pubDate>
		<dc:creator>ross</dc:creator>
				<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Aristo]]></category>
		<category><![CDATA[Narwhal]]></category>
		<category><![CDATA[nib2cib]]></category>
		<category><![CDATA[Objective-J]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Rake]]></category>
		<category><![CDATA[Sofa]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=314</guid>
		<description><![CDATA[We&#8217;re pleased to announce the immediate release of Cappuccino 0.7, the latest update to the Cappuccino web framework. This release has been five months in the making, and it marks a significant step forward for the project. 0.7 By The Numbers As of version 0.6, Cappuccino had 9 total contributors. Version 0.7 more than triples [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re pleased to announce the immediate release of <a href="/download/">Cappuccino 0.7</a>, the latest update to the Cappuccino web framework. This release has been five months in the making, and it marks a significant step forward for the project.</p>
<h3>0.7 By The Numbers</h3>
<p>As of version 0.6, Cappuccino had 9 total contributors. Version 0.7 more than triples that number with 29 total contributors. And thanks to the inspiration and hard work of <a href="http://weblog.rubyonrails.org/2009/5/18/new-code-contributor-index">Xavier Noria and José Espinal</a>, we&#8217;ve got a slick new website that keeps up to date tallies on all of the <a href="http://contributors.cappuccino.org/contributors">contributors</a> to the project. Check it out <a href="http://contributors.cappuccino.org/contributors">here</a>. If you find a mistake, be sure to let us know in the comments.</p>
<div class="blogImageFullWidthWrapper"><img src="http://cappuccino.org/discuss/wp-content/uploads/2009/05/contributors.jpg" alt="contributors" title="contributors" width="500" height="348"  class="blogImageFullWidth" /></div>
<p>This release includes over 100 bug fixes, thanks in part to all the new contributors, and to the hard work of users taking the time to file quality bug reports. If you hadn&#8217;t noticed already, we&#8217;ve moved to github&#8217;s new <a href="http://github.com/280north/cappuccino/issues">issue tracking</a> for bug reports, so check out the new system, and vote on issues that are important to you.</p>
<h3>New Look</h3>
<div class="blogImageFullWidthWrapper"><a href="/images/Aristo.jpg"><img style="margin-top:10px; padding:50px 120px 50px 120px;  background-color:white; border:1px dotted gray;" src="http://cappuccino.org/discuss/wp-content/uploads/2009/05/aristo.png" alt="aristo" title="aristo_slide" width="180" height="80" /></a></div>
<p>The biggest new feature of Cappuccino is our new new theme: Aristo. Aristo is the new look and feel for Cappuccino applications. Created by the talented designers at <a href="http://madebysofa.com">Sofa</a>, Aristo is designed specifically to look good in the browser, and in any browser, whether it&#8217;s Firefox, Safari, or even Internet Explorer, Mac and Windows. We&#8217;ve also <a href="http://github.com/280north/aristo/tree/master">open-sourced</a> the PSD file used to create Aristo. All the controls have been updated to use the new style, and we&#8217;ve added a few new controls as well, like checkboxes, radio buttons, and segmented controls.</p>
<h3>Theming</h3>
<p>We didn&#8217;t just build one new look for Cappuccino, though. Instead, we built an entirely new theme engine which will let anyone create a theme for Cappuccino. All the properties of the standard controls are fully themeable in all the different &#8220;theme states&#8221; (like &#8220;pushed&#8221;, &#8220;disabled&#8221;, &#8220;normal&#8221;, etc.). In the coming months, we&#8217;ll be sharing new themes with the community, and building a site for users to post their own themes for others to download and use. </p>
<h3>Interface Builder</h3>
<p>Those of you who come from a Cocoa background are used to using Apple&#8217;s <a href="http://developer.apple.com/tools/interfacebuilder.html">Interface Builder</a> tool to layout your Cocoa applications. Thanks to a technology in 0.7 called <a href="http://wiki.github.com/280north/cappuccino/nib2cib">nib2cib</a>, you can use Interface Builder to layout Cappuccino applications too. All of the classes supported in Cappuccino 0.7 that have Cocoa analogues are included. So, you can drag checkboxes, sliders, text fields, buttons, and lots more. You can even instantiate custom top level objects, or custom view subclasses, which will be converted to the right class in Cappuccino by the nib2cib tool. Once you&#8217;re done laying out the UI of your application with Interace Builder, you can use it&#8217;s target-action and outlet technology to build up its logic as well.</p>
<div class="blogImageFullWidthWrapper"><img src="http://cappuccino.org/discuss/wp-content/uploads/2009/05/temp-image_1_72.png" alt="making a cappuccino application using interface builder" title="making a cappuccino application using interface builder" width="500" height="382"  class="blogImageFullWidth" /></div>
<p><a href="http://wiki.github.com/280north/cappuccino/nib2cib">nib2cib</a> is a powerful tool that drastically reduces the amount of code you need to write to build an interface with Cappuccino. The starter package now includes both a nib/xib based application template, and a standard, code based template, so you can choose which is best for you. From the command line you can use the new <a href="http://wiki.github.com/280north/cappuccino/capp">capp</a> tool to generate a nib/xib project by typing &#8220;capp gen -t NibApplication MyApp&#8221;. </p>
<h3>The Rest</h3>
<p>As if that wasn&#8217;t enough, there are a lot more changes. First off, improved support for debugging in Cappuccino and Objective-J, thanks to some contributions to WebKit. For more details, see <a href="http://www.alertdebugging.com/2009/04/29/building-a-better-javascript-profiler-with-webkit/">Francisco&#8217;s post</a> on the topic.</p>
<p>We now build on top of Rake instead of ant, which has helped us create a much better build system that can improve quickly. Objective-J has improved support for deploying code to multiple platforms, like server (e.g. rhino) and browser. And we&#8217;re including the new <a href="http://github.com/tlrobinson/narwhal/tree/master">Narwhal JavaScript standard library</a> in Cappuccino as an external dependency.</p>
<p>Narwhal is still in the early stages, but eventually it will be a set of standard JavaScript APIs that work consistently across many different JavaScript implementations, making it easy to work on any JavaScript interpreter you have available. We&#8217;ll write more about all these new features as time goes on, especially all the new tools and APIs in 0.7, so stay tuned. In the mean time, you can check out information we&#8217;ve posted to the <a href="http://wiki.github.com/280north/cappuccino/">wiki</a>.</p>
<p>Thanks again to everyone who&#8217;s contributed to Cappuccino for the 0.7 release, and to everyone using Cappuccino!</p>
<p>- Ross</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2009/05/20/cappuccino-07-now-available/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Cappuccino 0.7 Beta</title>
		<link>http://cappuccino.org/discuss/2009/03/26/cappuccino-07-beta/</link>
		<comments>http://cappuccino.org/discuss/2009/03/26/cappuccino-07-beta/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 08:46:52 +0000</pubDate>
		<dc:creator>ross</dc:creator>
				<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=306</guid>
		<description><![CDATA[A few days ago we posted a beta of the upcoming 0.7 release to github. We sent out some information to the mailing list and posted some info on the wiki as well. Thomas Balthazar has also recapped a lot of the information in his latest installment of This Week in Cappuccino Edge. I encourage [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago we posted a beta of the upcoming <a href="http://github.com/280north/cappuccino/tree/0.7b">0.7 release</a> to github. We sent out some information to the <a href="http://groups.google.com/group/objectivej/browse_thread/thread/b513e1dc52ad1f89/e5aa3222bc52494a#e5aa3222bc52494a">mailing list</a> and posted some info <a href="http://wiki.github.com/280north/cappuccino/07-beta">on the wiki</a> as well.</p>
<p>Thomas Balthazar has also recapped a lot of the information in his latest installment of <a href="http://suitmymind.com/2009/03/26/this-week-in-edge-cappuccino-10/">This Week in Cappuccino Edge</a>. I encourage you to check it out and let us know how 0.7 beta is shaping up!</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2009/03/26/cappuccino-07-beta/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Announcing Atlas</title>
		<link>http://cappuccino.org/discuss/2009/02/28/announcing-atlas/</link>
		<comments>http://cappuccino.org/discuss/2009/02/28/announcing-atlas/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 03:55:48 +0000</pubDate>
		<dc:creator>tlrobinson</dc:creator>
				<category><![CDATA[280 North]]></category>
		<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Objective-J]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[280north]]></category>
		<category><![CDATA[atlas]]></category>

		<guid isPermaLink="false">http://cappuccino.org/discuss/?p=301</guid>
		<description><![CDATA[Over at 280 North, we announced our next product, called Atlas, at the Future of Web Apps conference in Miami this week. Atlas is a visual development tool for creating web applications using the Cappuccino framework. The best way to explain Atlas is to show it: Think Vitamin has an article discussing Atlas in more [...]]]></description>
			<content:encoded><![CDATA[<p>Over at <a href="http://280north.com">280 North</a>, we announced our next product, called Atlas, at the <a href="http://events.carsonified.com/fowa">Future of Web Apps</a> conference in Miami this week.</p>
<p>Atlas is a visual development tool for creating web applications using the <a href="http://cappuccino.org">Cappuccino</a> framework. The best way to explain Atlas is to show it:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="545" height="361" id="viddler_1db9bf4d"><param name="wmode" value="transparent" /><param name="movie" value="http://www.viddler.com/simple/1db9bf4d/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/simple/1db9bf4d/" width="545" height="361" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_1db9bf4d" wmode="transparent"></embed></object></p>
<p><a href="http://thinkvitamin.com/features/atlas-under-the-hood/">Think Vitamin has an article</a> discussing Atlas in more detail.</p>
<p>We&#8217;re really excited about the ways Atlas could change the process of developing web applications. Atlas will allow developers to worry less about boilerplate user interface and glue code, just as the Cappuccino framework gives developers many common features expected by users, letting them focus on the ones specific to their applications.</p>
<p>Furthermore, Atlas allows non-programmers, such as many graphic designers, to join in on the process of actually building an application, rather than just providing mockups that must then be replicated in code by a developer.</p>
<p>Atlas will be available this summer. Sign up for updates on <a href="http://280atlas.com">280atlas.com</a> and we&#8217;ll let you know of the progress on Atlas.</p>
]]></content:encoded>
			<wfw:commentRss>http://cappuccino.org/discuss/2009/02/28/announcing-atlas/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
