<?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"
	>

<channel>
	<title>Rem</title>
	<atom:link href="http://remproject.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://remproject.org</link>
	<description>Requirements and Entity Modeler = UML + AOP + Open Source + Cross Platform</description>
	<pubDate>Thu, 28 Aug 2008 07:02:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Version 1.0 is out!</title>
		<link>http://remproject.org/2008/08/28/version-10-is-out/</link>
		<comments>http://remproject.org/2008/08/28/version-10-is-out/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 07:02:31 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=45</guid>
		<description><![CDATA[Rem version 1.0 is ready to use! This version just supports the creation, storage and retrieval of use case diagrams, but the source code is ready to be extended, to support the creation of other types of diagrams.
Download and enjoy!
]]></description>
			<content:encoded><![CDATA[<p>Rem version 1.0 is ready to use! This version just supports the creation, storage and retrieval of use case diagrams, but the source code is ready to be extended, to support the creation of other types of diagrams.</p>
<p><a href="/downloads/">Download</a> and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/08/28/version-10-is-out/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reading and Writing</title>
		<link>http://remproject.org/2008/08/19/reading-and-writing/</link>
		<comments>http://remproject.org/2008/08/19/reading-and-writing/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 17:37:06 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=44</guid>
		<description><![CDATA[Rem is every day closer to version 1.0, officially scheduled for August 28th. This past month I&#8217;ve been adding lots of functionality to the software, including the ability to read and write its own files. Remember that Rem files are actually SQLite databases, which ensures that files are cross-platform, and can be read and modified [...]]]></description>
			<content:encoded><![CDATA[<p>Rem is every day closer to version 1.0, officially scheduled for August 28th. This past month I&#8217;ve been adding lots of functionality to the software, including the ability to read and write its own files. Remember that Rem files are actually SQLite databases, which ensures that files are cross-platform, and can be read and modified in any platform where Rem works.</p>
<p>Next week I&#8217;ll release version 1.0; the final adjustments here and there, and the software will be ready for prime time!</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/08/19/reading-and-writing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Release 0.1 is here!</title>
		<link>http://remproject.org/2008/07/06/release-0-1-is-here/</link>
		<comments>http://remproject.org/2008/07/06/release-0-1-is-here/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 19:12:46 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=42</guid>
		<description><![CDATA[I&#8217;ve just uploaded the binaries, source and documentation for Rem release 0.1! The GUI architecture is quite stable now, and I&#8217;m extending the system with new features every week. Feel free to download and comment! This is an early beta, so crashes might happen. Use with caution!

]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just uploaded the binaries, source and documentation for Rem release 0.1! The GUI architecture is quite stable now, and I&#8217;m extending the system with new features every week. Feel free to <a href="/downloads">download</a> and comment! This is an early beta, so crashes might happen. Use with caution!</p>
<p><a href='http://remproject.org/wp-content/uploads/2008/07/screenshot-01.png' rel='lightbox'><img src="http://remproject.org/wp-content/uploads/2008/07/screenshot-01-298x300.png" alt="" title="screenshot-01" width="298" height="300" class="alignnone size-medium wp-image-43" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/07/06/release-0-1-is-here/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Missing libraries, fixed (again)</title>
		<link>http://remproject.org/2008/07/02/missing-libraries-fixed-again/</link>
		<comments>http://remproject.org/2008/07/02/missing-libraries-fixed-again/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 19:50:45 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=41</guid>
		<description><![CDATA[But this time for Linux. Somehow Poco and Juce cannot be linked together as static libraries (there are duplicate symbols conflicting when linking) so I have changed the Linux x86 distribution, including a copy of the libPocoFoundation.so.5 file (which is the exact version needed by the Rem executable), and I also included a shell script [...]]]></description>
			<content:encoded><![CDATA[<p>But this time for Linux. Somehow Poco and Juce cannot be linked together as static libraries (there are duplicate symbols conflicting when linking) so I have changed the Linux x86 distribution, including a copy of the libPocoFoundation.so.5 file (which is the exact version needed by the Rem executable), and I also included a shell script (which should be executed with administrative privileges) to copy the library to its require location. <a href="http://remproject.org/releases/0.0.2-alpha/rem-0.0.2-alpha-linux-686.tar.gz">Feel free to try it out!</a></p>
<p>With this manipulation, Rem can be installed in any Linux system and run flawlessly. Time to add more features!</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/07/02/missing-libraries-fixed-again/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Missing libraries, fixed</title>
		<link>http://remproject.org/2008/06/29/missing-libraries-fixed/</link>
		<comments>http://remproject.org/2008/06/29/missing-libraries-fixed/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 20:32:26 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=40</guid>
		<description><![CDATA[If you downloaded yesterday the Windows installer, it lacked some important libraries that are part of the redistributable runtime for applications built using Visual C++ 2008 Express Edition. This has been fixed now, so you can download the installer again, and it should work flawlessly. As always, feel free to post comments in this site.
]]></description>
			<content:encoded><![CDATA[<p>If you downloaded yesterday the Windows installer, it lacked some important libraries that are part of the redistributable runtime for applications built using Visual C++ 2008 Express Edition. This has been fixed now, so you can <a href="http://remproject.org/releases/0.0.2-alpha/rem-0.0.2-alpha-win32.exe">download</a> the installer again, and it should work flawlessly. As always, feel free to post comments in this site.</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/06/29/missing-libraries-fixed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Announcing Release 0.0.2 Alpha!</title>
		<link>http://remproject.org/2008/06/28/announcing-release-002-alpha/</link>
		<comments>http://remproject.org/2008/06/28/announcing-release-002-alpha/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 23:07:12 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=36</guid>
		<description><![CDATA[Here&#8217;s a new (preliminary) release of Rem! The big news is that, thanks to CPack (the packaging utility bundled with CMake) Windows and Leopard users have now installers to setup the application in their systems easier than ever.
There are also lots of bug fixes, small modifications, a grid background on grids, a new internal messaging [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a new (preliminary) release of Rem! The big news is that, thanks to CPack (the packaging utility bundled with CMake) Windows and Leopard users have now installers to setup the application in their systems easier than ever.</p>
<p>There are also lots of bug fixes, small modifications, a grid background on grids, a new internal messaging architecture (using the  Poco::NotificationCenter class), compatibility with Mac OS X 10.4 &#8220;Tiger&#8221; and many other things. Feel free to see the current <a href="/screenshots">screenshots</a>, <a href="/downloads">download the binaries</a>, <a href="http://code.google.com/p/remproject/source/checkout">checkout the source code</a>, build, run and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/06/28/announcing-release-002-alpha/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Toolbar</title>
		<link>http://remproject.org/2008/05/27/toolbar/</link>
		<comments>http://remproject.org/2008/05/27/toolbar/#comments</comments>
		<pubDate>Tue, 27 May 2008 20:40:46 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=34</guid>
		<description><![CDATA[I&#8217;ve just committed a first version of Rem&#8217;s toolbar; the icons and the toolbar itself were designed using the Jucer, &#8220;Juce&#8217;s UI component builder application. It comes along as part of the Juce source tree.&#8221; as Jules describes it:

The Jucer is an awesome tool; I could customize the C++ templates it uses, to generate code [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just committed a first version of Rem&#8217;s toolbar; the icons and the toolbar itself were designed using the Jucer, &#8220;Juce&#8217;s UI component builder application. It comes along as part of the Juce source tree.&#8221; as <a href="http://www.rawmaterialsoftware.com/juce/">Jules describes it</a>:</p>
<p><img src="http://remproject.org/wp-content/uploads/2008/05/toolbar.png" alt="" title="toolbar" width="473" height="747" class="alignnone size-full wp-image-35" /></p>
<p>The Jucer is an awesome tool; I could customize the C++ templates it uses, to generate code that matches the project standards, and it works perfectly well! It is much faster than creating those components manually, yet it allows to have a tight control of the final source code.</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/05/27/toolbar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ActiveRecord and Unit Tests</title>
		<link>http://remproject.org/2008/05/26/activerecord-and-unit-tests/</link>
		<comments>http://remproject.org/2008/05/26/activerecord-and-unit-tests/#comments</comments>
		<pubDate>Mon, 26 May 2008 19:06:30 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=33</guid>
		<description><![CDATA[Unit tests are a great thing.
Today I&#8217;ve committed a revised version of the implementation of the ActiveRecord pattern, which saves instances of objects in SQLite databases. This new architecture replaces the &#8220;Curiously Recurring Template Pattern&#8221; used before, where ActiveRecord inherited (via template parameters) of the BelongsTo and HasMany classes:

    template 
  [...]]]></description>
			<content:encoded><![CDATA[<p>Unit tests are a great thing.</p>
<p>Today I&#8217;ve committed a revised version of the implementation of the <a href="http://martinfowler.com/eaaCatalog/activeRecord.html">ActiveRecord pattern</a>, which saves instances of objects in SQLite databases. This new architecture replaces the <a href="http://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern">&#8220;Curiously Recurring Template Pattern&#8221;</a> used before, where <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/ActiveRecord.h?r=92">ActiveRecord</a> inherited (via template parameters) of the <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/BelongsTo.h?r=92">BelongsTo</a> and <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/HasMany.h?r=92">HasMany</a> classes:</p>
<textarea name="code" class="c:showcolumns" cols="60" rows="10">
    template <class T
             , class P = NoParent
             , class C = NoChildren>
    class ActiveRecord : public P
                       , public C
    {
    public:
</textarea>
<p>Client classes <a href="http://code.google.com/p/remproject/source/browse/trunk/src/metamodel/Diagram.h?r=92">used to have</a> the following (ugly) syntax in their declarations; watch out for the brackets at the end of the declaration, and the duplication of one of the parameters in the old <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/HasMany.h?r=92">HasMany</a> declaration!:</p>
<textarea name="code" class="c:showcolumns" cols="60" rows="10">
    class Diagram : public ActiveRecord<Diagram
                         , BelongsTo<Project>
                         , HasMany<Element, Diagram> >
    {
    public:
</textarea>
<p>The whole thing was rather obscure and hard to understand, and even ugly, and I was looking for a different way to do things.</p>
<p>Hopefully, today I stumbled upon the <a href="http://www.parashift.com/c++-faq-lite/multiple-inheritance.html#faq-25.10">entry #25.10</a> of the <a href="http://www.parashift.com/c++-faq-lite/">C++ FAQ Lite</a>, &#8220;What does it mean to &#8220;delegate to a sister class&#8221; via virtual inheritance?&#8221; and I refactored the whole family of classes, which now look like this (check out the new <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/ActiveRecord.h?r=105">ActiveRecord</a>, <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/BelongsTo.h?r=105">BelongsTo</a> and <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/HasMany.h?r=105">HasMany</a> classes):</p>
<textarea name="code" class="c:showcolumns" cols="60" rows="10">
    template <class T>
    class ActiveRecord : public virtual Persistable
    {
</textarea>
<p>And this means that <a href="http://code.google.com/p/remproject/source/browse/trunk/src/metamodel/Diagram.h?r=105">now</a>, client classes are defined in this (much more readable) way:</p>
<textarea name="code" class="c:showcolumns" cols="60" rows="10">
class Diagram : public ActiveRecord<Diagram>
                  , public BelongsTo<Project>
                  , public HasMany<Element>
    {
    public:
</textarea>
<p>The <a href="http://code.google.com/p/remproject/source/browse/trunk/src/storage/Persistable.h?r=105">Persistable</a> class is an &#8220;Abstract Base Class&#8221;, providing (via <strong>public virtual</strong> inheritance) a common interface to all the template classes, which finally tremendously simplified the code. ABCs are better defined by <a href="http://www.artima.com/intv/abcs.html">as defined by Meyers</a>:</p>
<blockquote><p><strong>Bill Venners: </strong>Let&#8217;s define ABC. ABC means abstract base class. So what would you call in C++ that special case of an ABC that has no data and nothing but pure virtual functions, which have no implementation.</p>
<p><strong>Scott Meyers:</strong> The C++ community does not have a name for that. There is no commonly accepted term for that kind of class. Some people call it &#8220;interface class.&#8221; Some people quite incorrectly call it a virtual base class, but as long as we are among friends and know what we are talking about, that&#8217;s OK. But the notion of essentially a C++ implementation of an interface in Java or C# does not have a name in C++. </p></blockquote>
<p>Of course, this whole refactoring thing would not have been possible without the complete suite of 32 unit tests, testing most code interfaces in a straightforward way. This has helped me complete a rather obscure refactoring in a very short amount of time, with the certainty that the code still does what it should do. When the tests ran without throwing errors, it meant that I had been able to keep the interfaces intact, and to provide a whole new architecture to the framework.</p>
<p>And that&#8217;s simply great.</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/05/26/activerecord-and-unit-tests/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Going Forward</title>
		<link>http://remproject.org/2008/05/25/going-forward/</link>
		<comments>http://remproject.org/2008/05/25/going-forward/#comments</comments>
		<pubDate>Sun, 25 May 2008 18:42:15 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=32</guid>
		<description><![CDATA[Rem is advancing every day a little bit. The ActiveRecord implementation is more stable and usable than ever, and now a new member joins the family of classes that make Rem: a Controller, that will complete the MVC trio.
By the way, I&#8217;m going to WWDC next month (from June 9th to 13th) so feel free [...]]]></description>
			<content:encoded><![CDATA[<p>Rem is advancing every day a little bit. The ActiveRecord implementation is more stable and usable than ever, and now a new member joins the family of classes that make Rem: a Controller, that will complete the MVC trio.</p>
<p>By the way, I&#8217;m going to <a href="http://developer.apple.com/wwdc/">WWDC</a> next month (from June 9th to 13th) so feel free to drop a comment below if you want to meet.</p>
<p>Stay tuned for more updates soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/05/25/going-forward/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Release 0.0.1 Alpha is Here!</title>
		<link>http://remproject.org/2008/05/05/release-001-alpha-is-here/</link>
		<comments>http://remproject.org/2008/05/05/release-001-alpha-is-here/#comments</comments>
		<pubDate>Mon, 05 May 2008 19:26:09 +0000</pubDate>
		<dc:creator>Adrian Kosmaczewski</dc:creator>
		
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://remproject.org/?p=30</guid>
		<description><![CDATA[I&#8217;ve just published the Linux, Windows and Mac binaries (as well as a source code archive) of a preliminary and highly experimental version 0.0.1; you can download them from the Downloads page! You can also get more details in the Documentation page.

As always, feel free to leave me your comments below!
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just published the Linux, Windows and Mac binaries (as well as a source code archive) of a preliminary and highly experimental version 0.0.1; you can download them from the <a href="/downloads/">Downloads</a> page! You can also get more details in the <a href="/documentation/">Documentation</a> page.</p>
<p><img src="/wp-content/uploads/2008/05/release-001-alpha.png" alt="" title="release-001-alpha" width="500" height="649" class="alignnone size-full wp-image-31" /></p>
<p>As always, feel free to leave me your comments below!</p>
]]></content:encoded>
			<wfw:commentRss>http://remproject.org/2008/05/05/release-001-alpha-is-here/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.434 seconds -->
